@open-agent-toolkit/cli 0.1.72 → 0.1.74

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.
Files changed (134) hide show
  1. package/README.md +1 -0
  2. package/assets/config/dispatch-matrix-recommendation.json +13 -17
  3. package/assets/docs/cli-utilities/configuration.md +42 -60
  4. package/assets/docs/cli-utilities/index.md +1 -0
  5. package/assets/docs/cli-utilities/project-log.md +183 -0
  6. package/assets/docs/cli-utilities/workflow-gates.md +38 -2
  7. package/assets/docs/provider-sync/providers.md +15 -17
  8. package/assets/docs/reference/cli-reference.md +1 -0
  9. package/assets/docs/workflows/projects/artifacts.md +1 -1
  10. package/assets/docs/workflows/projects/dispatch-ceiling.md +29 -33
  11. package/assets/docs/workflows/projects/implementation-execution.md +7 -4
  12. package/assets/docs/workflows/projects/lifecycle.md +4 -3
  13. package/assets/public-package-versions.json +4 -4
  14. package/assets/skills/oat-dispatch-subagents/SKILL.md +1 -1
  15. package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +27 -15
  16. package/assets/skills/oat-project-autonomous/SKILL.md +1 -1
  17. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +4 -3
  18. package/assets/skills/oat-project-complete/SKILL.md +60 -1
  19. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +4 -3
  20. package/assets/skills/oat-project-implement/SKILL.md +18 -2
  21. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +17 -15
  22. package/assets/skills/oat-project-implement/references/dispatch-and-dry-run.md +15 -9
  23. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +4 -3
  24. package/assets/skills/oat-project-implement/references/phase-execution.md +11 -5
  25. package/assets/skills/oat-project-import-plan/SKILL.md +30 -8
  26. package/assets/skills/oat-project-plan/SKILL.md +30 -8
  27. package/assets/skills/oat-project-plan-writing/SKILL.md +12 -9
  28. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +4 -3
  29. package/assets/skills/oat-project-quick-start/SKILL.md +30 -8
  30. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +4 -3
  31. package/assets/skills/oat-project-review-provide/SKILL.md +19 -11
  32. package/assets/skills/oat-project-review-provide-remote/SKILL.md +27 -4
  33. package/assets/skills/oat-project-summary/SKILL.md +122 -18
  34. package/assets/templates/project-log.md +47 -0
  35. package/dist/commands/config/index.d.ts.map +1 -1
  36. package/dist/commands/config/index.js +41 -0
  37. package/dist/commands/doctor/index.d.ts +2 -1
  38. package/dist/commands/doctor/index.d.ts.map +1 -1
  39. package/dist/commands/doctor/index.js +37 -1
  40. package/dist/commands/gate/index.d.ts +3 -1
  41. package/dist/commands/gate/index.d.ts.map +1 -1
  42. package/dist/commands/gate/index.js +134 -7
  43. package/dist/commands/init/index.d.ts +1 -1
  44. package/dist/commands/init/index.d.ts.map +1 -1
  45. package/dist/commands/init/index.js +40 -8
  46. package/dist/commands/init/tools/shared/skill-manifest.d.ts +1 -1
  47. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  48. package/dist/commands/init/tools/shared/skill-manifest.js +1 -0
  49. package/dist/commands/project/dispatch-ceiling/index.d.ts.map +1 -1
  50. package/dist/commands/project/dispatch-ceiling/index.js +17 -9
  51. package/dist/commands/project/index.d.ts.map +1 -1
  52. package/dist/commands/project/index.js +2 -0
  53. package/dist/commands/project/log/append.d.ts +41 -0
  54. package/dist/commands/project/log/append.d.ts.map +1 -0
  55. package/dist/commands/project/log/append.js +241 -0
  56. package/dist/commands/project/log/check.d.ts +66 -0
  57. package/dist/commands/project/log/check.d.ts.map +1 -0
  58. package/dist/commands/project/log/check.js +194 -0
  59. package/dist/commands/project/log/grammar.d.ts +28 -0
  60. package/dist/commands/project/log/grammar.d.ts.map +1 -0
  61. package/dist/commands/project/log/grammar.js +31 -0
  62. package/dist/commands/project/log/index.d.ts +9 -0
  63. package/dist/commands/project/log/index.d.ts.map +1 -0
  64. package/dist/commands/project/log/index.js +13 -0
  65. package/dist/commands/project/log/rollup.d.ts +40 -0
  66. package/dist/commands/project/log/rollup.d.ts.map +1 -0
  67. package/dist/commands/project/log/rollup.js +203 -0
  68. package/dist/commands/project/log/synthesize.d.ts +23 -0
  69. package/dist/commands/project/log/synthesize.d.ts.map +1 -0
  70. package/dist/commands/project/log/synthesize.js +112 -0
  71. package/dist/commands/project/new/index.d.ts +1 -0
  72. package/dist/commands/project/new/index.d.ts.map +1 -1
  73. package/dist/commands/project/new/index.js +7 -0
  74. package/dist/commands/project/new/scaffold.d.ts +1 -0
  75. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  76. package/dist/commands/project/new/scaffold.js +24 -0
  77. package/dist/commands/shared/codex-strays.d.ts +9 -0
  78. package/dist/commands/shared/codex-strays.d.ts.map +1 -1
  79. package/dist/commands/shared/codex-strays.js +4 -0
  80. package/dist/commands/status/index.d.ts +7 -1
  81. package/dist/commands/status/index.d.ts.map +1 -1
  82. package/dist/commands/status/index.js +53 -17
  83. package/dist/commands/sync/apply.d.ts.map +1 -1
  84. package/dist/commands/sync/apply.js +50 -24
  85. package/dist/commands/sync/dry-run.d.ts.map +1 -1
  86. package/dist/commands/sync/dry-run.js +31 -18
  87. package/dist/commands/sync/index.d.ts.map +1 -1
  88. package/dist/commands/sync/index.js +34 -25
  89. package/dist/commands/sync/sync.types.d.ts +26 -11
  90. package/dist/commands/sync/sync.types.d.ts.map +1 -1
  91. package/dist/commands/sync/sync.utils.d.ts.map +1 -1
  92. package/dist/commands/sync/sync.utils.js +3 -2
  93. package/dist/config/oat-config.d.ts +3 -0
  94. package/dist/config/oat-config.d.ts.map +1 -1
  95. package/dist/config/oat-config.js +7 -0
  96. package/dist/config/resolve.d.ts.map +1 -1
  97. package/dist/config/resolve.js +2 -0
  98. package/dist/engine/index.d.ts +1 -1
  99. package/dist/engine/index.d.ts.map +1 -1
  100. package/dist/engine/index.js +1 -1
  101. package/dist/engine/scanner.d.ts +3 -1
  102. package/dist/engine/scanner.d.ts.map +1 -1
  103. package/dist/engine/scanner.js +4 -2
  104. package/dist/providers/ceiling/registry.d.ts +2 -0
  105. package/dist/providers/ceiling/registry.d.ts.map +1 -1
  106. package/dist/providers/ceiling/registry.js +20 -4
  107. package/dist/providers/codex/codec/sync-extension.d.ts +11 -10
  108. package/dist/providers/codex/codec/sync-extension.d.ts.map +1 -1
  109. package/dist/providers/codex/codec/sync-extension.js +42 -14
  110. package/dist/providers/cursor/codec/catalog.d.ts +18 -0
  111. package/dist/providers/cursor/codec/catalog.d.ts.map +1 -0
  112. package/dist/providers/cursor/codec/catalog.js +39 -0
  113. package/dist/providers/cursor/codec/materialize.d.ts +24 -0
  114. package/dist/providers/cursor/codec/materialize.d.ts.map +1 -0
  115. package/dist/providers/cursor/codec/materialize.js +166 -0
  116. package/dist/providers/cursor/codec/shared.d.ts +14 -0
  117. package/dist/providers/cursor/codec/shared.d.ts.map +1 -0
  118. package/dist/providers/cursor/codec/shared.js +76 -0
  119. package/dist/providers/cursor/codec/sync-extension.d.ts +37 -0
  120. package/dist/providers/cursor/codec/sync-extension.d.ts.map +1 -0
  121. package/dist/providers/cursor/codec/sync-extension.js +393 -0
  122. package/dist/providers/cursor/index.d.ts +3 -0
  123. package/dist/providers/cursor/index.d.ts.map +1 -1
  124. package/dist/providers/cursor/index.js +3 -0
  125. package/dist/providers/identity/availability.d.ts +7 -0
  126. package/dist/providers/identity/availability.d.ts.map +1 -1
  127. package/dist/providers/identity/availability.js +23 -0
  128. package/dist/providers/shared/index.d.ts +2 -0
  129. package/dist/providers/shared/index.d.ts.map +1 -1
  130. package/dist/providers/shared/index.js +1 -0
  131. package/dist/providers/shared/materialization-extension.d.ts +44 -0
  132. package/dist/providers/shared/materialization-extension.d.ts.map +1 -0
  133. package/dist/providers/shared/materialization-extension.js +26 -0
  134. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-review-provide-remote
