Skip to content

feat(framework): ship generic sub-agents across six hosts - #1027

Merged
blafourcade merged 1 commit into
nextfrom
feature/sub-agents
Oct 29, 2026
Merged

blafourcade merged 1 commit into
nextfrom
feature/sub-agents

Conversation

@alexsoyes

@alexsoyes alexsoyes commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

🎯 What & why

Ship four generic sub-agents (explorer, executor, validator, reviewer) in aidd-orchestrator, translated to each host's native agent format, so workflows can delegate by responsibility instead of naming an agent.

🛠️ How it works

  • Agents: plugins/aidd-orchestrator/agents/, no tool list and no model: every host gives an agent all tools and the caller's model by default. Delegation guidance lives in the ## Agents section of AGENTS.md / CLAUDE.md; without an agent, the host's default subagent takes the brief. The former aidd-dev agents are removed.

  • Translation (cli/): each host receives only the keys its documentation lists.

    Host ID Effort key
    Claude Code name effort
    Codex plugin-prefixed name, TOML model_reasoning_effort
    Copilot name, plus include-custom-instructions: true reasoningEffort
    OpenCode, Kilo file path none
    Cursor name, double-quoted none

    One Codex writer (codexAgentToml) serves both the built distributions and the plugin installer.

  • make reload: installs every plugin locally (Claude, Codex, OpenCode, Copilot, Cursor), copies the agents into Codex and OpenCode (neither loads them from a plugin), and syncs the ## Agents block into each host's global instructions.

  • Workflows: 01-sdlc, 10-batch and 01-plan delegate by role, never by agent name.

  • Docs: docs/SUBAGENTS.md.

🧪 How to verify

  • make reload, then in Claude Code, Codex or OpenCode ask for one of the four agents by role.
  • Claude Code, OpenCode and Codex were run end to end: the four agents load and answer (verification). Copilot, Cursor and Kilo: unit and golden tests only.

⚠️ Heads-up

  • Agents are not restricted: what they write is an instruction.
  • A Codex plugin cannot carry agents; only the flat distribution and make reload install them.
  • make reload used to copy executor.toml and checker.toml unprefixed into ~/.codex/agents; delete them by hand, the new copies are aidd-orchestrator-*.toml.
  • Codex and Cursor agent names depend on the install path: built distributions prefix them (aidd-orchestrator-explorer), aidd setup and the native plugin install keep explorer; the native Codex install also writes to .codex/plugins/<p>/agents/, which Codex never reads (already true on next). Left for a follow-up.
  • Per-provider models, --main and the aidd setup model options come in feat(cli): choose the agents' provider and install the framework machine-wide #1119, stacked on this PR.
  • Split out: the workflow changes go to docs(framework): delegate plan phases and tighten workflow steps #1091, which conflicts here on 02-deliver.md, 03-check.md and 10-batch; whichever merges second resyncs.

✅ I certify

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

@alexsoyes alexsoyes changed the title feat(aidd-dev): support scoped sub-agents across hosts feat(framework): support scoped sub-agents across five hosts Oct 15, 2026

@alexsoyes alexsoyes left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@blafourcade si tu peux commencer à regarder les décisions prises (pas le code) ou si tu vois une énormité mais je suis encore en train de bosser dessus

"invocation": "aidd",
"exitCode": 0,
"help": "Usage: aidd [options] [command]\n\nGenerate AI coding assistant configurations from the AIDD framework\n\nOptions:\n -V, --version Show version number\n --verbose Show detailed diagnostic output (default: false)\n -h, --help display help for command\n\nCommands:\n setup [options] Set up or update the project to a correct state\n — bootstraps the whole project (marketplace,\n framework, tools, plugins); see `framework\n install`, which acts on the framework alone\n framework Manage the framework's lifecycle on installed\n tools\n translate [options] <source> Convert an arbitrary source into a target-native\n plugin tree — records nothing (see `sync` for\n the manifest-driven, tracked version)\n plugin Manage plugins for AI tools\n marketplace Manage plugin marketplaces\n auth Manage authentication\n sync [options] [files...] Rewrite owned files from what is already there —\n regenerate tracked files, driven by the manifest\n (see `translate`, which converts a source\n without recording anything)\n update|upgrade [options] Update the aidd CLI itself to the latest version\n doctor [options] Detected and equipped tools, plugins, drift, and\n problems — across all tools or one\n clean [options] Remove all AIDD-managed files from the project —\n retires every part of AIDD; see `framework\n remove`, which removes the framework only\n telemetry Measure what Claude Code sessions consume,\n locally\n help [command] display help for command"
"help": "Usage: aidd [options] [command]\n\nGenerate AI coding assistant configurations from the AIDD framework\n\nOptions:\n -V, --version Show version number\n --verbose Show detailed diagnostic output (default: false)\n -h, --help display help for command\n\nCommands:\n setup [options] Set up or update the project to a correct state\n — bootstraps the whole project (marketplace,\n framework, tools, plugins); see `framework\n install`, which acts on the framework alone\n framework Manage the framework's lifecycle on installed\n tools\n translate [options] <source> Convert an arbitrary source into a target-native\n plugin tree — records nothing (see `sync` for\n the manifest-driven, tracked version)\n plugin Manage plugins for AI tools\n marketplace Manage plugin marketplaces\n auth Manage authentication\n sync [options] [files...] Rewrite owned files from what is already there —\n regenerate tracked files, driven by the manifest\n (see `translate`, which converts a source\n without recording anything)\n update|upgrade [options] Update the aidd CLI itself to the latest version\n doctor [options] Detected and equipped tools, plugins, drift, and\n problems — across all tools or one\n clean [options] Remove all AIDD-managed files from the project —\n retires every part of AIDD; see `framework\n remove`, which removes the framework only\n telemetry Measure what Claude Code sessions consume,\n locally\n delegation Read this project's delegation suggestions\n help [command] display help for command"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

