@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
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Lifecycle Gate Approval Record
|
|
2
|
+
|
|
3
|
+
A configured lifecycle gate ends in an outcome the operator or a later session
|
|
4
|
+
needs to see again: it passed, it warned, the operator explicitly continued
|
|
5
|
+
past a failure, the project disabled it, or it blocked. Chat output does not
|
|
6
|
+
survive the session, so the skill that runs the gate persists the outcome in
|
|
7
|
+
project `state.md`. This document defines the record's shared core once; each
|
|
8
|
+
carrier names where it lives and what it adds.
|
|
9
|
+
|
|
10
|
+
## Core record
|
|
11
|
+
|
|
12
|
+
```yaml
|
|
13
|
+
<carrier>:
|
|
14
|
+
status: allowed # allowed | blocked
|
|
15
|
+
disposition: passed # passed | warned | prompt_approved | project_disabled; null when blocked
|
|
16
|
+
config_fingerprint: '<stable hash of the resolved gate declaration>'
|
|
17
|
+
reviewed_head: '<full SHA of the commit the gate reviewed>'
|
|
18
|
+
decided_at: '2026-10-02T15:20:00Z'
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
- `status`: `allowed` | `blocked`.
|
|
22
|
+
- `disposition`: `passed`, `warned`, `prompt_approved`, or `project_disabled`
|
|
23
|
+
when `status` is `allowed`; `null` when `status` is `blocked`.
|
|
24
|
+
- `config_fingerprint`: the writer's stable hash of the resolved gate
|
|
25
|
+
declaration it ran (command, description, `onFailure`, `maxAttempts`, and the
|
|
26
|
+
project override state), recorded as provenance. Implement recomputes its own
|
|
27
|
+
carrier's fingerprint under its Step 14 rules; quick-start readers do not.
|
|
28
|
+
- `reviewed_head`: the full 40-character SHA of the commit the gate reviewed,
|
|
29
|
+
recorded as provenance. `null` when no gate ran.
|
|
30
|
+
- `decided_at`: the ISO 8601 UTC time the outcome was decided. A record written
|
|
31
|
+
before `decided_at` existed is not malformed for that reason alone.
|
|
32
|
+
|
|
33
|
+
## Write rules
|
|
34
|
+
|
|
35
|
+
| Gate outcome | Record |
|
|
36
|
+
| --------------------------------------------------------------- | ----------------------------------------------------------- |
|
|
37
|
+
| Passed its threshold | `allowed` / `passed` |
|
|
38
|
+
| Failed under `onFailure: warn` | `allowed` / `warned` |
|
|
39
|
+
| Failed under `onFailure: prompt`, operator explicitly continued | `allowed` / `prompt_approved` |
|
|
40
|
+
| Failed under `onFailure: prompt`, operator declined or deferred | `blocked` / `null` |
|
|
41
|
+
| `block` still failing after `maxAttempts` | `blocked` / `null` |
|
|
42
|
+
| Configured but disabled by project override (no launch) | `allowed` / `project_disabled` |
|
|
43
|
+
| Launch, transport, validation, or receive failure | `blocked` / `null` |
|
|
44
|
+
| Not configured | no record (quick-start); implement writes `allowed/no_gate` |
|
|
45
|
+
|
|
46
|
+
Only an explicit operator continuation writes `prompt_approved`. Declining,
|
|
47
|
+
deferring, giving no response, or running under `OAT_AUTONOMOUS=1` writes
|
|
48
|
+
`blocked`, never anything that reads as approval. A rerun of the same gate
|
|
49
|
+
replaces the record.
|
|
50
|
+
|
|
51
|
+
## Carriers
|
|
52
|
+
|
|
53
|
+
- **`oat_implement_exit_gate`** (`oat-project-implement`,
|
|
54
|
+
`references/completion-and-closeout.md` Step 14) uses this core and keeps its
|
|
55
|
+
additional values and fields there: the `pending` and `stale` statuses, the
|
|
56
|
+
`no_gate` disposition, and the resolution, attempt, launch, receive, waiver,
|
|
57
|
+
and freshness fields. Its own effective-delta freshness rule decides whether a
|
|
58
|
+
record is current.
|
|
59
|
+
- **`oat_quick_start_gate`** (`oat-project-quick-start`, Gate Execution) carries
|
|
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.
|
|
74
|
+
|
|
75
|
+
## Reading a quick-start record
|
|
76
|
+
|
|
77
|
+
Readers report a quick-start record as recorded and do not recompute
|
|
78
|
+
`config_fingerprint`: no CLI emits a canonical fingerprint for the quick-start
|
|
79
|
+
gate, so a recomputation could not be reproduced across sessions. They do not
|
|
80
|
+
route on the record either.
|
|
81
|
+
|
|
82
|
+
- Report `status`, `disposition`, `decided_at`, and `config_fingerprint` (as
|
|
83
|
+
provenance) exactly as stored.
|
|
84
|
+
- Report the record as malformed when `status` and `disposition` do not form
|
|
85
|
+
one of the combinations in the write rules, or when a present `decided_at` is
|
|
86
|
+
not a valid ISO 8601 UTC time.
|
|
87
|
+
- `reviewed_head` is provenance only and is not compared with `HEAD`, because
|
|
88
|
+
the quick-start completion step commits after the gate.
|
|
89
|
+
- An absent record means none was written: no gate was configured, the gate
|
|
90
|
+
has not reached an outcome, or the plan predates the record. Readers do not
|
|
91
|
+
infer which.
|
|
92
|
+
|
|
93
|
+
Readers never write, repair, or infer a record.
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.0.
|
|
8
|
+
version: 1.0.6
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Capture Untracked Work
|
|
@@ -29,7 +29,7 @@ Use when:
|
|
|
29
29
|
Don't use when:
|
|
30
30
|
|
|
31
31
|
- A project already exists for the current branch — use `oat-project-reconcile` instead
|
|
32
|
-
- You haven't started any work yet — use `oat-project-lite` for single-sitting work, `oat-project-quick-start` for quick work, or `oat-project-new` for spec-driven work
|
|
32
|
+
- You haven't started any work yet — use `oat-project-lite` for single-sitting work, `oat-project-brief` for one delivery planned as a Project Brief, `oat-project-goal` for an outcome delivered over several milestones, `oat-project-quick-start` for quick work, or `oat-project-new` for spec-driven work
|
|
33
33
|
- You only need to map new commits to an existing plan — use `oat-project-reconcile`
|
|
34
34
|
|
|
35
35
|
## Prerequisites
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Write, Bash, AskUserQuestion
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.7.
|
|
8
|
+
version: 1.7.17
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Complete Project
|
|
@@ -228,6 +228,13 @@ configured, autonomous, or lite closeout cannot complete until its
|
|
|
228
228
|
`oat_post_implement_sequence` snapshot exists and every stored step and the
|
|
229
229
|
final sign-off are recorded. A project whose implementation finished before
|
|
230
230
|
closeout snapshots existed recovers the same way; there is no override.
|
|
231
|
+
|
|
232
|
+
For a goal project (`oat_workflow_mode: goal`) the boundary also requires a
|
|
233
|
+
valid declaration, an exhaustive outcome audit and delivery coverage
|
|
234
|
+
(`oat-project-brief/references/brief-contract.md` section 12.9); a refusal
|
|
235
|
+
routes to its `nextOwner.skill` (`oat-project-goal`, `oat-project-implement`,
|
|
236
|
+
a review owner, `oat-project-pr-progress`, or `oat-project-pr-final`) rather
|
|
237
|
+
than to implement alone.
|
|
231
238
|
`oat project complete-state` refuses the same state in Step 5.
|
|
232
239
|
|
|
233
240
|
The shared and synced archive resume branches above continue at Step 12 or
|
|
@@ -291,6 +298,7 @@ PROJECT_RECAP_CONFIG=$(oat config get workflow.explainers.projectRecap --json 2>
|
|
|
291
298
|
- **If `PR_ON_COMPLETE` is `false`:** Set `SHOULD_OPEN_PR="false"`. Skip the Open PR question. Print `PR on complete: disabled (from workflow.createPrOnComplete).`
|
|
292
299
|
- **If `PR_ON_COMPLETE` is unset:** Include the Open PR question in the batched prompt as normal (backward compatible).
|
|
293
300
|
- The existing tracked-PR skip still applies: if `oat_pr_status` is `open`, do not ask the Open PR question and do not honor `PR_ON_COMPLETE=true` — the PR already exists.
|
|
301
|
+
- **Goal mode (`oat_workflow_mode: goal`):** the completion decision consumes the validated goal coverage from Step 1.5. When the declaration and its exhaustive audit are valid, every terminal delivery is at its agreed endpoint (`status: at_endpoint`, or `endpoint_attainment` recorded), and the snapshot's `pr` step is satisfied by coverage (`satisfied_by: { pr: delivery-coverage }`), set `SHOULD_OPEN_PR="false"`, skip the Open PR question, call no `gh pr create` in Step 11, and print `PR on complete: satisfied by goal delivery coverage` — even when `PR_ON_COMPLETE` is `true`. Genuinely uncovered delivery work never reaches this step: Step 1.5 refuses it and routes to the goal registration owner (`oat-project-pr-final` for terminal registration, `oat-project-pr-progress` for a milestone delivery). A separately intended bookkeeping PR for the completion commits is not a goal delivery: open one only when the user explicitly asks for it in this run, never because of `PR_ON_COMPLETE`, and never register it in `oat_deliveries` or count it toward coverage. Every other mode is unchanged.
|
|
294
302
|
|
|
295
303
|
Select archive prompt participation before assembling the batched prompt:
|
|
296
304
|
|
|
@@ -390,6 +398,12 @@ Also preflight summary status using the same freshness rules as `oat-project-sum
|
|
|
390
398
|
- `summary.md` is `missing` when `{PROJECT_PATH}/summary.md` does not exist
|
|
391
399
|
- `summary.md` is `stale` when the tracking frontmatter fields `oat_summary_last_task`, `oat_summary_revision_count`, or `oat_summary_includes_revisions` no longer match `current_last_task`, `current_rev_count`, or `current_rev_list` as defined in `oat-project-summary` Step 3
|
|
392
400
|
- `summary.md` is `current` when those tracking fields still match the `oat-project-summary` Step 3 comparison inputs
|
|
401
|
+
- In brief modes staleness is decided by fingerprint instead: recompute the
|
|
402
|
+
phase fingerprint with the `oat-project-summary` Step 3 brief fragment, and
|
|
403
|
+
in goal mode include the Step 3 goal fragment (the delivery IDs at
|
|
404
|
+
endpoint); `summary.md` is `stale` when its `oat_summary_phase_fingerprint`
|
|
405
|
+
is absent or differs from the recomputed value and `current` when they
|
|
406
|
+
match. `oat_summary_last_task` is not consulted for a brief or goal project.
|
|
393
407
|
|
|
394
408
|
Preflight `{PROJECT_PATH}/references/project-retro.md` alongside the summary.
|
|
395
409
|
The safety-net offer is governed by how this completion run executes, not by how
|
|
@@ -1088,7 +1102,7 @@ If a PR description artifact already exists at `{PROJECT_PATH}/pr/project-pr-*.m
|
|
|
1088
1102
|
|
|
1089
1103
|
**Archive-aware References (required when `SHOULD_ARCHIVE` is `true`):**
|
|
1090
1104
|
|
|
1091
|
-
When archiving, the project artifacts at `{PROJECT_PATH}/{plan,implementation,discovery,spec,design,summary}.md` will move to a gitignored archive location in Step 8. After commit + push (Step 10), those paths no longer exist on the branch and any blob link to them returns 404 on GitHub. The PR description must anticipate this:
|
|
1105
|
+
When archiving, the project artifacts at `{PROJECT_PATH}/{plan,implementation,discovery,spec,design,summary}.md` will move to a gitignored archive location in Step 8. After commit + push (Step 10), those paths no longer exist on the branch and any blob link to them returns 404 on GitHub. The PR description must anticipate this. A brief project's artifact set is `plan.md` (the Project Brief), `implementation.md` (the phase journal), `summary.md`, and `references/`; it has no discovery, spec, or design artifact:
|
|
1092
1106
|
|
|
1093
1107
|
- **Drop References bullets** that point to artifacts about to become local-only:
|
|
1094
1108
|
- `plan.md`, `implementation.md`, `discovery.md`, `spec.md`, `design.md`, `summary.md`, `references/imported-plan.md`
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: false
|
|
|
5
5
|
user-invocable: true
|
|
6
6
|
allowed-tools: Read, Write, Bash(git:*), Bash(oat:*), Bash(pnpm:*), Glob, Grep, AskUserQuestion
|
|
7
7
|
metadata:
|
|
8
|
-
version: 2.2.
|
|
8
|
+
version: 2.2.11
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Discovery Phase
|
|
@@ -32,7 +32,7 @@ Before acting:
|
|
|
32
32
|
2. Confirm `{PROJECT_PATH}/state.md` exists.
|
|
33
33
|
3. Confirm `oat_workflow_mode` is `spec-driven` or absent only in a legacy spec-driven project.
|
|
34
34
|
|
|
35
|
-
If any check fails, decline this skill. Offer `oat-project-new` for a new spec-driven project, `oat-project-quick-start` for a quick project, `oat-project-lite` for single-sitting work, or `oat-project-open` for switching to an existing project. When the gate passes, summarize the active project and ask before continuing discovery.
|
|
35
|
+
If any check fails, decline this skill. Offer `oat-project-new` for a new spec-driven project, `oat-project-quick-start` for a quick project, `oat-project-lite` for single-sitting work, `oat-project-brief` for one delivery planned as a Project Brief, `oat-project-goal` for an outcome delivered over several milestones, or `oat-project-open` for switching to an existing project. When the gate passes, summarize the active project and ask before continuing discovery.
|
|
36
36
|
|
|
37
37
|
## Mode Assertion
|
|
38
38
|
|
|
@@ -107,6 +107,8 @@ PROJECTS_ROOT="${PROJECTS_ROOT%/}"
|
|
|
107
107
|
- If `oat_workflow_mode` is present and not `spec-driven`, stop and route:
|
|
108
108
|
- quick project: continue with `oat-project-quick-start` / `oat-project-progress`
|
|
109
109
|
- lite project: continue with `oat-project-lite` / `oat-project-progress`
|
|
110
|
+
- brief project: continue with `oat-project-brief` / `oat-project-progress`
|
|
111
|
+
- goal project: continue with `oat-project-goal` / `oat-project-progress`
|
|
110
112
|
- import project: continue with `oat-project-import-plan` / `oat-project-progress`
|
|
111
113
|
- Ask user:
|
|
112
114
|
- **Continue** with active project, or
|
|
@@ -5,7 +5,7 @@ disable-model-invocation: true
|
|
|
5
5
|
user-invocable: false
|
|
6
6
|
allowed-tools: Read, Bash
|
|
7
7
|
metadata:
|
|
8
|
-
version: 1.1.
|
|
8
|
+
version: 1.1.8
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
# Dispatching OAT Project Subagents
|
|
@@ -260,6 +260,14 @@ lifecycle_outcome:
|
|
|
260
260
|
Do not rewrite generic route, selector, acceptance, outcome, or diagnostic
|
|
261
261
|
fields inside the lifecycle extension.
|
|
262
262
|
|
|
263
|
+
`workflow_mode` carries the project's recorded mode, `brief` included. In a
|
|
264
|
+
brief project the lifecycle scope is a phase ID: `phase_id` (such as `p02`)
|
|
265
|
+
names the phase-unit, and `task_id` names the execution record the launch
|
|
266
|
+
executes, or is `null` for a whole-phase launch, because brief phases have no
|
|
267
|
+
planned tasks. The brief's one-committing-owner rule then sets
|
|
268
|
+
`commit_policy`: a nested worker returns edits on owned paths and never
|
|
269
|
+
commits.
|
|
270
|
+
|
|
263
271
|
## Failure Boundaries
|
|
264
272
|
|
|
265
273
|
- Invalid or stale project state: block before generic dispatch.
|
|
@@ -6,7 +6,7 @@ disable-model-invocation: false
|
|
|
6
6
|
user-invocable: true
|
|
7
7
|
allowed-tools: Read, Write, Edit, Bash(git:*), Bash(jq:*), Bash(oat pjm:*), Bash(oat project push:*), Bash(oat project scope:*), Bash(oat tools:*), Glob, Grep, AskUserQuestion, Skill
|
|
8
8
|
metadata:
|
|
9
|
-
version: 1.8.
|
|
9
|
+
version: 1.8.10
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
# Project Documentation Sync
|
|
@@ -217,6 +217,22 @@ shipped results. A lite project accepts `discovery.md`, `spec.md`, and
|
|
|
217
217
|
`design.md` as absent; do not read or require them. Build the documentation
|
|
218
218
|
delta from what actually shipped and continue with code verification.
|
|
219
219
|
|
|
220
|
+
For `oat_workflow_mode: brief` or `goal`, use the brief artifact set instead
|
|
221
|
+
of the numbered list below. Read `plan.md` (the Project Brief: Goal, Outcomes,
|
|
222
|
+
Approach and any `### Design` subsection, Constraints and Out of Scope,
|
|
223
|
+
Decisions, and the phases' Intent and Exit evidence), then `implementation.md`
|
|
224
|
+
phase sections, execution records, `Brief deltas`, and `Final Summary (for
|
|
225
|
+
PR/docs)` as the shipped results, plus `summary.md` and `references/research/`
|
|
226
|
+
when present. A goal project adds two shipped-result sources from `state.md`:
|
|
227
|
+
the outcome audit (`oat_goal_outcome_audit`, the per-outcome disposition once
|
|
228
|
+
the goal is declared met) and the delivery registry (`oat_deliveries`, each
|
|
229
|
+
delivery's scope, pull requests and endpoint observation); document only what
|
|
230
|
+
those deliveries shipped, and name audited deferrals rather than documenting
|
|
231
|
+
them as delivered. A brief or goal project accepts `discovery.md`, `spec.md`,
|
|
232
|
+
and `design.md` as absent; do not read or require them. Build the
|
|
233
|
+
documentation delta from what actually shipped and continue with code
|
|
234
|
+
verification.
|
|
235
|
+
|
|
220
236
|
For every other workflow mode, read the numbered artifact list below.
|
|
221
237
|
|
|
222
238
|
**Read in order:**
|