3
- version: 1.0.3
3
+ version: 1.0.4
4
4
  description: Use when reviewing a GitHub PR opened on another machine for an active OAT project and posting findings back as a single PR review. Resolves the project from the PR diff, reads project artifacts for mode-aware review, and posts via gh api.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -234,6 +234,16 @@ producer stamps, configured defaults, or reviewer self-report as runtime
234
234
  confirmation. Leave report runtime identity not-reported unless independently
235
235
  observed.
236
236
 
237
+ For a concrete managed Cursor target, require
238
+ `providers.cursor.dispatchArgs.variant` and launch the exact resolver-selected
239
+ native reviewer variant first. Keep mapped Cursor model strings opaque inside
240
+ the resolver and materialized definition; do not add a Task-level model
241
+ argument. Only a recorded pre-start native role-selection rejection of that
242
+ exact variant before any reviewer starts permits another target-preserving
243
+ route. After acceptance, continue only through the existing reviewer handle;
244
+ timeout, interruption, malformed output, or `BLOCKED` never authorizes a
245
+ replacement launch.
246
+
237
247
  This resolver command is independent of lifecycle gates. Reusable `oat gate
238
248
  review` commands must remain provider-neutral and must not contain or add a
239
249
  provider/model `--target` argument.
@@ -249,7 +259,9 @@ provider/model `--target` argument.
249
259
  Detection:
250
260
 
251
261
  - Claude Code: Task-style subagent dispatch with `subagent_type: "oat-reviewer"` (resolves from `.claude/agents/oat-reviewer.md`).
252
- - Cursor: explicit invocation `/oat-reviewer` (or natural mention), resolved from `.cursor/agents/oat-reviewer.md` or the `.claude/agents/oat-reviewer.md` compatibility path.
262
+ - Cursor: use the exact resolver-selected native reviewer variant for a
263
+ concrete managed target. Use base `oat-reviewer` only for an explicit
264
+ inherit/default exception.
253
265
  - Codex multi-agent: verify `[features] multi_agent = true`; if the host requires explicit authorization before `spawn_agent`, announce `authorization required` and ask one concise confirmation before selecting a lower tier. If authorized -> Tier 1; if declined -> Tier 2/3 fallback.
254
266
  - If the runtime can dispatch reviewer work -> Tier 1. If subagent dispatch is unavailable -> Tier 2. If the user requests inline / confirms a fresh session -> Tier 3.
255
267
 
@@ -260,7 +272,16 @@ Build the dispatch payload and spawn the reviewer in structured-output mode. Thi
260
272
  - Set `oat_output_mode: structured` in the dispatch payload (the flag `.agents/agents/oat-reviewer.md` recognizes). In this mode the reviewer returns a `StructuredFindings` object in-memory and writes NO artifact under `reviews/`.
261
273
  - Include the project context (`oat_project`, `oat_review_scope`, `oat_review_head_sha`), the Review Scope metadata block, a pointer to the posted-review-body schema (`design.md` → Data Models → Posted-review-body), and the resolved narrowing range (`<prior_sha>..<HEAD>` or none).
