Add ADR 0012 umbrella branding + four-PR rename plan #45
Labels
No labels
area:ci
area:docs
area:engineering
area:framework-fp
area:test-coverage
dogfood:fn
dogfood:fp
dogfood:friction
dogfood:tp
phase:b
phase:c
severity:critical
severity:high
severity:low
severity:medium
source:deepseek-v4-pro
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/fallow-py!45
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "rename/adr-umbrella-branding"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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
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.docs/rename-plan.md— rolling status doc for the four PRs (this is #1).decisions/README.mdindex 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.mddocs/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 greenPYTHONPATH=src python3 -m pyfallow analyze --root . --fail-on warning --min-confidence medium— 0 findings, exit 0Known constraints
pyfallowas historical; next alpha (0.3.0a3) ships underfallow-py.Explicit out-of-scope
Requested decision
approve_mergeif 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
Refs: ADR 0006 (anti-AI-slop), ADR 0007 (bassist / harness), ADR 0008 (evidence-bounded), ADR 0010 (mandatory non-author reviewer).
yessss
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.mddecomposes 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_neededis the target contract, while current 0.3.0a2 runtime still exposes the pre-implementationreview_needed/manual_onlynamespace until the tracked Phase B migration lands. That is not a blocker for this decision-record PR.