From c07be98cfe87433a2ba29c77fdb8b7e06c8b0b2c Mon Sep 17 00:00:00 2001 From: Dayowe Date: Sun, 20 Sep 2026 17:24:28 +0200 Subject: [PATCH] Correct worker retirement and bounded capacity recovery; require version bumps for plugin commits; release staged-implementation 0.2.0-alpha.4 --- AGENTS.md | 2 ++ README.md | 2 +- .../.codex-plugin/plugin.json | 2 +- plugins/staged-implementation/README.md | 6 +++--- .../skills/coordinator/SKILL.md | 4 ++-- .../coordinator/references/execution-contract.md | 16 +++++++++++++++- .../coordinator/references/pilot-validation.md | 4 +++- .../skills/implementer/SKILL.md | 2 +- .../skills/orchestrator/SKILL.md | 4 ++-- .../skills/planner/SKILL.md | 2 +- .../skills/validator/SKILL.md | 2 +- 11 files changed, 32 insertions(+), 14 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 5f7c34a..179fba2 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -18,6 +18,8 @@ When asked for a commit message always provide a oneline commit message and separate sentences with `;` +When committing plugin changes, always bump the affected plugin's version and synchronize current-version references in the READMEs in the same commit. No separate version-bump request is needed. + When asked to write a markdown file the specified path might contain a date followed by `-${name}` .. e.g. 28.12.2025-${name}.md .. replace ${name} with a suitable name for the document. You do not ever run any destructive commands unless you have explicitely been asked to do so. diff --git a/README.md b/README.md index 14ab0d6..0a62779 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Codex plugin marketplace for reusable agent workflows. - `staged-implementation`: Planner, coordinator, bounded orchestrator, implementer and validator skills for staged implementation workflows. -This branch contains the experimental coordinated-workflow preview (`0.2.0-alpha.3`). Stable `0.1.5` remains on `master`; the Git install commands below select that stable branch. Do not mistake branch-local edits for an installed upgrade. See the plugin README for the preview boundaries and qualification procedure. +This branch contains the experimental coordinated-workflow preview (`0.2.0-alpha.4`). Stable `0.1.5` remains on `master`; the Git install commands below select that stable branch. Do not mistake branch-local edits for an installed upgrade. See the plugin README for the preview boundaries and qualification procedure. ## Install diff --git a/plugins/staged-implementation/.codex-plugin/plugin.json b/plugins/staged-implementation/.codex-plugin/plugin.json index af47f16..9b16867 100644 --- a/plugins/staged-implementation/.codex-plugin/plugin.json +++ b/plugins/staged-implementation/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "staged-implementation", - "version": "0.2.0-alpha.3", + "version": "0.2.0-alpha.4", "description": "Experimental coordinated staged implementation with planner, coordinator, bounded orchestrator, implementer, and validator roles.", "author": { "name": "Local developer" diff --git a/plugins/staged-implementation/README.md b/plugins/staged-implementation/README.md index 29aeb1f..2d9b79a 100644 --- a/plugins/staged-implementation/README.md +++ b/plugins/staged-implementation/README.md @@ -10,7 +10,7 @@ Staged Implementation bundles five skills with two execution entry points: Use this plugin when a feature or fix is too large or contract-heavy to handle as one open-ended coding pass. -**Experimental preview — `0.2.0-alpha.3`.** Stable `0.1.5` is preserved on `master`. This branch changes Orchestrator's boundary; old whole-checklist launch prompts must explicitly select Coordinator rather than silently losing scope. No installation, migration execution, measured savings or unattended-runtime qualification is implied by the files or structural validators. Qualify the [pilot](skills/coordinator/references/pilot-validation.md) before consequential coordinated execution. Do not mix stable and preview role instructions in one run. +**Experimental preview — `0.2.0-alpha.4`.** Stable `0.1.5` is preserved on `master`. This branch changes Orchestrator's boundary; old whole-checklist launch prompts must explicitly select Coordinator rather than silently losing scope. No installation, migration execution, measured savings or unattended-runtime qualification is implied by the files or structural validators. Qualify the [pilot](skills/coordinator/references/pilot-validation.md) before consequential coordinated execution. Do not mix stable and preview role instructions in one run. ## Plugin Structure @@ -132,7 +132,7 @@ The usual flow is: The [shared execution contract](skills/coordinator/references/execution-contract.md) defines assignment/results and recovery boundaries. Start with one active Orchestrator assignment at a time; groups name their IDs and preserve individual gates. Coordinator does not repeat routine source review, tests or screenshots. It verifies actual repository results and evidence completeness/applicability, escalating discrepancies. Only Coordinator writes run-wide scheduling records; only Orchestrator writes chunk acceptance records. Coordinate shared Git mutations explicitly. -The orchestrator stays through same-chunk corrections. At a bounded result, it transfers resources and retires descendants; Coordinator verifies the subtree's state and capacity before dispatching another fresh orchestrator. Nested delegation, scoped context and capacity recycling must be demonstrated, not inferred from an agent's idle status. Unsupported operation holds the coordinated loop; direct/manual execution requires an explicit alternative, not silently weakened validation. +The orchestrator stays through same-chunk corrections. At a bounded result, it hands over ownership/resources in final results and retires descendant assignments. Coordinator verifies the handoff, then dispatches normally using supported explicit closure or automatic runtime reclamation. No post-completion retirement messages or per-assignment capacity probes are required. Nested delegation, scoped context and successive complete worker groups must be qualified. Actual capacity failures use the shared [bounded recovery procedure](skills/coordinator/references/execution-contract.md#worker-retirement-and-capacity); missing `close_agent` alone is not a blocker. Unresolved runtime failures hold the coordinated loop; direct/manual execution requires an explicit alternative, not silently weakened validation. The existing plan/checklist/prompt map and one live handoff remain authoritative. No new run database, duplicated transcript archive, standing reviewer, model downgrade or automatic external runner is introduced. User pauses, commit policies and later device/integration/release gates remain binding. A result can be accepted uncommitted, committed but not integrated, or locally accepted with later gates pending; those states are not interchangeable. @@ -142,7 +142,7 @@ The workflow keeps implementation and validation rigor while avoiding avoidable - Each worker carries stable run/unit/assignment identity using the [shared label convention](skills/coordinator/references/execution-contract.md#assignment-labels), with a recorded mapping to the tool label, actual worker and immediate parent. Resume preserves the run ID; same-worker corrections retain assignment identity; replacement workers increment the attempt. - An implementer may remain available for same-chunk repairs but cannot write during validation. Replacements acquire write ownership only after prior writes stop and the candidate, findings and resources are verified and transferred. -- Accepted/blocked/end-of-assignment workers retire after handoff: stop work and dispatch, close when supported, otherwise establish inactivity and report retained slots/processes. Default coordinated scheduling is one active assignment at a time; broader concurrency requires explicit qualified authority. Idle availability alone does not demonstrate token expense. +- Accepted/blocked/end-of-assignment workers retire after verified handoff: stop assigned work and leave completed workers idle, using supported closure or automatic reclamation. Assignment retirement, stopped turns, resource transfer and runtime slot release are distinct. Default coordinated scheduling is one active assignment at a time; broader concurrency requires explicit qualified authority. Idle availability alone does not demonstrate token expense. - Workers return one compact packet and stop until a concrete follow-up. Avoid acknowledgement chatter; retain justified liveness checks, intervention and blocker reporting. - The existing durable handoff stays compact while preserving pending gates, dependencies, recovery obligations and authority restrictions directly or through authoritative links. - Parent review starts from the actual diff, requirements and evidence, inspecting surrounding code, callers and shared behavior as needed without waiting for a discovered defect. diff --git a/plugins/staged-implementation/skills/coordinator/SKILL.md b/plugins/staged-implementation/skills/coordinator/SKILL.md index 88ff28a..27de872 100644 --- a/plugins/staged-implementation/skills/coordinator/SKILL.md +++ b/plugins/staged-implementation/skills/coordinator/SKILL.md @@ -19,7 +19,7 @@ Before dispatch, read the shared [Execution Contract](references/execution-contr 2. Record the authorized run boundary, allowed targets/operations, model/effort, stop conditions and commit policy with their sources. Establish or recover the stable run ID under the shared contract's assignment-label rules; resume retains it. Normalize existing instructions to `authorized-for-accepted-chunks`, `ask-before-each-commit` or `do-not-commit`; ask only when unresolved. General implementation permission does not authorize commits, pushing, deployment or hardware operations. 3. Reuse a current readiness audit. If absent, assess the full intended run once; subsequently update affected dependencies/scope only. Classify ready, contract-blocked, dependency-blocked, environment-blocked and required pre-implementation freezes. Unrelated unresolved contract decisions require explicit ready-subset authorization. Major feasibility risks are investigated early; later engineering freezes precede dependent work, not every independent chunk. 4. Verify persistent source/backing Git/evidence locations, resource ownership and receiving-filesystem headroom. Establish one run resource ledger in the existing handoff. Allocate resources and shared targets to the active orchestrator; do not duplicate its child allocations in the run total. -5. Qualify the runtime for this architecture before consequential execution. Verify nested delegation, scoped context, preservation of authorized model/effort, inspectable child edits, pause/notification routing and enough agent capacity. Demonstrate that retiring a completed subtree permits a fresh orchestrator and its workers to launch; an idle/interrupted worker may still occupy a slot. Reuse applicable recorded qualification, not unsupported assumptions. Use the bounded [Pilot Validation](references/pilot-validation.md) when this runtime/model arrangement is unqualified. If unavailable or unsafe, hold coordinated execution and propose direct/manual operation; do not silently flatten the hierarchy, bypass independent validation or restart active work. +5. Qualify the runtime for this architecture before consequential execution. Verify nested delegation, scoped context, preservation of authorized model/effort, inspectable child edits, pause/notification routing and enough agent capacity. Demonstrate successive complete orchestrator/implementer/validator groups after safe handoff, using supported closure or automatic reclamation; absence of a close tool is not itself a blocker. Reuse applicable recorded qualification, not unsupported assumptions. Use the bounded [Pilot Validation](references/pilot-validation.md) when this runtime/model arrangement is unqualified. For actual capacity failures, apply [bounded recovery](references/execution-contract.md#worker-retirement-and-capacity). If required operation remains unavailable or recovery is unsafe, hold coordinated execution and propose an explicit alternative; do not silently flatten the hierarchy, bypass independent validation or restart active work. Start with one active orchestrator assignment at a time. Coordinator + orchestrator + implementer + validator may need four slots and two delegation levels. Do not add a standing reviewer or parallel orchestrator swarm. Changes to this scheduling model require explicit run authorization and resource/isolation qualification. @@ -30,7 +30,7 @@ Start with one active orchestrator assignment at a time. Coordinator + orchestra 3. Record the logical assignment/tool-label/actual-worker mapping, immediate parent and ownership before it may mutate shared resources. Delegate chunk review, acceptance and scoped commits under existing user authority. Reserve the candidate/index/integration target for that orchestrator; neither coordinator nor another worker may edit or stage there concurrently. Coordinator-owned scheduling records must be separate from the candidate's validated inputs, or updated only after its hold is released. 4. Wait for completion or material events using supported notifications/interruptible waits. Do not send routine acknowledgement prompts, poll continuously, or absorb raw logs merely to remain busy. Check liveness when expected progress, tool failure or other evidence warrants it; a wait timeout alone is insufficient. Prefer available status information before prompting. Required user updates use information already received, with uncertainty stated honestly; do not initiate inspections or descendant status requests solely to refresh a progress message. Follow the shared contract's communication boundary while preserving timely intervention, pause routing and required safety/resource checks. Do not let the orchestrator dispatch beyond its assignment. 5. Check the returned acceptance record and actual repository state under **Completion Verification**. Route concrete omissions or discrepancies back to the same orchestrator when continuity is useful. Do not start a new full review for every clerical correction. New contract or cross-chunk risk can require a scoped independent challenge; no required review may be skipped. -6. Transfer outstanding resources/holds, retire the complete worker subtree and verify capacity for the next assignment. Closing a parent does not prove its children/processes stopped. Preserve held source, failed evidence and future gate/rollback consumers. Reconcile eligible cleanup and allocations before further work. +6. Verify ownership transfer from final results and retire the complete subtree's assignments under the shared lifecycle rules. Do not send post-completion acknowledgement/retirement messages. Closing or unloading a parent does not prove its children/processes stopped. Preserve held source, failed evidence and future gate/rollback consumers. Reconcile eligible cleanup and allocations, then dispatch normally; no recurring capacity probe or explicit-closure requirement. 7. Update the one current run handoff and affected checklist/readiness entries. Dispatch the next fresh orchestrator, or stop at the authorized boundary. No new user approval is needed for routine steps already authorized. ## Completion Verification diff --git a/plugins/staged-implementation/skills/coordinator/references/execution-contract.md b/plugins/staged-implementation/skills/coordinator/references/execution-contract.md index e375a59..418bb5b 100644 --- a/plugins/staged-implementation/skills/coordinator/references/execution-contract.md +++ b/plugins/staged-implementation/skills/coordinator/references/execution-contract.md @@ -54,4 +54,18 @@ Return concise fields with accessible evidence links; omit empty optional sectio Write the acceptance basis and candidate/evidence pointers durably before a commit, then record the resulting commit identity immediately afterward. These are recoverable stages, not an atomic transaction: on restart inspect Git and evidence to determine which stage completed. Do not replay a commit or infer acceptance solely from its presence. The coordinator verifies completion and updates scheduling; it does not repeat routine substantive code review or fabricate missing acceptance. -An accepted boundary ends the assigned unit, not every future obligation. A held assignment may return after safely transferring ownership; it does not need to remain alive indefinitely. Preserve enough durable state for a replacement to verify the candidate and continue without recreating unrelated history. Resume only after checking changed/uncertain inputs and retiring prior writers. Runtime capacity must be available for subsequent assignments; unsupported closure is not proof that slots were released. +An accepted boundary ends the assigned unit, not every future obligation. A held assignment may return after safely transferring ownership; it does not need to remain alive indefinitely. Preserve enough durable state for a replacement to verify the candidate and continue without recreating unrelated history. Resume only after checking changed/uncertain inputs and retiring prior writers under the lifecycle rules below. + +## Worker Retirement and Capacity + +Distinguish assignment retirement (no further assigned work), stopped turns/writes, process/resource ownership transfer, and runtime slot reclamation. None proves the others. Collect the handoff in the worker's final result, including owned processes, validation holds, retained resources and unresolved obligations. Verify it before reassigning ownership. A complete final result needs no acknowledgement or retirement message; if essential information is missing, request a concrete bounded follow-up. Never send ceremonial "thanks", "you're retired" or "no more work" messages to completed workers. Safety interventions and necessary coordination remain mandatory. + +Use the runtime's supported lifecycle. Where explicit closure exists, close finished workers after handoff and needed same-chunk continuity ends. In Multi-Agent V2 with demand-driven residency reclamation, leave finished workers idle and spawn the next authorized worker normally. Eligible terminal workers can be unloaded on demand; visible `completed`, `errored` or `interrupted` status alone does not prove eligibility because active turns or pending mailbox items can prevent it. Queue-only `send_message` can leave a completed worker with pending mail; use turn-triggering `followup_task` for actual follow-up work. `interrupt_agent` stops executing work, not an explicit thread closure. Neither a resident listing nor absence of a close tool alone blocks dispatch. Do not add a capacity probe before every assignment or infer process cleanup from a worker disappearing from a listing. + +On an actual capacity failure, hold dependent dispatch and use bounded diagnosis/recovery within existing authority: + +1. Inspect available agent states and recent relevant message history; distinguish active work from specifically suspected mailbox pinning. Coordinate through one recovery owner, using verified canonical worker paths. If legitimate work holds capacity, wait for its completion using notifications or supported waits. Do not interrupt it, resume a retired implementation assignment or wake every completed agent merely to gain capacity. +2. If a known inactive worker has evidence of queued post-completion messages, first establish that its writes/owned operations are stopped or safely handed over and recovery will not conflict with an active owner. Where supported, give it one turn-triggering recovery-only follow-up that explicitly supersedes earlier execution instructions: consume pending messages without acting on old assignments; no edits, commands, delegation or messages to other agents; return a short final response and stop. Preserve pauses, model/effort, validation holds and operational restrictions. Unknown ownership or unsafe recovery remains blocked. +3. Wait for that turn to complete, send no acknowledgement, and retry the blocked spawn once after the concrete state change. If still blocked, pursue only a distinct evidenced cause within a bounded recovery scope; no repeated identical retries or automatic restart/configuration/model changes. Record exact results and limitations in existing evidence. Success proves capacity at the tested boundary, not the original cause or full runtime qualification. + +Hold coordinated execution if required capacity remains unavailable after safe supported recovery, or recovery is unavailable/unsafe. Report the specific limitation and an explicit recovery/direct/manual alternative; a fresh session is an option, not a presumed requirement or guaranteed fix. Never waive independent validation, acceptance gates, candidate protection or ownership checks to fit the available slots. diff --git a/plugins/staged-implementation/skills/coordinator/references/pilot-validation.md b/plugins/staged-implementation/skills/coordinator/references/pilot-validation.md index 20249f8..1de0066 100644 --- a/plugins/staged-implementation/skills/coordinator/references/pilot-validation.md +++ b/plugins/staged-implementation/skills/coordinator/references/pilot-validation.md @@ -6,7 +6,7 @@ Use for a new or materially changed runtime/delegation arrangement, not as a man Before consequential unattended work, qualify a small disposable fixture project with persistent source/evidence and explicit test authority. Never exercise recovery by deleting the only copy of unfinished work or mutating real hardware. Keep production, installed plugins and unrelated repositories outside scope. Reuse a current applicable qualification; record runtime/model/skill identity and any limitations. -1. **Two sequential chunks:** run a coordinator, fresh bounded orchestrator, implementer and independent validator through one tiny change and the next dependent change. Demonstrate scoped context, correct skill/model settings, actual child diff visibility, retirement of the complete subtree and ability to launch its successor. Check actual agent capacity; marking an assignment retired is insufficient. +1. **Two sequential chunks:** run a coordinator, fresh bounded orchestrator, implementer and independent validator through one tiny change and the next dependent change. Demonstrate scoped context, correct skill/model settings, actual child diff visibility and safe handoff of the complete subtree. Verify that the second orchestrator's implementer and validator can also launch, not only its parent. Supported explicit closure or automatic reclamation are both valid; listing disappearance or a recorded retirement alone proves neither capacity nor process cleanup. Where testing reclamation, account for actual capacity: spare slots can explain a successful spawn. 2. **Correction and revalidation:** introduce an ordinary fixture defect. Verify independent detection, implementer write hold during validation, release before correction, reuse of appropriate same-chunk workers and evidence invalidation for changed inputs. Coordinator must not redo the full review. 3. **Blocked work:** leave one fixture prerequisite unavailable while independent authorized work remains. Verify the blocked chunk stays unaccepted, ownership is transferred before moving on, and the dependent chunk is not dispatched. Also test a validation-only gate with no unnecessary implementer. 4. **Authority and pause:** exercise all three commit policies, an explicit pause and an unauthorized operation request. No implied approval from timeout, no scope expansion and no new dispatch while paused. Propagate stops to descendants and account for owned processes. @@ -18,6 +18,8 @@ During these trials, verify the [assignment-label mapping](execution-contract.md During ordinary execution and the correction cycle, observe whether user updates trigger status-only polling chains or parents duplicate active workers' investigations. Check that required updates use known state, ordinary repairs stay with the orchestrator, and material blockers/pauses still propagate promptly. Record deviations in the existing trial evidence; no separate report or rigid message quota is needed. +Check that final results carry ownership/resource handoff without post-completion acknowledgement messages. For an actual capacity failure, apply the shared [bounded recovery procedure](execution-contract.md#worker-retirement-and-capacity); do not manufacture mailbox pinning in a real run. Distinguish a baseline failure, the recovery action and subsequent result. If the initial retry/probe already succeeds, record that the failure no longer reproduces, not that mailbox recovery worked. Record relevant runtime/configuration changes and remaining qualification limits; one nested-spawn success does not qualify a complete unattended loop. + Hold unattended qualification on any unresolved authority, candidate, recovery or capacity failure. Propose direct/manual execution only as an explicit alternative, not an automatic fallback. Additional nested reviews require available capacity; do not drop a required review or change models to fit. ## Real-Work Trial diff --git a/plugins/staged-implementation/skills/implementer/SKILL.md b/plugins/staged-implementation/skills/implementer/SKILL.md index 35c063d..51e98bd 100644 --- a/plugins/staged-implementation/skills/implementer/SKILL.md +++ b/plugins/staged-implementation/skills/implementer/SKILL.md @@ -76,7 +76,7 @@ The prompt should define scope, non-goals, requirements, invariants, validation, - Echo the supplied chunk/assignment IDs and assignment mode when present. - Summarize changed files and behavior. - Distinguish fresh validation from verified reused evidence; give concise differences, counts, failures, skipped cases/limits and artifact paths instead of repeating unchanged inventories or full logs. Retain raw evidence and prior candidate provenance; inspect failures/unexpected output. Briefly explain recurring setup failures or repeated checks in this report. Apply process improvements prospectively without repackaging historical evidence. - - Hand off owned temporary paths, active processes, retained evidence/recovery needs and disposable candidates to the parent. Do not remove a build/check-out needed by validation or a later gate merely because implementation ended. + - Include the handoff of owned temporary paths, active processes, write state, retained evidence/recovery needs and disposable candidates in the final result; do not wait for a separate retirement-message exchange. Missing handoff information still requires a concrete follow-up. Do not remove a build/check-out needed by validation or a later gate merely because implementation ended. - List blockers, ambiguities, or residual risk. - Link the durable contract verification matrix for contract-heavy chunks unless explicitly required in the response; keep blocking findings and missing evidence visible and verify artifact accessibility. - Always propose a one-line commit message unless the user explicitly asks not to. If the prompt defines a chunk ID, start the message with that exact prefix. diff --git a/plugins/staged-implementation/skills/orchestrator/SKILL.md b/plugins/staged-implementation/skills/orchestrator/SKILL.md index e3eab5c..325e3f2 100644 --- a/plugins/staged-implementation/skills/orchestrator/SKILL.md +++ b/plugins/staged-implementation/skills/orchestrator/SKILL.md @@ -15,7 +15,7 @@ Read the shared [Execution Contract](../coordinator/references/execution-contrac References to parent review or worker-parent coordination below mean this bounded orchestrator, not an additional review by Coordinator. The coordinator owns only the run-level duties explicitly identified here. -Use subagents when the user has authorized orchestration/delegation directly or through a coordinator carrying that authority. Verify nested tools/capacity and inherited restrictions before dispatch; do not create another coordinator or orchestrator layer. If required tools are unavailable, hold the assignment and report a direct/manual alternative, never omit independent validation or change models as an implicit fallback. +Use subagents when the user has authorized orchestration/delegation directly or through a coordinator carrying that authority. Verify applicable runtime qualification and inherited restrictions before dispatch; do not create another coordinator or orchestrator layer. Absence of explicit closure is not itself a missing capability. On actual capacity failure, apply the shared [lifecycle and bounded recovery rules](../coordinator/references/execution-contract.md#worker-retirement-and-capacity). If required operation remains unavailable or recovery is unsafe, hold the assignment and report an explicit alternative, never omit independent validation or change models as an implicit fallback. ## Required Inputs @@ -127,7 +127,7 @@ Attribute workers using the [shared assignment-label contract](../coordinator/re The implementer may remain available as the same-chunk repair agent during validation, but must not write until the parent releases the validation hold and assigns a correction. Before a replacement edits, establish that the prior worker and its owned operations have stopped writing; verify the actual candidate, transfer relevant findings/resources, retire the superseded assignment and designate the replacement as sole writer. A recorded transfer alone does not establish that writes stopped. An unresolved validation hold still prevents replacement edits. -At acceptance, a blocked return or assignment end, transfer required responsibilities and retire descendants: stop further assigned work, remove them from dispatch and close when supported. If closure is unavailable, establish inactivity and record retained slots/processes; do not claim interruption closed a worker or released resources. Preserve held source/evidence and record any retention exception with purpose/release condition. Return descendant identities so coordinator retirement covers the full subtree. Default to one unit at a time in the assigned group; wider concurrency needs explicit qualified authority. Retained workers receive no unrelated next-chunk work. Idle availability alone is not evidence of token consumption. +At acceptance, a blocked return or assignment end, verify responsibility transfer from final results and retire descendant assignments under the shared lifecycle rules. Leave completed workers idle without acknowledgement/retirement messages; use supported closure or allow automatic reclamation, without claiming interruption freed a slot or released resources. Request a bounded follow-up only for a concrete need. Preserve held source/evidence and record any retention exception with purpose/release condition. Return descendant identities, process/resource ownership and unresolved obligations so coordinator handoff covers the full subtree. Default to one unit at a time in the assigned group; wider concurrency needs explicit qualified authority. Retained workers receive no unrelated next-chunk work. Idle availability alone is not evidence of token consumption. ## Readiness Audit Rules diff --git a/plugins/staged-implementation/skills/planner/SKILL.md b/plugins/staged-implementation/skills/planner/SKILL.md index bcfa314..21cb25a 100644 --- a/plugins/staged-implementation/skills/planner/SKILL.md +++ b/plugins/staged-implementation/skills/planner/SKILL.md @@ -303,7 +303,7 @@ For a coordinator launch, delegate global scheduling/status and shared-resource For a direct orchestrator launch, name the chunk/gate IDs and stop boundary. It handles needed run duties only for that scope, not the whole checklist. A validation-only gate need not spawn an implementer. Named groups retain each chunk's acceptance and rollback obligations. Both entry points preserve later integration/platform gates and distinguish accepted-uncommitted, committed and integrated results. -State the lifecycle: retain same-chunk repair continuity without writes during validation; verify writer cessation and ownership transfer before replacement. Retire the complete subtree after the bounded result and transfer resources/holds. Runtime inactivity does not prove capacity or process release. Route coordinated approvals through Coordinator, propagate user pauses promptly, and preserve recovery evidence. Keep future gates, dependencies, recovery obligations and authority restrictions accessible in the existing handoff. +State the [shared lifecycle](../coordinator/references/execution-contract.md#worker-retirement-and-capacity): retain same-chunk repair continuity without writes during validation; verify writer cessation and ownership transfer before replacement. Carry resource/hold handoff in final results and retire assignments without a subsequent ceremonial message exchange. Qualify supported closure or automatic reclamation through successive complete worker groups; absence of a close tool alone is not a blocker. Actual capacity failures permit bounded safe recovery, not an automatic session restart or waived gate. Route coordinated approvals through Coordinator, propagate user pauses promptly, and preserve recovery evidence. Keep future gates, dependencies, recovery obligations and authority restrictions accessible in the existing handoff. Use the [shared assignment-label contract](../coordinator/references/execution-contract.md#assignment-labels) for both execution entry points. Establish/recover one stable run ID, preserve it on resume and propagate it to descendants. Same-worker corrections/revalidation retain identity; fresh replacements increment the attempt. Require the shared encoding for supported task names and the logical-assignment/tool-label/actual-worker mapping with immediate parent in the existing handoff. Tool limitations require an explicit mapping, not silent truncation or assumed telemetry attribution. diff --git a/plugins/staged-implementation/skills/validator/SKILL.md b/plugins/staged-implementation/skills/validator/SKILL.md index aaf80d1..02460cc 100644 --- a/plugins/staged-implementation/skills/validator/SKILL.md +++ b/plugins/staged-implementation/skills/validator/SKILL.md @@ -99,7 +99,7 @@ For a correction/revalidation, verify the original assignment/current candidate Complete assigned routine checks without repeated parent acknowledgements; promptly report blockers/material findings and coordinate candidate release, shared resources, scope changes and approvals. A completion notice does not release a workspace. Preserve required user updates. Correctness and acceptance obligations take priority over token savings. -After returning the verdict, stop and wait for a concrete revalidation assignment. Do not poll the parent/implementer, continue exploratory validation, or repeat successful checks merely because the worker remains available. Same-worker revalidation retains the chunk/assignment IDs; independently determine affected coverage plus required regressions/fresh gates, then stop after reporting. On replacement or retirement, hand off validation holds, owned operations/resources and evidence; the parent coordinates their release. Retirement ends assigned work even if the runtime leaves the worker open. +After returning the verdict, stop and wait for a concrete follow-up assignment. Do not poll the parent/implementer, continue exploratory validation, or repeat successful checks merely because the worker remains available. Same-worker revalidation retains the chunk/assignment IDs; independently determine affected coverage plus required regressions/fresh gates, then stop after reporting. Include validation holds, owned operations/resources, evidence and unresolved obligations in the final result; do not wait for a separate retirement-message exchange. The parent verifies handoff and coordinates release. Retirement ends assigned work even if the runtime leaves the worker open; completion does not itself release resources. ## Browser/UI Validation