262
274
  - If a worktree was resolved in Step 2, include its path so the reviewer reads from the checkout.
263
- - The reviewer returns `StructuredFindings` (summary + findings array + `verification_commands`). On a dispatcher error, do NOT retry at Tier 1 — fall through to Tier 2/3. On malformed structured output, surface the validation error and fall through to Tier 2/3.
275
+ - For Cursor concrete managed dispatch, invoke
276
+ `providers.cursor.dispatchArgs.variant` as the exact native agent type. Do
277
+ not substitute base `oat-reviewer` or add a concrete model argument.
278
+ - The reviewer returns `StructuredFindings` (summary + findings array +
279
+ `verification_commands`). Tier 2/3 is eligible only when dispatch is
280
+ unavailable before launch or the exact native role is explicitly rejected
281
+ before any reviewer starts; record that pre-start outcome and do not retry
282
+ at Tier 1. Once a reviewer is accepted, malformed structured output is a
283
+ terminal validation failure: surface the error, block the review, and do not
284
+ launch another reviewer.
264
285
 
265
286
  **Step 5c: Tier 2 — Fresh session (recommended fallback).** If subagent dispatch is unavailable and the user is not already in a fresh session, provide fresh-session instructions and exit. (If Codex reported `authorization required` and the user later authorizes, return to Tier 1.)
266
287
 
@@ -371,7 +392,9 @@ At completion, report:
371
392
  - OAT project resolved from the diff (or `--project` override) and validated; project artifacts read read-only for mode-aware context.
372
393
  - PR content acquired via ephemeral worktree (or diff-only fallback) without mutating the caller's working tree.
373
394
  - Prior provide-remote reviews detected and filtered to this `(project, scope)`; re-review narrowing applied only after the stale-SHA guard passes.
374
- - Review executed via Tier 1 (`oat-reviewer` structured-output, NO artifact) / Tier 2 (fresh session) / Tier 3 (inline), with graceful fallthrough.
395
+ - Review executed via Tier 1 (`oat-reviewer` structured-output, NO artifact) /
396
+ Tier 2 (fresh session) / Tier 3 (inline), with fallthrough limited to
397
+ dispatch unavailability or explicit pre-start native role rejection.
375
398
  - Findings produced with consistent 4-tier severities and file:line references.
376
399
  - Inline comments mapped to in-diff positions; out-of-diff findings downgraded to the body, never dropped.
377
400
  - Posted-review body carries the marker block first (with `oat_project` + `oat_review_scope`), correct severity counts, and the minor-fix nudge when minors are present.
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: oat-project-summary
3
- version: 1.3.2
3
+ version: 1.3.3
4
4
  description: Use when the user requests or confirms summarizing an active OAT project — e.g. "summarize the project", "generate the summary", "run oat-project-summary", or confirms a previously offered summary run. Do NOT auto-invoke when implementation completes. Generates summary.md from project artifacts as institutional memory.
5
5
  disable-model-invocation: false
6
6
  user-invocable: true
7
- allowed-tools: Read, Write, Bash(git:*), Bash(oat config:*), Bash(oat decision:*), Glob, Grep, AskUserQuestion
7
+ allowed-tools: Read, Write, Bash(git:*), Bash(oat config:*), Bash(oat decision:*), Bash(oat project log:*), Glob, Grep, AskUserQuestion
8
8
  ---
9
9
 
10
10
  # Project Summary
@@ -36,16 +36,17 @@ When executing this skill, provide lightweight progress feedback so the user can
36
36
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
37
37
 
38
38
  - Before multi-step work, print step indicators, e.g.:
39
- - `[1/5] Resolving project + reading artifacts…`
40
- - `[2/5] Checking for existing summary…`
41
- - `[3/5] Generating / updating summary sections…`
42
- - `[4/5] Promoting key decisions to reference/decisions/ (if PJM installed)…`
43
- - `[5/5] Committing…`
39
+ - `[1/6] Resolving project + reading artifacts…`
40
+ - `[2/6] Checking project log + existing summary…`
41
+ - `[3/6] Generating / updating summary sections…`
42
+ - `[4/6] Rolling up project observations…`
43
+ - `[5/6] Promoting key decisions to reference/decisions/ (if PJM installed)…`
44
+ - `[6/6] Committing…`
44
45
 
45
46
  **BLOCKED Activities:**
46
47
 
47
48
  - ❌ No implementation work
48
- - ❌ No changing project artifacts (other than summary.md)
49
+ - ❌ No hand-editing project artifacts (other than summary.md)
49
50
  - ❌ No creating tasks or modifying plan
50
51
  - ❌ No hand-authoring decision files or editing `reference/decisions/index.md` inside its managed markers
51
52
 
@@ -53,6 +54,10 @@ When executing this skill, provide lightweight progress feedback so the user can
53
54
 
54
55
  - ✅ Reading all project artifacts
55
56
  - ✅ Creating or updating summary.md
57
+ - ✅ Using `oat project log append` and `oat project log rollup` as the only
58
+ writers for project-log promotion and roll-up
59
+ - ✅ Offering follow-up-marked project-log entries to
60
+ `oat-pjm-add-backlog-item`
56
61
  - ✅ Committing summary.md changes
57
62
  - ✅ Promoting the summary's Key Decisions into canonical `reference/decisions/` records via `oat decision new` (Step 7), gated on the PJM tool pack being installed
58
63
 
@@ -120,6 +125,8 @@ Read all available artifacts for synthesis:
120
125
  - `"$PROJECT_PATH/plan.md"` — phases, tasks, reviews, deferred items
121
126
  - `"$PROJECT_PATH/implementation.md"` — task outcomes, deviations, challenges, review notes
122
127
  - `"$PROJECT_PATH/state.md"` — associated issues, workflow mode
128
+ - `"$PROJECT_PATH/project-log.md"` — optional append-only workflow
129
+ observations; never hand-edit
123
130
  - `"$PROJECT_PATH/oat-execution-learnings.md"` — optional append-only
