@awak-app/simy-cli 0.7.15 → 0.7.16
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 +45 -72
- package/package.json +3 -2
- package/src/agent.js +1 -0
- package/src/backend-executable.js +7 -6
- package/src/cli-contract.js +1 -1
- package/src/codex-plugins/simy/hooks/delivery-loop.mjs +43 -13
- package/src/codex-plugins/simy/hooks/outcome-progress.mjs +1 -2
- package/src/codex-plugins/simy/hooks/purpose-cycle.mjs +12 -11
- package/src/codex-plugins/simy/hooks/purpose-evidence.mjs +21 -33
- package/src/codex-plugins/simy/hooks/purpose-rule-policy.mjs +1 -2
- package/src/codex-plugins/simy/hooks/purpose-rule-review.mjs +5 -63
- package/src/codex-plugins/simy/hooks/purpose-search.mjs +21 -4
- package/src/codex-plugins/simy/hooks/result-cycle.mjs +140 -0
- package/src/codex-plugins/simy/hooks/scene-reasoning.mjs +98 -12
- package/src/codex-plugins/simy/hooks/user-experience.mjs +26 -0
- package/src/delivery-hooks/claude-workflow.md +1 -1
- package/src/delivery-hooks/command.js +31 -0
- package/src/delivery-hooks/consistency-monitor.js +20 -4
- package/src/delivery-hooks/local-runtime.js +32 -1
- package/src/delivery-hooks/local-supervisor.js +12 -3
- package/src/delivery-hooks/supervisor-handover.js +84 -0
- package/src/delivery-hooks/supervisor-owner.js +3 -2
- package/src/delivery-hooks/supervisor-service.js +36 -6
- package/src/delivery-hooks/supervisor-watchdog.js +15 -4
- package/src/delivery-hooks/supervisor.js +66 -9
- package/src/orchestrator/audit.js +24 -323
- package/src/orchestrator/charter-validation.js +3 -41
- package/src/orchestrator/checklist-continuation.js +2 -14
- package/src/orchestrator/completion-contract.js +4 -49
- package/src/orchestrator/contract.js +5 -9
- package/src/orchestrator/delivery/WORKFLOW.md +30 -710
- package/src/orchestrator/delivery/references/acceptance-evidence.md +4 -216
- package/src/orchestrator/delivery/references/change-boundary-matrix.md +4 -103
- package/src/orchestrator/delivery/references/chrome-user-verification.md +5 -133
- package/src/orchestrator/delivery/references/cross-repository-control.md +4 -74
- package/src/orchestrator/delivery/references/delivery-levels.md +3 -117
- package/src/orchestrator/delivery/references/local-sqm-evidence.md +1 -1
- package/src/orchestrator/delivery/references/minimum-completion.md +4 -144
- package/src/orchestrator/delivery/references/pr-closure.md +4 -200
- package/src/orchestrator/delivery/references/shared-system-specifications.md +4 -161
- package/src/orchestrator/delivery/references/state-and-receipts.md +4 -245
- package/src/orchestrator/delivery/references/state-model.md +4 -185
- package/src/orchestrator/delivery/references/ux-specification.md +4 -95
- package/src/orchestrator/delivery-level.js +2 -10
- package/src/orchestrator/evidence.js +2 -3
- package/src/orchestrator/independent-audit.js +7 -147
- package/src/orchestrator/instruction.js +19 -254
- package/src/orchestrator/loop.js +8 -36
- package/src/orchestrator/outcome-monitor.js +21 -0
- package/src/orchestrator/pr-closure.js +2 -16
- package/src/orchestrator/ux-specification.js +3 -12
- package/src/runner.js +3 -1
- package/src/session-supervision/acceptance-reads.js +34 -0
- package/src/session-supervision/browser-cdp.js +59 -0
- package/src/session-supervision/browser-recovery.js +97 -0
- package/src/session-supervision/codex-app-server.js +42 -17
- package/src/session-supervision/continuation-analysis.js +2 -1
- package/src/session-supervision/final-response-recovery.js +3 -0
- package/src/session-supervision/interaction-proxy.js +250 -0
- package/src/session-supervision/interaction-task.js +189 -0
- package/src/session-supervision/native-interaction.js +102 -0
- package/src/session-supervision/provider-failure.js +40 -0
- package/src/session-supervision/purpose-instruction.js +14 -14
- package/src/session-supervision/purpose-recovery.js +20 -9
- package/src/session-supervision/purpose-verification.js +43 -161
- package/src/sqm/claude-plugin.js +2 -0
- package/src/sqm/local-tests.js +2 -1
- package/src/startup-preflight.js +2 -20
|
@@ -1,710 +1,30 @@
|
|
|
1
|
-
# SIMY
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
they are required here.
|
|
32
|
-
|
|
33
|
-
## Report outcomes in the requested form
|
|
34
|
-
|
|
35
|
-
Apply the common [outcome reporting contract](../../workflow-reporting.md) to
|
|
36
|
-
executor progress, user-facing summaries and independent review. The runtime
|
|
37
|
-
injects the same instruction into Coding execution/audit and non-coding Local
|
|
38
|
-
Tasks; this is a model instruction, not a semantic output filter or a new gate.
|
|
39
|
-
Keep the outcome contract, execution evidence and response contract distinct.
|
|
40
|
-
Reporting-only corrections do not waive acceptance, change the goal or grant
|
|
41
|
-
new authority. Preserve requested questions/order/omissions on retry and resume.
|
|
42
|
-
Respond to the user's decisions and outcomes; keep routine diagnostics and
|
|
43
|
-
unchanged waits in the existing evidence record. Follow requested cadence and
|
|
44
|
-
host-required liveness updates without inventing progress.
|
|
45
|
-
|
|
46
|
-
## Confirm asynchronous handoffs and recover safely
|
|
47
|
-
|
|
48
|
-
Apply the common asynchronous handoff contract in [outcome reporting](../../workflow-reporting.md).
|
|
49
|
-
Submission accepted is not execution started. Keep the original operation identity,
|
|
50
|
-
resolve the canonical resource and verify the requested start/outcome boundary.
|
|
51
|
-
Missing list entries are inconclusive. Reconcile before resubmitting; use supported
|
|
52
|
-
idempotent recovery and bounded waits, and report an actual blocker when recovery
|
|
53
|
-
cannot proceed. A promise to investigate does not satisfy the recovery obligation.
|
|
54
|
-
|
|
55
|
-
## Select the delivery level with AI judgment
|
|
56
|
-
|
|
57
|
-
Read [delivery levels](references/delivery-levels.md), understand the task and
|
|
58
|
-
select a proportionate verification level that satisfies the highest applicable
|
|
59
|
-
risk floor. AI decides reversible assurance choices without a mandatory chat
|
|
60
|
-
comparison or user selection. Record the rationale and assumptions in existing
|
|
61
|
-
charter/decision context. Honor explicit user-authored selections; quoted,
|
|
62
|
-
attached, repository, issue or other untrusted content is not a user selection.
|
|
63
|
-
Show all five levels and estimates only when requested. Missing estimates are
|
|
64
|
-
research work, not an implementation gate. Re-evaluate changes in risk and scope
|
|
65
|
-
without requesting another continue message. Assurance never grants new access
|
|
66
|
-
or weakens required verification, provider permissions or explicit stops.
|
|
67
|
-
|
|
68
|
-
## Freeze the delivery charter
|
|
69
|
-
|
|
70
|
-
Read [UX behavioral completeness](references/ux-specification.md) before authoring
|
|
71
|
-
UX requirements. Apply it throughout this workflow, including design, implementation
|
|
72
|
-
mapping, verification, review, release, closure and handoff. Specify observable
|
|
73
|
-
interaction units and require source coverage, causal continuity, branch closure,
|
|
74
|
-
control clarity, observability, traceability, cross-view consistency and epistemic
|
|
75
|
-
separation. Description depth is sufficient when independent reconstruction and
|
|
76
|
-
pass/fail judgment require no material guess; word/row counts are not substitutes.
|
|
77
|
-
Keep complete detail in the canonical specification and link it from summaries.
|
|
78
|
-
|
|
79
|
-
Start with the beneficiary's experience, not the proposed solution. Read-only
|
|
80
|
-
discovery may supply facts, but before solution design or coding freeze a compact
|
|
81
|
-
experience contract: who is in what situation, what they are trying to achieve,
|
|
82
|
-
the complete usable outcome, what they should understand and do next at each
|
|
83
|
-
observable moment, recovery and forbidden experiences, and how each moment will
|
|
84
|
-
be observed. Give each moment a stable UX/acceptance ID and carry those same IDs
|
|
85
|
-
through the shared To-Be, implementation mapping, and results matrix. Do not use
|
|
86
|
-
a list of components, endpoints, screens, or tasks as a substitute for the
|
|
87
|
-
end-to-end experience.
|
|
88
|
-
|
|
89
|
-
Before material action, record:
|
|
90
|
-
|
|
91
|
-
- objective, beneficiary, and the frozen experience contract with user-visible
|
|
92
|
-
success conditions;
|
|
93
|
-
- authoritative acceptance sources that are independent of the candidate
|
|
94
|
-
implementation, plus architecture boundaries and dependency direction;
|
|
95
|
-
- repositories, latest base branches, dedicated worktrees, environments, and
|
|
96
|
-
the exact user journey;
|
|
97
|
-
- required evidence, applicable change boundaries, risk tier, and the few
|
|
98
|
-
critical invariants that must block integration;
|
|
99
|
-
- for every production-relevant experience ID, outcome and guardrail measures
|
|
100
|
-
with signal, independent source, observation window, threshold, decision and
|
|
101
|
-
owner; if no production outcome is in scope, record that once with a reason;
|
|
102
|
-
- when release is in scope, staged exposure and deterministic promote, hold,
|
|
103
|
-
abort and rollback criteria, rollback mechanism, kill switch and owner;
|
|
104
|
-
- requested and effective delivery levels, numbering version, risk-based safety
|
|
105
|
-
floor, AI rationale and assumption evidence; preserve an actual user selection
|
|
106
|
-
receipt only when the user selected or explicitly reserved that choice;
|
|
107
|
-
- exclusions and authority boundaries, especially commit, push, Draft PR
|
|
108
|
-
creation or update, Ready transitions, merge, deployment, production writes,
|
|
109
|
-
paid APIs, external messages, and fixture cleanup;
|
|
110
|
-
- recorded usage and any external service limits. Local execution has no token,
|
|
111
|
-
elapsed-time or attempt ceiling, including restored tasks. Continue while
|
|
112
|
-
making verified progress; respect approvals, manual stops and failure circuits.
|
|
113
|
-
|
|
114
|
-
Do not silently weaken explicit conditions. Add discoveries as a charter patch.
|
|
115
|
-
A scope or success-condition change needs user direction when it materially
|
|
116
|
-
changes the requested result.
|
|
117
|
-
|
|
118
|
-
## Maintain the system's shared specification
|
|
119
|
-
|
|
120
|
-
Before implementation, read [shared system specifications](references/shared-system-specifications.md).
|
|
121
|
-
Find the team's canonical specification for this system; create it once if absent.
|
|
122
|
-
Reconcile the frozen experience contract with the current As-Is, then update only
|
|
123
|
-
the affected To-Be views. Preserve the purpose, beneficiary, current pain,
|
|
124
|
-
intended user experience, observable success, and stable UX/acceptance IDs.
|
|
125
|
-
Maintain the twelve-view inventory, stable IDs and cross-view impact links in the
|
|
126
|
-
shared source, not twelve new task-local copies. Unaffected views retain their
|
|
127
|
-
version; unknown As-Is facts remain unknown. Review changes through the team's
|
|
128
|
-
normal version control and preserve concurrent work.
|
|
129
|
-
|
|
130
|
-
Freeze and follow the risk-proportionate review plan from the selected delivery
|
|
131
|
-
level. Level 3 may consolidate design, implementation-to-To-Be, affected-view and
|
|
132
|
-
final evidence review into one independent final-candidate review. Inspect changed
|
|
133
|
-
views and their dependency links; retain unrelated views by exact revision. Fix
|
|
134
|
-
findings and independently re-review the affected behavior. A changed bound input
|
|
135
|
-
invalidates affected approval; do not rewrite To-Be to disguise a failed result.
|
|
136
|
-
|
|
137
|
-
When SQM is explicitly opted in, apply the identity-aware SQM plan described in
|
|
138
|
-
the reference. Announce its applicability when starting Delivery Loop. Reuse a
|
|
139
|
-
verifiable proof only for exactly unchanged bound inputs; rerun for changed identity
|
|
140
|
-
or newly applicable PR-only checks. If required access is absent, retain the unmet
|
|
141
|
-
gate and continue independent work. Ordinary PR work outside Delivery Loop does
|
|
142
|
-
not activate SQM. Record known and unknown incident coverage separately; zero
|
|
143
|
-
applicable rules do not prove that historical failures cannot recur.
|
|
144
|
-
|
|
145
|
-
## Maintain the acceptance checklist outside the conversation
|
|
146
|
-
|
|
147
|
-
Before implementation, read [acceptance evidence](references/acceptance-evidence.md)
|
|
148
|
-
and persist a criterion-by-criterion checklist. Bind the criteria and both
|
|
149
|
-
verification layers to independent acceptance sources in a frozen charter.
|
|
150
|
-
Use the experience contract as the user-facing slice of these same criteria, not
|
|
151
|
-
as a parallel checklist. Every observable moment from the real trigger through a
|
|
152
|
-
usable outcome and applicable recovery path must map to at least one criterion;
|
|
153
|
-
working components do not prove that the combined experience is complete.
|
|
154
|
-
Use a separate current-results matrix for observations, status, evidence,
|
|
155
|
-
unmet reasons, and next actions. Render a readable table alongside the JSON;
|
|
156
|
-
checklists held only in chat or the model's memory are insufficient.
|
|
157
|
-
|
|
158
|
-
Update the matrix and table after every evaluated test, repair, review, or scope,
|
|
159
|
-
revision, or environment change. Preserve prior snapshots/receipts and reset
|
|
160
|
-
invalidated rows to pending; never delete a failed criterion to make the table
|
|
161
|
-
green. Record the new highest proven state and the remaining rows internally;
|
|
162
|
-
user-facing updates follow the response contract.
|
|
163
|
-
|
|
164
|
-
Use the compact request checklist as the evidence record's status surface.
|
|
165
|
-
After freezing the charter, after each evaluated attempt, and in the final
|
|
166
|
-
evidence receipt, maintain a Markdown table headed `依頼チェックリスト` with
|
|
167
|
-
these columns: `#`, `ご依頼`, `現状`, `判定`. Render one numbered row per frozen
|
|
168
|
-
criterion, combining its user and system verification layers into one honest
|
|
169
|
-
status:
|
|
170
|
-
|
|
171
|
-
- `✅` only when every applicable layer has current, valid passing evidence;
|
|
172
|
-
- `❌` when any applicable layer has current failed evidence;
|
|
173
|
-
- `🟡` when evidence is pending, missing, stale, unverifiable, blocked, or mixed.
|
|
174
|
-
|
|
175
|
-
A non-applicable verification layer stays visible in the detailed table with its
|
|
176
|
-
authoritative reason; it does not create a fourth request-row status. Every valid
|
|
177
|
-
criterion retains at least one applicable layer.
|
|
178
|
-
|
|
179
|
-
In `現状`, state the latest observed result and, for any non-green row, the unmet
|
|
180
|
-
reason and next repair in plain language. Keep the detailed layer-by-layer evidence
|
|
181
|
-
table in `checklist.md`; the compact table summarizes it and does not replace its
|
|
182
|
-
JSON authority or evidence. Finish the visible table with counts for green,
|
|
183
|
-
yellow, and red rows plus the highest proven state. In a terminal
|
|
184
|
-
receipt, add the controller's disposition immediately below it.
|
|
185
|
-
Treat making every applicable row green as the repair target within the frozen
|
|
186
|
-
scope and permissions, but never recolor, omit, merge away, or relax a row to
|
|
187
|
-
make the presentation green.
|
|
188
|
-
|
|
189
|
-
### Continue after the table; do not stop at yellow
|
|
190
|
-
|
|
191
|
-
The evidence table is an intermediate checkpoint, not mandatory chat output.
|
|
192
|
-
Show it when requested or when it best answers the request; a specified response
|
|
193
|
-
format takes precedence. Otherwise report the outcome and material gaps concisely.
|
|
194
|
-
Immediately classify each non-green row
|
|
195
|
-
and perform the next safe authorized action: implementation or repair for missing
|
|
196
|
-
or failed behavior, execution/evidence collection for untested paths, and fresh
|
|
197
|
-
verification for stale results. Re-observe the same criterion, run the validator,
|
|
198
|
-
update the table, and repeat until all applicable outcomes and gates for the
|
|
199
|
-
frozen authorized endpoint pass. Listing repairs without doing feasible work is
|
|
200
|
-
not completion; do not wait for the requester to say “continue” after each table.
|
|
201
|
-
|
|
202
|
-
For in-progress CI or dependencies, use available bounded wait/recheck or an
|
|
203
|
-
approved monitor, with progress updates and no duplicate jobs or busy-polling.
|
|
204
|
-
Unchanged external state alone is not a blocker. Local token, elapsed-time and attempt counters do not stop work. Respect
|
|
205
|
-
external service availability and record any actual blocker and resumption condition instead of promising
|
|
206
|
-
an unscheduled follow-up. This workflow does not itself install a scheduler.
|
|
207
|
-
|
|
208
|
-
When genuinely blocked by authority, access, a decision, dependency or triggered no-progress/repeated-failure
|
|
209
|
-
circuit, preserve each affected ID, observed blocker, attempted safe alternatives,
|
|
210
|
-
exact missing input, owner and resumption trigger. Continue independent authorized
|
|
211
|
-
work. Any terminal non-green table is explicitly unfinished with a justified
|
|
212
|
-
blocked/best_available/failed/cancelled disposition, never verified_complete.
|
|
213
|
-
Do not use best_available merely because a table, PR or plan now exists. A new
|
|
214
|
-
remediation PR transfers ownership, not acceptance; the original unmet row stays
|
|
215
|
-
non-green. All-green targets only the authorized endpoint, not unrequested merge
|
|
216
|
-
or deployment. Never weaken acceptance criteria to force green. Local token, time and attempt counters do not stop work; continue while verified progress improves.
|
|
217
|
-
|
|
218
|
-
Before the final response, reconcile original requirements, all IDs, current
|
|
219
|
-
evidence and endpoint gates; retain the full table, counts, highest proven state
|
|
220
|
-
and disposition in the evidence receipt. The user-facing answer follows the response
|
|
221
|
-
contract and discloses material unmet outcomes. Independent audit checks premature
|
|
222
|
-
stopping, answer relevance and hidden limitations as well as evidence.
|
|
223
|
-
|
|
224
|
-
For user-facing outcomes, require both goal-driven user interaction and technical
|
|
225
|
-
invariant checks against the same run and context. For saving, test save/reload/
|
|
226
|
-
session return through the UI and independently check API status, persisted
|
|
227
|
-
values, ownership, authorization, and duplication. HTTP 500/network failures are
|
|
228
|
-
failure evidence; absence of a 500 or presence of a 200 does not prove persistence.
|
|
229
|
-
Record justified non-applicability before execution, not after a failed test.
|
|
230
|
-
|
|
231
|
-
After building the exact candidate in the production-like local environment,
|
|
232
|
-
execute the complete experience and regenerate the readable table. It must let a
|
|
233
|
-
reviewer compare, for every stable ID, the persona/context and expected visible
|
|
234
|
-
outcome, the actual user observation, the independent technical postcondition or
|
|
235
|
-
integration result, evidence, status, and the next repair. Inspect the table as a
|
|
236
|
-
whole to catch gaps between individually working parts. Any missing, pending,
|
|
237
|
-
failed, stale, or unverifiable applicable experience row blocks
|
|
238
|
-
`user_like_local_verified` and returns the loop to the smallest affected repair.
|
|
239
|
-
|
|
240
|
-
Run the packaged acceptance validator before promoting a relevant verification
|
|
241
|
-
gate and before issuing the completion receipt. A missing, pending, failed, stale,
|
|
242
|
-
or unverifiable applicable row prevents promotion. Matrix completeness is one
|
|
243
|
-
necessary gate, not proof of deployment, authority, or overall completion.
|
|
244
|
-
|
|
245
|
-
## Enforce the minimum functional floor
|
|
246
|
-
|
|
247
|
-
At every delivery level, use [minimum completion](references/minimum-completion.md)
|
|
248
|
-
for requested-outcome verification. Map all requirements to implementation and
|
|
249
|
-
actual operation/result plus independent postcondition/integration observations.
|
|
250
|
-
For persistence, require reload/session return and stored values/ownership. A
|
|
251
|
-
working control, success message or HTTP 200 alone is insufficient.
|
|
252
|
-
|
|
253
|
-
The bundled minimum checker extends the acceptance matrix with structured
|
|
254
|
-
observations. Compare the original request to the stable criterion-ID list independently so
|
|
255
|
-
omitted requirements cannot disappear before validation. A missing, failed or
|
|
256
|
-
stale floor check prevents verified completion at any level. The CLI now enforces
|
|
257
|
-
this before implementation/PR promotion and on recheck; the standalone command
|
|
258
|
-
validates evidence but cannot intercept the host application's final response.
|
|
259
|
-
Do not call a standalone result host-enforced completion or overall delivery.
|
|
260
|
-
|
|
261
|
-
## Check existing rules before implementation
|
|
262
|
-
|
|
263
|
-
Before implementation, publish a compact rule inventory in the charter record.
|
|
264
|
-
Reuse an existing inventory when available, checking its sources and applicability
|
|
265
|
-
against the current revision and execution path. Cover governing instructions
|
|
266
|
-
and relevant product rules; do not expand this into a full-system audit.
|
|
267
|
-
|
|
268
|
-
For each relevant rule, record:
|
|
269
|
-
|
|
270
|
-
- source reference and current status: active, conditional, retired, or unknown;
|
|
271
|
-
- scope: common, Coding, Sheet, Office, or another applicable domain;
|
|
272
|
-
- applicability to this task: applies, excluded, or unresolved, with a reason;
|
|
273
|
-
- conflicts or duplication, and any deletion or consolidation candidate;
|
|
274
|
-
- any blocker: the affected action, supporting evidence, and release condition.
|
|
275
|
-
|
|
276
|
-
For every defect or improvement request, compare all five rule responses:
|
|
277
|
-
|
|
278
|
-
1. add a new rule;
|
|
279
|
-
2. change an existing rule;
|
|
280
|
-
3. consolidate rules;
|
|
281
|
-
4. delete a rule;
|
|
282
|
-
5. make no rule change.
|
|
283
|
-
|
|
284
|
-
Evaluate each response for whether it:
|
|
285
|
-
|
|
286
|
-
- generalizes to future similar cases;
|
|
287
|
-
- avoids increasing the number of rules or exceptions;
|
|
288
|
-
- reduces duplication or conflict with existing rules;
|
|
289
|
-
- is easy for the model to interpret and execute consistently;
|
|
290
|
-
- has low maintenance and verification cost;
|
|
291
|
-
- avoids overfitting to one specific case.
|
|
292
|
-
|
|
293
|
-
Among the responses that solve the current problem, choose the one that is
|
|
294
|
-
simplest over the long term, most generalizable, and easiest to maintain. Do not
|
|
295
|
-
default to a new rule. Add one only when changing, consolidating, or deleting
|
|
296
|
-
existing rules, or making no rule change, cannot solve the problem. Prefer a
|
|
297
|
-
solution that does not increase the total number of rules, exceptions, or
|
|
298
|
-
interdependencies.
|
|
299
|
-
|
|
300
|
-
Treat governing instruction files as maps, not encyclopedias. Keep detailed
|
|
301
|
-
architecture, product, security, reliability, and intentional-debt knowledge in
|
|
302
|
-
versioned source-of-truth documents, and make the rule inventory verify their
|
|
303
|
-
links, ownership, applicability, and freshness. Preserve decision rationale and
|
|
304
|
-
constraints, not only descriptions of current code.
|
|
305
|
-
|
|
306
|
-
For the selected rule response, choose the lowest-cost durable enforcement
|
|
307
|
-
point. Encode deterministic, important architecture or safety invariants in
|
|
308
|
-
tests, static analysis, schemas, or CI rather than relying on prose alone. Keep
|
|
309
|
-
merge-blocking gates few and limited to constraints whose violation creates
|
|
310
|
-
material risk; record repairable quality or debt findings without pretending
|
|
311
|
-
they passed or making every preference a blocker.
|
|
312
|
-
|
|
313
|
-
Keep rule scope separate from its purpose, such as safety, product behavior,
|
|
314
|
-
quality, past bug mitigation, or unsupported precaution. Do not apply a
|
|
315
|
-
domain-specific rule to every loop merely because it appears in a shared file.
|
|
316
|
-
Distinguish prescribed behavior from observed enforcement; if the active path
|
|
317
|
-
enforces a broader rule, record the discrepancy rather than assuming it away.
|
|
318
|
-
Resolve conflicts using instruction precedence and verified scope. An audit
|
|
319
|
-
candidate alone does not authorize deleting or disregarding an active rule.
|
|
320
|
-
|
|
321
|
-
Report implementation readiness separately from the proven delivery state:
|
|
322
|
-
|
|
323
|
-
- `ready`: applicable requirements can be met; proceed within existing authority
|
|
324
|
-
without another confirmation;
|
|
325
|
-
- `partially_blocked`: name the dependent actions being held and continue
|
|
326
|
-
independent authorized work;
|
|
327
|
-
- `blocked`: no implementation can safely proceed until the named condition
|
|
328
|
-
is resolved.
|
|
329
|
-
|
|
330
|
-
Duplication or a deletion candidate alone does not block implementation. Missing
|
|
331
|
-
authority blocks the action requiring it, not independent preparation. Keep
|
|
332
|
-
unresolved obligations visible and do not relabel them as completion.
|
|
333
|
-
|
|
334
|
-
Reuse this record in implementation and review. Recheck only affected entries
|
|
335
|
-
when rules, scope, revisions, execution paths, or authority change; patch the
|
|
336
|
-
charter and invalidate affected evidence under the existing receipt contract.
|
|
337
|
-
|
|
338
|
-
## Check equivalent-purpose consistency
|
|
339
|
-
|
|
340
|
-
Before changing behavior, contracts, validation, policy, or trust-boundary rules
|
|
341
|
-
that affect users, API consumers, data integrity, or security, identify every
|
|
342
|
-
relevant surface and execution path that serves the same user purpose. Group
|
|
343
|
-
those paths by semantic intent, then record for each path its persona, current
|
|
344
|
-
source of truth, precedence, fallback, enforcement location, and observed
|
|
345
|
-
behavior. Include client and server paths, platform variants, account, tenant,
|
|
346
|
-
app, device, or system preferences, caches, and legacy defaults when they can
|
|
347
|
-
affect the result. Use code, configuration, schemas, tests, documentation, and
|
|
348
|
-
runtime evidence; matching labels alone are not proof that the same rule is
|
|
349
|
-
enforced.
|
|
350
|
-
|
|
351
|
-
For each equivalent-purpose group, verify whether all paths consume one
|
|
352
|
-
canonical rule with the same precedence and fallback semantics. When they do
|
|
353
|
-
not, determine whether the divergence is intentional and supported by an
|
|
354
|
-
authoritative product decision. Also check that tests cover the shared contract
|
|
355
|
-
at every affected boundary. A language choice that follows the device or OS on
|
|
356
|
-
one surface and an in-app preference on another is one instance of this class,
|
|
357
|
-
not a language-specific exception. Input validation split between frontend and
|
|
358
|
-
backend is another: identify the canonical validation contract separately from
|
|
359
|
-
where it is enforced. Multiple enforcement points may be correct when the
|
|
360
|
-
frontend provides timely feedback and the backend protects the trust boundary,
|
|
361
|
-
but equivalent rules must not drift.
|
|
362
|
-
|
|
363
|
-
If competing sources or behaviors exist and no authoritative choice resolves
|
|
364
|
-
them, use LLM context synthesis, alternatives, source research and a reversible
|
|
365
|
-
experiment to select the behavior that best satisfies the original purpose.
|
|
366
|
-
Record the alternatives, consequences, compatibility, reversibility, rollback,
|
|
367
|
-
verification and the selected AI judgment in existing decision context. Use the
|
|
368
|
-
HC-01–HC-102 perspectives to challenge the judgment after forming it; they do
|
|
369
|
-
not create a requirement for 102 approvals. Do not simply choose the most common
|
|
370
|
-
implementation or the easiest path. Reversible choices, even across multiple
|
|
371
|
-
surfaces, proceed under the enrolled autonomy and actual provider permissions.
|
|
372
|
-
|
|
373
|
-
Require human selection only before irreversible consequences or when the user
|
|
374
|
-
explicitly reserved the decision. Keep that affected operation pending and
|
|
375
|
-
continue independent authorized work. Existing permission prompts, explicit
|
|
376
|
-
stops/rejections, absent credentials and budget ceilings remain authoritative.
|
|
377
|
-
A human approval or supplied answer does not require another “continue” request.
|
|
378
|
-
Never synthesize a HumanDecisionReceipt for an AI selection. Exclude options
|
|
379
|
-
that violate actual trust boundaries; AI cannot turn unavailable authority into
|
|
380
|
-
permission. For example, client-only validation is not viable when untrusted input reaches a server-side trust boundary. Independent verification still derives its oracle from the original
|
|
381
|
-
purpose and declared assumptions, rather than accepting implementation as proof.
|
|
382
|
-
|
|
383
|
-
## Keep delivery states distinct
|
|
384
|
-
|
|
385
|
-
Use the [integrated state model](references/state-model.md) for repair, wait,
|
|
386
|
-
resume, evidence invalidation and endpoint boundaries. It distinguishes these
|
|
387
|
-
delivery milestones from actual CLI controller states and final dispositions.
|
|
388
|
-
|
|
389
|
-
Track and report the highest state actually proven:
|
|
390
|
-
|
|
391
|
-
`chartered -> reproduction_verified -> implemented -> locally_verified -> pr_ci_green -> integration_verified -> user_like_local_verified -> merged -> deployed_exact_revision -> health_verified -> live_verified -> cleanup_verified -> done`
|
|
392
|
-
|
|
393
|
-
Mark a non-applicable gate explicitly with a reason. Never infer a later state
|
|
394
|
-
from an earlier one. In particular:
|
|
395
|
-
|
|
396
|
-
- local or container evidence is not deployed evidence;
|
|
397
|
-
- green PR CI is not integration verification;
|
|
398
|
-
- merge is not deployment;
|
|
399
|
-
- a healthy deployment is not a verified user journey;
|
|
400
|
-
- a locally verified Chrome journey is `user_like_local_verified`, not
|
|
401
|
-
`live_verified`;
|
|
402
|
-
- lack of merge authority preserves the highest proven delivery state and records
|
|
403
|
-
merge as an authority blocker; it does not advance to `done`.
|
|
404
|
-
|
|
405
|
-
## Run one controlled loop
|
|
406
|
-
|
|
407
|
-
The controller freezes the original user goal, outcome, minimum scope, proof
|
|
408
|
-
requirements, non-goals, finish line, and stable acceptance IDs in the persisted
|
|
409
|
-
charter. If explicit acceptance criteria are absent, the user's goal itself is
|
|
410
|
-
the first acceptance criterion; tests and PR creation cannot replace that
|
|
411
|
-
outcome. Direct human changes create a successor version with the old contract
|
|
412
|
-
preserved. An unrecorded edit blocks execution and PR recheck. An approved
|
|
413
|
-
revision invalidates the previous independent outcome assessment; do not reuse
|
|
414
|
-
old evidence to claim the revised goal was met.
|
|
415
|
-
Even when a caller supplies its own acceptance list, independent review must
|
|
416
|
-
separately prove the original user goal with an observed operation and
|
|
417
|
-
postcondition. A process-only acceptance list cannot waive that goal.
|
|
418
|
-
|
|
419
|
-
After each attempt the controller records which acceptance IDs were positively
|
|
420
|
-
supported by the independent auditor. If no independent review occurred, report
|
|
421
|
-
insufficient evidence. When a further reviewed attempt leaves the same user
|
|
422
|
-
outcomes unproven without adding any independently supported outcome, stop
|
|
423
|
-
automatic retries and require a revised approach against the approved objective.
|
|
424
|
-
Changed code, passing tests, and additional review comments do not themselves
|
|
425
|
-
count as outcome progress. Each state transition is written to a private local
|
|
426
|
-
run record before it is published; failed Web ledger updates are retried. On
|
|
427
|
-
restart, an unverifiable objective cannot retain completion status. An
|
|
428
|
-
authenticated SIMY CLI daemon rechecks PR-ready runs every five minutes,
|
|
429
|
-
including after the chat ends. It revokes a completion claim when current
|
|
430
|
-
verification is unavailable. Monitoring requires the daemon and host to remain
|
|
431
|
-
running; it does not monitor unrelated Codex Desktop tasks or execute repairs
|
|
432
|
-
without an authorized run.
|
|
433
|
-
|
|
434
|
-
For a Codex Desktop task whose requested outcome must be checked after the
|
|
435
|
-
conversation ends, register a Codex app heartbeat against that task before
|
|
436
|
-
claiming it is monitored. Preserve the original outcome, acceptance evidence,
|
|
437
|
-
the exact task or operation identity, the requested completion boundary, and
|
|
438
|
-
the response preferences, cadence, progress protections and external service limits, and stop or
|
|
439
|
-
ask-user conditions in the heartbeat prompt. Verify that the automation
|
|
440
|
-
is active and bound to the intended task. On each run, use the Codex app's
|
|
441
|
-
supported task status and wait/read operations to distinguish a queued creation
|
|
442
|
-
ID, a resolved task ID, execution start, and the actual result. An absent list
|
|
443
|
-
entry or an idle label alone is not a terminal result. Reconcile the exact
|
|
444
|
-
operation before any retry; do not create a replacement while its fate is
|
|
445
|
-
unknown. Report an actionable blocker if identity, access, or evidence cannot
|
|
446
|
-
be resolved. Stay quiet on unchanged non-actionable state, and stop the
|
|
447
|
-
heartbeat when the accepted outcome is proved or monitoring is explicitly
|
|
448
|
-
cancelled. On authoritative failure, external service limits or repeated failures, or an unresolved
|
|
449
|
-
terminal identity/access blocker, report the evidence and pause or stop the
|
|
450
|
-
heartbeat pending a human decision. This is a separately registered,
|
|
451
|
-
task-scoped Codex app monitor;
|
|
452
|
-
the CLI daemon does not automatically register it or cover every Desktop task.
|
|
453
|
-
For a delegated implementation task, compare monitoring cadence with actual
|
|
454
|
-
execution. If its canonical task is idle and authorized acceptance work remains,
|
|
455
|
-
record a stall rather than a quiet unchanged status. With explicit recovery
|
|
456
|
-
authority and supported task tools, wake the same task once and verify its
|
|
457
|
-
execution starts; keep the outcome open
|
|
458
|
-
until independent acceptance evidence changes. A read-only monitor reports the
|
|
459
|
-
stall and owner instead. If a task is active but acceptance evidence has not
|
|
460
|
-
advanced over the agreed window, inspect its work and external waits before
|
|
461
|
-
calling it stalled. Never describe monitoring or an attempted wake as delivery.
|
|
462
|
-
Use the [Desktop task monitoring triggers](references/desktop-monitor-triggers.md)
|
|
463
|
-
when choosing an observation cadence, stall threshold, resume action, notification,
|
|
464
|
-
and duplicate-prevention rule for a Codex app heartbeat.
|
|
465
|
-
|
|
466
|
-
For each attempt:
|
|
467
|
-
|
|
468
|
-
1. **Observe:** load the current snapshot and revision-bound evidence.
|
|
469
|
-
2. **Evaluate:** identify progress, missing evidence, goal drift, or a repeated
|
|
470
|
-
failure fingerprint.
|
|
471
|
-
3. **Decide:** apply deterministic policy for `continue`, `retry_current`,
|
|
472
|
-
`propose_replan`, `request_hil`, `abort`, or `complete`.
|
|
473
|
-
4. **Act:** execute one complete, smallest coherent candidate or verification
|
|
474
|
-
action.
|
|
475
|
-
5. **Verify:** inspect evidence independent of the action's success claim.
|
|
476
|
-
6. **Reduce:** append a typed receipt and atomically advance the snapshot.
|
|
477
|
-
|
|
478
|
-
An LLM may propose hypotheses, repairs, or verdicts, but it must not directly
|
|
479
|
-
override state transitions, progress protections, authorization, or evidence gates.
|
|
480
|
-
Only the controller promotes a candidate or terminalizes the run.
|
|
481
|
-
|
|
482
|
-
Read [state and receipts](references/state-and-receipts.md) when the task has
|
|
483
|
-
multiple attempts, resumes a prior run, spans repositories, or performs merge,
|
|
484
|
-
deployment, paid, external, or concurrent operations.
|
|
485
|
-
|
|
486
|
-
Read [cross-repository control](references/cross-repository-control.md) before
|
|
487
|
-
related tasks, stacked PRs, multiple repositories, or shared test infrastructure
|
|
488
|
-
can mutate the same delivery outcome.
|
|
489
|
-
|
|
490
|
-
## Execute the delivery phases
|
|
491
|
-
|
|
492
|
-
### 1. Reproduce the real failure
|
|
493
|
-
|
|
494
|
-
Prefer the real payload, logs, persisted state, browser sequence, environment,
|
|
495
|
-
and user identity. Preserve a failure receipt that distinguishes the original
|
|
496
|
-
boundary from a simplified unit fixture.
|
|
497
|
-
|
|
498
|
-
### 2. Isolate and implement
|
|
499
|
-
|
|
500
|
-
Choose the smallest change sufficient for the original purpose and acceptance.
|
|
501
|
-
Tie substantive behavior, abstractions, configuration, compatibility, docs and
|
|
502
|
-
tests to a criterion or observed failure. Independent review must identify
|
|
503
|
-
unnecessary scope or complexity with file/line, burden, a smaller alternative,
|
|
504
|
-
preserved criteria and required verification. Do not optimize line counts or
|
|
505
|
-
remove required behavior, authorization, data integrity, concurrency, recovery,
|
|
506
|
-
regression coverage or evidence to shorten the diff.
|
|
507
|
-
|
|
508
|
-
Start from the latest required base in a dedicated worktree. Preserve user
|
|
509
|
-
changes. Build the smallest behaviorally correct patch and add a regression
|
|
510
|
-
that fails against the pre-fix behavior at the escaped boundary. Derive its
|
|
511
|
-
oracle from the frozen acceptance source or another independent specification;
|
|
512
|
-
agreement between a generated implementation and a test based on the same
|
|
513
|
-
unverified assumption is not sufficient evidence.
|
|
514
|
-
|
|
515
|
-
### 3. Verify locally by change boundary
|
|
516
|
-
|
|
517
|
-
Run focused regression tests first, then formatting, lint, type checking, unit
|
|
518
|
-
tests, and the actual affected runtime. Apply only the relevant lanes from
|
|
519
|
-
[the change-boundary matrix](references/change-boundary-matrix.md).
|
|
520
|
-
|
|
521
|
-
After local verification, execute the frozen review plan for the effective level
|
|
522
|
-
and governing repository. The independent reviewer compares the implementation
|
|
523
|
-
and observed outcomes to the frozen To-Be and original request, including affected
|
|
524
|
-
cross-view links, omissions and applicable historical regressions. Fix findings
|
|
525
|
-
narrowly and independently re-review the affected behavior.
|
|
526
|
-
|
|
527
|
-
Give the independent verifier the acceptance sources and raw evidence, not just
|
|
528
|
-
the implementer's summary. Use a separate session/agent for every review; another model can help but model count is not quality evidence.
|
|
529
|
-
|
|
530
|
-
Treat deleted tests, weakened assertions, changed expected values, disabled
|
|
531
|
-
checks, and relaxed CI or security policy as changes to the verification
|
|
532
|
-
boundary, not as proof that the implementation is correct. Require an explicit
|
|
533
|
-
rationale and independent evidence for the new boundary. Layer deterministic checks and independent AI review according to risk. AI decides reversible changes within existing authority, including configuration and migrations with proven restoration. Irreversible consequences, actual provider permissions and explicitly reserved human decisions still require the appropriate authority; do not silently create new access or consume payments.
|
|
534
|
-
|
|
535
|
-
### 4. Coordinate through Draft PR and integration state
|
|
536
|
-
|
|
537
|
-
After authority for the required remote changes exists, record reproduction,
|
|
538
|
-
tests, evidence, companion revisions, skipped checks, and remaining gates in the
|
|
539
|
-
Draft PR so the exact remote candidate can be inspected. Before Ready or merge,
|
|
540
|
-
pass the reviews and explicitly opted-in SQM gates required by the frozen plan.
|
|
541
|
-
The CLI's structured PR-preparation contract uses these stable rows for every new
|
|
542
|
-
Delivery Loop run: `current_base_and_head`, `current_ci_and_skips`,
|
|
543
|
-
`exact_revision_integration`, `e2e_outcome_and_cleanup`,
|
|
544
|
-
`security_and_privacy`, `ui_and_i18n`, `final_diff_and_scope`, and
|
|
545
|
-
`residual_status_disclosure`. A required row needs a concrete observation,
|
|
546
|
-
controller-verified evidence references, and the current full head SHA. Mark a
|
|
547
|
-
row not applicable only with a boundary reason, an authoritative source,
|
|
548
|
-
verified evidence, and the current head binding; failed, unavailable, stale,
|
|
549
|
-
skipped, or time-limited checks remain non-green. Exact-revision rows identify
|
|
550
|
-
each companion repository and full SHA, cleanup reports a numeric residual count
|
|
551
|
-
of zero, and security/privacy and UI/i18n rows carry structured boundary and
|
|
552
|
-
browser evidence rather than an unsupported prose claim.
|
|
553
|
-
|
|
554
|
-
Four additional safeguards are always present and are required only when their
|
|
555
|
-
boundary applies: `official_checklist_ownership`, `deployment_target_mapping`,
|
|
556
|
-
`live_data_safety`, and `resume_compatibility`. Non-applicability uses the same
|
|
557
|
-
current-head-bound verified-evidence rule as the eight stable rows. For checklist
|
|
558
|
-
or chat rendering, normalize heading levels 1 through 6, leading whitespace, and
|
|
559
|
-
trailing hashes; allow exactly one controller/validator-owned official checklist
|
|
560
|
-
and label model-generated lookalikes unverified. For release work, derive the
|
|
561
|
-
verification environment from an authoritative repository/branch deployment
|
|
562
|
-
topology and record how the exact deployed revision will be observed. For shared
|
|
563
|
-
or live tests, freeze a no-persistence, scoped-fixture, or explicitly authorized
|
|
564
|
-
production-write policy and prove residual test data is zero. When loop state,
|
|
565
|
-
derived views, or checklist rendering changes, verify normal and checkpoint
|
|
566
|
-
resume, classify paid resume as supported or not supported from verified
|
|
567
|
-
authoritative evidence, exercise paid resume when supported, and prove
|
|
568
|
-
derived-view recomputation and preservation of artifact content.
|
|
569
|
-
|
|
570
|
-
Immediately before promotion, fetch the remote base and require it to be an
|
|
571
|
-
ancestor of the final head and identical to the PR's base SHA. After any conflict
|
|
572
|
-
resolution, base/head/companion/manifest change, rerun affected CI, integration,
|
|
573
|
-
E2E, security, privacy, browser, and cleanup checks. Pin all companion SHAs and
|
|
574
|
-
verify the combined path. Inspect scenario outcomes, not only job status, and
|
|
575
|
-
prove cleanup left zero residual fixtures. Document every intentionally skipped
|
|
576
|
-
GitHub check with its reason and impact; never describe a skipped full/live job
|
|
577
|
-
as executed E2E. For changed trust boundaries, check that arbitrary error text,
|
|
578
|
-
email addresses, URLs, identifiers, credentials, and user data cannot leak into
|
|
579
|
-
logs, breadcrumbs, or telemetry. For UI or localization changes, inspect the
|
|
580
|
-
actual locale/browser, overflow, console/network state, and screenshots.
|
|
581
|
-
|
|
582
|
-
Before asking for review, report the exact head and companion SHAs, current base,
|
|
583
|
-
tests and CI, skipped checks, remaining uncertainty, and post-merge migration,
|
|
584
|
-
deployment, scheduler, smoke, monitoring, or publication work. `DIRTY`, `BEHIND`,
|
|
585
|
-
stale exact-SHA evidence, a cleanup failure, or missing required CI blocks Ready.
|
|
586
|
-
Do not let an earlier message or receipt override freshly observed GitHub state.
|
|
587
|
-
Rerun a review or SQM gate only when its bound head,
|
|
588
|
-
base, diff, specification, policy, evidence, environment or SQM bundle changed,
|
|
589
|
-
or when a PR-only check became applicable. Otherwise retain the verified receipt
|
|
590
|
-
and record its exact identity instead of duplicating ceremony.
|
|
591
|
-
Before Ready or merge, combine the latest base with required companion
|
|
592
|
-
and parallel changes, rerun the affected path, and confirm current CI and
|
|
593
|
-
mergeability. Without combined-state proof, report `pr_only_verified`, not
|
|
594
|
-
`integration_verified`.
|
|
595
|
-
|
|
596
|
-
### 5. Run the Codex-controlled Chrome user journey
|
|
597
|
-
|
|
598
|
-
For user-facing or browser-mediated behavior, build and start the complete
|
|
599
|
-
production-like local stack from exact candidate revisions, use real APIs when
|
|
600
|
-
the charter permits, then have Codex operate the user's Chrome through the
|
|
601
|
-
browser extension as a normal user. Do not replace this gate with direct API
|
|
602
|
-
calls or a fixed selector-only test.
|
|
603
|
-
|
|
604
|
-
Immediately after the journey, refresh and inspect the experience/acceptance table
|
|
605
|
-
for the same candidate revision, environment, fixture, and input. Compare the
|
|
606
|
-
entire trigger-to-usable-outcome path, including what the user understands and can
|
|
607
|
-
do next, with the frozen experience contract. Do not promote the local journey
|
|
608
|
-
because its individual controls, requests, or services worked in isolation.
|
|
609
|
-
|
|
610
|
-
Read [Codex Chrome user verification](references/chrome-user-verification.md)
|
|
611
|
-
before running this phase.
|
|
612
|
-
|
|
613
|
-
### 6. Merge and deploy only with authority
|
|
614
|
-
|
|
615
|
-
After authorization, use the repository's required merge method and verify the
|
|
616
|
-
remote merge result. Wait until the target environment reports the exact merge
|
|
617
|
-
revision or a verifiably derived image digest. Confirm health and runtime
|
|
618
|
-
identity before live verification.
|
|
619
|
-
|
|
620
|
-
For a production-impacting change, release through the frozen stages. At each
|
|
621
|
-
stage observe the named outcome and guardrail signals for the frozen window, then
|
|
622
|
-
apply the deterministic decision: promote only when all promotion thresholds pass;
|
|
623
|
-
hold when evidence is incomplete; abort or rollback when a halt threshold fires.
|
|
624
|
-
Verify the rollback mechanism and kill switch before exposure. Record the owner
|
|
625
|
-
and a receipt for every decision. A release plan is not evidence that a stage ran.
|
|
626
|
-
|
|
627
|
-
### 7. Verify the deployed user journey
|
|
628
|
-
|
|
629
|
-
Repeat the relevant Chrome journey against the deployed environment. Include
|
|
630
|
-
refresh, session return, delayed responses, follow-up lineage, authorization,
|
|
631
|
-
and artifact download/open checks when applicable. Capture screenshots and
|
|
632
|
-
video when visible or timing-dependent behavior matters.
|
|
633
|
-
|
|
634
|
-
Resolve that environment from the authoritative deployment topology for the
|
|
635
|
-
repository and branch; never assume a conventional environment name. Before the
|
|
636
|
-
journey, freeze its live-data write policy. Prefer non-persisting test input; when
|
|
637
|
-
a scoped fixture or authorized production write is necessary, bind it to the run,
|
|
638
|
-
reconcile ambiguous effects, clean it up, and independently prove the residual
|
|
639
|
-
count is zero.
|
|
640
|
-
|
|
641
|
-
If this fails, retain `merged` and `deployed_exact_revision`; do not reset
|
|
642
|
-
history or claim `done`. Save the exact revision, environment, input, Run ID,
|
|
643
|
-
timestamps, visible state, network evidence, and logs, then add a boundary
|
|
644
|
-
regression before re-entering implementation.
|
|
645
|
-
After the repair is deployed, repeat the same failing input and journey in the
|
|
646
|
-
same mapped environment against the newly observed exact revision before
|
|
647
|
-
advancing to `live_verified`.
|
|
648
|
-
|
|
649
|
-
After the frozen observation window, evaluate the production outcome and guardrail
|
|
650
|
-
measures for the same experience IDs. A functioning deployment is not successful
|
|
651
|
-
delivery when the intended outcome misses its threshold or a guardrail is breached.
|
|
652
|
-
|
|
653
|
-
### Feed repaired delivery failures back into SQM
|
|
654
|
-
|
|
655
|
-
When an observed failure was repaired, prepare one bounded `delivery.json` record
|
|
656
|
-
per failure using [the local evidence contract](references/local-sqm-evidence.md).
|
|
657
|
-
Record actual impact, distinct failing/fixed commit SHAs, and verification results.
|
|
658
|
-
Keep the same evidence_id when retrying the same submission. Include known PR URLs
|
|
659
|
-
so SQM can retrieve related evidence; a link alone does not establish identity.
|
|
660
|
-
|
|
661
|
-
When the user's delivery scope authorizes sharing these summaries with their SQM
|
|
662
|
-
organization, submit using `simy sqm submit-evidence --file delivery.json --host
|
|
663
|
-
<the authorized origin>`. Otherwise retain the draft locally. Never attach whole
|
|
664
|
-
transcripts, credentials, unrelated files, or automatically read paths named in
|
|
665
|
-
logs. Record the returned source digest and job ID in the delivery receipt.
|
|
666
|
-
Submission is not analysis completion or a published safeguard. Resource locking
|
|
667
|
-
and validation ordering still require Delivery Loop execution controls.
|
|
668
|
-
|
|
669
|
-
### 8. Clean up and issue the receipt
|
|
670
|
-
|
|
671
|
-
If retiring or superseding a PR, complete the [closure gate](references/pr-closure.md)
|
|
672
|
-
before the remote action and retain reviewable evidence before worktree cleanup.
|
|
673
|
-
|
|
674
|
-
Remove scoped fixtures and prove the residual count is zero. Deliver a compact
|
|
675
|
-
completion receipt containing shared-spec baseline/To-Be revisions and status,
|
|
676
|
-
the frozen review plan and identity-bound review results, applicable SQM proofs
|
|
677
|
-
and their reuse/rerun decision, historical coverage gaps, repository revisions, PR and CI, independent
|
|
678
|
-
review, container/runtime results, local Chrome evidence, merge and deployment
|
|
679
|
-
identity, rollout-stage and outcome/guardrail results, deployed Chrome evidence,
|
|
680
|
-
artifacts, cleanup, skipped gates, and
|
|
681
|
-
residual risk. Convert recurring findings into the smallest maintainable rule,
|
|
682
|
-
test, static check, or source-of-truth update selected by the five-response
|
|
683
|
-
comparison. Bound debt cleanup by scope, change size, and completion criteria;
|
|
684
|
-
record deferred debt rather than starting an open-ended refactor.
|
|
685
|
-
|
|
686
|
-
Judge the delivery by user outcomes, regressions, incidents, rework, review load,
|
|
687
|
-
and time to verified completion where measurable. Lines of code, PR count, or
|
|
688
|
-
agent activity are not success evidence by themselves.
|
|
689
|
-
|
|
690
|
-
When a next action would help, append an optional handoff with the recommendation,
|
|
691
|
-
expected outcome, evidence and uncertainty, owner, and re-evaluation trigger.
|
|
692
|
-
Record execution/result feedback separately from delivery acceptance. Suggestions
|
|
693
|
-
do not authorize execution or change the frozen goal. Broader sales or personal
|
|
694
|
-
action planning belongs to a separate workflow.
|
|
695
|
-
|
|
696
|
-
## Stop deliberately
|
|
697
|
-
|
|
698
|
-
Use exactly one disposition:
|
|
699
|
-
|
|
700
|
-
- `verified_complete`: every applicable gate passed with evidence;
|
|
701
|
-
- `best_available`: the loop produced a safe useful result but named
|
|
702
|
-
criteria remain unmet;
|
|
703
|
-
- `blocked`: missing authority, input, dependency, or safety precondition
|
|
704
|
-
prevents progress;
|
|
705
|
-
- `failed`: no safe useful candidate can make further verified progress;
|
|
706
|
-
- `cancelled`: the user stopped or replaced the task.
|
|
707
|
-
|
|
708
|
-
Stop after two consecutive non-improving candidates or an
|
|
709
|
-
A-B-A failure pattern without a materially different safe repair. Deliver the
|
|
710
|
-
best verified candidate, not merely the latest attempt.
|
|
1
|
+
# SIMY delivery
|
|
2
|
+
|
|
3
|
+
Complete the original user request, including later corrections. Choose the
|
|
4
|
+
smallest useful action and continue through repair and verification until the
|
|
5
|
+
requested behavior works. A PR is completion only when the requested endpoint
|
|
6
|
+
is a PR; it does not imply deployment or a working downstream experience.
|
|
7
|
+
|
|
8
|
+
Use the actual product or output to check correctness, clarity and ease of use.
|
|
9
|
+
Run tests appropriate to the change. Investigate failed results and fix their
|
|
10
|
+
cause. Reuse existing test outputs and observations. A green test does not prove
|
|
11
|
+
an unrelated user outcome. Unknown or unfinished behavior stays unfinished.
|
|
12
|
+
|
|
13
|
+
Do not require audit approval, evidence packages, twelve-view specifications,
|
|
14
|
+
preparation matrices, checklist completion, assurance scores, citation syntax,
|
|
15
|
+
or separate-session reviews as universal conditions for doing or finishing work.
|
|
16
|
+
Reference documents and old validators describe available techniques and legacy
|
|
17
|
+
formats; they do not impose additional completion duties. Use a second opinion
|
|
18
|
+
when it helps resolve a concrete uncertainty, or when the user requests a review.
|
|
19
|
+
Do not fabricate an independent review when none was performed.
|
|
20
|
+
|
|
21
|
+
Preserve the user's requested scope, changes, explicit stops, actual permissions
|
|
22
|
+
and budgets. Reconcile an unknown external result before repeating the operation.
|
|
23
|
+
Do useful independent work while waiting for an external dependency. Preserve
|
|
24
|
+
repository branch protection and required CI. Verify remote mutations before
|
|
25
|
+
reporting them successful. Merge, deploy, send messages and close PRs only within
|
|
26
|
+
the user's authorization.
|
|
27
|
+
|
|
28
|
+
Explain the outcome and actual remaining limitations concisely. Do not ask the
|
|
29
|
+
user to certify technical correctness, fill a table, choose a routine verification
|
|
30
|
+
level, or approve a reversible implementation detail.
|