You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Adjust to the consuming project's actual documentation layout (a project lane at .claude/tidy-lanes/docs-prose.mdoverrides this file entirely).
This is undeclared wholesale replacement of a whole prose-ruleset lane — forbidden by the consumer-config layering contract (docs/conventions/consumer-config-layering/README.md, "Merge semantics"). It turns every generic watch-for pattern the project lane omits into a silent loss of the bundled base, and carries the same freeze as any wholesale replace: a project lane stops bundled lane improvements (new patterns) from ever reaching that repo.
Why CORRECT rather than ratify
The lane is decomposable. Its Scope block is the only part a project genuinely needs to retarget; the watch-for patterns (P-1..P-6) are generic and would concatenate fine. "Override entirely" is broader than the surface needs, so additive merge is the root fix for the freeze — non-overridden parts keep flowing from upstream. This is exactly the sanctioned per-key path #647 took for source-control. No new exception class is warranted.
Scope of the fix
Decompose the lane so a project overrides the Scope block per key while the generic watch-for patterns stay additive (concatenate). Declare the per-key override semantics in the surface's own contract, next to its keys.
code-tidying row in docs/conventions/consumer-config-layering/README.md Implementers table updated to reflect conformance (moving it out of the single-layer/undeclared framing).
.local.* overlay gap tracked (here or a linked issue), not silently closed.
Conformance follow-up from the #649 ruling —
code-tidyingdocs-prose laneRuling #649 dispositioned this surface CORRECT (not ratify). Filed as
status: ready; applied under operator momentum delegation, veto window open.The deviation
plugins/code-tidying/skills/tidy/lanes/docs-prose.md:14:This is undeclared wholesale replacement of a whole prose-ruleset lane — forbidden by the consumer-config layering contract (
docs/conventions/consumer-config-layering/README.md, "Merge semantics"). It turns every generic watch-for pattern the project lane omits into a silent loss of the bundled base, and carries the same freeze as any wholesale replace: a project lane stops bundled lane improvements (new patterns) from ever reaching that repo.Why CORRECT rather than ratify
The lane is decomposable. Its
Scopeblock is the only part a project genuinely needs to retarget; the watch-for patterns (P-1..P-6) are generic and would concatenate fine. "Override entirely" is broader than the surface needs, so additive merge is the root fix for the freeze — non-overridden parts keep flowing from upstream. This is exactly the sanctioned per-key path #647 took forsource-control. No new exception class is warranted.Scope of the fix
Scopeblock per key while the generic watch-for patterns stay additive (concatenate). Declare the per-key override semantics in the surface's own contract, next to its keys.setup/SKILL.md:110-112refuses any.local.*overlay — a single-layer gap (the surface resolves one file: project lane, else bundled, no personal layer). Note it; it is a distinct concern from the merge-granularity fix, mirroring source-control: tracked config is single-layer — no ~/.claude user-global or *.local.* overlay, diverging from seam 2 #647's single-layer note.Acceptance
Scopeper-key override + additive watch-for patterns, override semantics declared.code-tidyingrow indocs/conventions/consumer-config-layering/README.mdImplementers table updated to reflect conformance (moving it out of the single-layer/undeclared framing)..local.*overlay gap tracked (here or a linked issue), not silently closed.Refs #649.