codex-workflow-v2 2.0.0-beta.13.9 → 2.0.0-beta.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -388
- package/dist/reviewer-runtime-build.json +89 -29
- package/dist/src/alpha6/adoption.d.ts +2 -0
- package/dist/src/alpha6/adoption.js +22 -0
- package/dist/src/alpha6/adoption.js.map +1 -1
- package/dist/src/alpha6/captured-check-evidence.d.ts +51 -0
- package/dist/src/alpha6/captured-check-evidence.js +152 -0
- package/dist/src/alpha6/captured-check-evidence.js.map +1 -0
- package/dist/src/alpha6/component-owner.d.ts +15 -1
- package/dist/src/alpha6/component-owner.js +44 -2
- package/dist/src/alpha6/component-owner.js.map +1 -1
- package/dist/src/alpha6/corrective-decision-boundary.d.ts +4 -0
- package/dist/src/alpha6/corrective-decision-boundary.js +47 -0
- package/dist/src/alpha6/corrective-decision-boundary.js.map +1 -0
- package/dist/src/alpha6/downstream-proof.d.ts +1 -25
- package/dist/src/alpha6/downstream-proof.js +0 -171
- package/dist/src/alpha6/downstream-proof.js.map +1 -1
- package/dist/src/alpha6/literal-test-invocation.d.ts +2 -0
- package/dist/src/alpha6/literal-test-invocation.js +106 -0
- package/dist/src/alpha6/literal-test-invocation.js.map +1 -0
- package/dist/src/alpha6/milestone.d.ts +2 -0
- package/dist/src/alpha6/milestone.js +10 -1
- package/dist/src/alpha6/milestone.js.map +1 -1
- package/dist/src/alpha6/navigation-dirty-carryover.d.ts +11 -0
- package/dist/src/alpha6/navigation-dirty-carryover.js +130 -0
- package/dist/src/alpha6/navigation-dirty-carryover.js.map +1 -0
- package/dist/src/alpha6/plan-integrity.js +7 -5
- package/dist/src/alpha6/plan-integrity.js.map +1 -1
- package/dist/src/alpha6/remediation.d.ts +6 -21
- package/dist/src/alpha6/remediation.js +161 -476
- package/dist/src/alpha6/remediation.js.map +1 -1
- package/dist/src/alpha6/root-cause-replan-carryover.d.ts +4 -1
- package/dist/src/alpha6/root-cause-replan-carryover.js +29 -5
- package/dist/src/alpha6/root-cause-replan-carryover.js.map +1 -1
- package/dist/src/beta1/project-transaction.d.ts +3 -1
- package/dist/src/beta1/project-transaction.js +6 -2
- package/dist/src/beta1/project-transaction.js.map +1 -1
- package/dist/src/checks/runner.d.ts +26 -0
- package/dist/src/checks/runner.js +223 -0
- package/dist/src/checks/runner.js.map +1 -0
- package/dist/src/checks/task-sync.d.ts +10 -0
- package/dist/src/checks/task-sync.js +41 -0
- package/dist/src/checks/task-sync.js.map +1 -0
- package/dist/src/checks/worker.d.ts +1 -0
- package/dist/src/checks/worker.js +154 -0
- package/dist/src/checks/worker.js.map +1 -0
- package/dist/src/cli-actions.d.ts +2 -2
- package/dist/src/cli-actions.js +3 -15
- package/dist/src/cli-actions.js.map +1 -1
- package/dist/src/cli.js +14 -98
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +35 -32
- package/dist/src/dependency-provenance.d.ts +2 -2
- package/dist/src/dependency-provenance.js +12 -69
- package/dist/src/dependency-provenance.js.map +1 -1
- package/dist/src/domain/base-sync-conflict.d.ts +13 -0
- package/dist/src/domain/base-sync-conflict.js +32 -0
- package/dist/src/domain/base-sync-conflict.js.map +1 -0
- package/dist/src/domain/step-start-admission.d.ts +4 -0
- package/dist/src/domain/step-start-admission.js +9 -0
- package/dist/src/domain/step-start-admission.js.map +1 -0
- package/dist/src/domain/virgin-registration.d.ts +3 -0
- package/dist/src/domain/virgin-registration.js +65 -0
- package/dist/src/domain/virgin-registration.js.map +1 -0
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/gateway-handshake.js +0 -8
- package/dist/src/gateway-handshake.js.map +1 -1
- package/dist/src/git.d.ts +3 -1
- package/dist/src/git.js +41 -14
- package/dist/src/git.js.map +1 -1
- package/dist/src/graph.js +25 -3
- package/dist/src/graph.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/navigation-actions.d.ts +9 -0
- package/dist/src/navigation-actions.js +72 -0
- package/dist/src/navigation-actions.js.map +1 -0
- package/dist/src/navigation-update-artifact.d.ts +5 -0
- package/dist/src/navigation-update-artifact.js +227 -0
- package/dist/src/navigation-update-artifact.js.map +1 -0
- package/dist/src/navigation-update.d.ts +39 -0
- package/dist/src/navigation-update.js +82 -0
- package/dist/src/navigation-update.js.map +1 -0
- package/dist/src/observation.js +52 -29
- package/dist/src/observation.js.map +1 -1
- package/dist/src/observed-routes.js +5 -6
- package/dist/src/observed-routes.js.map +1 -1
- package/dist/src/pending-review-update.d.ts +0 -13
- package/dist/src/pending-review-update.js +1 -6
- package/dist/src/pending-review-update.js.map +1 -1
- package/dist/src/reviewer.d.ts +1 -1
- package/dist/src/reviewer.js +20 -17
- package/dist/src/reviewer.js.map +1 -1
- package/dist/src/runtime.d.ts +3 -0
- package/dist/src/runtime.js +6 -0
- package/dist/src/runtime.js.map +1 -0
- package/dist/src/state/corrective-replan-executor.d.ts +10 -0
- package/dist/src/state/corrective-replan-executor.js +37 -1
- package/dist/src/state/corrective-replan-executor.js.map +1 -1
- package/dist/src/state/corrective-replan-public-schema.js +15 -2
- package/dist/src/state/corrective-replan-public-schema.js.map +1 -1
- package/dist/src/state/corrective-replan-public.js +1 -1
- package/dist/src/state/corrective-replan-public.js.map +1 -1
- package/dist/src/state/corrective-replan-transaction.d.ts +1 -0
- package/dist/src/state/corrective-replan-transaction.js +12 -11
- package/dist/src/state/corrective-replan-transaction.js.map +1 -1
- package/dist/src/state/corrective-yield-transaction.d.ts +1 -0
- package/dist/src/state/corrective-yield-transaction.js +11 -10
- package/dist/src/state/corrective-yield-transaction.js.map +1 -1
- package/dist/src/state/lock.d.ts +4 -0
- package/dist/src/state/lock.js +21 -0
- package/dist/src/state/lock.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/dist/src/workflow-blocker-route.d.ts +8 -0
- package/dist/src/workflow-blocker-route.js +106 -0
- package/dist/src/workflow-blocker-route.js.map +1 -0
- package/dist/src/workflow.d.ts +48 -63
- package/dist/src/workflow.js +666 -1460
- package/dist/src/workflow.js.map +1 -1
- package/docs/autonomy-guardrails.md +26 -304
- package/docs/decisions.md +14 -112
- package/docs/development-flow.md +35 -238
- package/docs/project-memory.md +31 -50
- package/docs/release-app-evidence.md +190 -0
- package/docs/release.md +95 -388
- package/docs/updating-existing-project.md +19 -717
- package/package.json +11 -13
- package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +2 -2
- package/plugins/codex-workflow-gateway/references/chat-dispatch.md +73 -197
- package/plugins/codex-workflow-gateway/references/codebase-memory-routing.md +57 -0
- package/plugins/codex-workflow-gateway/references/protocol.md +42 -445
- package/plugins/codex-workflow-gateway/scripts/chat-dispatch.mjs +7 -1
- package/plugins/codex-workflow-gateway/scripts/chat-model-policy.mjs +10 -8
- package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +23 -5
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +66 -757
- package/references/state-machine.md +4 -4
- package/roles/technical-planner.md +1 -1
- package/schemas/corrective-decision-event.schema.json +3 -1
- package/schemas/project-knowledge-map.schema.json +3 -1
- package/schemas/remediation-event.schema.json +10 -1
- package/schemas/task.schema.json +46 -2
- package/schemas/transition-payloads.schema.json +16 -1
- package/src/alpha6/adoption.ts +1123 -0
- package/src/alpha6/captured-check-evidence.ts +132 -0
- package/src/alpha6/check-support-anchor.ts +128 -0
- package/src/alpha6/component-owner.ts +168 -0
- package/src/alpha6/corrective-decision-boundary.ts +39 -0
- package/src/alpha6/downstream-proof.ts +520 -0
- package/src/alpha6/failed-step-planning-recovery.ts +88 -0
- package/src/alpha6/handoff.ts +1443 -0
- package/src/alpha6/journal.ts +473 -0
- package/src/alpha6/literal-test-invocation.ts +84 -0
- package/src/alpha6/mechanical-feasibility.ts +488 -0
- package/src/alpha6/milestone.ts +2192 -0
- package/src/alpha6/navigation-dirty-carryover.ts +154 -0
- package/src/alpha6/npm-check-contract.ts +47 -0
- package/src/alpha6/plan-integrity.ts +298 -0
- package/src/alpha6/plan-risk.ts +1480 -0
- package/src/alpha6/preexecution-replan.ts +187 -0
- package/src/alpha6/remediation-cause.ts +98 -0
- package/src/alpha6/remediation.ts +2438 -0
- package/src/alpha6/review.ts +1198 -0
- package/src/alpha6/root-cause-replan-carryover.ts +491 -0
- package/src/alpha6/store-sidecars.ts +335 -0
- package/src/alpha7/autonomy.ts +411 -0
- package/src/alpha7/corrective-recovery.ts +1332 -0
- package/src/artifacts.ts +130 -0
- package/src/beta1/project-transaction.ts +355 -0
- package/src/change-explanation.ts +153 -0
- package/src/checks/runner.ts +245 -0
- package/src/checks/task-sync.ts +41 -0
- package/src/checks/worker.ts +149 -0
- package/src/cli-actions.ts +107 -0
- package/src/cli.ts +1457 -0
- package/src/contracts.ts +1494 -0
- package/src/credential-output.ts +89 -0
- package/src/credential-transport.ts +215 -0
- package/src/delegation.ts +190 -0
- package/src/dependency-provenance.ts +472 -0
- package/src/diagnostics.ts +93 -0
- package/src/domain/base-sync-conflict.ts +35 -0
- package/src/domain/completed-step-carryover.ts +76 -0
- package/src/domain/discovery.ts +27 -0
- package/src/domain/plan-semantics.ts +58 -0
- package/src/domain/step-start-admission.ts +10 -0
- package/src/domain/validation.ts +177 -0
- package/src/domain/virgin-registration.ts +46 -0
- package/src/errors.ts +24 -0
- package/src/fs-utils.ts +61 -0
- package/src/gateway-handshake.ts +95 -0
- package/src/git.ts +183 -0
- package/src/graph.ts +342 -0
- package/src/historical-step-provenance.ts +136 -0
- package/src/index.ts +23 -0
- package/src/lifecycle/canonical-hash.ts +28 -0
- package/src/lifecycle/catalog.ts +202 -0
- package/src/lifecycle/compiler-inspection.ts +29 -0
- package/src/lifecycle/core-static-readiness.ts +132 -0
- package/src/lifecycle/corrective-replan-authority.ts +136 -0
- package/src/lifecycle/corrective-replan-binding-manifest.ts +51 -0
- package/src/lifecycle/corrective-replan-credential-core.ts +408 -0
- package/src/lifecycle/corrective-replan-credential-schema.ts +54 -0
- package/src/lifecycle/corrective-replan-credentials.ts +48 -0
- package/src/lifecycle/corrective-replan.ts +843 -0
- package/src/lifecycle/evaluator.ts +48 -0
- package/src/lifecycle/fingerprint.ts +488 -0
- package/src/lifecycle/immutable.ts +8 -0
- package/src/lifecycle/implementation-table.ts +118 -0
- package/src/lifecycle/index.ts +8 -0
- package/src/lifecycle/schema-artifact.ts +263 -0
- package/src/lifecycle/semantic-registry.ts +572 -0
- package/src/lifecycle/types.ts +838 -0
- package/src/memory.ts +273 -0
- package/src/migration.ts +161 -0
- package/src/navigation-actions.ts +70 -0
- package/src/navigation-update-artifact.ts +198 -0
- package/src/navigation-update.ts +121 -0
- package/src/observation.ts +225 -0
- package/src/observed-routes.ts +660 -0
- package/src/operational-contract.ts +125 -0
- package/src/pending-review-update.ts +175 -0
- package/src/repository.ts +99 -0
- package/src/reviewer.ts +1879 -0
- package/src/runtime.ts +6 -0
- package/src/state/corrective-replan-executor.ts +818 -0
- package/src/state/corrective-replan-public-schema.ts +83 -0
- package/src/state/corrective-replan-public.ts +908 -0
- package/src/state/corrective-replan-transaction.ts +949 -0
- package/src/state/corrective-yield-executor.ts +327 -0
- package/src/state/corrective-yield-transaction.ts +730 -0
- package/src/state/lock.ts +902 -0
- package/src/state/store.ts +567 -0
- package/src/transition-core.ts +330 -0
- package/src/ulid.ts +24 -0
- package/src/version.ts +2 -0
- package/src/workflow-blocker-route.ts +109 -0
- package/src/workflow.ts +10172 -0
- package/docs/alpha7.1-implementation-brief.md +0 -268
- package/docs/alpha7.2-corrective-context-refresh-brief.md +0 -484
- package/docs/alpha7.2.1-remediation-recovery-brief.md +0 -86
- package/docs/beta1-stabilization-brief.md +0 -165
- package/docs/beta11-plan-integrity-recovery-brief.md +0 -38
- package/docs/beta13.2-signal-review-recovery.md +0 -38
- package/docs/beta2-initial-assembly-navigation-brief.md +0 -616
- package/docs/change-model.md +0 -118
- package/docs/delegated-approval.md +0 -254
- package/docs/lifecycle/state-machine-stabilization.md +0 -641
- package/docs/pdf/README.md +0 -24
- package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
- package/docs/pdf/requirements.txt +0 -1
- package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +0 -478
- package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +0 -506
- package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +0 -778
- package/docs/pending-review-update.md +0 -15
- package/docs/problem-briefs/01-pre-implementation-integrity.md +0 -482
- package/docs/problem-briefs/02-minimal-step-integrity.md +0 -411
- package/docs/problem-briefs/03-minimal-agent-context-integrity.md +0 -358
- package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +0 -573
- package/docs/problem-briefs/BRIEF-TEMPLATE.md +0 -56
- package/docs/problem-briefs/README.md +0 -120
- package/docs/problem-briefs/evidence/p01-mechanical-feasibility-corpus.md +0 -90
- package/docs/problem-briefs/evidence/signal-v4-pre-m3-replay.md +0 -246
- package/docs/split-required-recovery.md +0 -47
- package/docs/stable-release-defect-register.md +0 -730
- package/docs/validation-report.md +0 -182
- package/scripts/generate-pdf-docs.py +0 -524
- package/scripts/run-pdf-docs.mjs +0 -62
|
@@ -1,321 +1,43 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Current autonomy and recovery guardrails
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Alpha.7 adds no persistent canonical entity fields and keeps `stateSchemaVersion: 2`.
|
|
3
|
+
## Approval and independent evidence
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
Human approval is the default. A principal can issue an expiring grant to a distinct delegate after confirming its exact code in a later message. Only the current scope and enumerated transition are delegated. Events retain principal, delegate and policy hash; expired, revoked, mismatched or expanded authority is rejected.
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
bound to the current Brief, Plan, and approved Knowledge Map. This is mandatory even when all
|
|
10
|
-
Steps are unguarded and the decision is `approved`.
|
|
7
|
+
The grant allow-list covers Knowledge approval, Task execution/final acceptance and Milestone execution/final acceptance. A full Milestone autonomy contract additionally permits membership-only evolution and Knowledge approval inside an eligible atomic Task context refresh. It never permits standalone Knowledge approval, arbitrary semantic changes, grant expansion or self-renewal. Use only the eligible option returned by the same fresh `next` response. Ordinary writer actions do not consume approval grants.
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
Every Plan requires an independent Risk Audit. Guarded risks include persistence changes, concurrency, crash/restart/replay, providers, composition and security boundaries. Each classified failure mode names a hostile counterexample, expected safe result and exact executable evidence. Unsupported or missing proof is not success.
|
|
13
10
|
|
|
14
|
-
-
|
|
15
|
-
- `decision`: `approved`, `approved-with-rationale`, `split-required`, or `stop-escalate`
|
|
16
|
-
- per-Step guarded categories, concrete `failureModes`, and `reviewRequired`
|
|
17
|
-
- `requiredEvidence` entries that exactly match executable checks in that Step
|
|
18
|
-
- one proof obligation per guarded failure mode, with a hostile counterexample, expected safe
|
|
19
|
-
result, and evidence that exactly matches `requiredEvidence`
|
|
20
|
-
- `splitRationale` when migration is intentionally coupled to recovery or runtime composition
|
|
11
|
+
Strict Step and final Task reviews must be independent of the Worker and coordinator. Follow the mode and packet command returned by Core. External-sealed review uses the complete closed envelope with packet/repository hashes, reviewer task identity, mode and nested review. Changed seals invalidate the result. Native reviewer launch failure is `unverified`, not a semantic failure that creates remediation authority.
|
|
21
12
|
|
|
22
|
-
|
|
23
|
-
and self-contradictory classifications. `split-required` and `stop-escalate` block execution
|
|
24
|
-
authorization. The sidecar, not informal Plan prose, is
|
|
25
|
-
the source of truth for which Steps require strict review.
|
|
13
|
+
## Current recovery
|
|
26
14
|
|
|
27
|
-
|
|
15
|
+
| Boundary | Allowed continuation | Preserved invariant |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| Ordinary failed check/review | Same-Step or same-Task fix and fresh checks/review | Failure count creates no approval or arbitrary stop |
|
|
18
|
+
| Proven Plan obstruction | Independent corrective evidence and advertised replan | Objective, requirements, acceptance and completed evidence remain bound |
|
|
19
|
+
| Mechanically impossible check | Exact `task plan-integrity-recover` route | No synthetic second failure and no arbitrary scope widening |
|
|
20
|
+
| Active downstream proof touches predecessor-owned paths | `task downstream-proof-recover`, then current planning | Preserve product bytes/HEAD; invalidate only proven predecessor authority |
|
|
21
|
+
| Knowledge-only drift | Current rebind or eligible atomic context refresh | No semantic Plan rewrite, implicit grant or writer replacement |
|
|
22
|
+
| Pending transaction | Exact advertised recovery | Replay/rollback and readback preserve one coherent state |
|
|
23
|
+
| Explicit structural split | Report the current unsupported boundary | No manual topology rewrite or disabled replacement invocation |
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
capability rather than by an implementation defect inside the Task. Beta.12.10 handles only this
|
|
31
|
-
shape without a new human approval. Repository `next` first requires one ordinary Discovery whose
|
|
32
|
-
facts, scope, constraints, and acceptance describe the exact missing capability. When ready, it
|
|
33
|
-
advertises `milestone remediation-materialize` with the blocked Task/Milestone revisions, audit
|
|
34
|
-
binding, and required predecessor frontier.
|
|
25
|
+
Check-support recovery derives its scope from the actual failed check and exact support path. Dirty files must remain inside the proven boundary and outside forbidden scope. Core owns completion and review; the added path never authorizes adjacent files.
|
|
35
26
|
|
|
36
|
-
|
|
37
|
-
replacement Milestone outcome, success signal, acceptance, checks, or arbitrary membership graph.
|
|
38
|
-
Core appends one required Task, copies the blocked Task's exact direct predecessor frontier, adds
|
|
39
|
-
the remediation Task as one new dependency of the blocked Task, and changes nothing else. It runs
|
|
40
|
-
under an idle, clean observation boundary and records one hash-chained `audited-remediation`
|
|
41
|
-
scope-change event. Reuse of the same Plan Risk Audit is rejected.
|
|
27
|
+
Retained dirty carryover admits a newly planned replacement start only when current Step ownership and the recorded HEAD/path/content bindings match. A failed retry uses its current effective scope. Historical carryover is not new authority to reinterpret a failed Step. Tampered evidence and unrelated dirty paths remain blockers.
|
|
42
28
|
|
|
43
|
-
|
|
44
|
-
`corrective-derived` Milestone execution authorization. While that authority remains current,
|
|
45
|
-
`next.correctiveDerivedApproval` may authorize and finally accept required Tasks using the exact
|
|
46
|
-
derived actor, without a human or delegation grant. This does not bypass Plan Risk Audit,
|
|
47
|
-
mechanical feasibility, C1 handoff, Step checks/commits, strict review, Task review, dependency
|
|
48
|
-
runnability, clean-Git requirements, or final Milestone acceptance. Any later arbitrary scope
|
|
49
|
-
change supersedes this authority.
|
|
29
|
+
For current native check failures started without a C1 claim, Core records the verified execution actor and the historical no-C1 boundary in the failure evidence. A repeated-cause replacement retains those exact bytes only after a fresh claim by that actor and the normal Plan, audit and authorization checks. This is not a fabricated yield or a repair of histories that lack the receipt.
|
|
50
30
|
|
|
51
|
-
|
|
31
|
+
A started failed Task retains its claimant through corrective yield, planning and credential recovery. Knowledge refresh does not issue a writer credential or resolve a semantic Plan conflict. Current `next` and the executor must use the same admission conditions at these intersections.
|
|
52
32
|
|
|
53
|
-
-
|
|
54
|
-
- concurrent ownership, queues, cursors, compare-and-swap, or locking;
|
|
55
|
-
- restart, replay, recovery, or crash windows;
|
|
56
|
-
- external provider lifecycle, hidden retries, defaults, timeouts, or error mapping;
|
|
57
|
-
- runtime composition boundaries, security boundaries, auth/secrets, and irreversible execution.
|
|
33
|
+
An unstarted required Task with a current blocking audit may use the advertised audited-remediation route: append one upstream Task, preserve the merged predecessor frontier and Milestone semantics, merge that Task, then replan the original. This is not arbitrary Task replacement. Derived Task approval never bypasses checks, independent review or final Milestone acceptance.
|
|
58
34
|
|
|
59
|
-
|
|
60
|
-
populated forward-upgrade scenario, not only a clean bootstrap. Concurrent state needs
|
|
61
|
-
deterministic race tests. Recovery needs restart and crash-window evidence. Provider work
|
|
62
|
-
needs failure injection and verification of provider defaults. When persistence migration,
|
|
63
|
-
recovery orchestration, and executable composition form independently verifiable failure
|
|
64
|
-
boundaries, they are separate Tasks rather than one oversized Task.
|
|
35
|
+
Existing append-only history remains verifiable. Readers of already recorded events do not authorize new execution of retired package-version repair procedures. No old-version runner or source-specific update recipe is supported.
|
|
65
36
|
|
|
66
|
-
|
|
67
|
-
non-`skipped` Steps recorded at the adoption boundary.
|
|
37
|
+
## Ownership and stopping
|
|
68
38
|
|
|
69
|
-
|
|
39
|
+
Claim and writer credentials use local credential references bound to project, entity, action and actor. Do not pass raw bearer tokens in CLI arguments, prompts or evidence. A pending claim blocks competing execution; a claimed Task keeps its exact actor. Handoff evidence alone does not prove a physically independent reviewer.
|
|
70
40
|
|
|
71
|
-
|
|
72
|
-
creates the workflow-owned commit, but the Step stays non-terminal and `next` routes to
|
|
73
|
-
`task step-review`. Canonical completion is recorded only after the strict review and the
|
|
74
|
-
reviewer attestation both bind to that exact completion commit.
|
|
75
|
-
When `next` advertises `task step-review`, pass the exact claimant or required actor as
|
|
76
|
-
`--actor`; the isolated reviewer identity is created inside Core and must not be substituted
|
|
77
|
-
into the mutation actor slot.
|
|
41
|
+
A real confirmation gate requires the displayed state and a later exact user response unless a current eligible delegation already authorizes it. Scope changes retain their own consent. Infrastructure denial is not a Workflow grant failure; report its real layer and use only authorized recovery. Never restart services or change product checks to conceal an access failure.
|
|
78
42
|
|
|
79
|
-
|
|
80
|
-
normal continuation when review evidence is malformed, unverified, or commit-mismatched.
|
|
81
|
-
|
|
82
|
-
## Repeated failed review and continuable remediation
|
|
83
|
-
|
|
84
|
-
A failed final Task review returns the same Task to `needs_fix` and requires a changed or new
|
|
85
|
-
remediation Step. The failed-review count is diagnostic evidence, not a lifecycle limit: another
|
|
86
|
-
Plan does not require a separate corrective Plan Auditor merely because two or more reviews failed.
|
|
87
|
-
Every replacement Plan must preserve the Task objective, requirements, and acceptance; changing
|
|
88
|
-
those commitments requires an explicit scope decision outside ordinary remediation.
|
|
89
|
-
|
|
90
|
-
For guarded Steps, every failed review is recorded in `remediation-events.jsonl`. Attempts one and
|
|
91
|
-
two retain mode `ordinary`; later attempts use mode `corrective`, but the mode does not impose a
|
|
92
|
-
maximum attempt ordinal. `next` continues to return `task run` for the same failed Step, and every
|
|
93
|
-
new completion still requires a fresh strict review bound to its exact commit. Therefore repeated
|
|
94
|
-
fixes cannot create an approval, while a fourth, tenth, or later reviewed attempt remains possible.
|
|
95
|
-
|
|
96
|
-
Each failed review finding may carry `route: fix` or `route: replan`. `fix` is the backward-compatible
|
|
97
|
-
default. `replan` is accepted only with `planConflict.planClause`, `whyFixCannotFit`, and
|
|
98
|
-
`minimalPlanChange`; Core retains that evidence in the hash-chained Step-review event and routes
|
|
99
|
-
the failed Step to `task plan-set`. Replan may change implementation Steps only. Explicit historical
|
|
100
|
-
`continue-fix`, `replan-required`, `split-required`, and `stop-escalate` decisions remain readable;
|
|
101
|
-
an explicit split or stop still outranks ordinary execution except for the narrow beta.11
|
|
102
|
-
attempt-four stop compatibility route below.
|
|
103
|
-
|
|
104
|
-
### Human-confirmed beta.11 attempt-four stop compatibility
|
|
105
|
-
|
|
106
|
-
Beta.12.1 can resume one historical shape that beta.11 stopped mechanically: the same failed
|
|
107
|
-
guarded Step has exactly two `ordinary` remediation events, one `corrective` third event, an exact
|
|
108
|
-
attempt-3 `continue-fix` decision, and an attempt-4 `stop-escalate` decision under the unchanged
|
|
109
|
-
Plan. Fresh `next` advertises `task stop-override-prepare` only for that shape and only on a clean
|
|
110
|
-
local Task branch with no Step in progress, writer lease, Task transaction, or Core operation.
|
|
111
|
-
|
|
112
|
-
Preparation is read-only and binds Task revision, Step, both corrective decisions, all three
|
|
113
|
-
remediation events, Plan hash, Git HEAD, package version, actor, and reason to an `SOO-*`
|
|
114
|
-
confirmation code. In a later explicit user turn, invoke `task stop-override-apply` with the same
|
|
115
|
-
inputs and code. Apply appends `stop-escalate-overrides.jsonl`; it never deletes or rewrites the
|
|
116
|
-
original stop. A stale binding, wrong code, duplicate/conflicting override, or damaged hash chain
|
|
117
|
-
fails before continuation. Delegation is not accepted for this Human gate.
|
|
118
|
-
|
|
119
|
-
This is not a general stop reversal. It does not apply to `split-required`, semantic Plan drift, a
|
|
120
|
-
different attempt ordinal, missing attempt-3 continue authority, or an agent-authored semantic stop
|
|
121
|
-
outside the beta.11 policy shape. After a valid append, attempt four returns to the normal `task run`
|
|
122
|
-
then strict-review cycle; review quality and all later corrective decisions remain unchanged.
|
|
123
|
-
|
|
124
|
-
Beta.12.4 also handles the case where the accepted third attempt changed approved Project Knowledge
|
|
125
|
-
and package self-updates added later refreshes: the already-applied override may be followed by one
|
|
126
|
-
or more ordinary delegated `task context-refresh` transitions before attempt four starts. A fresh
|
|
127
|
-
`next` resumes `task run` only when Core can prove all of the following together: the same exact
|
|
128
|
-
three-event remediation history and stop override remain hash-valid; every adjacent Plan differs
|
|
129
|
-
only in its canonical Knowledge Map binding line; the Knowledge rebinds and mechanical Plan Risk
|
|
130
|
-
Audit rebounds form one contiguous source-to-current chain; and the refreshed approval plus current
|
|
131
|
-
execution authorization share the valid delegated authority. If Git HEAD advanced, every
|
|
132
|
-
intervening commit must have one exact registered dependency-provenance recovery, one parent, a
|
|
133
|
-
`systemCommits` binding, and exactly the `package.json`/`package-lock.json` diff. The proof is derived
|
|
134
|
-
from existing append-only evidence, so this route does not create a second recovery journal.
|
|
135
|
-
Missing evidence, semantic Plan change, an unregistered/product commit, a broken chain, or damaged
|
|
136
|
-
chronology routes to `doctor` rather than weakening the generic two-attempt corrective recovery gate.
|
|
137
|
-
|
|
138
|
-
If fresh navigation performs the final content refresh before the matching dependency-provenance
|
|
139
|
-
recovery, that later administrative recovery may advance the Task revision without invalidating the
|
|
140
|
-
mechanical audit. Core accepts the revision only when the exact count of post-audit recovery records
|
|
141
|
-
fully explains the difference: each record must belong to the already verified single-parent Git
|
|
142
|
-
chain, remain ordered, bind a Workflow system commit, and preserve the exact two-file dependency
|
|
143
|
-
diff. A bare greater revision, unrelated Task write, duplicate record, damaged parent, product
|
|
144
|
-
commit, or unverified recovery remains blocked.
|
|
145
|
-
|
|
146
|
-
### First-failure Plan-integrity recovery
|
|
147
|
-
|
|
148
|
-
A mechanically impossible Plan check must not consume another attempt merely to unlock its known
|
|
149
|
-
correction. After the first guarded `checks-failed` event, Core performs a read-only bounded
|
|
150
|
-
assessment. Existing missing-script and required-selector conflicts route to corrective replan.
|
|
151
|
-
beta.12.16 additionally recognizes one exact check-support conflict when all of the following hold:
|
|
152
|
-
|
|
153
|
-
- the failed Step contains an exact root `npm run <script>` check and declares an absent migration
|
|
154
|
-
output path that is inside its original `allowedWrites`;
|
|
155
|
-
- the root script resolves to a repository-local runner whose direct static import resolves to a
|
|
156
|
-
tracked checksum/catalog support module;
|
|
157
|
-
- that support module has SHA-256 anchors and names an existing migration in the same file family,
|
|
158
|
-
but is outside the Step's `allowedWrites` and `forbiddenScope`;
|
|
159
|
-
- exactly one ordinary `checks-failed` remediation event exists for the Step;
|
|
160
|
-
- no corrective decision exists for its second-attempt binding;
|
|
161
|
-
- every dirty file remains inside the Step's current `allowedWrites` and outside its
|
|
162
|
-
`forbiddenScope`.
|
|
163
|
-
|
|
164
|
-
The recovery appends one hash-bound `continue-fix` decision for attempt ordinal 2 and the exact
|
|
165
|
-
support path. It preserves the worktree and Plan hash; it does not alter source or Git. The current
|
|
166
|
-
C1 actor presents the existing writer token and fresh `task run` exposes the effective scope.
|
|
167
|
-
`task step-complete` remains the only commit owner, all checks rerun, and strict review packets name
|
|
168
|
-
the derived scope. Missing-script/selector conflicts still use `replan-required` plus the normal
|
|
169
|
-
Human-confirmed corrective replan. Unproved or broader scope changes never receive this authority.
|
|
170
|
-
|
|
171
|
-
### Downstream-proof predecessor recovery
|
|
172
|
-
|
|
173
|
-
Core prevents `task step-complete` when the active proof Step has dirty files outside its own
|
|
174
|
-
`allowedWrites`. A bounded recovery is advertised only when every such file belongs to a completed
|
|
175
|
-
transitive predecessor, the branch and registered Git history are exact, the active Step has no
|
|
176
|
-
completion evidence, and no unrelated path exists. The atomic transition preserves product files
|
|
177
|
-
and HEAD, moves invalidated predecessor commits into historical `invalidatedStepCommits`, clears stale Step
|
|
178
|
-
evidence, supersedes execution authority, yields C1, and routes the same Task to ordinary `plan-set`.
|
|
179
|
-
The route grants no authority to change Task objective, requirements, acceptance, or Milestone
|
|
180
|
-
topology.
|
|
181
|
-
|
|
182
|
-
The beta.12.7 compatibility repair for an accidental post-invalidation Knowledge rebind is similarly
|
|
183
|
-
non-semantic. It may restore `needs_fix` and preserve an exact dirty-worktree binding, but it cannot
|
|
184
|
-
approve a replacement Plan, infer new requirements, or treat preserved bytes as completed evidence.
|
|
185
|
-
After any required Knowledge refresh, the full unfinished remainder is planned again. Carryover into
|
|
186
|
-
execution is valid only when one newly authorized Step owns every bound path and the current
|
|
187
|
-
HEAD/path/content hashes still match; checks and strict review retain their ordinary authority.
|
|
188
|
-
|
|
189
|
-
Docker permission diagnostics are classified before consuming retry authority. Sandbox `EPERM` or
|
|
190
|
-
permission denial gets one exact escalated rerun of the health probe/Plan check. It is not an infra
|
|
191
|
-
failure and cannot authorize a Docker Desktop restart or image substitution. Only an escalated
|
|
192
|
-
invocation that reaches Docker and proves daemon unavailability establishes that failure class.
|
|
193
|
-
|
|
194
|
-
## Atomic context refresh
|
|
195
|
-
|
|
196
|
-
When `next` returns top-level `action: task context-refresh` with an exact option, a
|
|
197
|
-
project-scoped delegate may run one composite transition and must not run standalone reconcile
|
|
198
|
-
first:
|
|
199
|
-
|
|
200
|
-
```text
|
|
201
|
-
task context-refresh
|
|
202
|
-
= project-memory reconcile
|
|
203
|
-
+ delegated project-memory approve
|
|
204
|
-
+ task knowledge-rebind
|
|
205
|
-
+ delegated task execution authorize
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
The command requires the exact Task and Knowledge Map revisions, delegate actor, and grant.
|
|
209
|
-
Core validates both grant transitions and the complete Knowledge diff before the first write.
|
|
210
|
-
The existing content-only path remains limited to an already approved source set whose category,
|
|
211
|
-
scope, authority, gaps, and conflicts are unchanged.
|
|
212
|
-
|
|
213
|
-
A Milestone Autonomy Grant may additionally admit a new supporting source when the current,
|
|
214
|
-
already execution-authorized Task Plan declares `knowledgeImpact: create` and the source's exact
|
|
215
|
-
normalized file path and scanner category in `knowledgeTargets`. Every added source must match;
|
|
216
|
-
wildcards and directory-like targets are not authority. The Task must belong to that exact
|
|
217
|
-
Milestone and the delegate and grant must still satisfy the immutable autonomy contract. Removed
|
|
218
|
-
sources, canonical additions, unplanned additions, changes to existing category/scope/authority
|
|
219
|
-
or classification identity, changed gaps, and changed or non-empty conflicts fail closed before
|
|
220
|
-
state is written. `next.contextRefresh.addedSources` exposes the exact eligible additions, while
|
|
221
|
-
`next.contextRefreshBlocked.unsafeDifferences` reports the concrete mismatches.
|
|
222
|
-
Standalone Project Memory approval is never enabled by this path.
|
|
223
|
-
|
|
224
|
-
## Chat ownership
|
|
225
|
-
|
|
226
|
-
One Milestone coordinator chat owns Discovery, Task order, exact delegated approvals, merge
|
|
227
|
-
observation, Milestone validation, and final acceptance. Every required Task runs in a
|
|
228
|
-
dedicated user-visible Task chat. A Task chat may use internal Worker and Reviewer contexts,
|
|
229
|
-
but only its delegate coordinator uses the grant. This prevents one long Milestone context
|
|
230
|
-
from accumulating every implementation and review loop.
|
|
231
|
-
|
|
232
|
-
The context boundary is literal: a Task chat is a new standalone Codex task created with an
|
|
233
|
-
explicit Task-only prompt, never a fork or handoff of the Milestone chat. Its prompt contains the
|
|
234
|
-
exact repository/Milestone/Task identifiers and fresh Task contract, but no parent transcript,
|
|
235
|
-
sibling Task details, recovery narrative, reasoning trace, or bearer credential. Creation failure
|
|
236
|
-
is a dispatch blocker, not permission to fork. The coordinator verifies one unique mapping from
|
|
237
|
-
each Task ID to its thread and title before work begins.
|
|
238
|
-
|
|
239
|
-
A host-generated `codex_delegation` envelope containing routing provenance such as
|
|
240
|
-
`source_thread_id` is allowed; it must contain the TaskContextPacket as its complete input and must
|
|
241
|
-
not carry completed parent turns. The coordinator reads the title back after creation and explicitly
|
|
242
|
-
renames it when the supplied title was omitted or normalized.
|
|
243
|
-
|
|
244
|
-
Chat titles are allocated atomically by the project registry; sidebar counts and `count + 1` are
|
|
245
|
-
not valid numbering sources. Primary forms are:
|
|
246
|
-
|
|
247
|
-
```text
|
|
248
|
-
#NNN · M<NN> · Coord · <Milestone title> · <MS-ID>
|
|
249
|
-
#NNN · M<NN>/T<NN> · Task · <Task title> · <TASK-ID>
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
The sequence and membership ordinal come first; the full ID prevents ambiguous identity. Exact
|
|
253
|
-
readback is mandatory and only registry-supplied deterministic fallbacks may be used.
|
|
254
|
-
|
|
255
|
-
Autonomy also requires active supervision. After just-in-time dispatch, the Milestone coordinator
|
|
256
|
-
keeps a bounded `wait_threads` loop for the routed Task, inspects completion/attention, and verifies
|
|
257
|
-
fresh Workflow `status -> next` before deciding what happened. It resumes a recoverable
|
|
258
|
-
nonterminal Task in the same chat with `send_message_to_thread`; it does not shift ordinary
|
|
259
|
-
implementation questions to the user. The coordinator may stop only for an exact human/semantic
|
|
260
|
-
gate, exhausted infrastructure retry, unrecoverable integrity conflict, a user-requested
|
|
261
|
-
checkpoint, or terminal Milestone closure. A finished chat is not proof of a terminal Task, and a
|
|
262
|
-
child result does not automatically wake a coordinator turn that has already ended.
|
|
263
|
-
|
|
264
|
-
## Update boundary
|
|
265
|
-
|
|
266
|
-
Before changing the exact npm version, run `update preflight`. A compatible update is safe
|
|
267
|
-
only when the repository is clean, no Step is `in_progress`, and no writer lease is active.
|
|
268
|
-
An expired lease is also a blocker until the ordinary explicit stale-lock repair is completed.
|
|
269
|
-
The command is read-only and reports every blocker. It does not install a package or migrate
|
|
270
|
-
state. When `stateSchemaVersion` remains `2`, the external project state is reused unchanged.
|
|
271
|
-
Existing schema 2 projects then use `state adoption-prepare` and `state adoption-apply`; they
|
|
272
|
-
do not use `state migrate` for schema-2 adoption.
|
|
273
|
-
|
|
274
|
-
Alpha.7 also exposes `update rescue-preflight` for one narrow alpha.6 deadlock: a pending strict
|
|
275
|
-
review whose completion commit changed canonical knowledge while Knowledge rebind is forbidden
|
|
276
|
-
by the still-in-progress Step. Eligibility requires an exact alpha.6 dependency, one pending
|
|
277
|
-
review, exact clean completion HEAD, valid history, and no active lease. The command is read-only
|
|
278
|
-
and returns only stale-lock repair plus strict-review actions.
|
|
279
|
-
|
|
280
|
-
## Milestone closure
|
|
281
|
-
|
|
282
|
-
After every current `required` Task is `merged`, run `milestone validate` on the clean base
|
|
283
|
-
HEAD. `next` exposes a completion policy and the state-bound final gate. The coordinator must
|
|
284
|
-
compare Result, evidence, Plan hash, and validated HEAD. A delegate may accept only through an
|
|
285
|
-
exact `milestone.final_accept` option, must remain the recorded actor, and must pass the
|
|
286
|
-
current `MSA-*` code. Without that option the ordinary later-message human gate applies.
|
|
287
|
-
|
|
288
|
-
## Bounded Milestone autonomy and C1 handoff
|
|
289
|
-
|
|
290
|
-
Initial assembly may materialize every linked Task before one complete `milestone plan-set`;
|
|
291
|
-
the Milestone cannot execute until all reverse memberships are classified. During that exact
|
|
292
|
-
window `next` returns non-executable `milestone initial-assembly` navigation with explicit
|
|
293
|
-
linked-Task Discovery/materialization options; the closing Plan option appears after the first
|
|
294
|
-
linked Task exists. A failed navigation call must not
|
|
295
|
-
be bypassed with a direct Plan command. Ordinary semantic
|
|
296
|
-
scope change remains explicit and human-only through `milestone scope-change-prepare` and
|
|
297
|
-
`milestone scope-change-apply`.
|
|
298
|
-
|
|
299
|
-
After the initial Plan, one human may approve a time-bound (maximum 72 hours) Milestone
|
|
300
|
-
Autonomy Contract. It creates a milestone-scoped grant for Task/Milestone execution and final
|
|
301
|
-
acceptance plus Project Memory approval only inside an atomic Task context refresh for the same
|
|
302
|
-
Milestone. That refresh covers content-only drift and the exact Plan-bounded supporting-source
|
|
303
|
-
addition described above. Standalone Project Memory approval remains forbidden. The contract binds
|
|
304
|
-
the immutable outcome, success signal, acceptance, checks, discovery, and base branch.
|
|
305
|
-
`milestone autonomy-evolve` may only alter Task memberships; it records the
|
|
306
|
-
agent actor plus the autonomy-contract event hash in the journaled scope-change sidecar and
|
|
307
|
-
supersedes execution authorization. Any semantic drift, expiry, revocation, actor mismatch,
|
|
308
|
-
or contract hash mismatch fails closed.
|
|
309
|
-
|
|
310
|
-
`C1` handoff uses `task handoff-prepare`, `task claim --claim-token ...`, and terminal
|
|
311
|
-
`task handback-create`. When target actor is omitted, Core derives
|
|
312
|
-
`agent:worker:<task-id>`. Preparation returns a one-time token and prompt bound to a stable
|
|
313
|
-
`handoffId`, revision, Brief/Plan/Knowledge hashes, Milestone and Task display numbers,
|
|
314
|
-
expected next action, delegate/grant, creation time, and expiry. Only the claim-token hash is
|
|
315
|
-
stored; `task handoff-show` cannot recover it. Claim fails closed on expiry, actor, token,
|
|
316
|
-
revision, context, grant, or writer-owner mismatch. While pending, `next` blocks normal
|
|
317
|
-
execution behind claim; while claimed, only the
|
|
318
|
-
claimant may mutate with the bound writer token. Milestone-linked Tasks require this claimed
|
|
319
|
-
posture before start. Terminal handback preserves status, merge/result/evidence/review and
|
|
320
|
-
Knowledge bindings, limitations, and recommended next action. This is machine-bound actor and
|
|
321
|
-
lease evidence only; it is not proof of a separate thread.
|
|
43
|
+
Do not repeatedly execute an unchanged failing route. Preserve the command, state binding and blocker; distinguish an external wait, human gate, integrity failure and unsupported transition. No arbitrary retry counter establishes completion. A1 remains a release blocker until actual continuation evidence covers the supported routes.
|
package/docs/decisions.md
CHANGED
|
@@ -1,113 +1,15 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Current product decisions
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
visibility is public. Releases use tag-triggered trusted publishing. Stable support
|
|
17
|
-
covers the latest minor release in the current major; older minors receive no backports
|
|
18
|
-
unless separately declared.
|
|
19
|
-
4. **Reviewer guarantee.** Role envelopes alone are advisory. The strict reviewer is a
|
|
20
|
-
separate ephemeral `codex exec` process with user configuration and rules ignored,
|
|
21
|
-
a read-only sandbox, a structured output schema, and a denied-write probe. Process
|
|
22
|
-
failure, invalid output, a successful write, or any repository mutation records
|
|
23
|
-
`unverified` and blocks final acceptance.
|
|
24
|
-
5. **Gateway distribution.** The gateway is shipped as the personal plugin source at
|
|
25
|
-
`plugins/codex-workflow-gateway`. Its installer performs the CLI-driven cachebuster and
|
|
26
|
-
reinstall flow. The plugin negotiates the package protocol and never copies V2 workflow
|
|
27
|
-
assets into a project repository.
|
|
28
|
-
6. **Graph binding.** `codebase-memory-mcp` remains the graph provider. The gateway obtains
|
|
29
|
-
a refresh request from the core, refreshes the product or workflow graph, and binds
|
|
30
|
-
returned evidence only when request identity and current repository/package fingerprints
|
|
31
|
-
agree. Product graph state retains the current binding; the workflow graph additionally
|
|
32
|
-
retains one previous package-version binding for rollback diagnosis. Provider failure is
|
|
33
|
-
recorded explicitly as fallback and does not replace repository knowledge.
|
|
34
|
-
7. **Runtime boundary.** V2 targets one user operating on one machine. Workflow state,
|
|
35
|
-
locks, snapshots, graph bindings, and approvals live under the user's local Codex state
|
|
36
|
-
directory. Durable product knowledge lives only in ordinary version-controlled project
|
|
37
|
-
files. Remote coordination, distributed locking, and cross-machine synchronization are
|
|
38
|
-
outside the product contract.
|
|
39
|
-
8. **Task knowledge rebind.** A Task whose approved project knowledge changes between Steps
|
|
40
|
-
uses a dedicated mechanical `task knowledge-rebind` transition. The transition cannot
|
|
41
|
-
edit semantic Plan fields or Step definitions, preserves runtime Step status and evidence,
|
|
42
|
-
records the previous and current bindings, supersedes execution authorization, and
|
|
43
|
-
requires user reauthorization. It is not a state migration mechanism. The state schema is
|
|
44
|
-
advanced without a compatibility migrator for pre-release Task state.
|
|
45
|
-
9. **Repository scheduling and Milestone final gate.** Repository `next` treats current
|
|
46
|
-
Milestone membership as scheduling authority for unstarted linked Tasks. Only `required`
|
|
47
|
-
Tasks of an `active` Milestone are eligible; historical waived/cancelled memberships and
|
|
48
|
-
terminal Milestones cannot shadow the next lifecycle transition. After validation, the
|
|
49
|
-
core emits a deterministic confirmation code bound to Milestone revision, Plan, Result,
|
|
50
|
-
evidence, and base HEAD. The gateway must end the turn after showing it, and the CLI accepts
|
|
51
|
-
only an explicit actor and exact code from a later user-confirmed turn. This is state-bound
|
|
52
|
-
consent, not cryptographic proof of human identity.
|
|
53
|
-
10. **Delegated approval.** Human approval stays the default, but a principal may issue a
|
|
54
|
-
project-bound, expiring grant to a distinct delegate after a separate confirmation-code
|
|
55
|
-
turn. Grants allow only enumerated Knowledge Map, Task, or Milestone approval transitions
|
|
56
|
-
and are scoped to the project, one Milestone, or one Task. Each use records
|
|
57
|
-
both actors and the policy hash; revocation blocks future uses. This is an additive schema
|
|
58
|
-
2 entity and optional authorization metadata, so existing schema 2 projects require no
|
|
59
|
-
migration. It is local policy evidence, not a cryptographic identity signature.
|
|
60
|
-
11. **Core-owned Step commit.** `task run` dispatches a Worker that leaves changes
|
|
61
|
-
uncommitted. For an active Step, `next` returns the exact `task step-complete` transition
|
|
62
|
-
and Step ID. That transition validates history and allowed paths, runs checks, creates
|
|
63
|
-
the atomic commit, and records evidence. A manual Worker commit is unrecorded history and
|
|
64
|
-
fails closed without changing persisted Task state. This changes navigation and
|
|
65
|
-
diagnostics only; state schema 2 and protocol 1 remain unchanged.
|
|
66
|
-
12. **Autonomous correction guardrail.** The initial Plan must make migration,
|
|
67
|
-
concurrency, restart/replay, crash-window, and provider risks visible. Repeated failed reviews
|
|
68
|
-
do not impose an attempt-count stop: findings default to a same-Task fix and may request replan
|
|
69
|
-
only with exact Plan-conflict evidence. Attempts after the second are marked corrective for
|
|
70
|
-
diagnosis, remain executable, and require another strict review. Explicit split/stop decisions
|
|
71
|
-
remain append-only authority and are never inferred from the counter.
|
|
72
|
-
13. **Content-only context refresh.** A delegate may compose reconcile, approval, knowledge
|
|
73
|
-
rebind, and execution reauthorization only when the approved source classification is
|
|
74
|
-
identical and only content hashes changed. Core validates both delegated transitions
|
|
75
|
-
before writing. Source-set, category, scope, authority, gap, or conflict changes stay on
|
|
76
|
-
the ordinary visible approval path. State schema 2 and protocol 1 remain unchanged.
|
|
77
|
-
14. **Autonomous chat and closure boundary.** A Milestone coordinator owns orchestration and
|
|
78
|
-
final acceptance while each required Task uses a dedicated user-visible Task chat.
|
|
79
|
-
`next` exposes the Milestone completion contract, and delegated acceptance retains the
|
|
80
|
-
delegate actor and exact state-bound MSA code.
|
|
81
|
-
15. **Safe update preflight.** Dependency updates begin with a read-only preflight requiring
|
|
82
|
-
a clean checkout, no running Step, and no active writer lease. It does not install,
|
|
83
|
-
migrate, or mutate project state.
|
|
84
|
-
16. **Strict-review recovery precedes Knowledge rebind.** A pending strict review is bound to
|
|
85
|
-
its immutable completion commit, Plan, and historical knowledge binding. It therefore
|
|
86
|
-
runs before a current-map rebind; the rebind remains mandatory before the next Step. A
|
|
87
|
-
read-only alpha.6 rescue profile exposes only this exact recovery shape.
|
|
88
|
-
17. **Bounded Milestone autonomy.** Initial linked Tasks may be assembled before one complete
|
|
89
|
-
membership Plan. One human-confirmed, expiring Milestone contract may then authorize the
|
|
90
|
-
existing Task/Milestone approval transitions, guarded content-only Task context refresh,
|
|
91
|
-
and membership-only evolution. Standalone Project Memory approval remains forbidden.
|
|
92
|
-
Outcome, success signal, acceptance, checks, discovery, and base branch remain immutable;
|
|
93
|
-
semantic change stays human-only.
|
|
94
|
-
18. **Planning proof obligations.** Every newly recorded guarded audit maps each failure mode
|
|
95
|
-
to one hostile counterexample, expected safe result, and exact executable Step check.
|
|
96
|
-
Historical alpha.6 audit events remain readable only to preserve safe lifecycle recovery.
|
|
97
|
-
19. **Derived independent actors.** Core derives stable Task Worker and corrective Auditor
|
|
98
|
-
actors from Task identity. This removes name-selection pauses without weakening C1 claim,
|
|
99
|
-
lease, or auditor-independence checks.
|
|
100
|
-
20. **Stop-override authority survives mechanical update chains.** The exact Human-confirmed
|
|
101
|
-
beta.11 attempt-four override remains valid across any contiguous append-only sequence of
|
|
102
|
-
content-only Plan rebinds. Every adjacent immutable Plan, Knowledge rebind, and mechanical
|
|
103
|
-
Plan Risk Audit rebound must agree. Git HEAD may advance only through a contiguous chain of
|
|
104
|
-
already registered dependency-provenance commits, each single-parent and limited to
|
|
105
|
-
`package.json` plus `package-lock.json`. Semantic Plan drift, product commits, missing
|
|
106
|
-
provenance, or broken chronology still fails closed; generic corrective-decision recovery
|
|
107
|
-
remains direct and is not widened.
|
|
108
|
-
21. **Administrative revision continuity is evidence-accounted.** A dependency-provenance
|
|
109
|
-
recovery recorded after the current mechanical Plan Risk Audit may explain exactly one later
|
|
110
|
-
Task revision without invalidating an already applied stop override. Core counts only ordered
|
|
111
|
-
recovery records from the independently verified override-to-authorization Git chain and
|
|
112
|
-
requires the resulting expected revision to equal the current Task revision. Unexplained
|
|
113
|
-
revisions and damaged provenance remain blocked; this is not a general `revision >=` rule.
|
|
3
|
+
1. One user, one machine, one consumer project; that consumer updates to the latest package. Older package versions, source-version rescue runners and backports are not supported. Exact local package pins remain necessary for reproducible execution.
|
|
4
|
+
2. Repository files own durable product knowledge. Local Workflow state owns lifecycle records, hashes, approvals and process/Task ownership. A graph is derived orientation evidence, never canonical knowledge or authority.
|
|
5
|
+
3. Discovery establishes scope before Task/Milestone identities and execution branches. Plans bind requirements, Steps, paths, checks and approved Knowledge. Semantic decisions remain explicit.
|
|
6
|
+
4. Core owns state transitions and Step commits. Revision/hash/HEAD checks, effective scope and one writer prevent conflicting work. Agents do not edit state or substitute manual Git commits.
|
|
7
|
+
5. Milestone membership is a dependency DAG on an ordinary base branch. Required predecessors must merge first. Membership-only autonomy preserves semantic scope; arbitrary scope changes remain human-controlled.
|
|
8
|
+
6. Independent audits and reviews are separate evidence producers. Role labels alone do not prove isolation. Invalid output, changed review seals or failed reviewer launch cannot establish acceptance.
|
|
9
|
+
7. Delegation is exact, scoped, expiring and revocable. It records the principal and distinct delegate. It cannot authorize its own expansion or renewal.
|
|
10
|
+
8. Rebind changes Knowledge bindings only. Current atomic context refresh composes approved transitions without widening them. Pending execution/review/recovery retains its own priority and identity.
|
|
11
|
+
9. Repeated failures do not impose an attempt-count stop and do not create success. Replan requires actual obstruction evidence. Completed work remains verifiable; explicit stops and unsupported topology changes remain visible boundaries.
|
|
12
|
+
10. Recovery preserves coherent state, bound product bytes and immutable evidence. Retaining a reader for existing evidence does not retain old-version execution routes or justify a new migration framework.
|
|
13
|
+
11. A1 is the primary blocker: integrity guards alone do not establish reachability or termination. `next` and executors must share admission rules, and real transition tests must show successors under stated assumptions. Human decisions and external failures cannot be promised to terminate automatically.
|
|
14
|
+
12. Validation is fresh and single-owner, with bounded child processes and no silent retries. The canonical release command runs the full suite once and then package checks. Timing evidence distinguishes host bootstrap stalls from running JavaScript.
|
|
15
|
+
13. The supported entry documentation is six current guides. Historical design briefs and release narratives live in Git history; PDF exports and research material are outside package runtime instructions.
|