@open-agent-toolkit/cli 0.3.18 → 0.3.19

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 (99) hide show
  1. package/assets/agents/oat-phase-implementer.md +81 -3
  2. package/assets/agents/oat-reviewer.md +15 -5
  3. package/assets/bundle-metadata.json +1 -1
  4. package/assets/docs/reference/cli-reference.md +8 -5
  5. package/assets/docs/reference/oat-directory-structure.md +1 -0
  6. package/assets/docs/reference/project-artifacts.md +17 -1
  7. package/assets/docs/reference/project-state-machine.md +19 -4
  8. package/assets/docs/skills/brainstorm.md +2 -1
  9. package/assets/docs/skills/index.md +1 -0
  10. package/assets/docs/workflows/advanced/autonomy.md +9 -1
  11. package/assets/docs/workflows/advanced/workflow-gates.md +11 -6
  12. package/assets/docs/workflows/approvals-and-automation.md +13 -8
  13. package/assets/docs/workflows/choose-workflow.md +16 -8
  14. package/assets/docs/workflows/projects/closeout/closeout-skills.md +8 -3
  15. package/assets/docs/workflows/projects/closeout/pr-flow.md +2 -0
  16. package/assets/docs/workflows/projects/execution/execution-skills.md +14 -2
  17. package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
  18. package/assets/docs/workflows/projects/execution/picking-up-projects.md +10 -1
  19. package/assets/docs/workflows/projects/lifecycle.md +73 -9
  20. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
  21. package/assets/docs/workflows/projects/planning/planning-skills.md +11 -10
  22. package/assets/docs/workflows/projects/planning/starting-projects.md +92 -20
  23. package/assets/docs/workflows/projects/reviews/index.md +15 -2
  24. package/assets/docs/workflows/projects/reviews/review-flavors.md +5 -3
  25. package/assets/public-package-versions.json +4 -4
  26. package/assets/skills/oat-brainstorm/SKILL.md +33 -9
  27. package/assets/skills/oat-brainstorm/references/destinations.md +9 -4
  28. package/assets/skills/oat-docs/SKILL.md +9 -4
  29. package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
  30. package/assets/skills/oat-project-autonomous/SKILL.md +14 -8
  31. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +17 -2
  32. package/assets/skills/oat-project-brief/SKILL.md +592 -0
  33. package/assets/skills/oat-project-brief/references/brief-contract.md +294 -0
  34. package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +393 -0
  35. package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +84 -0
  36. package/assets/skills/oat-project-capture/SKILL.md +2 -2
  37. package/assets/skills/oat-project-complete/SKILL.md +7 -2
  38. package/assets/skills/oat-project-discover/SKILL.md +3 -2
  39. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
  40. package/assets/skills/oat-project-document/SKILL.md +11 -1
  41. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +17 -2
  42. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  43. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +40 -0
  44. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +17 -2
  45. package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +4 -0
  46. package/assets/skills/oat-project-implement/references/phase-execution.md +166 -1
  47. package/assets/skills/oat-project-implement/references/plan-and-resume.md +97 -3
  48. package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
  49. package/assets/skills/oat-project-lite/SKILL.md +4 -1
  50. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +17 -2
  51. package/assets/skills/oat-project-new/SKILL.md +5 -1
  52. package/assets/skills/oat-project-next/SKILL.md +31 -4
  53. package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +4 -0
  54. package/assets/skills/oat-project-plan/SKILL.md +12 -2
  55. package/assets/skills/oat-project-plan-writing/SKILL.md +6 -4
  56. package/assets/skills/oat-project-pr-final/SKILL.md +15 -3
  57. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +17 -2
  58. package/assets/skills/oat-project-pr-progress/SKILL.md +31 -4
  59. package/assets/skills/oat-project-progress/SKILL.md +30 -8
  60. package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +4 -0
  61. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  62. package/assets/skills/oat-project-quick-start/SKILL.md +60 -1
  63. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +17 -2
  64. package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +4 -0
  65. package/assets/skills/oat-project-reconcile/SKILL.md +65 -3
  66. package/assets/skills/oat-project-review-provide/SKILL.md +331 -12
  67. package/assets/skills/oat-project-review-receive/SKILL.md +86 -1
  68. package/assets/skills/oat-project-revise/SKILL.md +27 -4
  69. package/assets/skills/oat-project-summary/SKILL.md +95 -2
  70. package/assets/skills/oat-wave-execute/SKILL.md +3 -2
  71. package/assets/templates/implementation-brief.md +165 -0
  72. package/assets/templates/plan-brief.md +140 -0
  73. package/assets/templates/plan.md +1 -1
  74. package/assets/templates/state.md +8 -2
  75. package/dist/commands/project/new/scaffold.d.ts +1 -1
  76. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  77. package/dist/commands/project/new/scaffold.js +35 -7
  78. package/dist/commands/project/promote/promote.d.ts +32 -1
  79. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  80. package/dist/commands/project/promote/promote.js +562 -5
  81. package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
  82. package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
  83. package/dist/commands/project/validate-plan/frontmatter.js +27 -0
  84. package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
  85. package/dist/commands/project/validate-plan/index.js +52 -18
  86. package/dist/commands/project/validate-plan/profiles.d.ts +54 -0
  87. package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
  88. package/dist/commands/project/validate-plan/profiles.js +269 -0
  89. package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
  90. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
  91. package/dist/commands/project/validate-plan/validate-plan.js +5 -82
  92. package/dist/commands/shared/frontmatter.d.ts +1 -1
  93. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  94. package/dist/commands/shared/frontmatter.js +1 -0
  95. package/dist/commands/state/generate.d.ts.map +1 -1
  96. package/dist/commands/state/generate.js +51 -2
  97. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  98. package/dist/commands/tools/shared/pack-manifest.js +3 -0
  99. package/package.json +2 -2
