Repository navigation
ci(framework): mechanically enforce cross-plugin orthogonality on PRs #250
Copy link
Copy link
Closed
Description
Activity
- changed the title
[-]Automate the two mechanical 'I certify' PR checks via a Claude Code hook or CI[/-][+]AI PR auditor: analyze each PR against the certify criteria (semantic, not regex)[/+]on Jun 6, 2026 - changed the title
[-]AI PR auditor: analyze each PR against the certify criteria (semantic, not regex)[/-][+]AI check that PRs actually respect the certify checklist[/+]on Jun 6, 2026 - changed the title
[-]AI check that PRs actually respect the certify checklist[/-][+]feat: AI check that PRs respect the certify checklist[/+]on Jun 6, 2026 - changed the title
[-]feat: AI check that PRs respect the certify checklist[/-][+]ci(framework): mechanically enforce cross-plugin orthogonality on PRs[/+]on Jul 10, 2026 #406 is completed, so it must no longer block this issue and cannot remain its regression fixture.
The enforcement mechanism also needs to follow the project decision: do not impose a Git pre-commit hook or CI gate. Use a host-native AI lifecycle hook generated by the owning hook capability.
Keep the checks narrow: identify a hardcoded cross-plugin address or a router/description mismatch, name the file and line, and prevent the AI write until it is corrected. Use synthetic fixtures, not the historical code from #406.
This remains a Medium Task in Todo once the obsolete blocker is removed.
- added 7 commits that reference this issue
on Sep 18, 2026
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Priority
Medium
Projects
- StatusShow more project fieldsDone
Mechanically enforce the architecture rules a PR can silently break. Today they are self-attested at best, and #406 is the proof:
aidd-orchestratorhardcodesaidd-dev, violating cross-plugin orthogonality, and nothing caught it.Relationship to #406
One does not replace the other. Without this check, #406 recurs.
What to enforce
docs/ARCHITECTURE.mdstates the rule; nothing verifies it. A grep foraidd-<plugin>:outside its own plugin is a first approximation, but skill descriptions and routing regexes need a real check.descriptionandSKILL.mdrouter table stale.Note on the original scope
This issue was written when
.github/PULL_REQUEST_TEMPLATE.mdcarried a checklist with "Docs updated" and "No cross-plugin references introduced". That checklist is gone: the template now certifies one thing only, that a human read every line. The rules survive indocs/ARCHITECTURE.md, unenforced — which is exactly the gap this issue fills.Acceptance criteria
aidd-<plugin>:address outside its own plugin fails a check.Guardrail local et CI
Un unique vérificateur d’orthogonalité est exécuté à deux niveaux :
validate.ymlexécute les mêmes hooks sur toute l’arborescence. Elle reste l’autorité finale et bloque toute contribution ayant contourné le hook local.Le garde-fou est un hook Git, pas un hook IA : il doit être déterministe, valable pour tous les outils et ne jamais dépendre d’un événement ou d’une configuration d’hôte IA.
Les deux niveaux vérifient les adresses inter-plugins et la cohérence entre actions, description et routeur d’un skill.