Orchestrator Workflow
Top-level delivery orchestration workflow for Codex.
Required Shared Skills
Always apply:
policy-compliance-order
feature-promotion-lifecycle
repo-automation-adapter
atomic-plan-contract
acceptance-criteria-tracking
pr-context-artifacts
pr-base-branch-merge-base
Use as needed:
csharp-change-budget-router
powershell-change-budget-router
feature-review
Role
- Coordinate the mission from intake through completion.
- Resolve required specialist delegation mechanically instead of by judgment.
- Required delegated specialists:
atomic-planner
atomic-executor
feature-review
feature-reviewer
task-researcher
prd-feature
staged-review
epic-review
status-updater
python-typed-engineer
powershell-typed-engineer
csharp-typed-engineer
typescript-engineer
commit-steward
- Deterministic availability rule:
- if the host exposes
spawn_agent and the required .codex/agents/<name>.toml file exists, treat that delegated specialist as available,
- do not infer unavailability from missing nicknames, missing prior agent instances, or lack of a dedicated launcher alias.
- Every required delegated specialist must exist as a native Codex agent under
.codex/agents/. If a required agent file is missing, set blocked_reason to spawn_agent_unavailable and stop.
- Required delegated steps MUST delegate or stop execution.
- If a required delegated handoff cannot be started, resumed, or completed with a receipt, persist blocked state and stop. Do not perform that step directly.
- Direct local implementation is prohibited. Non-implementation coordination steps may execute
locally only when they are not designated below as required delegated handoffs.
Root-only epic boundary
This workflow handles one feature or bug. It must never delegate to epic-planner or
epic-orchestrator. When intake is epic-scale or names an epic manifest, stop before delegation,
emit EPIC_ENTRY_REQUIRES_ROOT, and direct the user to root-session epic-plan, epic-run, or
epic-orchestrate. An unauthorized epic start is rejected by the root-provenance system under
EPIC_INVOCATION_ORIGIN_BLOCKED.
Epic preparation child
The literal marker Preparation mode: true selects route_id: preparation. Complete promotion,
research, feature documents, atomic planning, and preflight only. After PREFLIGHT: ALL CLEAR,
commit the prepared documents and plan and stop at S5_atomic_execution. Execution, review, PR,
and CI statuses are not-applicable; no DONE transition is valid.
Checkpoint Contract
Canonical checkpoint path:
artifacts/orchestration/orchestrator-state.json
Canonical route matrix:
config/orchestration-routing.json
Persist and reuse these fields exactly:
objective
change_budget_estimate
path_selected
promotion-type
short-name
pre-issue-branch
final-branch
branch-rename-status
relativeFile
long-name
issue-num
feature-folder
work-mode
plan-path
review-status
remediation-inputs-path
remediation-plan-path
remediation-pass
commit-context-path
pr-context-base-branch
completed_steps
next_step
last_updated
step5_status
step6_status
step7_status
step8_status
step9_status
step10_status
delegation_receipts
blocked_reason
route_id
required_agents
required_skills
required_mcp_tools
skill_receipts
mcp_call_receipts
local_execution_overrides
delegation_bypasses
lifecycle_operations
pre-implementation-violation
Plan-path invariant:
${plan-path} is resolved only after ${feature-folder} exists.
- The orchestrator MUST enumerate existing
${feature-folder}/plan*.md files
in deterministic filename order before planner delegation.
- If any existing plan file is present,
${plan-path} MUST be that first
existing file. Do not persist or delegate against ${feature-folder}/plan.md
when a timestamped scaffolded plan already exists.
- If checkpoint state conflicts with the resolved existing plan file, correct
checkpoint state before delegation and do not create a duplicate plan.
For small-path runs, also persist:
bootstrap_mode
phase0_execution_summary
small_path_qc_summary
small_path_audit_artifacts
resume_after_manual_bootstrap
Status enums:
step5_status / step6_status / step7_status / step8_status / step9_status / step10_status MUST use one of:
not-applicable
pending
delegated
verified
blocked
Blocked-reason enum:
blocked_reason MUST be one of:
none
checkpoint_conflict
lifecycle_preconditions_missing
spawn_agent_unavailable
delegation_launch_failed
delegate_no_receipt
delegate_contract_incomplete
validator_failed
user_requested_stop
review_status_missing
commit_context_missing
no_staged_changes
pre_implementation_gate_violation
Pre-implementation violation schema:
pre-implementation-violation MUST be either null or an object with:
violated_gate
attempted_action
known_mutated_files
corrective_next_step
recorded_at
Delegation receipt schema:
delegation_receipts MUST be a list of objects with:
step
agent_name
agent_id
skill_source
started_at
completed_at
result_signal
artifact_paths
Skill receipt schema:
skill_receipts MUST be a list of objects with:
skill
required
acknowledged_at_phase
evidence
MCP receipt schema:
mcp_call_receipts MUST be a list of objects with:
Completion-state invariants:
route_id MUST identify an entry in config/orchestration-routing.json.
required_agents, required_skills, and required_mcp_tools MUST exactly
match the selected route matrix entry.
- every required agent MUST have a matching
delegation_receipts[].agent_name.
- every required skill MUST have a matching required
skill_receipts[].skill
with non-empty evidence.
- every required MCP tool MUST have a successful
mcp_call_receipts[].tool
receipt with non-empty evidence.
local_execution_overrides and delegation_bypasses MUST be empty lists at
completion.
- every recorded
lifecycle_operations[] item MUST use surface: "mcp".
Required-delegation step map:
- small path:
- Step 5 ->
atomic-planner
- Step 6 ->
atomic-executor
- implementation delivery -> language-resolved generated typed-engineer profile
- Step 9 ->
atomic-executor
- Step 10 ->
feature-reviewer
- large path:
- Step 7 ->
atomic-planner
- Step 8 ->
atomic-executor
- Step 9 ->
feature-reviewer
- remediation planning:
- review-triggered remediation planning ->
atomic-planner
- remediation preflight clearance ->
atomic-executor
- remediation execution ->
atomic-executor
- remediation commit message ->
commit-steward
- remediation re-review ->
feature-reviewer
Deterministic Handoff Result Contract
Do not advance on summaries alone when an exact result signal is required.
- feature review result:
REVIEW_STATUS: PASS
REVIEW_STATUS: REMEDIATION_REQUIRED
FEATURE_FOLDER: <path>
POLICY_AUDIT: <path>
CODE_REVIEW: <path>
FEATURE_AUDIT: <path>
REMEDIATION_INPUTS: <path-or-NONE>
REMEDIATION_PLAN: <path-or-NONE>
- remediation preflight result:
PREFLIGHT: ALL CLEAR
PREFLIGHT: REVISIONS REQUIRED
- commit-steward result:
- one fenced
text code block only
If an exact signal or required path field is missing, set the relevant step to blocked, set blocked_reason to delegate_contract_incomplete, and stop.
Resume Rules
- Read the checkpoint first when it exists.
- If the recorded mission is incomplete, resume from
next_step.
- If the checkpoint belongs to an unrelated in-progress mission, stop with
blocked_reason: checkpoint_conflict.
- Do not rename, back up, or create sidecar checkpoint files to work around a canonical checkpoint conflict.
- Restart only when the user explicitly requests restart.
- Do not recompute persisted variables when valid stored values already exist.
Routing Rules
- Estimate the likely touched production files and test files first.
- Determine the dominant implementation language.
- If the scope is primarily C#, use
csharp-change-budget-router.
- If the scope is primarily PowerShell, use
powershell-change-budget-router.
- If the scope is mixed-language, ambiguous, or unsupported by an existing change-budget router, fail closed to the large path.
- Treat any request outside the applicable small-path budget as large path.
- Select
route_id from config/orchestration-routing.json and persist the
exact required agent, skill, and MCP lists from the matrix before starting
lifecycle automation.
- Keep topology routing separate from C1-C4 model routing. Persist both topology and
model-routing receipts and select the exact generated Codex deployment agent before every
delegation.
- Use Terra/High for standalone ceiling-C3 work. Use Sol/High for C3 epic children or C3 work in
an orchestration whose monotonic ceiling is C4. Do not infer this overlay from file count.
Small Path
Use the small path only when the applicable language router clears it.
Required behavior:
- Set
${work-mode} to minor-audit.
- Use
feature-promotion-lifecycle as the source of truth for lifecycle variables, branch naming, and ${plan-path} resolution.
- Route all promotion, issue, and feature-folder automation through
repo-automation-adapter.
- Enforce lifecycle preconditions before any active-folder authoring:
- route metadata persistence must be complete in the canonical checkpoint before potential-entry creation
${pre-issue-branch} must be created or verified before potential-entry creation
${relativeFile} must resolve to a real potential markdown path and must not be NONE, TBD, or empty
${issue-num} must be numeric before final branch rename or new_active_feature_folder runs
- final branch rename must complete before
new_active_feature_folder runs
- do not create or edit
${feature-folder}/issue.md, ${feature-folder}/spec.md, ${feature-folder}/user-story.md, or plan*.md until potential-entry creation, promotion, final branch rename, and folder creation all succeed
- if any lifecycle precondition fails, set the relevant step status to
blocked, set blocked_reason to lifecycle_preconditions_missing, and stop
- Enforce minor-audit folder integrity:
${feature-folder}/issue.md must exist
${feature-folder}/spec.md must be absent
${feature-folder}/user-story.md must be absent
- Spawn
atomic-planner to create or revise the minimal plan at ${plan-path}.
- Include the directive
DIRECTIVE: MINIMAL-AUDIT PLAN REQUIRED
- Require the same
${plan-path} to be updated in place
- Do not continue until the planner reports
PREFLIGHT: ALL CLEAR
- Record a delegation receipt and set
step5_status to verified before continuing
- If the handoff cannot be started or does not return a receipt, set
step5_status to blocked, set blocked_reason, and stop
- Spawn
atomic-executor to execute Phase 0 only.
- Record a delegation receipt and set
step6_status to verified before branching
- If the handoff cannot be started or does not return a receipt, set
step6_status to blocked, set blocked_reason, and stop
- If and only if the initial user request explicitly opted into manual orchestration from the beginning, persist the resume checkpoint and stop after Phase 0.
- Otherwise manual bootstrap is prohibited; continue automated execution.
- Delegate constrained implementation to the language-resolved generated typed-engineer profile.
- Python ->
python-typed-engineer-<profile>
- PowerShell ->
powershell-typed-engineer-<profile>
- C# ->
csharp-typed-engineer-<profile>
- TypeScript has no canonical small-path budget and therefore routes to the large path
<profile> comes from the persisted C1-C4 routing receipt and never from file count
- pass the approved plan, exact file budget, feature folder, and Phase 0 baseline evidence
- require implementation and QA result fields appropriate to the language policy
- record topology, model-routing, and delegation receipts before continuing
- if no typed-engineer family exists for the dominant language, fail closed to large-path
root deployment instead of implementing locally
- Validate the delivered work against
${feature-folder}/issue.md and persist plan or acceptance-criteria checkoffs before review.
- MUST delegate to
atomic-executor for validation and checklist updates
- Record a delegation receipt and set
step9_status to verified before continuing
- If the handoff cannot be started or does not return a receipt, set
step9_status to blocked, set blocked_reason, and stop
- Run reduced audit:
- MUST delegate to
feature-reviewer
- require the exact
REVIEW_STATUS and artifact-path fields from the review result
- Record a delegation receipt and set
step10_status to verified before continuing
- If the handoff cannot be started or does not return a receipt, set
step10_status to blocked, set blocked_reason, and stop
- If review returns
REVIEW_STATUS: REMEDIATION_REQUIRED, run the shared remediation loop.
- Treat the returned
REMEDIATION_INPUTS and REMEDIATION_PLAN paths as mandatory inputs
- If any required remediation handoff cannot be started or does not return a receipt, set
blocked_reason and stop
Large Path
Use the large path for any request that exceeds or bypasses the small-path router.
Required behavior:
- Set
${work-mode} to:
full-feature for feature work
full-bug for bug work
- Use
feature-promotion-lifecycle as the source of truth for lifecycle variables, branch naming, and ${plan-path} resolution.
- Route all promotion, issue, and feature-folder automation through
repo-automation-adapter.
- Enforce lifecycle preconditions before any active-folder authoring:
- route metadata persistence must be complete in the canonical checkpoint before potential-entry creation
${pre-issue-branch} must be created or verified before potential-entry creation
${relativeFile} must resolve to a real potential markdown path and must not be NONE, TBD, or empty
${issue-num} must be numeric before final branch rename or new_active_feature_folder runs
- final branch rename must complete before
new_active_feature_folder runs
- do not create or edit
${feature-folder}/issue.md, ${feature-folder}/spec.md, ${feature-folder}/user-story.md, or plan*.md until potential-entry creation, promotion, final branch rename, and folder creation all succeed
- if any lifecycle precondition fails, set the relevant step status to
blocked, set blocked_reason to lifecycle_preconditions_missing, and stop
- Complete the requirements-authoring steps before planning:
- fill the potential entry details
- create or refresh research artifacts
- complete
spec.md and user-story.md when the selected work mode requires them
- Prefer dedicated migrated specialists for those authoring steps when they exist.
- When those specialists are not yet migrated, perform the authoring steps directly without changing template headings.
- Spawn
atomic-planner to finalize ${plan-path} and require PREFLIGHT: ALL CLEAR.
Hard enforcement for Step 7:
- Before spawning
atomic-planner, resolve ${plan-path} by enumerating
existing ${feature-folder}/plan*.md files. Reuse the first existing file
in deterministic filename order, including timestamped scaffolded plans.
- The planning route MUST be
atomic-planner -> atomic-executor for preflight validation.
- The planner MUST update
${plan-path} in place and MUST NOT create additional plan.*.md files for revisions.
- The approved plan MUST include explicit Phase 0 baseline evidence tasks and explicit final-QA evidence or coverage tasks for each language in scope where policy requires them.
- Do not mark Step 7 complete until delegate output includes both a concrete
plan-path and final PREFLIGHT: ALL CLEAR.
- Do not perform planning locally when this delegation cannot be started; set
step7_status to blocked, set blocked_reason, and stop.
- Record a delegation receipt and set
step7_status to verified only after delegate output and validator checks pass.
- Spawn
atomic-executor to execute the approved plan.
Hard enforcement for Step 8:
- Do not mark Step 8 complete until execution output includes execution summary, QA summary, lint/type/test/coverage deltas, and numeric baseline/post/new-code coverage metrics where policy requires them.
- Do not accept PASS execution outcomes when required baseline or final-QA artifacts are missing, when checklist state is not backed by artifacts, or when coverage-bearing plan tasks remain unverified.
- Do not perform execution locally when this delegation cannot be started; set
step8_status to blocked, set blocked_reason, and stop.
- Record a delegation receipt and set
step8_status to verified only after delegate output and validator checks pass.
- Spawn
feature-reviewer for post-implementation review.
Hard enforcement for Step 9:
- Resolve the base branch through
pr-base-branch-merge-base unless an explicit base was already supplied.
- Load canonical PR-context artifacts and refresh them through
repo-automation-adapter when they are missing or stale relative to the current branch state.
- Require the exact
REVIEW_STATUS and artifact-path fields from the review result.
- Do not mark Step 9 complete until expected review artifacts are present on disk in
${feature-folder}.
- Do not accept PASS review outcomes when required coverage fields are left unverified, when PR-context artifacts are missing or stale relative to the current branch state, or when required remediation artifacts are missing.
- Do not perform review locally when this delegation cannot be started; set
step9_status to blocked, set blocked_reason, and stop.
- Record a delegation receipt and set
step9_status to verified only after delegate output and validator checks pass.
- If review returns
REVIEW_STATUS: REMEDIATION_REQUIRED, run the shared remediation loop until the latest review returns REVIEW_STATUS: PASS.
- remediation planning, preflight clearance, remediation execution, remediation commit-message generation, and re-review delegations are all mandatory; if any cannot be started, set
blocked_reason and stop
Shared Remediation Loop
Apply this loop after any required review returns REVIEW_STATUS: REMEDIATION_REQUIRED.
- Persist
review-status, remediation-inputs-path, remediation-plan-path, and remediation-pass in the checkpoint.
- Delegate
atomic-executor in validation-only mode against the exact remediation-plan-path.
- If the executor returns
PREFLIGHT: REVISIONS REQUIRED, delegate atomic-planner to update the same remediation-plan-path in place and then repeat preflight clearance.
- Only after
PREFLIGHT: ALL CLEAR, delegate atomic-executor to execute the remediation plan exactly as written.
- Stage all files with
git add -A.
- If staging is empty after execution, set
blocked_reason to no_staged_changes and stop.
- Use
repo-automation-adapter to run MCP tool collect_commit_context, capture the returned on-disk artifact path as commit-context-path, and stop with blocked_reason: commit_context_missing if that path is unavailable.
- Delegate
commit-steward using commit-context-path as the authoritative staged-change input.
- Commit the staged work with the exact message returned by
commit-steward.
- Use
repo-automation-adapter to refresh PR-context artifacts through MCP tool collect_pr_context with the resolved base branch.
- Delegate
feature-reviewer again with the refreshed PR context.
- If the new review still returns
REVIEW_STATUS: REMEDIATION_REQUIRED, increment remediation-pass and repeat the loop. Exit only when the latest review returns REVIEW_STATUS: PASS.
Completion Gates
Do not claim mission completion until all of the following are true:
- the selected path completed end to end
- all required delegations completed with receipts
- small-path implementation has a receipt from the exact language-specific generated
typed-engineer deployment profile
- all required skills have
skill_receipts with evidence
- all required MCP tools have successful
mcp_call_receipts
- no local execution override or delegation bypass is recorded
- the checkpoint is updated with the final state
- the canonical checkpoint path was used without sidecar replacement or backup substitution
${relativeFile} is a real promoted-input path and ${issue-num} is numeric when lifecycle setup was required
${feature-folder} and ${plan-path} are known when lifecycle setup was required
- route metadata, selected work mode, branch state, lifecycle receipts, and
folder readiness are present before implementation begins
- the approved plan is executor-compliant and references the required baseline and final-QA evidence tasks
- required review artifacts exist on disk
- small path has Phase 0 evidence plus reduced audit artifacts
- large path has policy, code, and feature audit artifacts
- required baseline and final-QA evidence artifacts referenced by the approved plan exist on disk
- any required remediation artifacts exist on disk and the latest re-review is clean
- any required remediation loop run also includes a remediation execution receipt, a remediation commit receipt, and a final
REVIEW_STATUS: PASS
- validator-backed checks for the approved plan, policy audit, code review, feature audit, and checkpoint state pass
- the canonical checkpoint passes
validate_orchestration_artifacts with artifact_type: "orchestrator-state", require_complete: true, require_codex_topology: true, and require_codex_model_routing: true
- required GitHub checks pass for the current PR head SHA before PR/DONE completion
Hard Constraints
- Do not stop after one delegation when required downstream steps remain.
- Do not infer specialist unavailability from missing nicknames or absent prior subagent instances.
- Do not call
drmCopilotExtension.* directly from this workflow.
- Do not bypass
repo-automation-adapter for host-specific lifecycle steps.
- Do not rename, back up, or create sidecar checkpoint files to avoid using the canonical checkpoint path.
- Do not proceed when the canonical checkpoint belongs to another in-progress mission; stop and report the conflict.
- Do not create or edit active feature docs before route metadata persistence,
pre-issue branch setup, potential-entry creation, issue promotion, final branch
rename, and active-folder creation succeed.
- Do not call
new_active_feature_folder before ${issue-num} is numeric,
backed by promotion output, and the final branch rename is complete.
- Do not begin implementation edits, formatters, tests, staging, commits, or
implementation delegation when route metadata, branch state, lifecycle
receipts, or folder readiness are missing.
- Do not persist placeholder lifecycle values such as
NONE or TBD for ${relativeFile}, ${issue-num}, ${feature-folder}, or ${plan-path} once lifecycle setup begins.
- Do not create replacement audit artifacts yourself for any required delegated review step.
- Do not execute required delegated steps locally as a fallback.
- Do not implement small-path production changes in the coordinating thread; the routed
typed-engineer deployment is mandatory.
- Do not accept stale PR-context artifacts, unsupported checklist checkoffs, or missing required evidence as PASS outcomes.
- Do not treat Codex lifecycle hooks as the hard completion boundary; use deterministic validator and CI gates for completion enforcement.
- Do not claim completion without reporting the checkpoint path and the created or updated artifact paths.
1---2name: orchestrator-workflow3description: Coordinate a feature or bug request from intake through promotion, planning, execution, validation, and review by selecting the correct small or large path and delegating to migrated Codex specialists when available.4---56# Orchestrator Workflow78Top-level delivery orchestration workflow for Codex.910## Required Shared Skills1112Always apply:13- `policy-compliance-order`14- `feature-promotion-lifecycle`15- `repo-automation-adapter`16- `atomic-plan-contract`17- `acceptance-criteria-tracking`18- `pr-context-artifacts`19- `pr-base-branch-merge-base`2021Use as needed:22- `csharp-change-budget-router`23- `powershell-change-budget-router`24- `feature-review`2526## Role2728- Coordinate the mission from intake through completion.29- Resolve required specialist delegation mechanically instead of by judgment.30- Required delegated specialists:31 - `atomic-planner`32 - `atomic-executor`33 - `feature-review`34 - `feature-reviewer`35 - `task-researcher`36 - `prd-feature`37 - `staged-review`38 - `epic-review`39 - `status-updater`40 - `python-typed-engineer`41 - `powershell-typed-engineer`42 - `csharp-typed-engineer`43 - `typescript-engineer`44 - `commit-steward`45- Deterministic availability rule:46 - if the host exposes `spawn_agent` and the required `.codex/agents/<name>.toml` file exists, treat that delegated specialist as available,47 - do not infer unavailability from missing nicknames, missing prior agent instances, or lack of a dedicated launcher alias.48- Every required delegated specialist must exist as a native Codex agent under `.codex/agents/`. If a required agent file is missing, set `blocked_reason` to `spawn_agent_unavailable` and stop.49- Required delegated steps MUST delegate or stop execution.50- If a required delegated handoff cannot be started, resumed, or completed with a receipt, persist blocked state and stop. Do not perform that step directly.51- Direct local implementation is prohibited. Non-implementation coordination steps may execute52 locally only when they are not designated below as required delegated handoffs.5354### Root-only epic boundary5556This workflow handles one feature or bug. It must never delegate to `epic-planner` or57`epic-orchestrator`. When intake is epic-scale or names an epic manifest, stop before delegation,58emit `EPIC_ENTRY_REQUIRES_ROOT`, and direct the user to root-session `epic-plan`, `epic-run`, or59`epic-orchestrate`. An unauthorized epic start is rejected by the root-provenance system under60`EPIC_INVOCATION_ORIGIN_BLOCKED`.6162### Epic preparation child6364The literal marker `Preparation mode: true` selects `route_id: preparation`. Complete promotion,65research, feature documents, atomic planning, and preflight only. After `PREFLIGHT: ALL CLEAR`,66commit the prepared documents and plan and stop at `S5_atomic_execution`. Execution, review, PR,67and CI statuses are `not-applicable`; no DONE transition is valid.6869## Checkpoint Contract7071Canonical checkpoint path:72- `artifacts/orchestration/orchestrator-state.json`7374Canonical route matrix:75- `config/orchestration-routing.json`7677Persist and reuse these fields exactly:78- `objective`79- `change_budget_estimate`80- `path_selected`81- `promotion-type`82- `short-name`83- `pre-issue-branch`84- `final-branch`85- `branch-rename-status`86- `relativeFile`87- `long-name`88- `issue-num`89- `feature-folder`90- `work-mode`91- `plan-path`92- `review-status`93- `remediation-inputs-path`94- `remediation-plan-path`95- `remediation-pass`96- `commit-context-path`97- `pr-context-base-branch`98- `completed_steps`99- `next_step`100- `last_updated`101- `step5_status`102- `step6_status`103- `step7_status`104- `step8_status`105- `step9_status`106- `step10_status`107- `delegation_receipts`108- `blocked_reason`109- `route_id`110- `required_agents`111- `required_skills`112- `required_mcp_tools`113- `skill_receipts`114- `mcp_call_receipts`115- `local_execution_overrides`116- `delegation_bypasses`117- `lifecycle_operations`118- `pre-implementation-violation`119120Plan-path invariant:121- `${plan-path}` is resolved only after `${feature-folder}` exists.122- The orchestrator MUST enumerate existing `${feature-folder}/plan*.md` files123 in deterministic filename order before planner delegation.124- If any existing plan file is present, `${plan-path}` MUST be that first125 existing file. Do not persist or delegate against `${feature-folder}/plan.md`126 when a timestamped scaffolded plan already exists.127- If checkpoint state conflicts with the resolved existing plan file, correct128 checkpoint state before delegation and do not create a duplicate plan.129130For small-path runs, also persist:131- `bootstrap_mode`132- `phase0_execution_summary`133- `small_path_qc_summary`134- `small_path_audit_artifacts`135- `resume_after_manual_bootstrap`136137Status enums:138- `step5_status` / `step6_status` / `step7_status` / `step8_status` / `step9_status` / `step10_status` MUST use one of:139 - `not-applicable`140 - `pending`141 - `delegated`142 - `verified`143 - `blocked`144145Blocked-reason enum:146- `blocked_reason` MUST be one of:147 - `none`148 - `checkpoint_conflict`149 - `lifecycle_preconditions_missing`150 - `spawn_agent_unavailable`151 - `delegation_launch_failed`152 - `delegate_no_receipt`153 - `delegate_contract_incomplete`154 - `validator_failed`155 - `user_requested_stop`156 - `review_status_missing`157 - `commit_context_missing`158 - `no_staged_changes`159 - `pre_implementation_gate_violation`160161Pre-implementation violation schema:162- `pre-implementation-violation` MUST be either `null` or an object with:163 - `violated_gate`164 - `attempted_action`165 - `known_mutated_files`166 - `corrective_next_step`167 - `recorded_at`168169Delegation receipt schema:170- `delegation_receipts` MUST be a list of objects with:171 - `step`172 - `agent_name`173 - `agent_id`174 - `skill_source`175 - `started_at`176 - `completed_at`177 - `result_signal`178 - `artifact_paths`179180Skill receipt schema:181- `skill_receipts` MUST be a list of objects with:182 - `skill`183 - `required`184 - `acknowledged_at_phase`185 - `evidence`186187MCP receipt schema:188- `mcp_call_receipts` MUST be a list of objects with:189 - `tool`190 - `ok`191 - `evidence`192193Completion-state invariants:194- `route_id` MUST identify an entry in `config/orchestration-routing.json`.195- `required_agents`, `required_skills`, and `required_mcp_tools` MUST exactly196 match the selected route matrix entry.197- every required agent MUST have a matching `delegation_receipts[].agent_name`.198- every required skill MUST have a matching required `skill_receipts[].skill`199 with non-empty evidence.200- every required MCP tool MUST have a successful `mcp_call_receipts[].tool`201 receipt with non-empty evidence.202- `local_execution_overrides` and `delegation_bypasses` MUST be empty lists at203 completion.204- every recorded `lifecycle_operations[]` item MUST use `surface: "mcp"`.205206Required-delegation step map:207- small path:208 - Step 5 -> `atomic-planner`209 - Step 6 -> `atomic-executor`210 - implementation delivery -> language-resolved generated typed-engineer profile211 - Step 9 -> `atomic-executor`212 - Step 10 -> `feature-reviewer`213- large path:214 - Step 7 -> `atomic-planner`215 - Step 8 -> `atomic-executor`216 - Step 9 -> `feature-reviewer`217- remediation planning:218 - review-triggered remediation planning -> `atomic-planner`219 - remediation preflight clearance -> `atomic-executor`220 - remediation execution -> `atomic-executor`221 - remediation commit message -> `commit-steward`222 - remediation re-review -> `feature-reviewer`223224## Deterministic Handoff Result Contract225226Do not advance on summaries alone when an exact result signal is required.227228- feature review result:229 - `REVIEW_STATUS: PASS`230 - `REVIEW_STATUS: REMEDIATION_REQUIRED`231 - `FEATURE_FOLDER: <path>`232 - `POLICY_AUDIT: <path>`233 - `CODE_REVIEW: <path>`234 - `FEATURE_AUDIT: <path>`235 - `REMEDIATION_INPUTS: <path-or-NONE>`236 - `REMEDIATION_PLAN: <path-or-NONE>`237- remediation preflight result:238 - `PREFLIGHT: ALL CLEAR`239 - `PREFLIGHT: REVISIONS REQUIRED`240- commit-steward result:241 - one fenced `text` code block only242243If an exact signal or required path field is missing, set the relevant step to `blocked`, set `blocked_reason` to `delegate_contract_incomplete`, and stop.244245## Resume Rules2462471. Read the checkpoint first when it exists.2482. If the recorded mission is incomplete, resume from `next_step`.2493. If the checkpoint belongs to an unrelated in-progress mission, stop with `blocked_reason: checkpoint_conflict`.2504. Do not rename, back up, or create sidecar checkpoint files to work around a canonical checkpoint conflict.2515. Restart only when the user explicitly requests restart.2526. Do not recompute persisted variables when valid stored values already exist.253254## Routing Rules2552561. Estimate the likely touched production files and test files first.2572. Determine the dominant implementation language.2583. If the scope is primarily C#, use `csharp-change-budget-router`.2594. If the scope is primarily PowerShell, use `powershell-change-budget-router`.2605. If the scope is mixed-language, ambiguous, or unsupported by an existing change-budget router, fail closed to the large path.2616. Treat any request outside the applicable small-path budget as large path.2627. Select `route_id` from `config/orchestration-routing.json` and persist the263 exact required agent, skill, and MCP lists from the matrix before starting264 lifecycle automation.2658. Keep topology routing separate from C1-C4 model routing. Persist both topology and266 model-routing receipts and select the exact generated Codex deployment agent before every267 delegation.2689. Use Terra/High for standalone ceiling-C3 work. Use Sol/High for C3 epic children or C3 work in269 an orchestration whose monotonic ceiling is C4. Do not infer this overlay from file count.270271## Small Path272273Use the small path only when the applicable language router clears it.274275Required behavior:2762771. Set `${work-mode}` to `minor-audit`.2782. Use `feature-promotion-lifecycle` as the source of truth for lifecycle variables, branch naming, and `${plan-path}` resolution.2793. Route all promotion, issue, and feature-folder automation through `repo-automation-adapter`.2804. Enforce lifecycle preconditions before any active-folder authoring:281 - route metadata persistence must be complete in the canonical checkpoint before potential-entry creation282 - `${pre-issue-branch}` must be created or verified before potential-entry creation283 - `${relativeFile}` must resolve to a real potential markdown path and must not be `NONE`, `TBD`, or empty284 - `${issue-num}` must be numeric before final branch rename or `new_active_feature_folder` runs285 - final branch rename must complete before `new_active_feature_folder` runs286 - do not create or edit `${feature-folder}/issue.md`, `${feature-folder}/spec.md`, `${feature-folder}/user-story.md`, or `plan*.md` until potential-entry creation, promotion, final branch rename, and folder creation all succeed287 - if any lifecycle precondition fails, set the relevant step status to `blocked`, set `blocked_reason` to `lifecycle_preconditions_missing`, and stop2885. Enforce minor-audit folder integrity:289 - `${feature-folder}/issue.md` must exist290 - `${feature-folder}/spec.md` must be absent291 - `${feature-folder}/user-story.md` must be absent2926. Spawn `atomic-planner` to create or revise the minimal plan at `${plan-path}`.293 - Include the directive `DIRECTIVE: MINIMAL-AUDIT PLAN REQUIRED`294 - Require the same `${plan-path}` to be updated in place295 - Do not continue until the planner reports `PREFLIGHT: ALL CLEAR`296 - Record a delegation receipt and set `step5_status` to `verified` before continuing297 - If the handoff cannot be started or does not return a receipt, set `step5_status` to `blocked`, set `blocked_reason`, and stop2987. Spawn `atomic-executor` to execute Phase 0 only.299 - Record a delegation receipt and set `step6_status` to `verified` before branching300 - If the handoff cannot be started or does not return a receipt, set `step6_status` to `blocked`, set `blocked_reason`, and stop3018. If and only if the initial user request explicitly opted into manual orchestration from the beginning, persist the resume checkpoint and stop after Phase 0.302 - Otherwise manual bootstrap is prohibited; continue automated execution.3039. Delegate constrained implementation to the language-resolved generated typed-engineer profile.304 - Python -> `python-typed-engineer-<profile>`305 - PowerShell -> `powershell-typed-engineer-<profile>`306 - C# -> `csharp-typed-engineer-<profile>`307 - TypeScript has no canonical small-path budget and therefore routes to the large path308 - `<profile>` comes from the persisted C1-C4 routing receipt and never from file count309 - pass the approved plan, exact file budget, feature folder, and Phase 0 baseline evidence310 - require implementation and QA result fields appropriate to the language policy311 - record topology, model-routing, and delegation receipts before continuing312 - if no typed-engineer family exists for the dominant language, fail closed to large-path313 root deployment instead of implementing locally31410. Validate the delivered work against `${feature-folder}/issue.md` and persist plan or acceptance-criteria checkoffs before review.315 - MUST delegate to `atomic-executor` for validation and checklist updates316 - Record a delegation receipt and set `step9_status` to `verified` before continuing317 - If the handoff cannot be started or does not return a receipt, set `step9_status` to `blocked`, set `blocked_reason`, and stop31811. Run reduced audit:319 - MUST delegate to `feature-reviewer`320 - require the exact `REVIEW_STATUS` and artifact-path fields from the review result321 - Record a delegation receipt and set `step10_status` to `verified` before continuing322 - If the handoff cannot be started or does not return a receipt, set `step10_status` to `blocked`, set `blocked_reason`, and stop32312. If review returns `REVIEW_STATUS: REMEDIATION_REQUIRED`, run the shared remediation loop.324 - Treat the returned `REMEDIATION_INPUTS` and `REMEDIATION_PLAN` paths as mandatory inputs325 - If any required remediation handoff cannot be started or does not return a receipt, set `blocked_reason` and stop326327## Large Path328329Use the large path for any request that exceeds or bypasses the small-path router.330331Required behavior:3323331. Set `${work-mode}` to:334 - `full-feature` for feature work335 - `full-bug` for bug work3362. Use `feature-promotion-lifecycle` as the source of truth for lifecycle variables, branch naming, and `${plan-path}` resolution.3373. Route all promotion, issue, and feature-folder automation through `repo-automation-adapter`.3384. Enforce lifecycle preconditions before any active-folder authoring:339 - route metadata persistence must be complete in the canonical checkpoint before potential-entry creation340 - `${pre-issue-branch}` must be created or verified before potential-entry creation341 - `${relativeFile}` must resolve to a real potential markdown path and must not be `NONE`, `TBD`, or empty342 - `${issue-num}` must be numeric before final branch rename or `new_active_feature_folder` runs343 - final branch rename must complete before `new_active_feature_folder` runs344 - do not create or edit `${feature-folder}/issue.md`, `${feature-folder}/spec.md`, `${feature-folder}/user-story.md`, or `plan*.md` until potential-entry creation, promotion, final branch rename, and folder creation all succeed345 - if any lifecycle precondition fails, set the relevant step status to `blocked`, set `blocked_reason` to `lifecycle_preconditions_missing`, and stop3465. Complete the requirements-authoring steps before planning:347 - fill the potential entry details348 - create or refresh research artifacts349 - complete `spec.md` and `user-story.md` when the selected work mode requires them3506. Prefer dedicated migrated specialists for those authoring steps when they exist.3517. When those specialists are not yet migrated, perform the authoring steps directly without changing template headings.3528. Spawn `atomic-planner` to finalize `${plan-path}` and require `PREFLIGHT: ALL CLEAR`.353 Hard enforcement for Step 7:354 - Before spawning `atomic-planner`, resolve `${plan-path}` by enumerating355 existing `${feature-folder}/plan*.md` files. Reuse the first existing file356 in deterministic filename order, including timestamped scaffolded plans.357 - The planning route MUST be `atomic-planner -> atomic-executor` for preflight validation.358 - The planner MUST update `${plan-path}` in place and MUST NOT create additional `plan.*.md` files for revisions.359 - The approved plan MUST include explicit Phase 0 baseline evidence tasks and explicit final-QA evidence or coverage tasks for each language in scope where policy requires them.360 - Do not mark Step 7 complete until delegate output includes both a concrete `plan-path` and final `PREFLIGHT: ALL CLEAR`.361 - Do not perform planning locally when this delegation cannot be started; set `step7_status` to `blocked`, set `blocked_reason`, and stop.362 - Record a delegation receipt and set `step7_status` to `verified` only after delegate output and validator checks pass.3639. Spawn `atomic-executor` to execute the approved plan.364 Hard enforcement for Step 8:365 - Do not mark Step 8 complete until execution output includes execution summary, QA summary, lint/type/test/coverage deltas, and numeric baseline/post/new-code coverage metrics where policy requires them.366 - Do not accept PASS execution outcomes when required baseline or final-QA artifacts are missing, when checklist state is not backed by artifacts, or when coverage-bearing plan tasks remain unverified.367 - Do not perform execution locally when this delegation cannot be started; set `step8_status` to `blocked`, set `blocked_reason`, and stop.368 - Record a delegation receipt and set `step8_status` to `verified` only after delegate output and validator checks pass.36910. Spawn `feature-reviewer` for post-implementation review.370 Hard enforcement for Step 9:371 - Resolve the base branch through `pr-base-branch-merge-base` unless an explicit base was already supplied.372 - Load canonical PR-context artifacts and refresh them through `repo-automation-adapter` when they are missing or stale relative to the current branch state.373 - Require the exact `REVIEW_STATUS` and artifact-path fields from the review result.374 - Do not mark Step 9 complete until expected review artifacts are present on disk in `${feature-folder}`.375 - Do not accept PASS review outcomes when required coverage fields are left unverified, when PR-context artifacts are missing or stale relative to the current branch state, or when required remediation artifacts are missing.376 - Do not perform review locally when this delegation cannot be started; set `step9_status` to `blocked`, set `blocked_reason`, and stop.377 - Record a delegation receipt and set `step9_status` to `verified` only after delegate output and validator checks pass.37811. If review returns `REVIEW_STATUS: REMEDIATION_REQUIRED`, run the shared remediation loop until the latest review returns `REVIEW_STATUS: PASS`.379 - remediation planning, preflight clearance, remediation execution, remediation commit-message generation, and re-review delegations are all mandatory; if any cannot be started, set `blocked_reason` and stop380381## Shared Remediation Loop382383Apply this loop after any required review returns `REVIEW_STATUS: REMEDIATION_REQUIRED`.3843851. Persist `review-status`, `remediation-inputs-path`, `remediation-plan-path`, and `remediation-pass` in the checkpoint.3862. Delegate `atomic-executor` in validation-only mode against the exact `remediation-plan-path`.3873. If the executor returns `PREFLIGHT: REVISIONS REQUIRED`, delegate `atomic-planner` to update the same `remediation-plan-path` in place and then repeat preflight clearance.3884. Only after `PREFLIGHT: ALL CLEAR`, delegate `atomic-executor` to execute the remediation plan exactly as written.3895. Stage all files with `git add -A`.3906. If staging is empty after execution, set `blocked_reason` to `no_staged_changes` and stop.3917. Use `repo-automation-adapter` to run MCP tool `collect_commit_context`, capture the returned on-disk artifact path as `commit-context-path`, and stop with `blocked_reason: commit_context_missing` if that path is unavailable.3928. Delegate `commit-steward` using `commit-context-path` as the authoritative staged-change input.3939. Commit the staged work with the exact message returned by `commit-steward`.39410. Use `repo-automation-adapter` to refresh PR-context artifacts through MCP tool `collect_pr_context` with the resolved base branch.39511. Delegate `feature-reviewer` again with the refreshed PR context.39612. If the new review still returns `REVIEW_STATUS: REMEDIATION_REQUIRED`, increment `remediation-pass` and repeat the loop. Exit only when the latest review returns `REVIEW_STATUS: PASS`.397398## Completion Gates399400Do not claim mission completion until all of the following are true:401402- the selected path completed end to end403- all required delegations completed with receipts404- small-path implementation has a receipt from the exact language-specific generated405 typed-engineer deployment profile406- all required skills have `skill_receipts` with evidence407- all required MCP tools have successful `mcp_call_receipts`408- no local execution override or delegation bypass is recorded409- the checkpoint is updated with the final state410- the canonical checkpoint path was used without sidecar replacement or backup substitution411- `${relativeFile}` is a real promoted-input path and `${issue-num}` is numeric when lifecycle setup was required412- `${feature-folder}` and `${plan-path}` are known when lifecycle setup was required413- route metadata, selected work mode, branch state, lifecycle receipts, and414 folder readiness are present before implementation begins415- the approved plan is executor-compliant and references the required baseline and final-QA evidence tasks416- required review artifacts exist on disk417- small path has Phase 0 evidence plus reduced audit artifacts418- large path has policy, code, and feature audit artifacts419- required baseline and final-QA evidence artifacts referenced by the approved plan exist on disk420- any required remediation artifacts exist on disk and the latest re-review is clean421- any required remediation loop run also includes a remediation execution receipt, a remediation commit receipt, and a final `REVIEW_STATUS: PASS`422- validator-backed checks for the approved plan, policy audit, code review, feature audit, and checkpoint state pass423- the canonical checkpoint passes `validate_orchestration_artifacts` with `artifact_type: "orchestrator-state"`, `require_complete: true`, `require_codex_topology: true`, and `require_codex_model_routing: true`424- required GitHub checks pass for the current PR head SHA before PR/DONE completion425426## Hard Constraints427428- Do not stop after one delegation when required downstream steps remain.429- Do not infer specialist unavailability from missing nicknames or absent prior subagent instances.430- Do not call `drmCopilotExtension.*` directly from this workflow.431- Do not bypass `repo-automation-adapter` for host-specific lifecycle steps.432- Do not rename, back up, or create sidecar checkpoint files to avoid using the canonical checkpoint path.433- Do not proceed when the canonical checkpoint belongs to another in-progress mission; stop and report the conflict.434- Do not create or edit active feature docs before route metadata persistence,435 pre-issue branch setup, potential-entry creation, issue promotion, final branch436 rename, and active-folder creation succeed.437- Do not call `new_active_feature_folder` before `${issue-num}` is numeric,438 backed by promotion output, and the final branch rename is complete.439- Do not begin implementation edits, formatters, tests, staging, commits, or440 implementation delegation when route metadata, branch state, lifecycle441 receipts, or folder readiness are missing.442- Do not persist placeholder lifecycle values such as `NONE` or `TBD` for `${relativeFile}`, `${issue-num}`, `${feature-folder}`, or `${plan-path}` once lifecycle setup begins.443- Do not create replacement audit artifacts yourself for any required delegated review step.444- Do not execute required delegated steps locally as a fallback.445- Do not implement small-path production changes in the coordinating thread; the routed446 typed-engineer deployment is mandatory.447- Do not accept stale PR-context artifacts, unsupported checklist checkoffs, or missing required evidence as PASS outcomes.448- Do not treat Codex lifecycle hooks as the hard completion boundary; use deterministic validator and CI gates for completion enforcement.449- Do not claim completion without reporting the checkpoint path and the created or updated artifact paths.