Add ADR 0012 umbrella branding + four-PR rename plan #45

Merged
pdurlej merged 1 commit from rename/adr-umbrella-branding into main 2026-05-15 18:53:15 +02:00
Collaborator

Canary Context Pack

Product story

Operator observed TS code share growing across the working repos and asked whether to build (or adopt) a TypeScript sibling to pyfallow. After a research-only survey of the TS/JS analyzer ecosystem (knip, dependency-cruiser, tsc, ESLint, Biome, etc.) the verdict was: detection layer is covered by existing tools, but pyfallow's agent-facing contract (3-bucket classification, stable fingerprints, single source of truth across CLI + MCP) does not exist in TS. With a TS sibling on the roadmap, branding presents itself: "pyfallow" reads Python-specific and orphans the future sibling. Operator decided to adopt fallow as an umbrella: pyfallow → fallow-py, new TS sibling → fallow-ts.

What changed

  • New decisions/0012-umbrella-branding-fallow.md — records the decision, 0.3.x compat plan (import shim + CLI alias + config dual-read), and the four-PR migration sequence.
  • New docs/rename-plan.md — rolling status doc for the four PRs (this is #1).
  • decisions/README.md index updated.

No source code, no packaging, no CI, no config changes in this PR. Pure decision documentation.

Why it changed

ADR 0006 (anti-AI-slop) discipline: don't build from imagination. Research established the TS sibling has a real reason to exist (knip + dependency-cruiser cover detection, the agent-facing contract is the missing layer). With that established, branding the family before the sibling forks is the cheapest moment to do it.

Files touched

  • decisions/0012-umbrella-branding-fallow.md (new)
  • decisions/README.md
  • docs/rename-plan.md (new)

Runtime evidence

  • python3 -m pytest -q — still green (no code touched)
  • python3 -m compileall -q src tests mcp/src mcp/tests — still green
  • PYTHONPATH=src python3 -m pyfallow analyze --root . --fail-on warning --min-confidence medium — 0 findings, exit 0

Known constraints

  • Rename PRs #2-#4 are scoped but not yet started. Each carries its own risk profile (see ADR 0012 § Migration order).
  • The 0.3.0a2 TestPyPI publish stays under pyfallow as historical; next alpha (0.3.0a3) ships under fallow-py.
  • Past ADRs (0001-0011) keep their original "pyfallow" references per the ADR-immutability convention.

Explicit out-of-scope

  • Any Python source rename (→ PR #2).
  • CLI entry point or config file rename (→ PR #3).
  • Admin repo rename on Forgejo / GitHub (→ PR #4).
  • fallow-ts repo creation, package layout, MCP server design — happens in the forked conversation that drives fallow-ts development.

Requested decision

approve_merge if the decision is sound and the four-PR sequence is the right level of granularity. Block only on objective issues with the ADR's reasoning, the rename plan's structure, or anything in the docs that contradicts ADR 0006 / 0007 / 0008.

Merge blockers

  • Any contradiction with ADR 0007 (bassist / harness identity must transfer cleanly under the new brand).
  • Any contradiction with ADR 0008 (rename must not reset the evidence-bounded dogfood window).
  • Any missing piece in the compat plan that would break existing alpha consumers without warning.

Refs: ADR 0006 (anti-AI-slop), ADR 0007 (bassist / harness), ADR 0008 (evidence-bounded), ADR 0010 (mandatory non-author reviewer).

## Canary Context Pack ### Product story Operator observed TS code share growing across the working repos and asked whether to build (or adopt) a TypeScript sibling to pyfallow. After a research-only survey of the TS/JS analyzer ecosystem (knip, dependency-cruiser, tsc, ESLint, Biome, etc.) the verdict was: detection layer is covered by existing tools, but pyfallow's agent-facing contract (3-bucket classification, stable fingerprints, single source of truth across CLI + MCP) does not exist in TS. With a TS sibling on the roadmap, branding presents itself: "pyfallow" reads Python-specific and orphans the future sibling. Operator decided to adopt **fallow** as an umbrella: pyfallow → fallow-py, new TS sibling → fallow-ts. ### What changed - New `decisions/0012-umbrella-branding-fallow.md` — records the decision, 0.3.x compat plan (import shim + CLI alias + config dual-read), and the four-PR migration sequence. - New `docs/rename-plan.md` — rolling status doc for the four PRs (this is #1). - `decisions/README.md` index updated. No source code, no packaging, no CI, no config changes in this PR. Pure decision documentation. ### Why it changed ADR 0006 (anti-AI-slop) discipline: don't build from imagination. Research established the TS sibling has a real reason to exist (knip + dependency-cruiser cover detection, the agent-facing contract is the missing layer). With that established, branding the family before the sibling forks is the cheapest moment to do it. ### Files touched - `decisions/0012-umbrella-branding-fallow.md` (new) - `decisions/README.md` - `docs/rename-plan.md` (new) ### Runtime evidence - `python3 -m pytest -q` — still green (no code touched) - `python3 -m compileall -q src tests mcp/src mcp/tests` — still green - `PYTHONPATH=src python3 -m pyfallow analyze --root . --fail-on warning --min-confidence medium` — 0 findings, exit 0 ### Known constraints - Rename PRs #2-#4 are scoped but not yet started. Each carries its own risk profile (see ADR 0012 § Migration order). - The 0.3.0a2 TestPyPI publish stays under `pyfallow` as historical; next alpha (0.3.0a3) ships under `fallow-py`. - Past ADRs (0001-0011) keep their original "pyfallow" references per the ADR-immutability convention. ### Explicit out-of-scope - Any Python source rename (→ PR #2). - CLI entry point or config file rename (→ PR #3). - Admin repo rename on Forgejo / GitHub (→ PR #4). - fallow-ts repo creation, package layout, MCP server design — happens in the forked conversation that drives fallow-ts development. ### Requested decision `approve_merge` if the decision is sound and the four-PR sequence is the right level of granularity. Block only on objective issues with the ADR's reasoning, the rename plan's structure, or anything in the docs that contradicts ADR 0006 / 0007 / 0008. ### Merge blockers - Any contradiction with ADR 0007 (bassist / harness identity must transfer cleanly under the new brand). - Any contradiction with ADR 0008 (rename must not reset the evidence-bounded dogfood window). - Any missing piece in the compat plan that would break existing alpha consumers without warning. Refs: ADR 0006 (anti-AI-slop), ADR 0007 (bassist / harness), ADR 0008 (evidence-bounded), ADR 0010 (mandatory non-author reviewer).
Add ADR 0012 umbrella branding + rename plan doc
All checks were successful
CI / Python 3.11 (push) Successful in 56s
CI / Python 3.12 (push) Successful in 1m1s
CI / Python 3.13 (push) Successful in 1m2s
CI / Python 3.11 (pull_request) Successful in 55s
CI / Python 3.12 (pull_request) Successful in 56s
CI / Python 3.13 (pull_request) Successful in 57s
f729175ada
ADR 0012 records the decision to adopt 'fallow' as an umbrella brand
across language implementations: pyfallow -> fallow-py, with a new
TypeScript sibling fallow-ts to follow in its own repo (forked
conversation). Includes 0.3.x compat plan (import shim, CLI alias,
config dual-read) and the four-PR migration sequence.

docs/rename-plan.md is the rolling status doc for the four PRs.

This PR is docs-only; PRs #2-#4 follow with the actual rename.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
pdurlej scheduled this pull request to auto merge when all checks succeed 2026-05-14 15:50:43 +02:00
pdurlej approved these changes 2026-05-14 15:51:17 +02:00
pdurlej left a comment

yessss

yessss
pdurlej scheduled this pull request to auto merge when all checks succeed 2026-05-14 15:51:22 +02:00
codex approved these changes 2026-05-15 18:53:13 +02:00
codex left a comment

approve_merge.

Reviewed as codex via Forgejo MCP. This is a docs/ADR-only PR: ADR 0012 records the umbrella branding decision and docs/rename-plan.md decomposes the rename into reviewable follow-up PRs without touching runtime, packaging, config, or CI.

No blockers found. The only semantic caveat is intentional and already anchored in ADR 0009: decision_needed is the target contract, while current 0.3.0a2 runtime still exposes the pre-implementation review_needed / manual_only namespace until the tracked Phase B migration lands. That is not a blocker for this decision-record PR.

approve_merge. Reviewed as codex via Forgejo MCP. This is a docs/ADR-only PR: ADR 0012 records the umbrella branding decision and `docs/rename-plan.md` decomposes the rename into reviewable follow-up PRs without touching runtime, packaging, config, or CI. No blockers found. The only semantic caveat is intentional and already anchored in ADR 0009: `decision_needed` is the target contract, while current 0.3.0a2 runtime still exposes the pre-implementation `review_needed` / `manual_only` namespace until the tracked Phase B migration lands. That is not a blocker for this decision-record PR.
Sign in to join this conversation.
No description provided.