diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json
index 22e340894..de906a07b 100644
--- a/.claude-plugin/marketplace.json
+++ b/.claude-plugin/marketplace.json
@@ -17,7 +17,7 @@
{
"name": "aidd-dev",
"source": "./plugins/aidd-dev",
- "description": "Code transformation: Dev SDLC orchestrator (code-shipping pipeline), plan, assert, audit, review, test, refactor, debug, for-sure. Hosts engineering agents.",
+ "description": "Code transformation: plan, implement, assert, audit, review, test, refactor, debug, for-sure. Hosts engineering agents.",
"strict": true,
"recommended": true
},
@@ -38,9 +38,9 @@
{
"name": "aidd-orchestrator",
"source": "./plugins/aidd-orchestrator",
- "description": "Async development orchestration: turn ready issues into pull requests, then iterate on review feedback until a human takes over.",
+ "description": "Orchestration: synchronous SDLC code-shipping pipeline and async issue-to-PR automation.",
"strict": true,
- "recommended": false
+ "recommended": true
},
{
"name": "aidd-refine",
diff --git a/.codex/environments/environment.toml b/.codex/environments/environment.toml
index d8458dbff..2e6205515 100644
--- a/.codex/environments/environment.toml
+++ b/.codex/environments/environment.toml
@@ -1,22 +1,6 @@
+# THIS IS AUTOGENERATED. DO NOT EDIT MANUALLY
version = 1
name = "framework"
[setup]
-script = """
-# Guardrail: never move a named branch during setup.
-if [ "$(git rev-parse --abbrev-ref HEAD)" != "HEAD" ]; then
- echo "Refusing to move a named branch during setup."
- exit 1
-fi
-
-# Guardrail: only refresh the setup base from a clean worktree.
-if [ -n "$(git status --porcelain)" ]; then
- echo "Refusing to update setup base: worktree is not clean."
- git status --short
- exit 1
-fi
-
-git fetch --prune origin main
-git switch --detach origin/main
-make setup
-"""
+script = ""
diff --git a/README.md b/README.md
index c12eb70c3..7e86d7ef2 100644
--- a/README.md
+++ b/README.md
@@ -27,8 +27,8 @@ _(Already tested on `Legacy` codebases)_
The **AI-Driven Dev Framework** installs a working SDLC (Software Development Life Cycle) into your AI coding tool — **skills, agents, commands, rules** — that turns a rough idea into a reviewed, shipped pull request:
```text
-/aidd-dev:00-sdlc "add rate limiting to the /login endpoint"
-→ spec → plan → implement → review → ship (commit + PR opened)
+/aidd-orchestrator:01-sdlc "add rate limiting to the /login endpoint"
+→ frame when needed → plan → implement → validate → review → challenge → ship
```
Why not just write your own commands? → [FAQ](docs/FAQ.md#-why-aidd-instead-of-your-own-skills).
@@ -182,7 +182,7 @@ Three ways in — pick one:
| --- | --- | --- |
| 🧭 **Guided onboarding** | `/aidd-context:00-onboard` | First time, or unsure what to run — it inspects the project and routes you. |
| 🧠 **Project memory** | `/aidd-context:02-project-memory` | Build the project memory bank by hand. |
-| ⚙️ **Feature flow** | `/aidd-dev:00-sdlc` | Ship a feature end to end (plan → implement → review → PR). |
+| ⚙️ **Feature flow** | `/aidd-orchestrator:01-sdlc` | Autonomously ship a feature end to end (frame → deliver → check → PR). |
The full loop, and how onboarding sets it up:
@@ -228,9 +228,9 @@ Project init, memory bank, context-artifact generation, diagrams, learning, expl
### ⚙️ [aidd-dev](plugins/aidd-dev/README.md)
-`11 skills` · stable
+`10 skills` · stable
-SDLC loop: plan, implement, assert, audit, review, test, refactor, debug.
+Code transformation: plan, implement, assert, audit, review, test, refactor, debug.
@@ -266,9 +266,9 @@ Brainstorm, challenge, condense, shadow-areas, fact-check.
### 🎼 [aidd-orchestrator](plugins/aidd-orchestrator/README.md)
-`1 skill` · stable
+`2 skills` · stable
-Async dev: label an issue → get a PR.
+Synchronous feature flow and async issue-to-PR automation.
|
diff --git a/aidd_docs/README.md b/aidd_docs/README.md
index 130b053bb..9b3dea033 100644
--- a/aidd_docs/README.md
+++ b/aidd_docs/README.md
@@ -39,10 +39,10 @@ Skills are grouped into plugins by domain. Install only the plugins you need.
| ----------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| aidd-context | Bootstrap, project init, generation of context artifacts (skills, agents, rules, commands, hooks, plugins, marketplaces), mermaid diagrams, learn, discovery | `02-project-memory`, `03-context-generate`, `09-mermaid` |
| aidd-refine | Meta-cognition: brainstorm, challenge prior work, condensed communication mode | `01-brainstorm`, `02-challenge`, `03-condense` |
-| aidd-pm | Product management: ticket info, user stories, Product Briefs, PRD, spec, spikes | `01-ticket-info`, `02-user-stories`, `03-prd`, `04-spec`, `05-spike`, `06-product-brief` |
-| aidd-dev | Code transformation: Dev SDLC orchestrator, plan, implement, assert, audit, review, test, refactor, debug, for-sure | `00-sdlc`, `01-plan`, `02-implement`, `05-review`, `06-test` |
+| aidd-pm | Product management: ticket info, user stories, Product Briefs, PRD, spec, spikes | `01-ticket-info`, `02-user-stories`, `03-prd`, `04-spec`, `05-spike`, `06-product-brief` |
+| aidd-dev | Code transformation: plan, implement, assert, audit, review, test, refactor, debug, for-sure | `01-plan`, `02-implement`, `05-review`, `06-test` |
| aidd-vcs | VCS workflows: commit, pull/merge request, release tag, issue creation | `01-commit`, `02-pull-request`, `04-issue-create` |
-| aidd-orchestrator | Async orchestration of the SDLC on labeled issues (optional, extra) | `00-async-dev` (router with setup / run / review sub-flows) |
+| aidd-orchestrator | Synchronous SDLC orchestration and optional async issue-to-PR automation | `00-async-dev`, `01-sdlc` |
> See the [CATALOG](../docs/CATALOG.md) for the exhaustive list of skills and actions.
@@ -102,7 +102,8 @@ AIDD is delivered as a plugin marketplace. Pick what you need; do not install ev
| ------------ | ------------------------------------------------------------------------------------------------------------------- |
| aidd-context | 00-onboard, 01-bootstrap, 02-project-memory, 03-context-generate, 09-mermaid, 10-learn, 11-explore |
| aidd-refine | 01-brainstorm, 02-challenge, 03-condense, 04-shadow-areas, 05-fact-check |
-| aidd-dev | 00-sdlc, 01-plan, 02-implement, 03-assert, 04-audit, 05-review, 06-test, 07-refactor, 08-debug, 09-for-sure |
+| aidd-dev | 01-plan, 02-implement, 03-assert, 04-audit, 05-review, 06-test, 07-refactor, 08-debug, 09-for-sure, 10-todo |
+| aidd-orchestrator | 00-async-dev, 01-sdlc |
| aidd-vcs | 01-commit, 02-pull-request, 03-release-tag, 04-issue-create |
| aidd-pm | 01-ticket-info, 02-user-stories, 03-prd, 04-spec, 05-spike, 06-product-brief |
@@ -123,15 +124,13 @@ A typical change cycles through skills from several plugins. The order below is
9. **Ship**: `aidd-vcs:01-commit`, `aidd-vcs:02-pull-request`, then `aidd-vcs:03-release-tag` when the work is in production. File issues with `aidd-vcs:04-issue-create`.
10. **Refactor and maintain**: `aidd-dev:07-refactor` for performance or security, `aidd-dev:04-audit` for technical-debt sweeps, `aidd-dev:08-debug` to reproduce and fix bugs.
-When you want the whole synchronous pipeline run in one go (spec, plan, implementation, finalize), invoke `aidd-dev:00-sdlc`.
+When you want the whole synchronous pipeline run autonomously in one go (frame when needed, plan, implementation, validation, independent review, outcome challenge, finalize), invoke `aidd-orchestrator:01-sdlc`.
---
## Optional: Async Automation
-Beyond the synchronous path above, `aidd-orchestrator` runs the SDLC asynchronously on labeled issues (webhook or cron). This is extra: most projects do not need it. Use only when you want the AI to pick up `to-implement` issues without a human pressing a key.
-
-Inside the synchronous path, `aidd-dev:00-sdlc` is the Dev SDLC orchestrator that drives spec, plan, implementation, finalize in one go when you want the whole pipeline at once.
+Beyond the synchronous path above, `aidd-orchestrator:00-async-dev` runs the SDLC asynchronously on labeled issues (webhook or cron). This capability is optional. Use it only when you want the AI to pick up `to-implement` issues without a human pressing a key.
---
diff --git a/aidd_docs/memory/codebase-map.md b/aidd_docs/memory/codebase-map.md
index 7a289ec71..6d509d2d6 100644
--- a/aidd_docs/memory/codebase-map.md
+++ b/aidd_docs/memory/codebase-map.md
@@ -18,6 +18,7 @@ flowchart TD
AiddContext --> CtxSkills["skills/ (onboard, bootstrap, project-memory, context-generate, mermaid, learn, discovery)"]
AiddContext --> CtxHooks["hooks/update_memory.js"]
- AiddDev --> DevSkills["skills/ (00-sdlc, 01-plan, 02-implement, 03-assert, 04-audit, 05-review, 06-test, 07-refactor, 08-debug, 09-for-sure)"]
- AiddDev --> DevAgents["agents/ (planner, implementer, reviewer)"]
+ AiddDev --> DevSkills["skills/ (01-plan, 02-implement, 03-assert, 04-audit, 05-review, 06-test, 07-refactor, 08-debug, 09-for-sure, 10-todo)"]
+ AiddDev --> DevAgents["agents/ (executor, checker)"]
+ AiddOrchestrator --> OrchestratorSkills["skills/ (00-async-dev, 01-sdlc)"]
```
diff --git a/aidd_docs/tasks/2026_07/2026_07_25_sdlc-orchestration/review.md b/aidd_docs/tasks/2026_07/2026_07_25_sdlc-orchestration/review.md
new file mode 100644
index 000000000..6e51361ee
--- /dev/null
+++ b/aidd_docs/tasks/2026_07/2026_07_25_sdlc-orchestration/review.md
@@ -0,0 +1,62 @@
+# Review: SDLC orchestration migration
+
+- **Verdict**: approve
+- **Diff**: `origin/next...working-tree`
+- **Axes run**: code, functional, relevancy
+- **Date**: 2026_07_25
+- **Findings**: 0 critical, 0 warning, 0 minor
+
+## Phases
+
+### Phase 1 — Move orchestration
+
+- [x] Register `01-sdlc` in `aidd-orchestrator` — `plugins/aidd-orchestrator/.claude-plugin/plugin.json:10`
+- [x] Remove the former SDLC skill and its action tree from `aidd-dev` — `git diff --name-status origin/next`
+- [x] Attach the orchestrator skill branch to the declared plugin node in the codebase map — `aidd_docs/memory/codebase-map.md:23`
+
+### Phase 2 — Frame the contract
+
+- [x] Enter Frame with `$source` only and resolve a referenced ticket as part of that source — `plugins/aidd-orchestrator/skills/01-sdlc/references/01-frame.md:5`
+- [x] Send a planning-ready source directly to Deliver without mandatory framing work — `plugins/aidd-orchestrator/skills/01-sdlc/references/01-frame.md:36`
+- [x] Call canonical brainstorm and spec providers only for the missing behavior they own — `plugins/aidd-orchestrator/skills/01-sdlc/references/01-frame.md:37`
+
+### Phase 3 — Deliver the candidate
+
+- [x] Produce a proportional plan autonomously and delegate it to one `@aidd-dev:executor` — `plugins/aidd-dev/skills/01-plan/actions/04-plan.md:19`
+- [x] Let the executor own validation repair loops and invoke `/aidd-dev:08-debug` when the cause is unclear — `plugins/aidd-dev/agents/executor.md:16`
+- [x] Include architecture conformance through `/aidd-dev:03-assert` when architecture is documented — `plugins/aidd-orchestrator/skills/01-sdlc/references/02-deliver.md:5`
+- [x] Run the required E2E journey last and return a failure to the executor — `plugins/aidd-orchestrator/skills/01-sdlc/references/02-deliver.md:44`
+- [x] Commit and push validated work through `/aidd-vcs:01-commit` before Check — `plugins/aidd-orchestrator/skills/01-sdlc/references/02-deliver.md:7`
+
+### Phase 4 — Check independently
+
+- [x] Give one fresh checker the contract, plan, committed candidate, and validation reports — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:44`
+- [x] Run `/aidd-dev:05-review`, then `/aidd-refine:02-challenge` in the same independent context — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:48`
+- [x] Keep pride, confidence, and end-to-end satisfaction gates inside the challenge skill — `plugins/aidd-refine/skills/02-challenge/actions/01-challenge.md:18`
+- [x] Use product and contract findings as the next Frame source — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:54`
+- [x] Parallelize independent implementation findings through Todo and keep dependent repairs together — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:55`
+- [x] Re-enter Check after every repaired candidate and open the draft PR only without actionable findings — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:7`
+- [x] Declare every checker capability with its canonical slash address — `plugins/aidd-dev/agents/checker.md:44`
+
+### Phase 5 — Keep the protocol autonomous and readable
+
+- [x] Make autonomy the default and define the narrow conditions that still require user authority — `plugins/aidd-orchestrator/skills/01-sdlc/SKILL.md:10`
+- [x] Keep the top-level router to Frame, Deliver, and Check without representing the already-invoked SDLC as a node — `plugins/aidd-orchestrator/skills/01-sdlc/SKILL.md:36`
+- [x] State the expected behavior before each routing diagram — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:3`
+- [x] Keep all four diagrams top-down, grouped by stage, and visually distinguish skills, agents, artifacts, and zones — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:13`
+- [x] Keep orchestration protocols in references rather than restoring an executable action tree — `docs/ARCHITECTURE.md:144`
+- [x] Document orchestrator-authorized bounded Todo fan-out without permitting agent delegation chains — `docs/ARCHITECTURE.md:155`
+- [x] Resolve every canonical provider and agent address used by the SDLC protocol — `plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md:65`
+
+## Findings
+
+None.
+
+## Verification
+
+| Metric | Value |
+| ------------- | ----- |
+| Verified | 100% (24/24) |
+| Files checked | All 35 changed files in `origin/next...working-tree`; four SDLC Mermaid diagrams rendered; five flat distributions built |
+| Unchecked | none |
+| Unplanned | none |
diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md
index b355fc578..d44be187c 100644
--- a/docs/ARCHITECTURE.md
+++ b/docs/ARCHITECTURE.md
@@ -118,15 +118,15 @@ Three rules follow:
## 🔀 Skills are routers
-A skill's `SKILL.md` is a manifest plus an actions table. Claude Code loads the SKILL.md when the skill is invoked; the body decides which action(s) to run.
+A skill's `SKILL.md` is a manifest plus a router. Claude Code loads the SKILL.md when the skill is invoked; the body decides which local action or orchestration protocol to run.
```mermaid
---
title: skill router pattern
---
flowchart LR
- User["User: 'Use skill aidd-X:NN-name'"]
- Skill["SKILL.md (router)"]
+ User["User: '/skill-name'"]
+ Skill["/skill-name"]
Action1["actions/01-step.md"]
Action2["actions/02-step.md"]
ActionN["actions/NN-step.md"]
@@ -141,7 +141,7 @@ flowchart LR
ActionN --> Out
```
-Each action is a self-contained markdown file with inputs, outputs, depends-on, process steps, and a test checklist. Actions can call other skills via the `Skill` tool, so a skill discovers a capability it needs at runtime (by matching skill descriptions, never by hardcoded plugin name) and delegates to it.
+Recipe skills route to self-contained actions with inputs, outputs, process steps, and tests. An orchestrator with no domain logic may instead route through numbered reference protocols that define handoffs and delegate the work to capabilities discovered at runtime.
## 🤖 Skills and agents
@@ -152,16 +152,16 @@ Choose by context, not complexity: keep the work visible to the caller → skill
Composition rules:
-- **Spawning is an orchestration decision, never a skill's.** A recipe skill never spawns an agent; it runs in the caller's context. Only a high-level orchestrator skill (for example the SDLC) spawns agents, and it decides per step whether to isolate the work in an agent or run the recipe inline.
-- An orchestrator spawns each step as a leaf agent that runs a recipe, or runs the recipe itself when the step needs no isolation. The SDLC owns planning (runs `01-plan` in its own context) and spawns two workers: `executor` (runs `02-implement`) and `checker` (runs `05-review`). The agent is the isolation; the recipe inside it never spawns again.
-- An agent invokes only the recipe skills it declares under `# Skills you may invoke`, never an orchestrator skill, and never reads a skill's files. It names a same-plugin skill by its `plugin:folder` address (deterministic); it names a cross-plugin skill by capability, per cross-plugin orthogonality.
+- **Spawning is authorized by the high-level orchestrator, never invented by a recipe skill.** A recipe skill normally runs in the caller's context. A bounded fan-out capability may mechanically spawn leaf agents only when the orchestrator explicitly delegates that responsibility and retains routing ownership.
+- An orchestrator spawns each isolated step as a leaf agent that runs a recipe, or runs the recipe itself when isolation is unnecessary. The SDLC owns planning, delegates delivery to `executor`, and delegates independent judgments to a fresh `checker`. For independent repair findings, it may explicitly delegate bounded fan-out to `10-todo`; Todo's leaf executors return their results to the SDLC. A recipe invoked inside an agent never spawns again.
+- An agent invokes only the recipe skills it declares under `# Skills you may invoke`, never an orchestrator skill, and never reads a skill's files. It names every skill by its canonical `/plugin:folder` address so its permissions are explicit and auditable.
- An agent never delegates flow work to another agent and never invokes an orchestrator skill. It may spawn a read-only recon helper (for example `Explore`) that mutates nothing and spawns nothing. So the write path stays two layers deep and delegation can never cycle.
## 🔗 Cross-plugin orthogonality
-Plugins never reference each other by name — **orchestrators included**. When skill A needs a capability skill B owns, it discovers a candidate at runtime through description matching, never a hardcoded `aidd-:…` address. This keeps the marketplace forkable, the plugins swappable, and the docs maintainable.
+Recipe skills never hardcode a sibling provider. They discover cross-plugin capabilities at runtime through description matching. Agent permission lists and orchestration references are responsibility maps, so they name the current provider with its canonical `/plugin:folder` or `@plugin:agent` address. The orchestrator must verify that provider is installed before calling it.
-The rule is social (PR template checklist), not yet mechanically enforced — a lefthook grep for cross-plugin literals would catch violations (an orchestrator hardcoding a sibling skill name still slips through today).
+This distinction keeps recipe plugins swappable while making orchestration handoffs explicit and auditable.
## 🔎 See also
diff --git a/docs/CATALOG.md b/docs/CATALOG.md
index 9ed5e4ccc..73d8d080d 100644
--- a/docs/CATALOG.md
+++ b/docs/CATALOG.md
@@ -34,11 +34,10 @@ Bootstrap, project init, context-artifact generation, diagrams, learning, and ex
## 💻 aidd-dev
-The development SDLC: plan, implement, assert, audit, review, test, refactor, debug, for-sure, todo.
+Code transformation: plan, implement, assert, audit, review, test, refactor, debug, for-sure, todo.
| Skill | Role | Actions |
| --------------- | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
-| `00-sdlc` | Pure orchestrator driving the full dev flow end to end | `01-spec`, `02-plan`, `03-implement`, `04-review`, `05-ship` |
| `01-plan` | Turn a request, ticket, or file into a phased implementation plan: gather, explore, wireframe, plan | `01-gather`, `02-explore`, `03-wireframe`, `04-plan` |
| `02-implement` | Execute a plan phase by phase until 100% complete | `01-implement` |
| `03-assert` | Assert features work - general, architecture, frontend UI | `01-assert`, `02-assert-architecture`, `03-assert-frontend` |
@@ -89,11 +88,12 @@ Version-control workflows: repo init, commit, pull/merge request, release tag, i
## 🎼 aidd-orchestrator
-Optional. Runs the SDLC asynchronously on labeled issues (webhook or cron). Most projects do not need it.
+Runs synchronous feature delivery and optional async issue automation.
-| Skill | Role | Sub-flows |
-| ---------------- | ----------------------------------------------------- | ------------------------- |
-| `00-async-dev` | Single entry point for the async-dev pipeline | `setup`, `run`, `review` |
+| Skill | Role | Protocols |
+| ---------------- | ----------------------------------------------------- | ------------------------ |
+| `00-async-dev` | Single entry point for the async-dev pipeline | `setup`, `run`, `review` |
+| `01-sdlc` | Autonomously drive the full development flow end to end | `frame`, `deliver`, `check` |
## 🎨 aidd-ui
diff --git a/plugins/aidd-context/skills/00-onboard/references/flow.md b/plugins/aidd-context/skills/00-onboard/references/flow.md
index c8dac4c07..88a9eb697 100644
--- a/plugins/aidd-context/skills/00-onboard/references/flow.md
+++ b/plugins/aidd-context/skills/00-onboard/references/flow.md
@@ -24,4 +24,4 @@
## Run it
-`[1]` walk with me, step by step · `[2]` hand the whole flow to `aidd-dev:00-sdlc`
+`[1]` walk with me, step by step · `[2]` hand the whole flow to `aidd-orchestrator:01-sdlc`
diff --git a/plugins/aidd-context/skills/00-onboard/references/order/idle-menu.md b/plugins/aidd-context/skills/00-onboard/references/order/idle-menu.md
index 1601a00e3..3358ed8ad 100644
--- a/plugins/aidd-context/skills/00-onboard/references/order/idle-menu.md
+++ b/plugins/aidd-context/skills/00-onboard/references/order/idle-menu.md
@@ -4,7 +4,7 @@ When ranks 1-3 are clear, the idle menu offers four choices.
| Slot | Choice | Opens (installed members) |
| ---- | ------------------- | -------------------------------------------------------------------- |
-| 1 | start new work | `aidd-dev:00-sdlc`, or `aidd-refine:01-brainstorm` for a fuzzy idea |
+| 1 | start new work | `aidd-orchestrator:01-sdlc`, or `aidd-refine:01-brainstorm` for a fuzzy idea |
| 2 | improve the project | `aidd-dev:` `04-audit` · `06-test` · `07-refactor` |
| 3 | customize the AI | the **missing** `aidd-context:` generators: rule `05-rule-generate`, workflow `04-skill-generate`, agent `06-agent-generate`, command `07-command-generate`, hook `08-hook-generate` |
| 4 | explore | `aidd-context:11-explore` + anything not in 1-3 |
diff --git a/plugins/aidd-context/skills/00-onboard/references/run/tiers.md b/plugins/aidd-context/skills/00-onboard/references/run/tiers.md
index 94ce4345d..da28cedf2 100644
--- a/plugins/aidd-context/skills/00-onboard/references/run/tiers.md
+++ b/plugins/aidd-context/skills/00-onboard/references/run/tiers.md
@@ -8,5 +8,6 @@ The tier is a default, overridable.
| GUIDED | (it will ask you a few questions) | launch, hand to the user, resume on return (see `return.md`) |
| MANUAL | (you run this one yourself) | show the command, run nothing, leave it for the user |
-- A dual-mode skill (interactive by default, unattended on request, e.g. `aidd-dev:00-sdlc`) runs the other way when the user asks and the skill supports it.
+- A dual-mode skill runs the other way when the user asks and the skill supports it.
+- `aidd-orchestrator:01-sdlc` is autonomous by contract; do not downgrade it to `GUIDED`.
- On the `OK` walk, state up front how many steps it covers and which need input.
diff --git a/plugins/aidd-context/skills/12-cook/assets/recipes/ship-a-feature.md b/plugins/aidd-context/skills/12-cook/assets/recipes/ship-a-feature.md
index de5a4f7b5..e07f7c513 100644
--- a/plugins/aidd-context/skills/12-cook/assets/recipes/ship-a-feature.md
+++ b/plugins/aidd-context/skills/12-cook/assets/recipes/ship-a-feature.md
@@ -70,7 +70,7 @@ The pull-request step opens the PR.
/aidd-vcs:02-pull-request
```
-> One command for the whole loop: `/aidd-dev:00-sdlc` runs plan → implement → review → ship.
+> One command for the whole loop: `/aidd-orchestrator:01-sdlc` runs frame when needed → plan → implement → validate → review → challenge → ship.
## Verify
diff --git a/plugins/aidd-context/skills/12-cook/assets/recipes/start-a-project.md b/plugins/aidd-context/skills/12-cook/assets/recipes/start-a-project.md
index f9f029064..b2710395a 100644
--- a/plugins/aidd-context/skills/12-cook/assets/recipes/start-a-project.md
+++ b/plugins/aidd-context/skills/12-cook/assets/recipes/start-a-project.md
@@ -59,7 +59,7 @@ The feature recipe takes the project through the per-feature loop.
1. Follow [Ship a feature](ship-a-feature.md).
```text
-/aidd-dev:00-sdlc
+/aidd-orchestrator:01-sdlc
```
## Verify
diff --git a/plugins/aidd-dev/.claude-plugin/plugin.json b/plugins/aidd-dev/.claude-plugin/plugin.json
index ae392460a..65986834a 100644
--- a/plugins/aidd-dev/.claude-plugin/plugin.json
+++ b/plugins/aidd-dev/.claude-plugin/plugin.json
@@ -2,13 +2,12 @@
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "aidd-dev",
"version": "2.3.1",
- "description": "Code transformation: Dev SDLC orchestrator (code-shipping pipeline), plan, assert, audit, review, test, refactor, debug, for-sure. Hosts engineering agents.",
+ "description": "Code transformation: plan, implement, assert, audit, review, test, refactor, debug, for-sure. Hosts engineering agents.",
"author": {
"name": "AI-Driven Dev",
"url": "https://github.com/ai-driven-dev"
},
"skills": [
- "./skills/00-sdlc",
"./skills/01-plan",
"./skills/02-implement",
"./skills/03-assert",
diff --git a/plugins/aidd-dev/CATALOG.md b/plugins/aidd-dev/CATALOG.md
index 399feb29a..0251fa754 100644
--- a/plugins/aidd-dev/CATALOG.md
+++ b/plugins/aidd-dev/CATALOG.md
@@ -9,7 +9,6 @@ Auto-generated index of skills, agents, references and assets shipped by the `ai
- [`.claude-plugin`](#claude-plugin)
- [`agents`](#agents)
- [`skills`](#skills)
- - [`skills/00-sdlc`](#skills00-sdlc)
- [`skills/01-plan`](#skills01-plan)
- [`skills/02-implement`](#skills02-implement)
- [`skills/03-assert`](#skills03-assert)
@@ -38,17 +37,6 @@ Auto-generated index of skills, agents, references and assets shipped by the `ai
### `skills`
-#### `skills/00-sdlc`
-
-| Group | File | Description |
-|-------|------|---|
-| `actions` | [01-spec.md](skills/00-sdlc/actions/01-spec.md) | - |
-| `actions` | [02-plan.md](skills/00-sdlc/actions/02-plan.md) | - |
-| `actions` | [03-implement.md](skills/00-sdlc/actions/03-implement.md) | - |
-| `actions` | [04-review.md](skills/00-sdlc/actions/04-review.md) | - |
-| `actions` | [05-ship.md](skills/00-sdlc/actions/05-ship.md) | - |
-| `-` | [SKILL.md](skills/00-sdlc/SKILL.md) | `Orchestrate the full dev flow, a free-form request to shipped code, every step delegated. Use to take a request end to end, not a single step. Interactive by default; say auto for unattended.` |
-
#### `skills/01-plan`
| Group | File | Description |
diff --git a/plugins/aidd-dev/README.md b/plugins/aidd-dev/README.md
index c214a1cc0..9ed4d3d75 100644
--- a/plugins/aidd-dev/README.md
+++ b/plugins/aidd-dev/README.md
@@ -6,15 +6,14 @@ Code transformation plugin for the AI-Driven Development framework.
> Status: stable.
-First time? Install with `/plugin install aidd-dev@aidd-framework`, then run `aidd-dev:00-sdlc`.
+First time? Install with `/plugin install aidd-dev@aidd-framework`, then run `aidd-dev:01-plan`.
-Covers the full SDLC coding loop: orchestrator, planning, implementation, assertions, audits, code review, testing, refactoring, debugging, for-sure, and parallel todo fan-out. Also hosts AI agents.
+Covers code transformation: planning, implementation, assertions, audits, code review, testing, refactoring, debugging, for-sure, and parallel todo fan-out. Also hosts AI agents.
## Skills
| Bracket ID | Skill | Description |
|---|---|---|
-| [2.0] | [sdlc](skills/00-sdlc/SKILL.md) | Dev SDLC orchestrator (code-shipping pipeline): spec, plan, implement, test, review, commit, PR. |
| [2.1] | [plan](skills/01-plan/SKILL.md) | Turn a request, ticket, or file into a phased implementation plan, gathering the source first and optionally wireframing a screen before planning. |
| [2.2] | [implement](skills/02-implement/SKILL.md) | Execute an implementation plan phase by phase, recipe-style, iterating until 100% completeness. |
| [2.3] | [assert](skills/03-assert/SKILL.md) | Assert features work as intended - general assertions, architecture conformance, and frontend UI validation. |
diff --git a/plugins/aidd-dev/agents/checker.md b/plugins/aidd-dev/agents/checker.md
index cd71e924a..6f0752098 100644
--- a/plugins/aidd-dev/agents/checker.md
+++ b/plugins/aidd-dev/agents/checker.md
@@ -41,5 +41,6 @@ This is the behavioral baseline. Apply it to every code or diff, and extend it w
# Skills you may invoke
-- `aidd-dev:05-review`
-- `aidd-dev:04-audit`
+- `/aidd-dev:05-review`
+- `/aidd-dev:04-audit`
+- `/aidd-refine:02-challenge`
diff --git a/plugins/aidd-dev/agents/executor.md b/plugins/aidd-dev/agents/executor.md
index d9f3ad86b..e2af667ce 100644
--- a/plugins/aidd-dev/agents/executor.md
+++ b/plugins/aidd-dev/agents/executor.md
@@ -13,6 +13,7 @@ You are the executor. Your job is to turn a dispatched task into working, valida
- Honour the project's own conventions where it defines them, and match the code around you. Where it stays silent, follow the prevailing idiom.
- Internalize the acceptance criteria before writing anything. If the scope is ambiguous, surface it instead of guessing.
- Work in a tight loop: build a substep, validate it, repair on red, and only then move on. Validation passing is the gate, never your own say-so.
+- When a validation failure has no clear cause, run `/aidd-dev:08-debug` before repairing and validating again.
- Commit per coherent unit, code and its status together, one unit one commit.
- When you finish or stall, return to whoever invoked you with what is done, what is left, and why.
@@ -26,8 +27,8 @@ You are the executor. Your job is to turn a dispatched task into working, valida
# Skills you may invoke
-- `aidd-dev:02-implement`
-- `aidd-dev:03-assert`
-- `aidd-dev:06-test`
-- `aidd-dev:08-debug`
-- `commit` (cross-plugin, by capability)
+- `/aidd-dev:02-implement`
+- `/aidd-dev:03-assert`
+- `/aidd-dev:06-test`
+- `/aidd-dev:08-debug`
+- `/aidd-vcs:01-commit`
diff --git a/plugins/aidd-dev/skills/00-sdlc/SKILL.md b/plugins/aidd-dev/skills/00-sdlc/SKILL.md
deleted file mode 100644
index 62f1f5740..000000000
--- a/plugins/aidd-dev/skills/00-sdlc/SKILL.md
+++ /dev/null
@@ -1,31 +0,0 @@
----
-name: 00-sdlc
-description: Orchestrate the full dev flow, a free-form request to shipped code, every step delegated. Use to take a request end to end, not a single step. Interactive by default; say auto for unattended.
-argument-hint: spec | plan | implement | review | ship
----
-
-# Skill: sdlc
-
-Take a request from idea to shipped code, delegating every step. Interactive by default, autonomous when you say `auto`.
-
-## Actions
-
-| # | Action | Role | Delegate |
-| --- | ----------- | ------------------------------------- | --------------------------------------- |
-| 01 | `spec` | Consolidate sources into the contract | a spec capability |
-| 02 | `plan` | Produce the plan file | self, via `aidd-dev:01-plan` |
-| 03 | `implement` | Build the plan's code, gating on the assertions | `executor`, via `aidd-dev:02-implement` |
-| 04 | `review` | Verdict `ship` or `iterate` | `checker`, via `aidd-dev:05-review` |
-| 05 | `ship` | Open the change request | a commit and change-request capability |
-
-Run `01 → 02 → 03 → 04 → 05`. On `04 = iterate`, loop to `03` then re-run `04`.
-Before running an action, read its file in `actions/`, not only the table or assets.
-
-## Transversal rules
-
-- Delegate every step; never write or judge code yourself.
-- Mode: default `interactive`, pausing for approval at each step; switch to `auto` only when the caller says so, then decide alone and never ask.
-- Every step runs; only `01-spec` self-skips when the source already states an objective and acceptance criteria.
-- Drive the plan status `pending → in-progress → implemented → reviewed`, or `blocked`.
-- Every artifact (spec, plan, phases, review) lands in one feature folder, `aidd_docs/tasks//_/`, resolved at entry.
-- Never auto-branch; the caller sets a non-default branch before shipping.
diff --git a/plugins/aidd-dev/skills/00-sdlc/actions/01-spec.md b/plugins/aidd-dev/skills/00-sdlc/actions/01-spec.md
deleted file mode 100644
index 0abcbcf42..000000000
--- a/plugins/aidd-dev/skills/00-sdlc/actions/01-spec.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# 01 - Spec
-
-Consolidate every available source into the normalized contract consumed downstream.
-
-**Skip condition:** when the source ticket already carries an explicit objective and at least one acceptance criterion, set `spec_status = skipped`, surface them verbatim, and jump to `02`.
-
-## Input
-
-The raw arguments (free-form text or a ticket URL), any available sources (ticket body, existing PRD, in-session conversation, prior checker findings), and the repo root.
-
-## Output
-
-The spec path on disk with its status (`drafted`, `refined`, or `skipped`), the one-sentence objective, and the acceptance criteria. The path is null when skipped.
-
-## Process
-
-1. **Collect.** Resolve every non-empty source: fetch ticket bodies, read PRD files, snapshot checker findings, capture conversation turns. Concatenate them into one brief.
-2. **Skip.** Apply the skip condition above. If it holds, return the extracted objective and criteria.
-3. **Delegate.** Hand the consolidated brief and the repo root to a spec capability, discovered at runtime by description. Let it own contract generation and refinement.
-4. **Return.** Surface the spec path, status, objective, and acceptance criteria.
-
-## Test
-
-- When the status is `drafted` or `refined`, the spec file exists and its frontmatter carries the same objective and non-empty acceptance criteria this action returns.
-- When `skipped`, the path is null and both fields are taken verbatim from the source ticket.
diff --git a/plugins/aidd-dev/skills/00-sdlc/actions/02-plan.md b/plugins/aidd-dev/skills/00-sdlc/actions/02-plan.md
deleted file mode 100644
index 4e170e54e..000000000
--- a/plugins/aidd-dev/skills/00-sdlc/actions/02-plan.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# 02 - Plan
-
-Turn the spec, or the raw request when spec was skipped, into a validated plan file. Mandatory.
-
-## Input
-
-The spec path from `01` (null when skipped), the objective and acceptance criteria from `01`, the raw arguments (needed when there is no spec), and the repo root.
-
-## Output
-
-The plan path and its phase paths, plus the decisions you made and any you could not make alone.
-
-## Process
-
-1. **Author.** Run `aidd-dev:01-plan` end to end in your own context. You own the plan: it is the contract the executor may not rewrite, so you write it, never a worker. Never inline a raw ticket or spec as the plan body.
-2. **Capture.** Read the plan path, the phase paths, and the decisions the plan records.
-3. **Return.** Surface them for the next step.
-
-## Test
-
-- The plan file exists, its frontmatter carries `objective` and `status: pending`, and the plan's objective matches the spec's (or the request when spec was skipped).
diff --git a/plugins/aidd-dev/skills/00-sdlc/actions/03-implement.md b/plugins/aidd-dev/skills/00-sdlc/actions/03-implement.md
deleted file mode 100644
index bb37df2bc..000000000
--- a/plugins/aidd-dev/skills/00-sdlc/actions/03-implement.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# 03 - Implement
-
-Build the plan's code by spawning the `executor` agent to run the `aidd-dev:02-implement` recipe, which loops the phases, drives status, and validates. Mandatory.
-
-## Input
-
-The plan path from `02` (required), and on an `iterate` loop-back the review findings to hand over as a fix list (optional).
-
-## Output
-
-The plan reaches `status: implemented`, every phase `done`, validation green. Or it stops at `status: blocked` when a human is needed.
-
-## Process
-
-1. **Implement.** Spawn the `executor` agent and brief it to run the `aidd-dev:02-implement` recipe on `plan_path`. The agent branches, codes every phase, commits the code and the status transitions, and validates.
-2. **Iterate.** After an `iterate` verdict, spawn `executor` again with the findings as a fix list. It codes them against the current diff, then asserts and validates, gating like a phase: done only when it passes. Never edit the plan; the loop fixes the diff, not the plan.
-3. **Resolve.** Read the plan's final `status`.
- - `implemented`: the step is done.
- - `blocked`: a human-only condition stopped the run. Do not continue. Escalate to a human.
-
-## Test
-
-- The plan `status` is `implemented`, or `blocked` when a human-only condition stopped it.
-- Every phase reads `status: done`.
-- The validation commands return exit code 0.
diff --git a/plugins/aidd-dev/skills/00-sdlc/actions/04-review.md b/plugins/aidd-dev/skills/00-sdlc/actions/04-review.md
deleted file mode 100644
index ec01fd66b..000000000
--- a/plugins/aidd-dev/skills/00-sdlc/actions/04-review.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 04 - Review
-
-Judge the completed work against an explicit validator and emit a ship-or-iterate verdict.
-
-## Input
-
-The working diff or paths produced by `03`, the validator (the plan path and acceptance criteria), and any related context the checker needs.
-
-## Output
-
-A `ship` or `iterate` verdict with the reviewed items, findings, completion and quality scores, and the reviewed `HEAD` SHA (the commit the checker saw), from `05-review`. The plan reaches `status: reviewed` on ship, and stays `implemented` on iterate.
-
-## Process
-
-1. **Capture.** Record the current `HEAD` sha as the reviewed SHA. This is the exact code the checker judges, and the anchor `05-ship` checks against.
-2. **Spawn.** Spawn the `checker` agent with the inputs above. Brief it to run `aidd-dev:05-review` on that diff, let that skill write and own its report, and return the verdict and findings.
-3. **Map.** When every check passes, the verdict is `ship`. On any blocking finding, the verdict is `iterate`.
-4. **Mark.** On `ship`, set the plan frontmatter `status: reviewed` and commit it. Carry the reviewed SHA in the verdict. On `iterate`, leave the plan `implemented`: the loop fixes the diff, not the plan.
-5. **Iterate.** On `iterate`, return the findings as the fix list for `03`. The next `04` re-captures the SHA on the fixed diff; ship is reached only when a review of the current diff passes.
-
-## Test
-
-- The verdict is `ship` or `iterate`, and the scores are integers between 0 and 100.
-- The verdict carries the reviewed `HEAD` SHA.
-- The findings are non-empty on `iterate`.
-- The plan frontmatter reads `status: reviewed` only after a `ship` verdict on the current diff.
diff --git a/plugins/aidd-dev/skills/00-sdlc/actions/05-ship.md b/plugins/aidd-dev/skills/00-sdlc/actions/05-ship.md
deleted file mode 100644
index 27727fc46..000000000
--- a/plugins/aidd-dev/skills/00-sdlc/actions/05-ship.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# 05 - Ship
-
-Commit and open a change request (pull or merge request) via the project's VCS once the review verdict is `ship`.
-
-## Input
-
-The `ship` verdict from `04` including its reviewed `HEAD` SHA, the plan path from `02`, and the phase results from `03` that drive the commit and the change-request body.
-
-## Output
-
-The commit SHA and the change-request URL on the project's VCS host.
-
-## Process
-
-1. **Gate.** Confirm `04` returned a `ship` verdict and HEAD is on a non-default branch. Without a `ship` verdict, or on `iterate`, stop and re-run `04` (looping to `03` on `iterate`). On the default branch, stop with `contract_violation: on_default_branch` and commit nothing.
-2. **Freshness.** Confirm no code landed after the reviewed SHA: `git diff --name-only HEAD` must list only plan-tracking files. Any source change means the review is stale, so stop and re-run `04`. Never ship unreviewed code.
-3. **Commit.** Invoke a commit capability, discovered at runtime, with the plan's objective. It picks the message format; never dictate one here.
-4. **Open.** Invoke a change-request capability, discovered at runtime, to push the branch and open the request. Reference the plan path in the body.
-5. **Return.** Surface the commit SHA and the change-request URL.
-
-## Test
-
-- `git diff --name-only HEAD` lists only plan-tracking files: no source change shipped unreviewed.
-- The commit SHA exists in `git log` of the working branch.
-- The change-request URL is non-empty and points to the project's VCS host.
-- The change-request body references the plan path.
-- On the default branch, the action stops with `contract_violation: on_default_branch` and makes no commit.
diff --git a/plugins/aidd-dev/skills/01-plan/actions/04-plan.md b/plugins/aidd-dev/skills/01-plan/actions/04-plan.md
index 627681e32..c50c54010 100644
--- a/plugins/aidd-dev/skills/01-plan/actions/04-plan.md
+++ b/plugins/aidd-dev/skills/01-plan/actions/04-plan.md
@@ -1,6 +1,6 @@
# 04 - Plan
-Turn the explored source into a plan and its phases, save them, then review the whole until approved. Never code.
+Turn the explored source into a plan and its phases, save them, then review the whole before handoff. Never code.
## Input
@@ -16,7 +16,7 @@ A feature folder, always at `aidd_docs/tasks//_/_ Status: stable for use case `async-dev`; other use cases on the roadmap are experimental.
+> Status: stable for synchronous SDLC and `async-dev`.
-First time? Install with `/plugin install aidd-orchestrator@aidd-framework`, then run `aidd-orchestrator:00-async-dev` with `action=setup` (or just describe what you want; the router decides). New to the framework? See the [quick start](../../README.md#-quick-start).
+First time? Install with `/plugin install aidd-orchestrator@aidd-framework`, then run `aidd-orchestrator:01-sdlc`. For async automation, run `aidd-orchestrator:00-async-dev` with `action=setup`. New to the framework? See the [quick start](../../README.md#-quick-start).
Composes capabilities into deterministic, auditable flows. Each skill is one orchestration brick; several use cases coexist inside the same plugin.
## Skills
+### Use case: `sdlc`
+
+| Bracket ID | Skill | Description |
+|------------|-------|-------------|
+| [6.1] | [sdlc](skills/01-sdlc/SKILL.md) | Autonomous orchestration through framing, delivery, independent review, outcome challenge, and PR creation. |
+
### Use case: `async-dev`
| Bracket ID | Skill | Description |
diff --git a/plugins/aidd-orchestrator/skills/00-async-dev/SKILL.md b/plugins/aidd-orchestrator/skills/00-async-dev/SKILL.md
index 8798ee07d..75b6ffe82 100644
--- a/plugins/aidd-orchestrator/skills/00-async-dev/SKILL.md
+++ b/plugins/aidd-orchestrator/skills/00-async-dev/SKILL.md
@@ -78,7 +78,7 @@ Executes one orchestration cycle on a fresh issue. Reads ready issues, resolves
| 01 | `poll-ready` | Find the next issue with `to-implement`, no `claude/working`, no open closing PR |
| 02 | `resolve-deps` | Check linked issues / dependencies; abort if blocked |
| 03 | `acquire-lock` | Apply `claude/working` label; refuse if already held |
-| 04 | `check-sdlc` | Verify an SDLC orchestrator is loaded (`aidd-dev:00-sdlc` or equivalent) |
+| 04 | `check-sdlc` | Verify an SDLC orchestration capability is loaded |
| 05 | `delegate-sdlc` | Hand the issue to the SDLC capability; observe outcome |
| 06 | `write-audit` | Emit `run-result.json` for the workflow's post-job |
diff --git a/plugins/aidd-orchestrator/skills/01-sdlc/SKILL.md b/plugins/aidd-orchestrator/skills/01-sdlc/SKILL.md
new file mode 100644
index 000000000..5f61fa2f6
--- /dev/null
+++ b/plugins/aidd-orchestrator/skills/01-sdlc/SKILL.md
@@ -0,0 +1,54 @@
+---
+name: 01-sdlc
+description: Autonomously orchestrates a request from framing to a draft pull request, isolating implementation, independent review, and final outcome challenge. Use when the user wants to deliver a change end to end. Not for running one development step.
+---
+
+# Skill: sdlc
+
+## Behavior
+
+Operate autonomously from the request to a draft pull request: decide and act without confirmation, asking only before spending money, taking an irreversible action, or making a decision that requires user authority. Read only the current zone reference. Verify that every named provider is installed before calling it.
+
+Spawn specialized agents for isolated work. Parallelize independent work when it is faster. Give each agent one focused task that a smaller model can execute. Repeat the responsible zone when delegated work returns an actionable gap.
+
+```mermaid
+---
+title: SDLC orchestration
+---
+flowchart TD
+ subgraph FrameStage["01 Frame"]
+ direction TB
+ Request["$request"]
+ Frame["01 Frame"]
+ end
+
+ subgraph DeliverStage["02 Deliver"]
+ direction TB
+ Deliver["02 Deliver"]
+ end
+
+ subgraph CheckStage["03 Check"]
+ direction TB
+ Check["03 Check"]
+ PullRequest["$pull_request"]
+ end
+
+ Request --> Frame
+ Frame --> Deliver
+ Deliver --> Check
+ Check --> PullRequest
+
+ classDef artifact fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:2px
+ classDef zone fill:#F1F5F9,stroke:#64748B,color:#0F172A,stroke-width:2px
+
+ class Request,PullRequest artifact
+ class Frame,Deliver,Check zone
+```
+
+## References
+
+| # | Reference |
+| --- | --------------------------------------- |
+| 01 | [Frame](references/01-frame.md) |
+| 02 | [Deliver](references/02-deliver.md) |
+| 03 | [Check](references/03-check.md) |
diff --git a/plugins/aidd-orchestrator/skills/01-sdlc/references/01-frame.md b/plugins/aidd-orchestrator/skills/01-sdlc/references/01-frame.md
new file mode 100644
index 000000000..d931c466a
--- /dev/null
+++ b/plugins/aidd-orchestrator/skills/01-sdlc/references/01-frame.md
@@ -0,0 +1,48 @@
+# 01 - Frame
+
+## Behavior
+
+Start from `$source` only. Resolve a ticket when the source references one. Use the source directly when it is planning-ready. Otherwise clarify only the intent that can change what is built, then formalize the missing contract requirements. Hand the resulting contract to Deliver.
+
+```mermaid
+---
+title: Frame the delivery contract
+---
+flowchart TD
+ subgraph SourceStage["Resolve the source"]
+ direction TB
+ Source["$source"]
+ Ticket["/aidd-pm:01-ticket-info"]
+ ResolvedSource["$resolved_source"]
+ end
+
+ subgraph FrameStage["Frame the contract when needed"]
+ direction TB
+ Brainstorm["/aidd-refine:01-brainstorm"]
+ Spec["/aidd-pm:04-spec"]
+ end
+
+ subgraph HandoffStage["Hand off the contract"]
+ direction TB
+ Contract["$contract"]
+ Deliver["02 Deliver"]
+ end
+
+ Source -- "When the source references a ticket, resolve it." --> Ticket
+ Source -- "Otherwise, use the source as provided." --> ResolvedSource
+ Ticket --> ResolvedSource
+ ResolvedSource -- "When it is planning-ready, continue directly." --> Contract
+ ResolvedSource -- "When intent can change what is built, clarify it." --> Brainstorm
+ ResolvedSource -- "When only contract requirements are missing, formalize them." --> Spec
+ Brainstorm --> Spec
+ Spec --> Contract
+ Contract --> Deliver
+
+ classDef skill fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:2px
+ classDef artifact fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:2px
+ classDef zone fill:#F1F5F9,stroke:#64748B,color:#0F172A,stroke-width:2px
+
+ class Ticket,Brainstorm,Spec skill
+ class Source,ResolvedSource,Contract artifact
+ class Deliver zone
+```
diff --git a/plugins/aidd-orchestrator/skills/01-sdlc/references/02-deliver.md b/plugins/aidd-orchestrator/skills/01-sdlc/references/02-deliver.md
new file mode 100644
index 000000000..c2b1a817c
--- /dev/null
+++ b/plugins/aidd-orchestrator/skills/01-sdlc/references/02-deliver.md
@@ -0,0 +1,57 @@
+# 02 - Deliver
+
+## Behavior
+
+Turn the contract into a proportional plan, then give one executor the plan. The executor implements it and calls the validation skills, which own their checks and repair loops. Include architecture conformance whenever the project documents architecture. Run a required end-to-end journey after every other validation.
+
+Commit and push the validated work through the commit skill. Send only the clean committed candidate to Check.
+
+```mermaid
+---
+title: Deliver the candidate
+---
+flowchart TD
+ subgraph PlanStage["Plan the delivery"]
+ direction TB
+ Contract["$contract"]
+ Plan["/aidd-dev:01-plan"]
+ PlanArtifact["$plan"]
+ end
+
+ subgraph ExecuteStage["Execute and validate the plan"]
+ direction TB
+ Executor(["@aidd-dev:executor"])
+ Implement["/aidd-dev:02-implement"]
+ Assert["/aidd-dev:03-assert"]
+ Test["/aidd-dev:06-test"]
+ Commit["/aidd-vcs:01-commit"]
+ end
+
+ subgraph HandoffStage["Hand off the candidate"]
+ direction TB
+ CommittedCandidate["$committed_candidate"]
+ Check["03 Check"]
+ end
+
+ Contract --> Plan
+ Plan --> PlanArtifact
+ PlanArtifact --> Executor
+ Executor --> Implement
+ Implement --> Assert
+ Assert -- "When no end-to-end journey is required, commit the result." --> Commit
+ Assert -- "When an end-to-end journey is required, run it last." --> Test
+ Test -- "After the journey succeeds, commit the result." --> Commit
+ Test -- "Return a failed journey for repair." --> Executor
+ Commit --> CommittedCandidate
+ CommittedCandidate --> Check
+
+ classDef skill fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:2px
+ classDef agent fill:#F3E8FF,stroke:#9333EA,color:#581C87,stroke-width:2px
+ classDef artifact fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:2px
+ classDef zone fill:#F1F5F9,stroke:#64748B,color:#0F172A,stroke-width:2px
+
+ class Plan,Implement,Assert,Test,Commit skill
+ class Executor agent
+ class Contract,PlanArtifact,CommittedCandidate artifact
+ class Check zone
+```
diff --git a/plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md b/plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md
new file mode 100644
index 000000000..c871e419f
--- /dev/null
+++ b/plugins/aidd-orchestrator/skills/01-sdlc/references/03-check.md
@@ -0,0 +1,67 @@
+# 03 - Check
+
+## Behavior
+
+Use one fresh checker, independent from implementation, to review the candidate against the contract, plan, and validation evidence. After the review clears, the same checker challenges whether the real outcome is trustworthy and serves the user.
+
+Use product or contract findings as the next Frame source. Dispatch independent implementation findings through Todo and keep dependent repairs together in Deliver. Re-enter Check after every new candidate. Open the draft pull request when the checker returns no actionable finding.
+
+```mermaid
+---
+title: Check and challenge independently
+---
+flowchart TD
+ subgraph ReviewStage["Review independently"]
+ direction TB
+ Contract["$contract"]
+ Plan["$plan"]
+ CommittedCandidate["$committed_candidate"]
+ ValidationReports["$validation_reports"]
+ Checker(["@aidd-dev:checker"])
+ Review["/aidd-dev:05-review"]
+ end
+
+ subgraph ChallengeStage["Challenge the outcome"]
+ direction TB
+ Challenge["/aidd-refine:02-challenge"]
+ end
+
+ subgraph RouteStage["Route the result"]
+ direction TB
+ Findings["$findings"]
+ Frame["01 Frame"]
+ Todo["/aidd-dev:10-todo"]
+ Deliver["02 Deliver"]
+ end
+
+ subgraph ShipStage["Ship the reviewed candidate"]
+ direction TB
+ PullRequest["/aidd-vcs:02-pull-request"]
+ PullRequestUrl["$pull_request_url"]
+ end
+
+ Contract --> Checker
+ Plan --> Checker
+ CommittedCandidate --> Checker
+ ValidationReports --> Checker
+ Checker --> Review
+ Review -- "Return actionable review findings." --> Findings
+ Review -- "When the review clears, challenge the outcome." --> Challenge
+ Challenge -- "Return actionable challenge findings." --> Findings
+ Challenge -- "When the outcome is trustworthy, open the draft pull request." --> PullRequest
+ Findings -- "Use product findings as the next Frame source." --> Frame
+ Findings -- "Repair independent implementation findings in parallel." --> Todo
+ Findings -- "Repair dependent implementation findings together." --> Deliver
+ Todo --> Deliver
+ PullRequest --> PullRequestUrl
+
+ classDef skill fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:2px
+ classDef agent fill:#F3E8FF,stroke:#9333EA,color:#581C87,stroke-width:2px
+ classDef artifact fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:2px
+ classDef zone fill:#F1F5F9,stroke:#64748B,color:#0F172A,stroke-width:2px
+
+ class Review,Challenge,Todo,PullRequest skill
+ class Checker agent
+ class Contract,Plan,CommittedCandidate,ValidationReports,Findings,PullRequestUrl artifact
+ class Frame,Deliver zone
+```
diff --git a/plugins/aidd-refine/skills/02-challenge/actions/01-challenge.md b/plugins/aidd-refine/skills/02-challenge/actions/01-challenge.md
index b7167e1ac..15348cf87 100644
--- a/plugins/aidd-refine/skills/02-challenge/actions/01-challenge.md
+++ b/plugins/aidd-refine/skills/02-challenge/actions/01-challenge.md
@@ -15,12 +15,17 @@ The findings report following `@../assets/report-template.md`: a confidence perc
1. **Align.** Read the work and line it up against the agreed reference.
2. **Challenge.** Challenge own assumptions and the user's decisions.
-3. **Scan.** Scan for edge cases, errors, gaps, duplications, and inconsistencies.
-4. **Classify.** Classify each finding as Correctness, Deal breaker, or Suggestion.
-5. **Score.** Score confidence per the rubric in `@../references/confidence-rubric.md`.
-6. **Emit.** Fill `@../assets/report-template.md` verbatim and emit it.
+3. **Trust.** Answer internally:
+ - "Am I proud of the work delivered?"
+ - "Am I confident in every consequential choice that was made?"
+ - "Will the user be satisfied with the real end-to-end outcome?"
+4. **Scan.** Scan for edge cases, errors, gaps, duplications, and inconsistencies.
+5. **Classify.** Classify each finding as Correctness, Deal breaker, or Suggestion.
+6. **Score.** Score confidence per the rubric in `@../references/confidence-rubric.md`.
+7. **Emit.** Fill `@../assets/report-template.md` verbatim and emit it.
## Test
- The report has a confidence percentage and the Correctness, Deal breakers, and Suggestions sections.
- The Deal breakers section is non-empty only when confidence is below 75%.
+- A negative or uncertain trust answer produces a deal breaker and confidence below 75%.
diff --git a/plugins/aidd-refine/skills/02-challenge/references/confidence-rubric.md b/plugins/aidd-refine/skills/02-challenge/references/confidence-rubric.md
index 0d474d1b6..2aece1068 100644
--- a/plugins/aidd-refine/skills/02-challenge/references/confidence-rubric.md
+++ b/plugins/aidd-refine/skills/02-challenge/references/confidence-rubric.md
@@ -2,9 +2,9 @@
The challenge action emits a confidence percentage. Pick the tier whose conditions match the findings, then choose a value within that tier.
-| Tier | Condition |
-| --------- | ----------------------------------------------- |
-| `100%` | No deal breakers, no gaps, no missing parts, no suggestions. |
-| `75-95%` | Suggestions only, no blockers. |
-| `50-74%` | Minor deal breakers, all fixable in place. |
-| `<50%` | Major deal breakers, partial rework required. |
+| Tier | Condition |
+| --------- | --------------------------------------------------------------------------------------------------------- |
+| `100%` | Every trust answer is yes, with no deal breakers, gaps, missing parts, or suggestions. |
+| `75-95%` | Every trust answer is yes, with suggestions only and no blockers. |
+| `50-74%` | At least one trust answer is negative or uncertain, or minor deal breakers are fixable in place. |
+| `<50%` | At least one trust answer exposes a major outcome failure, or major deal breakers require partial rework. |