refactor(bin): prototype's two flow files sit at the skill root instead of references/ #114
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
plugins/bin/.apm/skills/prototype/carries its two mutually exclusive flows asLOGIC.mdandUI.mdat the skill root, not underreferences/. The skill has noreferences/directory at all.This is a genuine dispatch body — the SKILL.md "Pick a branch" section routes to exactly one of the two, and the body itself notes "the two branches produce fundamentally different artifacts — getting this wrong wastes the whole prototype." It just wires them the wrong way.
Two rules it sits outside:
skill-audit/references/file-structure.md:20— "No non-spec files at the skill root: noMETA.md, no stray config outside the four directories."LOGIC.mdandUI.mdare exactly that.body-discipline.md) — each flow lives in "its own self-containedreferences/file." The body wires these with plain markdown links ([LOGIC.md](LOGIC.md)) rather than a reference-file trigger.Why it wasn't fixed in #99 wave 3
prototype's retrofit was scoped to its description ERROR (426 → 239 chars). The body is 467 words and fails nothing. Moving the two files is a structural change with mirror and deployed-path consequences, so it was held out of a wave whose discipline was "fix the ERRORs, touch nothing else." Recording it rather than letting a later agent improvise.Scope of the fix
git mvboth files intoreferences/.references/logic.md/references/ui.md. Consider lowercasing to match every other reference file in the corpus.scripts/sync-plugin-content.sh --all—plugins/bin/skills/prototype/mirrors the old paths.Worth checking whether any other skill has root-level flow files while in here;
prototypewas the only one noticed during wave 3, but the wave only looked at eight skills.Related
Found during #99 wave 3. See also #109 (dispatch table vs. literal conditional wiring), now resolved in favour of the table.
Fixed on
refactor/adr0020-skill-retrofit(not yet pushed — the PR body will carry the close)All four steps of the stated scope are done.
LOGIC.md→references/logic.md,UI.md→references/ui.md, lowercased to match every other reference file in the corpus. The skill root now holds onlySKILL.md,README.mdandreferences/.plugins/bin/skills/prototype/now showsreferences/logic.mdandreferences/ui.md.grep -rn 'LOGIC.md\|UI.md'acrossplugins/returns nothing. The reciprocal wrong-branch cross-links inside the two files were repointed too.Consequence worth noting: both files are now inside the deterministic dangling-
references/ERROR's scope, which they were not before. Root-level flow files were unreachable by that check entirely, so a typo in[LOGIC.md](LOGIC.md)would have shipped green.Answer to "is any other skill like this": yes, four
All in
bin, all with non-README.mdmarkdown at the skill root:grill-with-docsADR-FORMAT.md,CONTEXT-FORMAT.mdimprove-codebase-architectureDEEPENING.md,INTERFACE-DESIGN.md,LANGUAGE.mdtdddeep-modules.md,interface-design.md,mocking.md,refactoring.md,tests.mdtriageAGENT-BRIEF.md,OUT-OF-SCOPE.mdSwept across all 39 skills in all six plugins;
prototypeand those four were the only hits. Being filed separately rather than folded in here.Fixed by #129, squash-merged to
mainas598a7c3.LOGIC.mdandUI.mdmoved toreferences/logic.mdandreferences/ui.md(git tracked both as renames, R099). The skill root is nowSKILL.md,README.md,references/— spec-conforming.Worth recording, because it is this issue's own trap: the move carried
logic.mdinto the corpus nothing lints, and a later review round found it had lost three anti-patterns outright, including "Don't generalise", surviving nowhere — in a file already well under the suggestion tier, so no gate had asked for the cut. The byte-identical defect in the siblingui.mdhad been restored one commit earlier and this one was missed. Both are restored at598a7c3.That is ADR-0020's stated anti-goal — a gate satisfied by deleting content rather than relocating it — and the general case is #117:
references/is where the contract pushes prose and where neither the size gate nor Vale looks.Stayed open after the merge because Gitea's closing-keyword parser consumed only the first reference in
Closes #99, #107, …. Closing manually.