@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.
- package/README.md +2 -1
- package/assets/agents/oat-phase-implementer.md +104 -3
- package/assets/agents/oat-reviewer.md +20 -5
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/reference/cli-reference.md +15 -7
- package/assets/docs/reference/oat-directory-structure.md +2 -0
- package/assets/docs/reference/project-artifacts.md +72 -1
- package/assets/docs/reference/project-state-machine.md +55 -6
- package/assets/docs/skills/brainstorm.md +3 -1
- package/assets/docs/skills/index.md +13 -9
- package/assets/docs/workflows/advanced/autonomy.md +12 -2
- package/assets/docs/workflows/advanced/dispatch-ceiling.md +2 -2
- package/assets/docs/workflows/advanced/workflow-gates.md +25 -7
- package/assets/docs/workflows/approvals-and-automation.md +25 -9
- package/assets/docs/workflows/choose-workflow.md +24 -8
- package/assets/docs/workflows/ideas/index.md +1 -1
- package/assets/docs/workflows/ideas/lifecycle.md +3 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +83 -5
- package/assets/docs/workflows/projects/closeout/pr-flow.md +9 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +27 -2
- package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +20 -1
- package/assets/docs/workflows/projects/lifecycle.md +172 -9
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
- package/assets/docs/workflows/projects/planning/planning-skills.md +13 -10
- package/assets/docs/workflows/projects/planning/starting-projects.md +138 -20
- package/assets/docs/workflows/projects/reviews/index.md +36 -2
- package/assets/docs/workflows/projects/reviews/review-flavors.md +7 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-brainstorm/SKILL.md +58 -9
- package/assets/skills/oat-brainstorm/references/destinations.md +12 -4
- package/assets/skills/oat-docs/SKILL.md +13 -4
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
- package/assets/skills/oat-project-autonomous/SKILL.md +20 -8
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +156 -122
- package/assets/skills/oat-project-brief/SKILL.md +592 -0
- package/assets/skills/oat-project-brief/references/brief-contract.md +743 -0
- package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +412 -0
- package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +93 -0
- package/assets/skills/oat-project-capture/SKILL.md +2 -2
- package/assets/skills/oat-project-complete/SKILL.md +16 -2
- package/assets/skills/oat-project-discover/SKILL.md +4 -2
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
- package/assets/skills/oat-project-document/SKILL.md +17 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-goal/SKILL.md +697 -0
- package/assets/skills/oat-project-goal/references/docs/autonomy-contract.md +412 -0
- package/assets/skills/oat-project-goal/references/docs/gate-approval-record.md +93 -0
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +107 -0
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-implement/references/phase-execution.md +173 -1
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +124 -3
- package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
- package/assets/skills/oat-project-lite/SKILL.md +4 -1
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-new/SKILL.md +5 -1
- package/assets/skills/oat-project-next/SKILL.md +71 -14
- package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-plan/SKILL.md +24 -3
- package/assets/skills/oat-project-plan-writing/SKILL.md +8 -4
- package/assets/skills/oat-project-pr-final/SKILL.md +65 -3
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-pr-progress/SKILL.md +125 -4
- package/assets/skills/oat-project-progress/SKILL.md +63 -8
- package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
- package/assets/skills/oat-project-quick-start/SKILL.md +65 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-reconcile/SKILL.md +94 -3
- package/assets/skills/oat-project-review-provide/SKILL.md +397 -12
- package/assets/skills/oat-project-review-receive/SKILL.md +155 -1
- package/assets/skills/oat-project-revise/SKILL.md +51 -4
- package/assets/skills/oat-project-summary/SKILL.md +150 -2
- package/assets/skills/oat-wave-execute/SKILL.md +3 -2
- package/assets/templates/implementation-brief.md +165 -0
- package/assets/templates/plan-brief.md +140 -0
- package/assets/templates/plan.md +1 -1
- package/assets/templates/state.md +8 -2
- package/dist/commands/project/closeout-check/closeout-invariant.d.ts +119 -3
- package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -1
- package/dist/commands/project/closeout-check/closeout-invariant.js +454 -2
- package/dist/commands/project/closeout-check/index.d.ts +21 -3
- package/dist/commands/project/closeout-check/index.d.ts.map +1 -1
- package/dist/commands/project/closeout-check/index.js +190 -4
- package/dist/commands/project/complete-state/index.d.ts +2 -1
- package/dist/commands/project/complete-state/index.d.ts.map +1 -1
- package/dist/commands/project/complete-state/index.js +7 -1
- package/dist/commands/project/delivery/check.d.ts +66 -0
- package/dist/commands/project/delivery/check.d.ts.map +1 -0
- package/dist/commands/project/delivery/check.js +232 -0
- package/dist/commands/project/delivery/evidence.d.ts +171 -0
- package/dist/commands/project/delivery/evidence.d.ts.map +1 -0
- package/dist/commands/project/delivery/evidence.js +902 -0
- package/dist/commands/project/delivery/index.d.ts +7 -0
- package/dist/commands/project/delivery/index.d.ts.map +1 -0
- package/dist/commands/project/delivery/index.js +13 -0
- package/dist/commands/project/delivery/refresh.d.ts +110 -0
- package/dist/commands/project/delivery/refresh.d.ts.map +1 -0
- package/dist/commands/project/delivery/refresh.js +441 -0
- package/dist/commands/project/index.d.ts.map +1 -1
- package/dist/commands/project/index.js +2 -0
- package/dist/commands/project/log/append.d.ts +6 -0
- package/dist/commands/project/log/append.d.ts.map +1 -1
- package/dist/commands/project/log/append.js +6 -1
- package/dist/commands/project/new/scaffold.d.ts +1 -1
- package/dist/commands/project/new/scaffold.d.ts.map +1 -1
- package/dist/commands/project/new/scaffold.js +81 -7
- package/dist/commands/project/promote/promote.d.ts +46 -1
- package/dist/commands/project/promote/promote.d.ts.map +1 -1
- package/dist/commands/project/promote/promote.js +646 -5
- package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
- package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
- package/dist/commands/project/validate-plan/frontmatter.js +27 -0
- package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
- package/dist/commands/project/validate-plan/index.js +62 -18
- package/dist/commands/project/validate-plan/profiles.d.ts +69 -0
- package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
- package/dist/commands/project/validate-plan/profiles.js +420 -0
- package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
- package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
- package/dist/commands/project/validate-plan/validate-plan.js +5 -82
- package/dist/commands/shared/frontmatter.d.ts +1 -1
- package/dist/commands/shared/frontmatter.d.ts.map +1 -1
- package/dist/commands/shared/frontmatter.js +2 -0
- package/dist/commands/state/generate.d.ts.map +1 -1
- package/dist/commands/state/generate.js +82 -2
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +4 -0
- 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.
|
|
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
|
|