Skip to content

fix(aidd-orchestrator): hardcodes aidd-dev, violates cross-plugin orthogonality #406

Closed

Description

@blafourcade

Rule

Cross-plugin orthogonality: plugins never reference each other by name — orchestrators included. A skill discovers a cross-plugin capability at runtime by description matching, never a hardcoded aidd-<plugin>:… address. It is not yet mechanically enforced, so violations slip through.

Violation

aidd-orchestrator/skills/00-async-dev hardcodes aidd-dev:

Should delegate by capability:

  • SKILL.md:29 + references/routing.md:36-37 — trigger regexes match /aidd-dev:02-implement, /aidd-dev:05-review.
  • SKILL.md:81 — check-sdlc verifies aidd-dev:00-sdlc (should be "an SDLC-capable orchestrator").
  • README.md:17 — pointer "use aidd-dev:00-sdlc".

Deployment-level (names the package to install it — harder to make capability-based):

  • SKILL.md:62, actions/setup/07-install-user-scope-plugins.md, assets/setup/workflow-template.yml:165,260 — setup installs aidd-dev@aidd-framework.

Fix options

  1. Capability-based for triggers + check-sdlc + README; leave setup/install naming the package.
  2. Full: make setup capability-driven too (needs design).
  3. Add a lefthook grep for cross-plugin literals so this can't regress.

Found during the docs rework while verifying ARCHITECTURE.md against the code.

Acceptance criteria

  • No file under plugins/aidd-orchestrator/ names another plugin by address.
  • The skill discovers an SDLC-capable orchestrator by capability, not by the string aidd-dev.
  • Uninstalling aidd-dev degrades the flow with a clear message instead of failing on a missing address.
  • The check from ci(framework): mechanically enforce cross-plugin orthogonality on PRs #250 passes on this plugin.

Related

Activity

  1. blafourcade commented on Jul 10, 2026

    @blafourcade
    ContributorAuthor

    Two issues sit around this one:

  2. changed the title [-]aidd-orchestrator violates cross-plugin orthogonality (hardcodes aidd-dev)[/-] [+]fix(aidd-orchestrator): hardcodes aidd-dev, violates cross-plugin orthogonality[/+] on Jul 10, 2026
  3. blafourcade commented on Jul 10, 2026

    @blafourcade
    ContributorAuthor

    Related: #420 slims this same skill. Its router (131 lines) holds the routing regexes that hardcode aidd-dev. Fixing the address and shrinking the router touch the same lines — pair them.

  4. added theissue type on Jul 10, 2026
  5. changed the issue type fromtoon Jul 30, 2026
  6. blafourcade commented on Sep 9, 2026

    @blafourcade
    ContributorAuthor

    Resolution

    The original violation is no longer the current contract.

    00-async-dev now discovers an active SDLC capability from the runtime skill catalog by description, passes the discovered name to delegation, and degrades explicitly when no matching capability is loaded. The same discovery rule is used for review-fix delegation.

    The broad acceptance criterion “no file under aidd-orchestrator/ names another plugin” is not valid under the current architecture:

    • recipe skills discover sibling providers at runtime;
    • agent permission lists and orchestration references may name canonical providers as explicit, auditable responsibility maps;
    • package installation is a deployment/configuration concern, not a provider dispatch contract;
    • the remaining aidd-dev strings in async-dev comment routing are compatibility input aliases, not a fixed delegation target.

    The actual dispatch is capability-based. Keep compatibility aliases only as long as the supported trigger contract requires them; their removal is a separate compatibility decision.

    The remaining work stays with its owners:

    Closing this issue as completed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    High

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions