Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

ci(framework): mechanically enforce cross-plugin orthogonality on PRs

Closed
#250 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
git, github-actions, typescript

Research direction

Start with docs/ARCHITECTURE.md and the existing validate.yml and Lefthook configuration to understand where checks run. Use the violations described in #406 as fixtures, then verify that one deterministic checker runs locally and in CI, reports the file, line, and owning plugin, and checks both inter-plugin addresses and skill metadata consistency.

Written by the indexing model from the issue text.

Description

Mechanically enforce the architecture rules a PR can silently break. Today they are self-attested at best, and #406 is the proof: aidd-orchestrator hardcodes aidd-dev, violating cross-plugin orthogonality, and nothing caught it.

Relationship to #406

  • #406 fixes the violation that exists today.
  • This issue stops the next one from landing.

One does not replace the other. Without this check, #406 recurs.

What to enforce

  • Cross-plugin orthogonality. No plugin references another by name. docs/ARCHITECTURE.md states the rule; nothing verifies it. A grep for aidd-<plugin>: outside its own plugin is a first approximation, but skill descriptions and routing regexes need a real check.
  • Docs match behavior. A change to a skill's actions that leaves its description and SKILL.md router table stale.

Note on the original scope

This issue was written when .github/PULL_REQUEST_TEMPLATE.md carried 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 in docs/ARCHITECTURE.md, unenforced — which is exactly the gap this issue fills.

Acceptance criteria

  • A PR introducing a hardcoded aidd-<plugin>: address outside its own plugin fails a check.
  • The check names the file and line, not just the rule.
  • The existing violations in #406 are the fixture: the check must catch them.

Guardrail local et CI

Un unique vérificateur d’orthogonalité est exécuté à deux niveaux :

  • Pré-commit local : Lefthook l’exécute sur les fichiers modifiés et bloque le commit avec le fichier, la ligne et le plugin propriétaire.
  • CI : validate.yml exé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.

Dominant language
TypeScript
Stars
481
Forks
45
Avg merge
19h 38m
Merged PRs (30d)
108

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ai-driven-dev/framework

All issues in ai-driven-dev/framework

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.