124
131
  autonomous-run observations and recommendations
125
132
 
@@ -128,6 +135,34 @@ Read all available artifacts for synthesis:
128
135
  If `oat-execution-learnings.md` is absent, do not infer autonomous learnings
129
136
  from other artifacts and do not add an Autonomous Execution Learnings section.
130
137
 
138
+ ### Step 2.5: Check Project Log and Offer Ledger Graduation
139
+
140
+ Run the read-only status probe before authoring or refreshing `summary.md`:
141
+
142
+ ```bash
143
+ PROJECT_LOG_CHECK=$(oat project log check --project "$PROJECT_PATH" --json)
144
+ PROJECT_LOG_PROMOTION_APPENDED="false"
145
+ ```
146
+
147
+ Route on the structured result. `status: "absent"` is inert. When the entry
148
+ counts show one or more entries, keep the log in the summary flow even if task,
149
+ revision, and autonomous-learning tracking fields are otherwise current.
150
+
151
+ Before roll-up, inspect `project`-scoped judgments for observations that are
152
+ reusable across projects and offer ledger graduation. For every observation the
153
+ user selects, invoke `oat project log append` with the original judgment type
154
+ and area, `--scope general`, and a body that references the original entry's
155
+ exact heading. The new body may explain why the observation is reusable, but it
156
+ must not copy the full original entry. Request the append result as structured
157
+ JSON; whenever it reports `status: "appended"`, set
158
+ `PROJECT_LOG_PROMOTION_APPENDED="true"` so the commit step includes the mutated
159
+ project log.
160
+
161
+ Ledger graduation is append-only: never edit, annotate, strike through, or add
162
+ side metadata to the original entry. The newly appended `general` judgment is
163
+ the promotion, and the later `rollup` command naturally selects it for the
164
+ ledger.
165
+
131
166
  ### Step 3: Check for Existing Summary
132
167
 
133
168
  ```bash
@@ -154,7 +189,7 @@ test -f "$PROJECT_PATH/summary.md"
154
189
  identifiers (timestamp, category, and title) with the source pointers in
155
190
  the existing `## Autonomous Execution Learnings` section. Treat missing,
156
191
  added, or changed recommendations as `learnings_changed`.
157
- - If `oat_summary_last_task == current_last_task` AND `oat_summary_revision_count == current_rev_count` AND learnings are absent or unchanged: **No changes detected. Skip update.** Report: "Summary is current. No updates needed."
192
+ - If `oat_summary_last_task == current_last_task` AND `oat_summary_revision_count == current_rev_count` AND learnings are absent or unchanged AND the project-log check reports no entries: **No changes detected. Skip update.** Report: "Summary is current. No updates needed."
158
193
  - If `current_rev_count > oat_summary_revision_count`: New revision phases exist. Update: Revision History, What Was Implemented, Follow-up Items.
159
194
  - If `current_last_task > oat_summary_last_task`: New tasks completed. Update: What Was Implemented, Notable Challenges, Tradeoffs Made.
160
195
  - If `learnings_changed`: update Autonomous Execution Learnings even when
@@ -192,6 +227,7 @@ For each section, synthesize content from the relevant artifacts. Apply these ru
192
227
  | Revision History | plan.md p-revN phases, implementation.md revision notes |
193
228
  | Follow-up Items | implementation.md deferred findings, plan.md deferred items |
194
229
  | Associated Issues | state.md `associated_issues` field |
230
+ | Workflow Observations | project-log.md via `oat project log rollup` only |
195
231
  | Autonomous Execution Learnings | oat-execution-learnings.md dated entries |
196
232
 
197
233
  **Autonomous Execution Learnings (conditional):**
@@ -232,6 +268,17 @@ entries, omit the entire section. If the file is absent, this behavior is inert:
232
268
  remove the template placeholder during a first render and make no
233
269
  learnings-driven update on a re-run.
234
270
 
271
+ **Workflow Observations coexistence contract:**
272
+
273
+ Keep `## Workflow Observations` and `## Autonomous Execution Learnings` as
274
+ distinct summary sections. Author the autonomous-execution section first, then
275
+ perform the project-log roll-up in Step 6. Because the roll-up command writes
276
+ every project-log entry, keep the project-log observation in Workflow
277
+ Observations and represent any overlap from Autonomous Execution Learnings with
278
+ a one-line cross-reference instead of copying it there. The roll-up command
279
+ remains the only writer of Workflow Observations—never hand-implement its
280
+ section or ledger writes.
281
+
235
282
  **For incremental updates (re-run):**
236
283
 
237
284
  Only update sections affected by the new content. Do not rewrite the entire summary. Preserve existing section content and append/modify as needed.
@@ -253,11 +300,50 @@ oat_summary_includes_revisions: [{ list of p-revN IDs reflected }]
253
300
  ---
254
301
  ```
255
302
 
256
- ### Step 6: Promote Key Decisions to Canonical Decision Records
303
+ ### Step 6: Roll Up Project Observations and Offer Backlog Graduation
304
+
305
+ Run this step after `summary.md` has been authored or refreshed, including the
306
+ distinct `## Autonomous Execution Learnings` section when its source artifact
307
+ exists.
308
+
309
+ When Step 2.5 found entries, run:
310
+
311
+ ```bash
312
+ PROJECT_LOG_LEDGER_PATH=$(oat config get workflow.projectLogLedgerPath)
313
+ PROJECT_LOG_LEDGER_APPENDED="false"
314
+ PROJECT_LOG_ROLLUP=$(oat project log rollup --project "$PROJECT_PATH" --json)
315
+ ```
316
+
317
+ `PROJECT_LOG_LEDGER_PATH` must be the effective resolved path, including the
318
+ default when no override exists. If it cannot be resolved, stop before roll-up
319
+ because a later `ledgerOutcome: "appended"` could not be staged safely.
320
+
321
+ Route only on the structured `ProjectLogRollupResult`:
322
+
323
+ - `status: "ok"` with `ledgerOutcome: "appended"`: set
324
+ `PROJECT_LOG_LEDGER_APPENDED="true"` and proceed.
325
+ - `status: "ok"` with `ledgerOutcome: "deduplicated"`: proceed without staging
326
+ the unchanged ledger.
327
+ - `status: "ok"` with `ledgerOutcome: "skipped_permitted"`: proceed and report
328
+ that the ledger was permissibly skipped because the default reference layer
329
+ is absent.
330
+ - `status: "failed"` or `ledgerOutcome: "failed"`: surface the failure to the
331
+ user and stop before commit. Do not describe the summary as fully rolled up.
332
+
333
+ The command mechanically writes or updates `## Workflow Observations` and
334
+ appends/deduplicates eligible `general` judgments in the configured ledger. Do
335
+ not reproduce either write by hand.
336
+
337
+ Separately inspect follow-up-marked project-log entries and offer backlog
338
+ graduation through `oat-pjm-add-backlog-item`. Backlog graduation creates a
339
+ tracked work item; it is not ledger graduation and must not replace the
340
+ append-based `project` → `general` promotion in Step 2.5.
341
+
342
+ ### Step 7: Promote Key Decisions to Canonical Decision Records
257
343
 
258
344
  Run this step **after** `summary.md` (including its `## Key Decisions` section) has been written/refreshed and its frontmatter updated. It promotes the project's Key Decisions out of per-project prose and into the canonical, repo-wide `reference/decisions/` log so they stop being siloed in `summary.md`. This step is **additive and non-interactive** — it never prompts.
259
345
 
260
- **6.1 — PJM gate (auto, no prompt).** Check whether the PJM tool pack is installed:
346
+ **7.1 — PJM gate (auto, no prompt).** Check whether the PJM tool pack is installed:
261
347
 
262
348
  ```bash
263
349
  PJM_ENABLED=$(oat config get tools.project-management 2>/dev/null || echo "")
@@ -266,9 +352,9 @@ PJM_ENABLED=$(oat config get tools.project-management 2>/dev/null || echo "")
266
352
  - If `PJM_ENABLED` is `true` → perform the promotion automatically. Do NOT ask the user.
267
353
  - Otherwise (any other value, empty, or unset) → **skip this entire step silently.** Do not print a warning or prompt.
268
354
 
269
- **6.2 — Skip if nothing to promote.** If `summary.md` has no `## Key Decisions` section, or that section has no decision content, skip the step. There is nothing to promote.
355
+ **7.2 — Skip if nothing to promote.** If `summary.md` has no `## Key Decisions` section, or that section has no decision content, skip the step. There is nothing to promote.
270
356
 
271
- **6.3 — Ensure the decisions surface exists.** The canonical decisions root is `.oat/repo/reference/decisions` (the `oat decision` default; pass `--decisions-root <path>` only for an explicit override). If its managed index is missing — i.e. `.oat/repo/reference/decisions/index.md` does not exist — initialize it first so `oat decision new` can succeed:
357
+ **7.3 — Ensure the decisions surface exists.** The canonical decisions root is `.oat/repo/reference/decisions` (the `oat decision` default; pass `--decisions-root <path>` only for an explicit override). If its managed index is missing — i.e. `.oat/repo/reference/decisions/index.md` does not exist — initialize it first so `oat decision new` can succeed:
272
358
 
273
359
  ```bash
274
360
  test -f .oat/repo/reference/decisions/index.md || oat decision init
@@ -276,7 +362,7 @@ test -f .oat/repo/reference/decisions/index.md || oat decision init
276
362
 
277
363
  `oat decision init` is idempotent; running it when the scaffold already exists is harmless.
278
364
 
279
- **6.4 — Idempotent, date-independent promotion (critical).** For each decision in `## Key Decisions`:
365
+ **7.4 — Idempotent, date-independent promotion (critical).** For each decision in `## Key Decisions`:
280
366
 
281
367
  1. **Derive title + complete sections.** Ground every value in the Key Decision and its project artifacts:
282
368
  - The bold lead-in / first clause becomes the **title** (a short noun phrase).
@@ -308,7 +394,7 @@ Because of the date-independent slug dedup, this step is **safe to run every tim
308
394
 
309
395
  **Status value:** use `--status accepted`. The decision template's status field (`.oat/templates/decision.md`) is free-form, and the canonical accepted/decided value in the decision vocabulary (`proposed` → `accepted` → `superseded`) is `accepted`. A Key Decision in a completed project's summary represents a decision that was made and shipped, so `accepted` is the correct status.
310
396
 
311
- **6.5 — Report, don't prompt.** After processing all Key Decisions, print a short informational summary, e.g.:
397
+ **7.5 — Report, don't prompt.** After processing all Key Decisions, print a short informational summary, e.g.:
312
398
 
313
399
  ```
314
400
  Promoted N key decision(s) to reference/decisions/:
@@ -318,14 +404,25 @@ Promoted N key decision(s) to reference/decisions/:
318
404
 
319
405
  This is informational only. There is no interactive prompt anywhere in this step.
320
406
 
321
- ### Step 7: Commit
407
+ ### Step 8: Commit
322
408
 
323
409
  ```bash
324
410
  git add "$PROJECT_PATH/summary.md"
411
+ if [ "$PROJECT_LOG_PROMOTION_APPENDED" = "true" ]; then
412
+ git add "$PROJECT_PATH/project-log.md"
413
+ fi
414
+ if [ "$PROJECT_LOG_LEDGER_APPENDED" = "true" ]; then
415
+ git add "$PROJECT_LOG_LEDGER_PATH"
416
+ fi
325
417
  git commit -m "docs: generate summary for {project-name}"
326
418
  ```
327
419
 
328
- If decision records were promoted in Step 6, also stage `.oat/repo/reference/decisions/` so the new `DR-*.md` records and the regenerated `index.md` land with the summary.
420
+ These conditional paths are required: append-based promotion mutates
421
+ `project-log.md`, while `ledgerOutcome: "appended"` mutates the effective
422
+ repository ledger. A permitted skip or deduplicated ledger does not add a
423
+ ledger staging path.
424
+
425
+ If decision records were promoted in Step 7, also stage `.oat/repo/reference/decisions/` so the new `DR-*.md` records and the regenerated `index.md` land with the summary.
329
426
 
330
427
  If this is a re-run (incremental update):
331
428
 
@@ -333,7 +430,7 @@ If this is a re-run (incremental update):
333
430
  git commit -m "docs: update summary for {project-name}"
334
431
  ```
335
432
 
336
- ### Step 8: Output Summary
433
+ ### Step 9: Output Summary
337
434
 
338
435
  ```
339
436
  Summary generated for {project-name}.
@@ -360,5 +457,12 @@ Summary tracks: last task {task_id}, {N} revision phases
360
457
  follow-ups, and Workflow issues with source-entry pointers
361
458
  - When `oat-execution-learnings.md` is absent, no Autonomous Execution
362
459
  Learnings section is rendered and normal summary behavior is unchanged
460
+ - Project-log ledger graduation appends a new referencing `general` judgment
461
+ before roll-up and never mutates the original `project` judgment
462
+ - `oat project log rollup --json` owns the distinct Workflow Observations
463
+ section and ledger writes; `failed` stops the summary flow while
464
+ `skipped_permitted` proceeds with a note
465
+ - Follow-up-marked project-log entries use backlog graduation separately from
466
+ ledger graduation
363
467
  - When the PJM tool pack is installed, each Key Decision is promoted to a canonical `reference/decisions/DR-YYMMDD-slug` record via `oat decision new` (status `accepted`), deduped on the date-independent slug so re-runs never create duplicate records
364
468
  - When the PJM tool pack is not installed, decision promotion is skipped silently with no prompt
@@ -0,0 +1,47 @@
1
+ ---
2
+ oat_generated: false
3
+ oat_template: true
4
+ oat_template_name: project-log
5
+ purpose: project-observations
6
+ oat_last_updated: YYYY-MM-DD
7
+ ---
8
+
9
+ # Project Log: {Project Name}
10
+
11
+ This append-only log serves two audiences: the project team learning from this project's execution, and maintainers improving the general OAT workflow and tooling.
12
+
13
+ ## Logging contract
14
+
15
+ Append when something breaks, surprises you, requires a workaround, or works notably well enough to preserve as do-not-regress evidence. Record evidence, not a running narrative. Prior entries are never edited or struck through; append corrections as a new judgment entry that references the original entry and explains the correction. Add a version note to tool-related observations. Create entries only with `oat project log append`; run `oat project log append --help` for the complete entry contract. Reference supporting artifacts by path instead of inlining them. Never record secret values such as tokens, keys, signed URLs, or credentials because this log rolls up into tracked surfaces; reference secrets by name or source, never by value.
16
+
17
+ Judgment entries default to 1–3 sentences covering what happened, the impact or workaround, and any follow-up. High-value entries may instead use this structured body:
18
+
19
+ ```text
20
+ Observation: What happened and the supporting evidence.
21
+ Impact: Why it mattered or what workaround was required.
22
+ Recommendation: What should change or be preserved.
23
+ ```
24
+
25
+ Shared tracked surfaces must be written only from the root checkout, never from parallel worktrees.
26
+
27
+ ## Entry format
28
+
29
+ Judgment entries:
30
+
31
+ ```text
32
+ ### YYYY-MM-DD · <project|general> · <bug|friction|worked-well|feedback> · <area>
33
+ ```
34
+
35
+ Structural entries:
36
+
37
+ ```text
38
+ ### YYYY-MM-DD · structural · <producer> · <ref>
39
+ ```
40
+
41
+ ## Entries
42
+
43
+ Entries are chronological and append-only.
44
+
45
+ ## End-of-run synthesis (pending — do not skip at project completion)
46
+
47
+ Summarize the overall verdict, adopted adjustments, and entries graduated to the repo ledger or backlog. Roll up durable observations into tracked surfaces before archiving this project log.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAehB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuFpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,mCAAmC,EAAE,OAAO,mCAAmC,CAAC;IAChF,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAg+DD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CAsKT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAezC,OAAO,EAML,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAehB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAGL,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,mCAAmC,EACnC,0BAA0B,EAC3B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyFpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,kBAAkB,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC7C,mCAAmC,EAAE,OAAO,mCAAmC,CAAC;IAChF,0BAA0B,EAAE,OAAO,0BAA0B,CAAC;IAC9D,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAkhED,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CAsKT"}
@@ -57,6 +57,8 @@ const KEY_ORDER = [
57
57
  'workflow.autoNarrowReReviewScope',
58
58
  'workflow.autoArtifactReview.plan',
59
59
  'workflow.autoArtifactReview.analysis',
60
+ 'workflow.projectLog',
61
+ 'workflow.projectLogLedgerPath',
60
62
  'workflow.designMode',
61
63
  'workflow.dispatchPolicy.mode',
62
64
  'workflow.dispatchPolicy.policy',
@@ -464,6 +466,28 @@ const CONFIG_CATALOG = [
464
466
  owningCommand: 'oat config set workflow.autoArtifactReview.analysis <true|false>',
465
467
  description: 'Automatically run the bounded accuracy-review loop for generated analysis artifacts before apply workflows consume them. Resolution: local > shared > user > default.',
466
468
  },
469
+ {
470
+ key: 'workflow.projectLog',
471
+ group: 'Workflow Preferences (3-layer: local > shared > user)',
472
+ file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
473
+ scope: 'workflow',
474
+ type: 'true | false | auto',
475
+ defaultValue: 'auto',
476
+ mutability: 'read/write',
477
+ owningCommand: 'oat config set workflow.projectLog <true|false|auto>',
478
+ description: 'Controls the append-only per-project observation log. auto creates it on first append; an existing artifact always remains enabled. Resolution: local > shared > user > default.',
479
+ },
480
+ {
481
+ key: 'workflow.projectLogLedgerPath',
482
+ group: 'Workflow Preferences (3-layer: local > shared > user)',
483
+ file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
484
+ scope: 'workflow',
485
+ type: 'string',
486
+ defaultValue: '.oat/repo/reference/project-observations.md',
487
+ mutability: 'read/write',
488
+ owningCommand: 'oat config set workflow.projectLogLedgerPath <repo-relative-path>',
489
+ description: 'Repo-relative ledger path used by project-log rollup. Resolution: local > shared > user > default.',
490
+ },
467
491
  {
468
492
  key: 'workflow.designMode',
469
493
  group: 'Workflow Preferences (3-layer: local > shared > user)',
@@ -745,6 +769,23 @@ function parseWorkflowValue(key, rawValue) {
745
769
  if (WORKFLOW_BOOLEAN_KEYS.has(key)) {
746
770
  return parseBooleanValue(key, rawValue);
747
771
  }
772
+ if (key === 'workflow.projectLog') {
773
+ const normalized = rawValue.trim().toLowerCase();
774
+ if (normalized === 'true' || normalized === 'false') {
775
+ return normalized === 'true';
776
+ }
777
+ if (normalized === 'auto') {
778
+ return normalized;
779
+ }
780
+ throw new Error(`Invalid value for ${key}: expected one of true | false | auto, got '${rawValue}'`);
781
+ }
782
+ if (key === 'workflow.projectLogLedgerPath') {
783
+ const normalized = rawValue.trim();
784
+ if (!normalized) {
785
+ throw new Error(`Invalid value for ${key}: expected a non-empty string path`);
786
+ }
787
+ return normalized;
788
+ }
748
789
  if (key === 'workflow.postImplementSequence') {
749
790
  const normalized = rawValue.trim();
750
791
  if (normalized.startsWith('{') || normalized.startsWith('[')) {
@@ -2,7 +2,7 @@ import { type CommandContext, type GlobalOptions } from '../../app/command-conte
2
2
  import { type PjmDoctorOptions } from '../pjm/doctor.js';
3
3
  import { type OatConfig, type OatLocalConfig, type UserConfig } from '../../config/oat-config.js';
4
4
  import { type Manifest } from '../../manifest/index.js';
5
- import { type MatrixCellAvailabilityResponse, type ValidateMatrixCellOptions } from '../../providers/identity/availability.js';
5
+ import { type CursorMaterializedModelDiagnostic, type MatrixCellAvailabilityResponse, type ValidateMatrixCellOptions } from '../../providers/identity/availability.js';
6
6
  import { createDispatchValidationPassContext, validateDispatchMatrixRefs } from '../../providers/identity/dispatch-validation.js';
7
7
  import type { ConcreteScope } from '../../shared/types.js';
8
8
  import { type DoctorCheck } from '../../ui/output.js';
@@ -24,6 +24,7 @@ interface DoctorDependencies {
24
24
  readOatLocalConfig: (repoRoot: string) => Promise<OatLocalConfig>;
25
25
  readUserConfig: (userConfigDir: string) => Promise<UserConfig>;
26
26
  validateMatrixCell: (provider: string, value: string, options: ValidateMatrixCellOptions) => Promise<MatrixCellAvailabilityResponse>;
27
+ diagnoseCursorMaterializedModels: (ladderModelIds: readonly string[], options: ValidateMatrixCellOptions) => Promise<CursorMaterializedModelDiagnostic[]>;
27
28
  createDispatchValidationPassContext: typeof createDispatchValidationPassContext;
28
29
  validateDispatchMatrixRefs: typeof validateDispatchMatrixRefs;
29
30
  processEnv: NodeJS.ProcessEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/doctor/index.ts"],"names":[],"mappings":"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"}
@@ -18,8 +18,9 @@ import { codexAdapter } from '../../providers/codex/index.js';
18
18
  import { isOatManagedCodexRoleFile } from '../../providers/codex/codec/shared.js';
19
19
  import { copilotAdapter } from '../../providers/copilot/index.js';
20
20
  import { cursorAdapter } from '../../providers/cursor/index.js';
21
+ import { CURSOR_MODEL_PIN_MAPPINGS } from '../../providers/cursor/codec/catalog.js';
21
22
  import { geminiAdapter } from '../../providers/gemini/index.js';
22
- import { validateMatrixCell, } from '../../providers/identity/availability.js';
23
+ import { diagnoseCursorMaterializedModels, validateMatrixCell, } from '../../providers/identity/availability.js';
23
24
  import { createDispatchValidationPassContext, validateDispatchMatrixRefs, } from '../../providers/identity/dispatch-validation.js';
24
25
  import { formatDoctorResults } from '../../ui/output.js';
25
26
  import { Command } from 'commander';
@@ -137,6 +138,7 @@ function createDependencies() {
137
138
  readOatLocalConfig,
138
139
  readUserConfig,
139
140
  validateMatrixCell,
141
+ diagnoseCursorMaterializedModels,
140
142
  createDispatchValidationPassContext,
141
143
  validateDispatchMatrixRefs,
142
144
  processEnv: process.env,
@@ -147,6 +149,36 @@ function createDependencies() {
147
149
  checkStaleInvocations,
148
150
  };
149
151
  }
152
+ async function createCursorMaterializedModelsCheck(scopeRoot, dependencies) {
153
+ const diagnostics = await dependencies.diagnoseCursorMaterializedModels(CURSOR_MODEL_PIN_MAPPINGS.map((mapping) => mapping.ladderModelId), { cwd: scopeRoot, env: dependencies.processEnv });
154
+ const missing = diagnostics.filter((diagnostic) => diagnostic.availability === 'missing');
155
+ const unvalidated = diagnostics.filter((diagnostic) => diagnostic.availability === 'unvalidated');
156
+ if (missing.length > 0) {
157
+ return {
158
+ name: 'project:cursor_materialized_models',
159
+ description: 'Cursor materialized target catalog availability',
160
+ status: 'warn',
161
+ message: `Broad Cursor CLI catalog no longer lists: ${missing.map((entry) => entry.ladderModelId).join(', ')}. ` +
162
+ 'This availability check does not verify definition pins or runtime identity.',
163
+ fix: 'Refresh Cursor model mappings and rerun `oat sync --scope project`.',
164
+ };
165
+ }
166
+ if (unvalidated.length > 0) {
167
+ return {
168
+ name: 'project:cursor_materialized_models',
169
+ description: 'Cursor materialized target catalog availability',
170
+ status: 'warn',
171
+ message: 'Cursor broad CLI catalog could not be checked. Definition pins and runtime identity were not tested.',
172
+ };
173
+ }
174
+ return {
175
+ name: 'project:cursor_materialized_models',
176
+ description: 'Cursor materialized target catalog availability',
177
+ status: 'pass',
178
+ message: `All ${diagnostics.length} mapped flat Cursor IDs remain listed in the broad CLI catalog. ` +
179
+ 'This does not verify definition pins or runtime identity.',
180
+ };
181
+ }
150
182
  function collectDispatchMatrixCellRefs(layers) {
151
183
  return layers.flatMap(({ source, config }) => {
152
184
  const providers = config.workflow?.dispatchCeiling?.providers ?? {};
@@ -505,6 +537,10 @@ async function runChecksForScope(scope, scopeRoot, userConfigDir, dependencies)
505
537
  ? undefined
506
538
  : 'Install or enable a provider directory (e.g. .claude, .cursor, .codex).',
507
539
  });
540
+ if (scope === 'project' &&
541
+ providers.some((provider) => provider.name === 'cursor' && provider.detected)) {
542
+ checks.push(await createCursorMaterializedModelsCheck(scopeRoot, dependencies));
543
+ }
508
544
  checks.push(...(await runCodexChecksForScope(scope, scopeRoot, dirname(userConfigDir), dependencies)));
509
545
  if (scope === 'project') {
510
546
  checks.push(await dependencies.checkStaleInvocations(scopeRoot));
@@ -1,4 +1,5 @@
1
1
  import { type CommandContext, type GlobalOptions } from '../../app/command-context.js';
2
+ import { appendProjectLog } from '../project/log/append.js';
2
3
  import { type ExecTarget, type OatConfig, type OatLocalConfig, type UserConfig } from '../../config/oat-config.js';
3
4
  import { type ResolvedConfig } from '../../config/resolve.js';
4
5
  import { type ModelFamily } from '../../providers/identity/family.js';
@@ -24,6 +25,7 @@ interface GateCommandDependencies {
24
25
  readGateRouteReceipt: typeof readGateRouteReceipt;
25
26
  runProcess: (command: string, args: string[], options: ProcessRunOptions) => Promise<ProcessRunResult>;
26
27
  parseReviewGateVerdict: typeof parseReviewGateVerdict;
28
+ appendProjectLog: typeof appendProjectLog;
27
29
  processEnv: NodeJS.ProcessEnv;
28
30
  writeGateRunMarker: (path: string, marker: GateRunMarker, warn: (message: string) => void) => Promise<boolean>;
29
31
  removeGateRunMarker: (path: string, warn: (message: string) => void) => Promise<void>;
@@ -89,7 +91,7 @@ interface GateProducerIdentity {
89
91
  contributingScopes?: string[];
90
92
  contributingStampCount?: number;
91
93
  diversityClaimable: boolean;
92
- source: 'flag' | 'stamp' | 'aggregated-stamps' | 'unknown';
94
+ source: 'flag' | 'stamp' | 'aggregated-stamps' | 'environment' | 'unknown';
93
95
  }
94
96
  interface GateDiversityMetadata {
95
97
  avoid: CrossProviderAvoid;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/gate/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAS9B,OAAO,EAWL,KAAK,UAAU,EAIf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,UAAU,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,iBAAiB,CAAC;AAWzB,OAAO,EAEL,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAExB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,sBAAsB,EAIvB,MAAM,kBAAkB,CAAC;AAG1B,UAAU,uBAAuB;IAC/B,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,uBAAuB,EAAE,OAAO,uBAAuB,CAAC;IACxD,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;IAC1D,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,wBAAwB,EAAE,OAAO,wBAAwB,CAAC;IAC1D,oBAAoB,EAAE,OAAO,oBAAoB,CAAC;IAClD,UAAU,EAAE,CACV,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,iBAAiB,KACvB,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/B,sBAAsB,EAAE,OAAO,sBAAsB,CAAC;IACtD,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;IAC9B,kBAAkB,EAAE,CAClB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,mBAAmB,EAAE,CACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,KAC5B,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AA+CD,UAAU,iBAAiB;IACzB,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACtD,OAAO,EAAE,gBAAgB,GAAG,cAAc,GAAG,SAAS,CAAC;IACvD,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,gBAAgB;IACxB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,oBAAoB;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;CAC7C;AAED,KAAK,iBAAiB,GAClB,KAAK,GACL,QAAQ,GACR,QAAQ,GACR,KAAK,GACL,eAAe,GACf,SAAS,CAAC;AAOd,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAcD,KAAK,kBAAkB,GAAG,aAAa,GAAG,cAAc,GAAG,MAAM,CAAC;AAClE,KAAK,qBAAqB,GACtB,kBAAkB,GAClB,4BAA4B,GAC5B,2CAA2C,GAC3C,kBAAkB,CAAC;AAUvB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,kBAAkB,CAAC;IAC/B,UAAU,EAAE,kBAAkB,CAAC;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAC5D;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,QAAQ,EAAE;QACR,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,kBAAkB,CAAC;QAC/B,UAAU,EAAE,kBAAkB,CAAC;QAC/B,MAAM,EAAE,WAAW,CAAC;QACpB,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACvC,aAAa,EAAE,WAAW,EAAE,CAAC;QAC7B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC9B,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;IACF,QAAQ,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,WAAW,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA63CD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAC9C,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,kBAAkB,EACzB,gBAAgB,CAAC,EAAE,oBAAoB,GACtC,kBAAkB,GAAG,IAAI,CAS3B;AAiwDD,wBAAgB,iBAAiB,CAC/B,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAC/C,OAAO,CA4NT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/gate/index.ts"],"names":[],"mappings":"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"}