@open-agent-toolkit/cli 0.3.18 → 0.3.20

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 (132) hide show
  1. package/README.md +2 -1
  2. package/assets/agents/oat-phase-implementer.md +104 -3
  3. package/assets/agents/oat-reviewer.md +20 -5
  4. package/assets/bundle-metadata.json +1 -1
  5. package/assets/docs/reference/cli-reference.md +15 -7
  6. package/assets/docs/reference/oat-directory-structure.md +2 -0
  7. package/assets/docs/reference/project-artifacts.md +72 -1
  8. package/assets/docs/reference/project-state-machine.md +55 -6
  9. package/assets/docs/skills/brainstorm.md +3 -1
  10. package/assets/docs/skills/index.md +13 -9
  11. package/assets/docs/workflows/advanced/autonomy.md +12 -2
  12. package/assets/docs/workflows/advanced/dispatch-ceiling.md +2 -2
  13. package/assets/docs/workflows/advanced/workflow-gates.md +25 -7
  14. package/assets/docs/workflows/approvals-and-automation.md +25 -9
  15. package/assets/docs/workflows/choose-workflow.md +24 -8
  16. package/assets/docs/workflows/ideas/index.md +1 -1
  17. package/assets/docs/workflows/ideas/lifecycle.md +3 -2
  18. package/assets/docs/workflows/projects/closeout/closeout-skills.md +83 -5
  19. package/assets/docs/workflows/projects/closeout/pr-flow.md +9 -1
  20. package/assets/docs/workflows/projects/execution/execution-skills.md +27 -2
  21. package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
  22. package/assets/docs/workflows/projects/execution/picking-up-projects.md +20 -1
  23. package/assets/docs/workflows/projects/lifecycle.md +172 -9
  24. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
  25. package/assets/docs/workflows/projects/planning/planning-skills.md +13 -10
  26. package/assets/docs/workflows/projects/planning/starting-projects.md +138 -20
  27. package/assets/docs/workflows/projects/reviews/index.md +36 -2
  28. package/assets/docs/workflows/projects/reviews/review-flavors.md +7 -3
  29. package/assets/public-package-versions.json +4 -4
  30. package/assets/skills/oat-brainstorm/SKILL.md +58 -9
  31. package/assets/skills/oat-brainstorm/references/destinations.md +12 -4
  32. package/assets/skills/oat-docs/SKILL.md +13 -4
  33. package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
  34. package/assets/skills/oat-project-autonomous/SKILL.md +20 -8
  35. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +156 -122
  36. package/assets/skills/oat-project-brief/SKILL.md +592 -0
  37. package/assets/skills/oat-project-brief/references/brief-contract.md +743 -0
  38. package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +412 -0
  39. package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +93 -0
  40. package/assets/skills/oat-project-capture/SKILL.md +2 -2
  41. package/assets/skills/oat-project-complete/SKILL.md +16 -2
  42. package/assets/skills/oat-project-discover/SKILL.md +4 -2
  43. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
  44. package/assets/skills/oat-project-document/SKILL.md +17 -1
  45. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +156 -122
  46. package/assets/skills/oat-project-goal/SKILL.md +697 -0
  47. package/assets/skills/oat-project-goal/references/docs/autonomy-contract.md +412 -0
  48. package/assets/skills/oat-project-goal/references/docs/gate-approval-record.md +93 -0
  49. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  50. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +107 -0
  51. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +156 -122
  52. package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +13 -0
  53. package/assets/skills/oat-project-implement/references/phase-execution.md +173 -1
  54. package/assets/skills/oat-project-implement/references/plan-and-resume.md +124 -3
  55. package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
  56. package/assets/skills/oat-project-lite/SKILL.md +4 -1
  57. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +156 -122
  58. package/assets/skills/oat-project-new/SKILL.md +5 -1
  59. package/assets/skills/oat-project-next/SKILL.md +71 -14
  60. package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +13 -0
  61. package/assets/skills/oat-project-plan/SKILL.md +24 -3
  62. package/assets/skills/oat-project-plan-writing/SKILL.md +8 -4
  63. package/assets/skills/oat-project-pr-final/SKILL.md +65 -3
  64. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +156 -122
  65. package/assets/skills/oat-project-pr-progress/SKILL.md +125 -4
  66. package/assets/skills/oat-project-progress/SKILL.md +63 -8
  67. package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +13 -0
  68. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  69. package/assets/skills/oat-project-quick-start/SKILL.md +65 -1
  70. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +156 -122
  71. package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +13 -0
  72. package/assets/skills/oat-project-reconcile/SKILL.md +94 -3
  73. package/assets/skills/oat-project-review-provide/SKILL.md +397 -12
  74. package/assets/skills/oat-project-review-receive/SKILL.md +155 -1
  75. package/assets/skills/oat-project-revise/SKILL.md +51 -4
  76. package/assets/skills/oat-project-summary/SKILL.md +150 -2
  77. package/assets/skills/oat-wave-execute/SKILL.md +3 -2
  78. package/assets/templates/implementation-brief.md +165 -0
  79. package/assets/templates/plan-brief.md +140 -0
  80. package/assets/templates/plan.md +1 -1
  81. package/assets/templates/state.md +8 -2
  82. package/dist/commands/project/closeout-check/closeout-invariant.d.ts +119 -3
  83. package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -1
  84. package/dist/commands/project/closeout-check/closeout-invariant.js +454 -2
  85. package/dist/commands/project/closeout-check/index.d.ts +21 -3
  86. package/dist/commands/project/closeout-check/index.d.ts.map +1 -1
  87. package/dist/commands/project/closeout-check/index.js +190 -4
  88. package/dist/commands/project/complete-state/index.d.ts +2 -1
  89. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  90. package/dist/commands/project/complete-state/index.js +7 -1
  91. package/dist/commands/project/delivery/check.d.ts +66 -0
  92. package/dist/commands/project/delivery/check.d.ts.map +1 -0
  93. package/dist/commands/project/delivery/check.js +232 -0
  94. package/dist/commands/project/delivery/evidence.d.ts +171 -0
  95. package/dist/commands/project/delivery/evidence.d.ts.map +1 -0
  96. package/dist/commands/project/delivery/evidence.js +902 -0
  97. package/dist/commands/project/delivery/index.d.ts +7 -0
  98. package/dist/commands/project/delivery/index.d.ts.map +1 -0
  99. package/dist/commands/project/delivery/index.js +13 -0
  100. package/dist/commands/project/delivery/refresh.d.ts +110 -0
  101. package/dist/commands/project/delivery/refresh.d.ts.map +1 -0
  102. package/dist/commands/project/delivery/refresh.js +441 -0
  103. package/dist/commands/project/index.d.ts.map +1 -1
  104. package/dist/commands/project/index.js +2 -0
  105. package/dist/commands/project/log/append.d.ts +6 -0
  106. package/dist/commands/project/log/append.d.ts.map +1 -1
  107. package/dist/commands/project/log/append.js +6 -1
  108. package/dist/commands/project/new/scaffold.d.ts +1 -1
  109. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  110. package/dist/commands/project/new/scaffold.js +81 -7
  111. package/dist/commands/project/promote/promote.d.ts +46 -1
  112. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  113. package/dist/commands/project/promote/promote.js +646 -5
  114. package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
  115. package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
  116. package/dist/commands/project/validate-plan/frontmatter.js +27 -0
  117. package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
  118. package/dist/commands/project/validate-plan/index.js +62 -18
  119. package/dist/commands/project/validate-plan/profiles.d.ts +69 -0
  120. package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
  121. package/dist/commands/project/validate-plan/profiles.js +420 -0
  122. package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
  123. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
  124. package/dist/commands/project/validate-plan/validate-plan.js +5 -82
  125. package/dist/commands/shared/frontmatter.d.ts +1 -1
  126. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  127. package/dist/commands/shared/frontmatter.js +2 -0
  128. package/dist/commands/state/generate.d.ts.map +1 -1
  129. package/dist/commands/state/generate.js +82 -2
  130. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  131. package/dist/commands/tools/shared/pack-manifest.js +4 -0
  132. package/package.json +2 -2
@@ -58,6 +58,19 @@ 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.
65
+ - **`oat_milestone_gates[mNN].plan` and `.exit`** (goal mode;
66
+ `oat-project-goal` writes `plan` after each milestone's approval, and
67
+ `oat-project-implement`'s milestone closeout writes `exit`) carry the core
68
+ plus `resolution` (`configured`, `no_gate`, or `project_disabled`), a
69
+ `subject` binding (`plan` or `code` and the milestone's ordered phase set),
70
+ and derived `freshness` with `freshness_reason`. `reviewed_head` is `null`
71
+ for `no_gate` and `project_disabled`, and `no_gate` is written rather than
72
+ omitted because routing reads these carriers. `oat-project-brief`'s
73
+ `references/brief-contract.md` section 12.4 is their contract.
61
74
 
62
75
  ## Reading a quick-start record
63
76
 
@@ -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.6
9
9
  ---
10
10
 
11
11
  # Reconcile Manual Implementation
@@ -126,6 +126,97 @@ 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
+
191
+ **Goal-mode branch (`WORKFLOW_MODE=goal`).** The brief-mode branch applies,
192
+ with `oat-project-brief/references/brief-contract.md` section 12 winning where
193
+ this skill differs:
194
+
195
+ - **Pointer scope.** The pointer is the first incomplete unit within the
196
+ active milestone's ordered phase set (the shared Milestones reader), never a
197
+ phase of another milestone.
198
+ - **Interrupted recovery.** When `oat_goal_recovery` is set, repair only that
199
+ record: check that its `milestone` has a `## Milestones` row, that its
200
+ `phase_ids` are that row's phases (plus any appended `p-revN` assigned to
201
+ it), that a non-null `delivery_id` names a registry entry of that milestone,
202
+ and that a non-null `review_artifact` exists in `reviews/` or
203
+ `reviews/archived/`. Then set `stage` from the evidence on disk by the
204
+ section 12.5 missing-evidence order (open fix records → `implementing`; a
205
+ missing, blocked or stale exit carrier → `exit_gate`; no integrated review
206
+ of the set → `reviewing`; a produced, unreceived artifact → `receiving`;
207
+ a received `passed` review with a fresh carrier → `delivering`). Reconcile
208
+ confirms the repaired record with the user in Step 4. Older-delivery
209
+ recovery leaves `oat_milestone`, `oat_milestone_status`,
210
+ `oat_current_task_id`, and `oat_current_task` untouched.
211
+ - **Never for the active milestone.** Reconcile never creates an
212
+ `oat_goal_recovery` record for the active milestone and never creates one
213
+ at all: only `oat-project-review-receive`, `oat-project-revise`, and
214
+ `oat-project-pr-progress` open recovery records.
215
+ - **Registration ambiguity.** A `registering` delivery whose lookup matched
216
+ more than one pull request is routed here by its registration owner: report
217
+ the matches and attach the one the user confirms in Step 4; reconcile never
218
+ creates a pull request.
219
+
129
220
  ### Step 1: Find Checkpoint
130
221
 
131
222
  Identify the last commit that OAT has already tracked. Everything after this commit is "untracked human work" that needs reconciliation.
@@ -600,7 +691,7 @@ For each commit the user chose to log as unplanned work, append after the last t
600
691
  - Not part of original plan. Logged during reconciliation on {today's date}.
601
692
  ```
602
693
 
603
- **5d. Update progress table:**
694
+ **5d. Update progress table** (brief modes: the phase-unit table from the brief-mode branch above):
604
695
 
605
696
  Recalculate the `## Progress Overview` table dynamically from the project's actual data:
606
697
 
@@ -632,7 +723,7 @@ oat_current_task_id: { next_pending_task_id } # or null if all complete
632
723
  oat_last_updated: { today }
633
724
  ```
634
725
 
635
- Find the next pending task by scanning plan order: first task with status not `completed`.
726
+ 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; in goal mode, within the active milestone's phase set, per the goal-mode branch.
636
727
 
637
728
  In `state.md`:
638
729