@@ -165,6 +165,17 @@ remains.
165
165
  | LITE-08 | `oat-project-lite` | Plan artifact-review findings | Accept offered Medium/Low fixes | Apply only unambiguous canonicalization fixes; never rewrite source intent; unresolved Critical or ambiguity stops | `auto-resolve` / `boundary:unresolved-critical-findings` | Plan review row and lite disposition |
166
166
  | LITE-09 | `oat-project-lite` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition |
167
167
  | LITE-10 | `oat-project-lite` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
168
+ | BRIEF-01 | `oat-project-brief` | Inherited dirty tree | Commit, proceed, or abort | Proceed without staging unrelated files; a required destructive cleanup stops | `auto-resolve` / `boundary:destructive-change-risk` | Brief preflight note |
169
+ | BRIEF-02 | `oat-project-brief` | Missing name or description | Ask for required startup input | Derive a slug from the explicit goal and use the goal as the description; stop if the goal is not substantive | `auto-resolve` / `boundary:product-judgment` | Brief Goal and project path |
170
+ | BRIEF-03 | `oat-project-brief` | Alignment interview | Ask readiness rounds until the user accepts the design | Settle facts from repository evidence, adopt the supported recommendation for each decision, and record it; material product or design ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `plan.md` Approach, Decisions, and Known Unknowns |
171
+ | BRIEF-04 | `oat-project-brief` | Workflow fit | Continue brief, promote to quick, or split the work | Apply the documented content heuristic; when an implementation-affecting design question cannot be settled from evidence, promote through `oat project promote --to quick` only after the Step 3 brief is validated and committed, and before that abandon the scaffold and start `oat-project-quick-start`; several independent deliveries stop; otherwise record why brief fits | `auto-resolve` / `boundary:product-judgment` | `plan.md` Decisions and promotion result |
172
+ | BRIEF-05 | `oat-project-brief` | Dispatch-ladder scope | Choose shared, local, user, or no adoption | Check existing user, local, then authorized shared config in that fixed order without prompting or provenance-based reordering; skip scalar-blocked candidates, stop before writing only if none is compatible, then adopt once and re-run preflight | `auto-resolve` / `boundary:repository-policy-approval` | File existence, compatibility evidence, selected scope, and recheck |
173
+ | BRIEF-06 | `oat-project-brief` | Project dispatch policy | Choose a named ceiling, uncapped, inherit, or unresolved | Preserve an explicit/configured value; unresolved non-interactive state blocks | `boundary:repository-policy-approval` | `state.md` policy or resolver diagnostic |
174
+ | BRIEF-07 | `oat-project-brief` | Optional phase-gate setup | Choose all, selected, or disabled | Use the shared non-interactive contract: leave absent and disabled unless an explicit value already exists | `auto-resolve` | Phase-gate setup status |
175
+ | BRIEF-08 | `oat-project-brief` | Configured lifecycle gate posture | Keep or disable each configured lifecycle gate | Preserve an existing override map; otherwise preserve configured gates and write no override in non-interactive planning | `auto-resolve` / `boundary:repository-policy-approval` | `state.md` override map or recorded non-interactive preservation |
176
+ | BRIEF-09 | `oat-project-brief` | Brief artifact-review findings | Fold minor fixes; take material findings to the user | Apply only unambiguous artifact-local fixes and re-review; never rewrite agreed intent; unresolved Critical findings or material ambiguity stop | `auto-resolve` / `boundary:unresolved-critical-findings` | Brief review row and residual-finding disposition |
177
+ | BRIEF-10 | `oat-project-brief` | Configured exit gate | `block`, `prompt`, or `warn` after failure | Apply the configured failure semantics; `prompt` becomes a reported boundary; persist the outcome as `oat_brief_gate` | `auto-resolve` / `boundary:repository-policy-approval` | Structured gate result and disposition, and `oat_brief_gate` |
178
+ | BRIEF-11 | `oat-project-brief` | Brief approval | Approve, revise, or promote | Approve the reviewed brief and record the approval line; contradictory or materially incomplete outcomes stop | `auto-resolve` / `boundary:product-judgment` | Approval line in `plan.md` |
168
179
  | DISC-01 | `oat-project-discover` | Active-project confirmation or switch | Confirm the active project or choose another | Use only an explicitly supplied or valid active project; otherwise stop without guessing | `boundary:product-judgment` | Resolved project path |
169
180
  | DISC-02 | `oat-project-discover` | Stale knowledge | Continue or refresh | Refresh through the canonical knowledge workflow when available; otherwise record staleness and continue only when it does not create material ambiguity | `auto-resolve` / `boundary:product-judgment` | Discovery evidence note |
170
181
  | DISC-03 | `oat-project-discover` | Gray areas and clarifying questions | Select areas and answer questions | Select risk-relevant areas from evidence and record supported answers/assumptions; material ambiguity stops | `auto-resolve` / `boundary:product-judgment` | `discovery.md` Q&A and assumptions |
@@ -269,7 +280,7 @@ assertions, vendored copies, and other unreachable occurrences to `NG`. Add a
269
280
  new inventory row when no existing gate ID describes the behavior.
270
281
 
271
282
  `packages/cli/src/validation/autonomy-gate-inventory.test.ts` is the CI
272
- backstop. It derives the fifteen scan roots from the inventory, scans Markdown
283
+ backstop. It derives the seventeen scan roots from the inventory, scans Markdown
273
284
  recursively, and matches each site by file plus a stable semantic key derived
274
285
  from its normalized heading and text, never by line number. Its failure output
275
286
  provides the key to add or replace. The committed line-number comparison below
@@ -301,7 +312,7 @@ remains immutable baseline evidence for the original p01-t01 verification.
301
312
  | `oat-project-pr-final/SKILL.md` | `601ac2b890f2 -> NG`; `c264a64398f0 -> NG`; `9efcbcee42ea -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> PRFINAL-01`; `2de348a391c0 -> PRFINAL-03` |
302
313
  | `oat-project-pr-final/references/docs/autonomy-contract.md` | `* -> NG` |
303
314
  | `oat-project-complete/SKILL.md` | `6ed459f9e462 -> NG`; `a167d03559fa -> NG`; `79c2eeed668c -> COMPLETE-01`; `2c1514b9d9af -> COMPLETE-01`; `31c750b4fea7 -> COMPLETE-01`; `cfba413b1293 -> COMPLETE-01`; `7fcfce0423ac -> COMPLETE-01`; `7bcbf58b54e9 -> NG`; `4c7f88a7f942 -> COMPLETE-02`; `6a1a95acc8cc -> COMPLETE-02`; `3b559956b3eb -> COMPLETE-03`; `14d161cdf99b -> COMPLETE-03`; `fffe5eea5ebd -> NG`; `e7dc6fdc4eb3 -> COMPLETE-01`; `e5460e437299 -> NG`; `882b61c9096c -> NG`; `9ffa1c752505 -> NG`; `8c5e599f6bac -> NG` |
304
- | `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
315
+ | `oat-project-review-provide/SKILL.md` | `1f4b981cac8b -> NG`; `adaeca152bb2 -> NG`; `2f7c201c3c06 -> NG`; `88f79700afdc -> NG`; `655d61df0a8f -> NG`; `efafde9ef5a0 -> NG`; `d2a3861d6323 -> REVIEWPROVIDE-02`; `65f5b9cf49cd -> REVIEWPROVIDE-04`; `962cb38d246a -> REVIEWPROVIDE-04`; `1a568483ba0b -> REVIEWPROVIDE-04`; `610e27edfe85 -> REVIEWPROVIDE-04`; `bb0096e95c47 -> REVIEWPROVIDE-06`; `55f6357a987d -> REVIEWPROVIDE-06`; `e3c08ecdab17 -> REVIEWPROVIDE-06`; `1bee61f8531c -> REVIEWPROVIDE-07`; `3d35091607a1 -> REVIEWPROVIDE-08`; `fb40c4341c4c -> NG`; `b22d16885150 -> NG`; `d2b25906242e -> REVIEWPROVIDE-08`; `fd8ebf72b3c4 -> NG`; `79c8103e8656 -> NG`; `4fbd78337e33 -> NG`; `c3d50ea7cf69 -> NG`; `09b1b8dd445c -> NG`; `7acc8f3718d2 -> REVIEWPROVIDE-09`; `b2fa883fc4a2 -> NG`; `fe4421531b4c -> NG` |
305
316
  | `oat-project-review-receive/SKILL.md` | `9b8a3743d626 -> NG`; `49ed2780983b -> NG`; `4ee8730382d3 -> NG`; `655d61df0a8f -> NG`; `765f897d67ac -> NG`; `53b58d16dd32 -> NG`; `fb8755a3bdf4 -> NG`; `1d710fb4cc66 -> NG`; `1f7dd98dff2f -> NG`; `56f78c6740e6 -> NG`; `76f5fb5a88cd -> NG`; `085abfa3599f -> REVIEWRECEIVE-01`; `92578f7df686 -> NG`; `a7d114059bb6 -> NG`; `ac88cfaa83d9 -> NG`; `594bbf70346c -> REVIEWRECEIVE-08`; `f31f07284718 -> REVIEWRECEIVE-02`; `e4c0625439f8 -> REVIEWRECEIVE-04`; `505ad8389c0a -> REVIEWRECEIVE-05`; `20e05e1a4381 -> REVIEWRECEIVE-06`; `e30e06f39281 -> REVIEWRECEIVE-07`; `f8fd58180ecf -> NG`; `c3abcdc02d9f -> NG`; `f2ebdd6abb9b -> NG` |
306
317
  | `oat-project-review-provide/SKILL.md` | `2e794bf4fc4a -> REVIEWPROVIDE-08`; `5441ab977b46 -> REVIEWPROVIDE-08` |
307
318
  | `oat-project-review-provide/SKILL.md` | `f4238ebb1887 -> NG`; `0360fa2db9a5 -> NG` |
@@ -317,6 +328,10 @@ remains immutable baseline evidence for the original p01-t01 verification.
317
328
  | `oat-project-plan/SKILL.md` | `f99e44b39932 -> PLAN-12`; `7e6a9854504b -> NG` |
318
329
  | `oat-project-complete/SKILL.md` | `0177956707aa -> NG`; `1234c29d1999 -> NG`; `3c0b26f0ff1c -> NG`; `8cc1fa5aab1e -> COMPLETE-01`; `4c209fbb4716 -> COMPLETE-01`; `02e4175e1171 -> COMPLETE-01`; `d698d4f98e76 -> COMPLETE-01`; `9f86a7218d93 -> COMPLETE-01`; `024713698d9a -> COMPLETE-01`; `c327995053fa -> COMPLETE-01`; `61f81d4ec7c1 -> COMPLETE-01`; `14fb2e56809f -> COMPLETE-01`; `7d4ff668744d -> COMPLETE-01`; `502a6c141784 -> COMPLETE-01`; `fb7e2db356af -> COMPLETE-01`; `f73f8476360a -> NG`; `1e15f420039f -> NG`; `cc234032ddd7 -> NG`; `1dd54687229b -> NG`; `fc05c8303cd2 -> NG`; `24be721d635e -> NG` |
319
330
  | `oat-project-lite/references/docs/autonomy-contract.md` | `* -> NG` |
331
+ | `oat-project-brief/references/docs/autonomy-contract.md` | `* -> NG` |
332
+ | `oat-project-brief/references/docs/gate-approval-record.md` | `* -> NG` |
333
+ | `oat-project-brief/SKILL.md` | `3d101cb200b3 -> NG`; `494f08a25a22 -> NG`; `ae6d9bdd3cc0 -> NG`; `beeb946393dc -> NG`; `83b5e9396197 -> NG`; `709dd744d813 -> NG`; `4e1222d879f2 -> BRIEF-03`; `a9dd42731b88 -> BRIEF-04`; `7bff55da6726 -> NG`; `c5fb9ce4b27d -> NG`; `e2e809154403 -> BRIEF-10`; `93d6f62c5dac -> BRIEF-10`; `92da21e87ab4 -> NG`; `304c39a13de5 -> BRIEF-10`; `06490315c2f9 -> BRIEF-10`; `0b85a5738ca5 -> BRIEF-11`; `f34dfb297a83 -> NG`; `06179c668e16 -> BRIEF-11`; `5ef3a708eed9 -> BRIEF-11`; `1c798da87f49 -> BRIEF-11`; `f73421b4937f -> NG`; `6e3e97f9cbcf -> NG`; `9b3abe616c5d -> BRIEF-08` |
334
+ | `oat-project-brief/references/brief-contract.md` | `5359cae29ca8 -> NG`; `b417d06e35b4 -> BRIEF-03`; `964e9fc49596 -> NG`; `02270b5b835d -> BRIEF-11`; `e1cb9cbbd308 -> NG` |
320
335
  | `oat-project-implement/references/completion-and-closeout.md` | `87f1424a8692 -> NG`; `6b1ec05182f0 -> IMPLEMENT-11`; `e6d696a27c91 -> NG`; `c77f8ccb52ad -> NG`; `48de2614c0ba -> IMPLEMENT-11`; `32d53f5212e5 -> IMPLEMENT-11`; `7cdb4a9c57b7 -> IMPLEMENT-11`; `16ffc0aa099b -> IMPLEMENT-11`; `d6868ea10b3f -> IMPLEMENT-11`; `4f05ff5567be -> IMPLEMENT-11`; `c70b47ae7a6d -> IMPLEMENT-11`; `5fafd093b58e -> NG`; `21ceaf7e658a -> NG`; `249427a9f475 -> NG`; `8a7ec13a9b7c -> NG`; `9aeb7fce2012 -> IMPLEMENT-18`; `f11a7cdda220 -> IMPLEMENT-18`; `4523ac029152 -> NG`; `6e87b08c4046 -> NG`; `baa6052c7f0a -> IMPLEMENT-18`; `27d3fad116b1 -> IMPLEMENT-18`; `2cfbeb4388a5 -> IMPLEMENT-18`; `c56ea56a56db -> NG`; `43e2e3c1380d -> IMPLEMENT-17`; `b49690277fb5 -> NG`; `df12304d6a36 -> NG`; `52eacac11fef -> IMPLEMENT-17`; `60092df6b17b -> IMPLEMENT-17`; `361872c6b00e -> IMPLEMENT-17`; `d2bc711a75fb -> IMPLEMENT-17` |
321
336
  | `oat-project-quick-start/SKILL.md` | `aa560418765a -> QS-13`; `40ddcac880ef -> NG` |
322
337
  | `oat-project-plan/SKILL.md` | `2b32bc5e9fea -> NG`; `58cc6b0adf97 -> PLAN-13`; `9fba3b40b522 -> NG` |
@@ -58,6 +58,10 @@ replaces the record.
58
58
  record is current.
59
59
  - **`oat_quick_start_gate`** (`oat-project-quick-start`, Gate Execution) carries
60
60
  exactly the core.
61
+ - **`oat_brief_gate`** (`oat-project-brief`, Gate Execution) carries exactly the
62
+ core, written and read under the same rules as `oat_quick_start_gate`. It is
63
+ absent when no gate is configured, and nothing routes on it: it is provenance
64
+ only.
61
65
 
62
66
  ## Reading a quick-start record
63
67
 
@@ -5,7 +5,7 @@ disable-model-invocation: true
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash(git:*), Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.0.4
8
+ version: 1.0.5
9
9
  ---
10
10
 
11
11
  # Reconcile Manual Implementation
@@ -126,6 +126,68 @@ Verify the project is ready for reconciliation:
126
126
  - Read `implementation.md` if it exists — find the last recorded commit SHA
127
127
  - If all recent commits are already tracked, inform user: "No untracked commits found. Nothing to reconcile."
128
128
 
129
+ 4. **Resolve the workflow mode:**
130
+
131
+ ```bash
132
+ WORKFLOW_MODE=$(oat project status --project-path "$PROJECT_PATH" --field project.workflowMode 2>/dev/null || echo null)
133
+ ```
134
+
135
+ **Brief-mode branch (`WORKFLOW_MODE=brief`).** A brief has no planned tasks:
136
+ the task source is the journal, and
137
+ `oat-project-brief/references/brief-contract.md` (sections 3, 7, 8, and 10)
138
+ wins where this skill differs. Steps 1 through 6 still run, with these
139
+ replacements:
140
+
141
+ - **Phases and ranges (Steps 1–2).** Read each phase's markers from its
142
+ `## Phase` section of `implementation.md` (exact `**Status:**`, `**Base:**`,
143
+ and `**Head:**` lines directly under the heading; ownership ends at the next
144
+ line starting with `#`). A phase's range is `Base..Head`, or `Base..HEAD`
145
+ for the active phase that has a `**Base:**` and no `**Head:**`. The
146
+ checkpoint is still Step 1's last tracked commit; the anchors decide which
147
+ phase owns each later commit.
148
+ - **Anchor check.** Before mapping, verify every recorded anchor exists
149
+ (`git cat-file -e "$SHA^{commit}"`), each base is an ancestor of its head,
150
+ and consecutive sequential phases continue (the next base equals or
151
+ descends from the previous head; a declared parallel group shares its fork
152
+ base). This is the state `oat-project-review-provide` routes here when its
153
+ anchor resolution rejects a scope. Report each contradiction with the
154
+ candidate value read from the phase's `chore(oat): start {pNN}` or
155
+ `chore(oat): record {pNN} head` commit, and correct a `**Base:**` or
156
+ `**Head:**` line only when the user confirms it in Step 4. Record the old
157
+ and new values in the Step 5f log entry. A corrected anchor on an accepted
158
+ phase rewrites its `**Status:**` to `in_progress`, because the earlier
159
+ review covered a different range. Reconcile never invents an anchor for a
160
+ phase that has none.
161
+ - **Task source (Step 2).** Extract the execution records
162
+ (`### Task pNN-tNN:` and `### Task prevN-tNN:`) under each journal phase
163
+ section, not `plan.md`, which never carries task headings. Pending and
164
+ in-progress records are the mapping targets.
165
+ - **Mapping (Step 3).** Map a commit to a record by the `(pNN-tNN)` ID in its
166
+ message (Signal A), then to its phase by the anchors: the phase whose range
167
+ contains the commit. A commit inside a phase's range that matches no record
168
+ gets a synthesized record under that phase, with the next free ordinal for
169
+ the phase, `**Executor:** reconciled`, `**Status:** completed`, and
170
+ `**Commit:** <full SHA>`. A commit outside every phase range is reported in
171
+ Step 4 for the user to assign to a started phase or to leave unrecorded;
172
+ reconcile never starts a phase to hold it. Signals B and C (file overlap and
173
+ keywords) apply only to the brief's open records, which list their files and
174
+ intent in the journal.
175
+ - **Live handles (Step 4).** Before closing any open record, check the live
176
+ handle it names (subagent, worktree, or process). A live or unverifiable
177
+ handle keeps the record open and is listed in the Step 6 report; a record is
178
+ closed only when its handle has ended.
179
+ - **Writes (Step 5).** Close records with `**Status:** completed` and the full
180
+ commit SHA, or leave them open. A phase whose range gained commits and whose
181
+ status is `pending` may become `in_progress`. Reconcile never writes
182
+ `**Status:** completed` for a phase: only `oat-project-implement` accepts a
183
+ phase-unit. It does not write a missing `**Head:**`; the phase's executor
184
+ records it when the phase ends. Use the phase-unit Progress Overview
185
+ (`| Phase | Status | Units | Accepted |`, one unit per phase, accepted only by
186
+ `**Status:** completed`) instead of task counts. Set `oat_current_task_id`
187
+ and `oat_current_task` to the first incomplete unit in document order (a
188
+ phase ID, never an extracted or accepted unit), or `null` when every unit is
189
+ accepted.
190
+
129
191
  ### Step 1: Find Checkpoint
130
192
 
131
193
  Identify the last commit that OAT has already tracked. Everything after this commit is "untracked human work" that needs reconciliation.
@@ -600,7 +662,7 @@ For each commit the user chose to log as unplanned work, append after the last t
600
662
  - Not part of original plan. Logged during reconciliation on {today's date}.
601
663
  ```
602
664
 
603
- **5d. Update progress table:**
665
+ **5d. Update progress table** (brief modes: the phase-unit table from the brief-mode branch above):
604
666
 
605
667
  Recalculate the `## Progress Overview` table dynamically from the project's actual data:
606
668
 
@@ -632,7 +694,7 @@ oat_current_task_id: { next_pending_task_id } # or null if all complete
632
694
  oat_last_updated: { today }
633
695
  ```
634
696
 
635
- Find the next pending task by scanning plan order: first task with status not `completed`.
697
+ Find the next pending task by scanning plan order: first task with status not `completed`. In brief modes the pointer is the first incomplete phase-unit, per the brief-mode branch above.
636
698
 
637
699
  In `state.md`:
638
700