Skip to content

fix(framework): close the architecture guard's three recorded gaps - #1005

Merged
blafourcade merged 1 commit into
nextfrom
fix/architecture-guard-limits
Oct 12, 2026
Merged

blafourcade merged 1 commit into
nextfrom
fix/architecture-guard-limits

Conversation

@blafourcade

Copy link
Copy Markdown
Contributor

🎯 What & why

Closes the three gaps #884 recorded in the architecture guard.

🛠️ How it works

  • Rows with no separator under the Actions table. A blank line ends a table, as every renderer reads it. A run of rows with no separator under the Actions table now gets one refusal at its first line, and none of its cells counts as a citation. Before, it was read as the table resumed after the blank line, so a glossary there could donate a citation and hide a deleted row.
  • Fences. Orthogonality still reads through fences, while router coherence does not. This is deliberate, and the reason is now in architecture-rules.js: a fenced command is still one the model runs. A test pins it.
  • R8 (skill-authoring.md): two actions sharing a slug keep their number (01-plan, 04-plan). A test pins it.

🧪 How to verify

  • node scripts/check-tests-leave-git-alone.js -- node --test 'scripts/__tests__/**/*.test.js': 681 pass, 0 fail.
  • node scripts/check-architecture-rules.js $(git ls-files 'plugins/*/skills/**/*.md' 'plugins/*/agents/**/*.md'): 437 files, no violation.
  • Mutations:
    • Removing the cut makes its 4 tests fail.
    • Blanking fences in orthogonality makes exactly the fence test fail.

⚠️ Heads-up

The guard now refuses a blank line inside a router's Actions table, which it used to tolerate. No skill in the tree has one.

🔗 Linked issue

Closes #884

✅ I certify

  • I DO CERTIFY I READ EACH LINE OF THE PULL REQUEST BECAUSE I AM A SOFTWARE ENGINEER, NOT A AI PUPPY.

🤖 Generated with Claude Code

https://claude.ai/code/session_01VE16AxC1V9wAMGmGgefe4z

A run of table rows with no separator under the Actions table was read as the
table resumed after a blank line, so a glossary there could donate a citation
and hide a deleted row. A blank line ends a table, as every renderer reads it:
such a run now draws one refusal at its first line, and cites nothing.

Orthogonality keeps reading through fences while router coherence does not,
on purpose and now said in the code: a fenced command is still one the model
runs. A test pins it.

R8 says that two actions sharing a slug keep their number, the form the guard
already cites.

The split-table unit test and the property test's split shapes now expect that
single refusal. Every router in the tree still passes.

Closes #884

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VE16AxC1V9wAMGmGgefe4z
@blafourcade
blafourcade requested a review from a team as a code owner October 12, 2026 12:50
@blafourcade
blafourcade merged commit 4140a53 into next Oct 12, 2026
39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant