kijito-tools 0.2.0
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/LICENSE +201 -0
- package/NOTICE +6 -0
- package/README.md +220 -0
- package/bin/cli.js +34 -0
- package/install.sh +161 -0
- package/package.json +50 -0
- package/providers/_shared/wake-core.mjs +358 -0
- package/providers/claude/CLAUDE.md.snippet +31 -0
- package/providers/claude/install.sh +186 -0
- package/providers/claude/scripts/arm-session.sh +66 -0
- package/providers/claude/scripts/claude-armed.sh +101 -0
- package/providers/claude/scripts/heartbeat-watchdog.sh +209 -0
- package/providers/claude/scripts/inbox-selftest.sh +277 -0
- package/providers/claude/scripts/kijito-persona-lib.sh +94 -0
- package/providers/claude/scripts/kijito-qa-pass.sh +12 -0
- package/providers/claude/scripts/lifecycle-lib.sh +167 -0
- package/providers/claude/scripts/myctx.sh +46 -0
- package/providers/claude/scripts/self-clear.sh +134 -0
- package/providers/claude/scripts/session-autosend.sh +85 -0
- package/providers/claude/scripts/session-catchup-hint.sh +330 -0
- package/providers/claude/scripts/statusline-context.sh +67 -0
- package/providers/claude/skills/kijito-qa-memory/SKILL.md +110 -0
- package/providers/claude/skills/kijito-recall/SKILL.md +53 -0
- package/providers/claude/skills/kijito-start/SKILL.md +122 -0
- package/providers/claude/wiring/README.md +93 -0
- package/providers/claude/wiring/kijito-heartbeat@.service +21 -0
- package/providers/codex/README.md +75 -0
- package/providers/codex/codex-kijito-parity-plan.md +265 -0
- package/providers/codex/docs-codex-setup.md +64 -0
- package/providers/codex/install.mjs +184 -0
- package/providers/codex/n0-capability-probe-protocol.md +472 -0
- package/providers/codex/n0-harness/README.md +57 -0
- package/providers/codex/n0-harness/cli.mjs +58 -0
- package/providers/codex/n0-harness/evidence-manifest.mjs +77 -0
- package/providers/codex/n0-harness/fixture.mjs +279 -0
- package/providers/codex/n0-harness/lib.mjs +141 -0
- package/providers/codex/n0-harness/manifest.mjs +36 -0
- package/providers/codex/n0-harness/oracle.mjs +464 -0
- package/providers/codex/n0-harness/parser.mjs +200 -0
- package/providers/codex/n0-harness/prompt.mjs +43 -0
- package/providers/codex/n0-harness/snapshot.mjs +120 -0
- package/providers/codex/n0-harness/specimen.mjs +37 -0
- package/providers/codex/notify/kijito-notify-count.mjs +117 -0
- package/providers/codex/notify/kijito-notify-count.test.mjs +76 -0
- package/providers/codex/plans/gate4-battery-log.md +184 -0
- package/providers/codex/plans/gate4-battery-protocol.md +43 -0
- package/providers/codex/plans/hive-user-first-plan-QA.md +34 -0
- package/providers/codex/plans/hive-user-first-plan.md +247 -0
- package/providers/codex/release-manifest.json +53 -0
- package/providers/codex/same-chat-continuation-plan-gate.md +235 -0
- package/providers/codex/same-chat-continuation-plan.md +458 -0
- package/providers/codex/skills/kijito-qa-memory/SKILL.md +193 -0
- package/providers/codex/skills/kijito-qa-memory/agents/openai.yaml +4 -0
- package/providers/codex/skills/kijito-recall/SKILL.md +53 -0
- package/providers/codex/skills/kijito-start/SKILL.md +173 -0
- package/providers/codex/skills/kijito-start/agents/openai.yaml +4 -0
- package/providers/codex/test/n0-cli-refusal.test.mjs +31 -0
- package/providers/codex/test/n0-counterexample-matrix.test.mjs +118 -0
- package/providers/codex/test/n0-guard-census-core.mjs +1372 -0
- package/providers/codex/test/n0-guard-census.json +35479 -0
- package/providers/codex/test/n0-guard-census.mjs +31 -0
- package/providers/codex/test/n0-guard-census.test.mjs +374 -0
- package/providers/codex/test/n0-guard-counterexamples.mjs +1068 -0
- package/providers/codex/test/n0-guard-independent-projection.mjs +70 -0
- package/providers/codex/test/n0-guard-independent-projection.test.mjs +53 -0
- package/providers/codex/test/n0-guard-manifest-author.mjs +424 -0
- package/providers/codex/test/n0-guard-mutation-operators.test.mjs +244 -0
- package/providers/codex/test/n0-guard-mutation-runner.mjs +599 -0
- package/providers/codex/test/n0-guard-remainder-classes.test.mjs +314 -0
- package/providers/codex/test/n0-guard-sanitizer-pairs.test.mjs +68 -0
- package/providers/codex/test/n0-guard-shared-context-predicates.test.mjs +84 -0
- package/providers/codex/test/n0-harness.test.mjs +553 -0
- package/providers/codex/test/n0-notable-regressions.test.mjs +70 -0
- package/providers/codex/test/n0-subject-boundary.mjs +97 -0
- package/providers/codex/test/n0-subject-boundary.test.mjs +72 -0
- package/providers/codex/test/same-chat-plan-preflight.sh +167 -0
- package/providers/codex/tools/refresh-manifest.mjs +81 -0
- package/providers/codex/wake-helper/TRANSPORT-NOTES.md +25 -0
- package/providers/codex/wake-helper/integration.test.mjs +285 -0
- package/providers/codex/wake-helper/kijito-wake-helper.mjs +488 -0
- package/providers/codex/wake-helper/kijito-wake-helper.test.mjs +128 -0
- package/providers/codex/wake-helper/mock-daemon.mjs +64 -0
- package/providers/codex/wake-helper/status-probe.mjs +45 -0
- package/providers/codex/wake-helper/ws-uds.mjs +153 -0
- package/providers/monitor/.github/workflows/publish-npm.yml +38 -0
- package/providers/monitor/.github/workflows/publish-pypi.yml +30 -0
- package/providers/monitor/CHANGELOG.md +465 -0
- package/providers/monitor/IMPORT-PROVENANCE.md +68 -0
- package/providers/monitor/LICENSE +202 -0
- package/providers/monitor/NOTICE +7 -0
- package/providers/monitor/OPAQUE-OUTPUT-ENFORCEMENT.md +45 -0
- package/providers/monitor/README.md +571 -0
- package/providers/monitor/RELEASING.md +125 -0
- package/providers/monitor/arm-hive-monitor.sh +13 -0
- package/providers/monitor/bin/cli.js +43 -0
- package/providers/monitor/com.kijito.inbox-monitor.plist.template +59 -0
- package/providers/monitor/docs/DESIGN.md +984 -0
- package/providers/monitor/kijito-inbox-monitor@.service.template +95 -0
- package/providers/monitor/kijito_inbox_monitor.py +3666 -0
- package/providers/monitor/package.json +35 -0
- package/providers/monitor/pyproject.toml +42 -0
- package/providers/monitor/scripts/mutation-check.py +399 -0
- package/providers/monitor/scripts/prepublish-gate.sh +284 -0
- package/providers/monitor/test_kijito_monitor.py +5609 -0
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
# Same-chat continuation plan — author lint record
|
|
2
|
+
|
|
3
|
+
Plan: [`same-chat-continuation-plan.md`](same-chat-continuation-plan.md)
|
|
4
|
+
|
|
5
|
+
Plan SHA-256: `3d11d5e0defd248e3a26d12ddb073fdd337acf8f38df785a204fbd2e0f22afac`
|
|
6
|
+
|
|
7
|
+
Scope: presence-only author lint. It constructs no behavioral specimen and contributes **zero** to
|
|
8
|
+
the required Assay reviews. No capability probe, provider/server implementation, installation,
|
|
9
|
+
migration, or production change is represented here.
|
|
10
|
+
|
|
11
|
+
## Independent review history
|
|
12
|
+
|
|
13
|
+
### Round 1
|
|
14
|
+
|
|
15
|
+
- Frozen commit: `00e8cba40fdd6720593eb14da2d22f13b4084512`
|
|
16
|
+
- Plan digest: `37aecdc4f0290b225c134e0297a6709279517109b0885df3400e2bc4c6faca12`
|
|
17
|
+
- Verdict: **NOT CLEAN — 0/2**
|
|
18
|
+
- Review: `QA/reviews/PR6-same-chat-plan-round1-00e8cba.md` at `a710ad8`
|
|
19
|
+
|
|
20
|
+
### Round 2
|
|
21
|
+
|
|
22
|
+
- Frozen commit: `0f6ed7ef9b94b2d24ddd10cc7896b2d233450f59`
|
|
23
|
+
- Plan digest: `a37ae68f16250097cfa6b7c1dbcb891f1a6cc32e8caf76ea28f93a76a8638bf2`
|
|
24
|
+
- Verdict: **NOT CLEAN — 0/2**
|
|
25
|
+
- Review: `QA/reviews/PR6-same-chat-plan-round2-0f6ed7e.md` at `5a0fba0`
|
|
26
|
+
- Calibration: nine of ten round-1 findings closed REAL; exact-chat identity evidence independently
|
|
27
|
+
validated against the app-owned rollout and historical 2630 lookalike.
|
|
28
|
+
|
|
29
|
+
### Round 3
|
|
30
|
+
|
|
31
|
+
- Frozen commit: `bdf4701cff554aa3e2343f0b0a3fcdffd35fe61e`
|
|
32
|
+
- Plan digest: `b6d2537f66a6ba76aa8e4414ba486b3784303c2b7d501ba1166e505ae39912e1`
|
|
33
|
+
- Verdict: **NOT CLEAN — 0/2, one load-bearing item**
|
|
34
|
+
- Review: `QA/reviews/PR6-same-chat-plan-round3-bdf4701.md` at `59b22d5`
|
|
35
|
+
- Calibration: every round-2 load-bearing item closed REAL; the remaining `REQUIRES_USER` lifecycle
|
|
36
|
+
defect entered through the new multi-slice bound.
|
|
37
|
+
|
|
38
|
+
### Round 4
|
|
39
|
+
|
|
40
|
+
- Frozen commit: `5117d7286054980c3b77a50307359b2fccfd6f8a`
|
|
41
|
+
- Plan digest: `7e9b19a1678878f847075f8bd5470b75f0741d9168b166bf9a3f2f90b8faede9`
|
|
42
|
+
- Initial verdict: **CLEAN 1/2**, later superseded by round 5's wrong-action finding on the same bytes
|
|
43
|
+
- Review: `QA/reviews/PR6-same-chat-plan-round4-5117d72.md` at `2776eb0`
|
|
44
|
+
|
|
45
|
+
### Round 5
|
|
46
|
+
|
|
47
|
+
- Frozen commit/digest: exact unchanged round-4 specimen above
|
|
48
|
+
- Verdict: **NOT CLEAN — count reset to 0/2**
|
|
49
|
+
- Review: `QA/reviews/PR6-same-chat-plan-round5-5117d72.md` at `7373478`
|
|
50
|
+
- Different-angle result: identity, drain, liveness, fence, and general authority design passed; an
|
|
51
|
+
unpartitioned operator-resolution field allowed hostile mail to forge quarantine authority.
|
|
52
|
+
|
|
53
|
+
This revision changes the plan digest; no review count carries forward.
|
|
54
|
+
|
|
55
|
+
## Cumulative author disclosures
|
|
56
|
+
|
|
57
|
+
The round-2 author record remains archived at commit `0f6ed7ef9b94b2d24ddd10cc7896b2d233450f59`.
|
|
58
|
+
Before that digest froze, author review disclosed and corrected three defects: the claim-API gate
|
|
59
|
+
deadlock, missing durable `DEFERRED`/release semantics, and unsafe use of the live `codex` persona for
|
|
60
|
+
synthetic probes. The round-1 CI-red/revert caused by stale historical-plan provenance remains visible
|
|
61
|
+
in git history. The superseded provenance digest was
|
|
62
|
+
`b1fc0953d94b1e9712097dd382b32360d57f09815cc47a3be591c8000c819537`.
|
|
63
|
+
|
|
64
|
+
## Round-1 trace retained
|
|
65
|
+
|
|
66
|
+
| Finding | Revision and named evidence |
|
|
67
|
+
|---|---|
|
|
68
|
+
| L1 identity proof had no external channel | Outcome 3/N0a require app-owned rollout `session_meta`, Scheduled evidence, run/turn ID, and outside verifier. |
|
|
69
|
+
| L2 lifecycle assumed programmatic Scheduled API | Sections 3/6 make management attended; N0b tests create/inspect/pause/resume/delete and doctor evidence. |
|
|
70
|
+
| L3 lease/CAS was underspecified | Section 5/N1 define holder token, fence, lease/renewal, intent, receipt, release, and stale-writer rejection. |
|
|
71
|
+
| L4 poison row could coexist with ARMED | Sections 5/6/N2 make blocked discovery doctor-RED and define exact attended quarantine. |
|
|
72
|
+
| L5 continued work was not measurable | Outcome 5/G5 require an independently read run-bound workspace receipt. |
|
|
73
|
+
| L6 old design remained install-authorized | PR #5 closed; provider/root README, installer, and historical plan now carry withdrawal fences. |
|
|
74
|
+
| L7 security change lacked testable bounds/acceptance | Outcome 6/section 4/G3 pin the behavioral boundary; N3 requires Jason's explicit acceptance. |
|
|
75
|
+
| L8 legacy retirement had no owner/order/rollback | Section 7 names River and defines ordered single-consumer cutover/rollback. |
|
|
76
|
+
| L9 mid-turn/overlap assumptions were too late | N0a forces and measures both cases before implementation. |
|
|
77
|
+
| L10 mark-read contradicted the ledger | Outcome 7/section 5 define ack as checkpoint commit and demote `mark_read` to courtesy. |
|
|
78
|
+
|
|
79
|
+
## Round-3 closure matrix
|
|
80
|
+
|
|
81
|
+
| Round-2 item | Closure in this digest |
|
|
82
|
+
|---|---|
|
|
83
|
+
| LB-1 residual install surfaces | Root README warning + withdrawn provider row/commands; runtime installer stderr warning; historical parity-plan status withdrawn; manifest provenance hash refreshed; CI runs author lint. |
|
|
84
|
+
| LB-2 inconsistent authority | One canonical AUTHORITY paragraph appears verbatim in plan status, plan section 8, and this record. It names River as claim-API plan owner and Assay as its two-round reviewer. |
|
|
85
|
+
| LB-3 success never released claim | Success commits checkpoint ack, then releases/clears exact claim; release failure blocks new action and reconciles release without repeating disposition. |
|
|
86
|
+
| LB-4 permanent backlog halt | Each tick persists bounded scan cursor/ranges; `DRAINING_BACKLOG` resumes next tick, reaches checkpoint, and drains ascending IDs before a new scan. |
|
|
87
|
+
| LB-5 false five-minute cap | Deleted; only the measured 60-second default and unproven holder/fence contract remain. |
|
|
88
|
+
| LB-6 missing checkpoint schema | Section 5 restores the complete identity, scan, claim, action, pointer, heartbeat, ack, and health field enumeration. |
|
|
89
|
+
| LB-7 overstated author check | Renamed presence-only author lint everywhere; explicitly constructs no specimen and carries zero review weight. |
|
|
90
|
+
|
|
91
|
+
## Advisory closure
|
|
92
|
+
|
|
93
|
+
- The 15-second timer is now the first of four per-tick drain limits and has a defined
|
|
94
|
+
`DRAINING_BACKLOG` transition; it no longer competes impossibly with 256 round trips.
|
|
95
|
+
- UI-only Scheduled evidence is setup evidence; mechanized doctor uses rollout/hosted heartbeat and
|
|
96
|
+
expires ARMED after two missed cadences instead of claiming an unsupported management reader.
|
|
97
|
+
- Section 11 distinguishes the forbidden withdrawn-controller migration path from section 7's
|
|
98
|
+
checkpoint cutover.
|
|
99
|
+
- N0a forces overlap with two synchronized disposable tasks and a 75-second disposable barrier.
|
|
100
|
+
- Jason is named owner of the pre-registered work envelope.
|
|
101
|
+
- Author lint falls back to `grep -F` when `rg` is absent and now runs in CI.
|
|
102
|
+
- N1 labels the long lease-duration test synthetic and exempt from the production slice limit.
|
|
103
|
+
- Per-message disposition is bounded to ten slices or ten minutes before `REQUIRES_USER`.
|
|
104
|
+
|
|
105
|
+
## Round-4 closure matrix
|
|
106
|
+
|
|
107
|
+
| Round-3 item | Closure in this digest |
|
|
108
|
+
|---|---|
|
|
109
|
+
| N-1 `REQUIRES_USER` lifecycle | It is a fenced terminal disposition: commits `completed_id=M`, releases the claim, blocks ARMED/later work, never rediscovers `M`, and clears only through an attended resolution (round 5 later found its authority undefined). |
|
|
110
|
+
| N-2 undefined `AMBIGUOUS_ACTION` | Defined as irreconcilable intent/effect evidence; leaves `completed_id` below `M`, releases, blocks discovery/ARMED without replay, and requires evidence-backed commit or attended exact quarantine (authority superseded below). |
|
|
111
|
+
| N-3 terminal claim release | Success, `REQUIRES_USER`, ambiguity, `DEFERRED`, and quarantine all release; any failure enters bounded/escapable `CLAIM_RELEASE_FAILED(M)` without repeated action. |
|
|
112
|
+
| N-4 release-failure escape | Doctor stays RED while idempotent release/absence checks run; server-proven expiry/absence or attended exact-holder release clears it. |
|
|
113
|
+
| N-5 dispatcher authorization surface | Root `install.sh` comments label the Codex notifier withdrawn and direct users to skills-only. |
|
|
114
|
+
| N-6 cumulative disclosures | This record links the round-2 artifact, retains its three author-found defects, and preserves the superseded provenance digest. |
|
|
115
|
+
| N-7 stale L1-L10 QA wording | Section 10 and lint now require all accumulated independent load-bearing findings, not one historical enumeration. |
|
|
116
|
+
|
|
117
|
+
The full six-line canonical authority paragraph is counted line-by-line in both plan locations and
|
|
118
|
+
this record. N0a labels its 75-second barrier synthetic and exempt from the production slice cap.
|
|
119
|
+
|
|
120
|
+
## Five-point runtime-state check
|
|
121
|
+
|
|
122
|
+
| Runtime state/bound | Doctor | Outcome 8 | Checkpoint | Probe | `completed_id` effect and escape |
|
|
123
|
+
|---|---|---|---|---|---|
|
|
124
|
+
| `DRAINING_BACKLOG` | enumerated | blocks ARMED | scan cursor/ranges/bytes | N2 | unchanged; bounded next-tick resume/drain |
|
|
125
|
+
| `BLOCKED_ROW(id)` | enumerated | blocks ARMED | health reason + exact ID | N2 | below ID; repair or exact-bound journal quarantine |
|
|
126
|
+
| ten-slice/ten-minute bound → `REQUIRES_USER(id)` | enumerated | blocks ARMED | slices/deadline/reason/resolution | N1 | commits ID once; attended journal resolution, never reopen ID |
|
|
127
|
+
| `AMBIGUOUS_ACTION(id)` | enumerated | blocks ARMED | intent + ambiguity evidence/resolution | N1 | below ID; evidence-backed commit or journal-authorized quarantine |
|
|
128
|
+
| `CLAIM_RELEASE_FAILED(id)` | enumerated | blocks ARMED | holder/lease/health reason | N1 | preserves prior choice; proven expiry/absence or attended exact release |
|
|
129
|
+
|
|
130
|
+
Every row has all five entries. This table is static author lint, not behavioral proof.
|
|
131
|
+
|
|
132
|
+
## Round-6 hostile-mail closure matrix
|
|
133
|
+
|
|
134
|
+
| Round-5 item | Closure in this digest |
|
|
135
|
+
|---|---|
|
|
136
|
+
| N4-1 operator-authority forgery | Operator authority is an out-of-band append-only journal under a separate attended principal. The scheduled run cannot write any operator-authored checkpoint/control-plane field; its checkpoint stores only a validated decision observation. Canonical signatures bind persona/chat/message/observed-input/checkpoint/decision/expiry/nonce, and G3 tests the write partition as a schema property. |
|
|
137
|
+
| N4-2 terminal-halt disclosure | N3 tells Jason that one bad/provenance-invalid or work-bound row can halt the lane until his attended decision; the bounds are not runtime-adjustable. |
|
|
138
|
+
| N4-3 POSIX marker labels | Shell helpers execute in subshell functions, preventing helper variables from clobbering the caller's marker; expected PLAN/GATE labels reproduce under POSIX `sh`. |
|
|
139
|
+
| A1 acquisition of `T` | A snapshot plus verifier-generated 128-bit attended marker nonce must identify exactly one app-owned rollout/session ID before scheduling; ambiguity and newest/mtime heuristics are RED. |
|
|
140
|
+
| A2 nonce provenance | The run nonce is verifier-generated and pre-registered with task ID/prompt digest; run-generated nonce is RED. |
|
|
141
|
+
| A3 corrupt scan cursor | A valid operator decision may delete derived scan cursor/range/pending/byte fields only, keep `completed_id`, and force a full newest-to-checkpoint rescan. |
|
|
142
|
+
| A4 heartbeat recency | For the one-minute cadence, server age is at most 135 seconds (two cadences + measured 15-second skew); excess skew is RED. |
|
|
143
|
+
|
|
144
|
+
### Operator-authority property trace
|
|
145
|
+
|
|
146
|
+
| Property | Plan evidence | Probe |
|
|
147
|
+
|---|---|---|
|
|
148
|
+
| no scheduled-run write to operator authority | checkpoint/journal write partition in section 5 | N1 attempts every journal/control-plane write and requires structural denial |
|
|
149
|
+
| out-of-band attended artifact | canonical signed `CODEX_CONTINUATION_OPERATOR_DECISION_V1` journal row | N1 exact-fetch/signature/principal/binding checks |
|
|
150
|
+
| hostile mail cannot substitute authority | mail/checkpoint/copied/replayed artifacts explicitly rejected | N1 forged/replayed/wrong-binding matrix + G3 schema property |
|
|
151
|
+
| doctor does not trust run self-report | doctor reads the operator journal directly | N0b/N1 external verification |
|
|
152
|
+
| quarantine cannot skip on attacker text | exact-bound valid journal row required before fenced advance | N1 invalid-vs-valid escape probe |
|
|
153
|
+
|
|
154
|
+
## Canonical post-review authority
|
|
155
|
+
|
|
156
|
+
**AUTHORITY:** Two consecutive Assay-CLEAN reviews of this exact plan digest open N0a/N0b only.
|
|
157
|
+
GREEN N0 then authorizes disposable test-persona probes of the current N1-N3 surfaces, but no
|
|
158
|
+
Codex-provider or Kijito-server implementation. If N1 rejects the current API, a separate
|
|
159
|
+
provider-neutral claim/operator-decision API plan owned by River must receive two consecutive
|
|
160
|
+
Assay-CLEAN reviews before any such API code is written. An installable Codex provider remains
|
|
161
|
+
forbidden until N0-N3 are GREEN and Jason explicitly accepts N3.
|
|
162
|
+
|
|
163
|
+
## Traceability lint
|
|
164
|
+
|
|
165
|
+
| Outcome clause | Gate evidence |
|
|
166
|
+
|---|---|
|
|
167
|
+
| remote row while user is away | N0a, G5 |
|
|
168
|
+
| unprompted run within SLO in exact running chat | N0a, G2, G5 |
|
|
169
|
+
| out-of-band chat/environment/permission identity | N0a rollout/Scheduled evidence, N0b doctor, G5 |
|
|
170
|
+
| exact row despite unread changes | N2, G1, G2 |
|
|
171
|
+
| pointer load and measurable work continuation | N0a tool proof, G2, G5 external receipt |
|
|
172
|
+
| fixed authority despite hostile mail | Jason-owned envelope, N3 acceptance, G3 |
|
|
173
|
+
| fenced crash-safe transaction and checkpoint ack | N1, N2, G1, G2, G5 |
|
|
174
|
+
| evidence-based non-blocked ARMED health | N0b, N2, G4 |
|
|
175
|
+
| attended lifecycle and single-consumer cutover | sections 6-7, G4 |
|
|
176
|
+
|
|
177
|
+
Message 2630 is rejected by exact rollout ID equality, all-mail exact paging, checkpoint-not-unread
|
|
178
|
+
ack, external work receipt, and summary-only RED.
|
|
179
|
+
|
|
180
|
+
## False-pass text lint
|
|
181
|
+
|
|
182
|
+
The script only verifies that each named rejecting rule exists. It does not instantiate these rows,
|
|
183
|
+
execute the mechanism, or review semantics.
|
|
184
|
+
|
|
185
|
+
| Marker | False-pass class | Required rejecting rule |
|
|
186
|
+
|---|---|---|
|
|
187
|
+
| `FP01_IDENTITY_CHANNEL_REJECTED` | run self-reports `T`, no outside artifact | absent independently readable native artifact makes N0 RED |
|
|
188
|
+
| `FP02_CHAT_ONLY_WORK_REJECTED` | “continued” but no external receipt | chat-only/summary behavior is RED |
|
|
189
|
+
| `FP03_UI_API_ASSUMPTION_REJECTED` | helper assumes programmatic arm | no assumed Scheduled management API |
|
|
190
|
+
| `FP04_EXPIRED_LEASE_REPLAY_REJECTED` | retry solely after lease expiry | reconcile intent/receipt; expiry is not absence proof |
|
|
191
|
+
| `FP05_POISON_GREEN_REJECTED` | malformed row while doctor says ARMED | BLOCKED row cannot advance and doctor is RED |
|
|
192
|
+
| `FP06_UNREAD_ACK_REJECTED` | `mark_read` called acknowledgment | fenced completed-checkpoint commit is ack |
|
|
193
|
+
| `FP07_AUTHORITY_EXPANSION_REJECTED` | mail broadens tools/scope | user-authored prompt/envelope fixes authority |
|
|
194
|
+
| `FP08_DOUBLE_CONSUMER_REJECTED` | native task arms with legacy consumer | ARMED unreachable until single-consumer proof |
|
|
195
|
+
| `FP09_STEER_REJECTED` | scheduled row steers active manual turn | N0a requires queued/non-steered behavior |
|
|
196
|
+
| `FP10_SUMMARY_ONLY_REJECTED` | correct chat summarizes without work | external run-bound receipt required |
|
|
197
|
+
|
|
198
|
+
## Author lint result (non-counting)
|
|
199
|
+
|
|
200
|
+
- Timestamp: `2026-07-30T20:42:40Z`
|
|
201
|
+
- Plan digest: `3d11d5e0defd248e3a26d12ddb073fdd337acf8f38df785a204fbd2e0f22afac`
|
|
202
|
+
- False-pass text markers: **10/10 present**
|
|
203
|
+
- Independent finding traces: **21/21 present (L1-L10, LB-1..LB-7, N-1..N-3, N4-1)**
|
|
204
|
+
- Runtime-state five-point rows: **5/5 complete**
|
|
205
|
+
- Operator-authority property rows: **5/5 complete**
|
|
206
|
+
- Supersession surfaces: **provider/root README, provider/root installer, parity plan, PR disposition present**
|
|
207
|
+
- Provider conformance: **59/59 GREEN**
|
|
208
|
+
- Controller/release regression suites: **17/17 GREEN**
|
|
209
|
+
- `git diff --check`: **GREEN**
|
|
210
|
+
|
|
211
|
+
## Reproduction
|
|
212
|
+
|
|
213
|
+
From the repository root:
|
|
214
|
+
|
|
215
|
+
```sh
|
|
216
|
+
git diff --check
|
|
217
|
+
shasum -a 256 providers/codex/same-chat-continuation-plan.md
|
|
218
|
+
providers/codex/test/same-chat-plan-preflight.sh
|
|
219
|
+
PATH=/Applications/ChatGPT.app/Contents/Resources/cua_node/bin:$PATH \
|
|
220
|
+
bash tests/conformance_test.sh --selftest
|
|
221
|
+
PATH=/Applications/ChatGPT.app/Contents/Resources/cua_node/bin:$PATH \
|
|
222
|
+
node --test providers/codex/test/codex-hive-watch.test.mjs \
|
|
223
|
+
providers/codex/test/wake-recovery-v2.test.mjs \
|
|
224
|
+
providers/codex/test/release-packaging.test.mjs
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
The plan hash must equal the digest above. These commands reproduce author lint and regression
|
|
228
|
+
checks only; they do not reproduce an independent semantic plan review.
|
|
229
|
+
|
|
230
|
+
## Next gate
|
|
231
|
+
|
|
232
|
+
Freeze/push one consolidated plan-and-supersession-fence revision, wait for CI, then send Assay the
|
|
233
|
+
exact Git-returned full commit SHA and plan digest for round 6. The independent count remains 0/2 until
|
|
234
|
+
a CLEAN review; two consecutive CLEAN reviews must use one exact unchanged digest. The canonical
|
|
235
|
+
AUTHORITY paragraph above is the only post-review permission statement.
|