très difficile à lire

"help": "Usage: aidd clean [options]\n\nRemove all AIDD-managed files from the project — retires every part of AIDD; see\n`framework remove`, which removes the framework only\n\nOptions:\n --force Confirm file removal (skip dry-run) (default: false)\n --scope <scope> project (default) cleans this project alone; user undoes the\n machine-wide registration setup --scope user wrote and purges\n the shared source itself\n -h, --help display help for command"
},
{
"invocation": "aidd delegation",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pourquoi y'a 2 commandes ?
vraiment utile ?

{ path: "src/presentation/commands", count: 15 },
// Command groups, including opt-in agents, and their command-only helpers.
// Keeping each group at its CLI entry point avoids combining unrelated command surfaces.
{ path: "src/presentation/commands", count: 16 },

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// Host plugin registries prove ref scope/enablement; the added native source reader independently
// proves the current catalogue before these flows mutate it. Neither witness replaces the other.
{ path: "src/contexts/framework/application/clean-use-case.ts", injected: 13 },
// Independent opt-in agents have their own ownership record and participate in full cleanup.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

je veux pas te flinguer tes règles

Comment thread docs/ARCHITECTURE.md Resolved
3. **Fill.** Fill the plan and each phase from their templates, following the inline contracts. Slice the projection across the phases.
4. **Show.** Display the written paths.
5. **Review.** Score the complete plan and its phases from 0 to 10, with ✓ reasons and ✗ risks. In interactive mode, show them and revise until approved. Under an autonomous orchestrator, revise against the source without waiting for approval; ask only when a product decision cannot be resolved from the source. The score is never written to the plan.
5. **Review.** Challenge source coverage, acceptance criteria, phase boundaries, and dependencies; revise gaps. In interactive mode, show them and revise until approved. Under an autonomous orchestrator, revise against the source without waiting for approval; ask only when a product decision cannot be resolved from the source.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Les scores à la con comme ça si on borne pas l'IA c'st random


## Applicable rules

<!-- Generated by the project's rule-inventory step. The checker uses this list to verify the implementation. `none` if no installed tool has rules. -->

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tu vois ça hop ça vire

@blafourcade blafourcade added this to the This week milestone Oct 22, 2026 — with Claude
Comment thread docs/SUBAGENTS.md Resolved
Comment thread docs/SUBAGENTS.md Resolved
Comment thread docs/SUBAGENTS.md Resolved
Comment thread docs/SUBAGENTS.md Resolved
alexsoyes added a commit that referenced this pull request Oct 23, 2026
…rced

Review on #1027: agents belong to the marketplace, not the CLI. They
are generic roles a skill gives a concern to, and only the orchestrator
spawns them, so the four agents move to aidd-orchestrator/agents.

`aidd agents install/remove` and per-provider model profiles leave this
PR; they come back as a layer over the plugin agents in a follow-up.

Read-only is declared, not only written: explorer and validator carry a
Claude `tools` allowlist. Claude and Copilot read it as is; OpenCode
gets V2 `permissions` denying edits, and loses `name`, which made V2
ignore the agent's permissions. Codex and Cursor have no per-agent
restriction. Verified by dispatching the explorer on Claude Code and
OpenCode: the write was refused.
@alexsoyes alexsoyes changed the title feat(framework): support scoped sub-agents across five hosts feat(framework): ship generic sub-agents across six hosts Oct 26, 2026
@alexsoyes
alexsoyes marked this pull request as ready for review October 28, 2026 03:29
@alexsoyes
alexsoyes requested a review from a team as a code owner October 28, 2026 03:29
@alexsoyes
alexsoyes enabled auto-merge October 29, 2026 02:18
Squash of the branch rebased on next.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@blafourcade
blafourcade merged commit 7c67ca3 into next Oct 29, 2026
99 of 101 checks passed
@blafourcade
blafourcade deleted the feature/sub-agents branch October 29, 2026 09:03
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.

2 participants