@open-agent-toolkit/cli 0.1.64 → 0.1.66
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/assets/agents/oat-reviewer.md +3 -2
- package/assets/docs/cli-utilities/backlog-lifecycle.md +2 -2
- package/assets/docs/cli-utilities/config-and-local-state.md +20 -6
- package/assets/docs/cli-utilities/tool-packs.md +1 -0
- package/assets/docs/cli-utilities/workflow-gates.md +3 -1
- package/assets/docs/contributing/code.md +18 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-agent-instructions-analyze/SKILL.md +3 -2
- package/assets/skills/oat-pjm-add-backlog-item/SKILL.md +17 -72
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +4 -4
- package/assets/skills/oat-project-design/SKILL.md +88 -75
- package/assets/skills/oat-project-discover/SKILL.md +83 -64
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +4 -4
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +4 -4
- package/assets/skills/oat-project-plan/SKILL.md +64 -56
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +4 -4
- package/assets/skills/oat-project-quick-start/SKILL.md +63 -55
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +4 -4
- package/assets/skills/oat-project-summary/SKILL.md +9 -4
- package/assets/templates/plan.md +2 -0
- package/dist/commands/backlog/archive.d.ts.map +1 -1
- package/dist/commands/backlog/archive.js +5 -5
- package/dist/commands/backlog/index.d.ts +4 -0
- package/dist/commands/backlog/index.d.ts.map +1 -1
- package/dist/commands/backlog/index.js +55 -0
- package/dist/commands/backlog/new.d.ts +27 -0
- package/dist/commands/backlog/new.d.ts.map +1 -0
- package/dist/commands/backlog/new.js +158 -0
- package/dist/commands/backlog/regenerate-index.d.ts.map +1 -1
- package/dist/commands/backlog/regenerate-index.js +42 -3
- package/dist/commands/decision/index.d.ts.map +1 -1
- package/dist/commands/decision/index.js +4 -0
- package/dist/commands/decision/new.d.ts +2 -0
- package/dist/commands/decision/new.d.ts.map +1 -1
- package/dist/commands/decision/new.js +4 -2
- package/dist/commands/doctor/index.d.ts +1 -0
- package/dist/commands/doctor/index.d.ts.map +1 -1
- package/dist/commands/doctor/index.js +3 -0
- package/dist/commands/doctor/stale-invocations.d.ts +3 -0
- package/dist/commands/doctor/stale-invocations.d.ts.map +1 -0
- package/dist/commands/doctor/stale-invocations.js +173 -0
- package/dist/commands/gate/index.d.ts +1 -0
- package/dist/commands/gate/index.d.ts.map +1 -1
- package/dist/commands/gate/index.js +5 -1
- package/dist/commands/project/new/scaffold.d.ts.map +1 -1
- package/dist/commands/project/new/scaffold.js +24 -9
- package/dist/commands/tools/update/index.d.ts.map +1 -1
- package/dist/commands/tools/update/index.js +22 -12
- package/package.json +2 -2
|
@@ -304,7 +304,7 @@ Use a seconds-precision **UTC** timestamp token (`YYYY-MM-DDTHHMMSSZ`, from `dat
|
|
|
304
304
|
- Task review: `{project}/reviews/pNN-tNN-review-YYYY-MM-DDTHHMMSSZ.md`
|
|
305
305
|
- Range review: `{project}/reviews/range-review-YYYY-MM-DDTHHMMSSZ.md`
|
|
306
306
|
|
|
307
|
-
The timestamp token must
|
|
307
|
+
The timestamp token and `oat_generated_at` frontmatter must represent the same instant from the same `date -u` capture. The filename uses the colon-free form (`YYYY-MM-DDTHHMMSSZ`) of the frontmatter value (`YYYY-MM-DDTHH:MM:SSZ`) because colons are not filename-safe. In the unlikely event a file with that exact second already exists, append `-v2`, `-v3`, etc.
|
|
308
308
|
|
|
309
309
|
**Review artifact template:**
|
|
310
310
|
|
|
@@ -396,12 +396,13 @@ Run these to verify the implementation:
|
|
|
396
396
|
{command 1}
|
|
397
397
|
{command 2}
|
|
398
398
|
```
|
|
399
|
-
````
|
|
400
399
|
|
|
401
400
|
## Recommended Next Step
|
|
402
401
|
|
|
403
402
|
Run the `oat-project-review-receive` skill to convert findings into plan tasks.
|
|
404
403
|
|
|
404
|
+
````
|
|
405
|
+
|
|
405
406
|
```
|
|
406
407
|
|
|
407
408
|
Gate parsing contract: artifact-mode reviews, including reviews spawned by `oat gate review`, MUST include either the complete `Findings: {N} critical, {N} important, {N} medium, {N} minor` count line or the standard `## Findings` sections shown above with every severity subsection present.
|
|
@@ -42,11 +42,11 @@ oat backlog archive BL-260705-example --wont-do --summary "superseded by BL-2607
|
|
|
42
42
|
A single `oat backlog archive` run performs the whole close-out so its parts cannot drift apart:
|
|
43
43
|
|
|
44
44
|
1. Sets the terminal `status` (`closed` by default, `wont_do` with `--wont-do`) and stamps `updated`.
|
|
45
|
-
2.
|
|
45
|
+
2. Validates and trims a nonblank `--summary` before mutating a `closed` item, then appends its canonical newest-first `completed.md` entry. `wont_do` items may omit the summary and get an entry only when one is provided.
|
|
46
46
|
3. Moves `items/<id>.md` into `archived/` — with `git mv` inside a work tree, or a plain rename outside git.
|
|
47
47
|
4. Regenerates the managed backlog index.
|
|
48
48
|
|
|
49
|
-
The command is safe to re-run: an item already in `archived/` produces a no-op warning with no writes.
|
|
49
|
+
The command is safe to re-run: an item already in `archived/` produces a no-op warning with no writes. A missing closed-item summary or an out-of-enum current status (for example a hand-set `done`) is a hard error before mutation and includes recovery guidance. See the [command reference](config-and-local-state.md#oat-backlog-archive) for exit codes and the `--json` payload.
|
|
50
50
|
|
|
51
51
|
## Catching lifecycle drift
|
|
52
52
|
|
|
@@ -14,6 +14,7 @@ Use these commands when you need operational support around the toolkit rather t
|
|
|
14
14
|
Use the `oat backlog` group when you want direct CLI support for the file-backed backlog under `.oat/repo/pjm/backlog/`.
|
|
15
15
|
|
|
16
16
|
- `oat backlog init` - scaffold `.oat/repo/pjm/backlog/` with starter files and directories for a fresh repo
|
|
17
|
+
- `oat backlog new <title>` - validate and create a file-backed backlog item from the canonical template, then regenerate the managed index
|
|
17
18
|
- `oat backlog generate-id <title>` - generate a deterministic `BL-YYMMDD-slug` backlog ID from a title
|
|
18
19
|
- `oat backlog generate-id <title> --created-at <timestamp>` - generate a reproducible ID for a known creation timestamp
|
|
19
20
|
- `oat backlog archive <id>` - atomic close-out: set a terminal status, record the completion in `completed.md`, move the item into `archived/`, and regenerate the index in one step
|
|
@@ -21,10 +22,18 @@ Use the `oat backlog` group when you want direct CLI support for the file-backed
|
|
|
21
22
|
|
|
22
23
|
Backlog IDs are deterministic date+slug identifiers (`BL-YYMMDD-slug`) derived from the creation date and title, so two machines or worktrees produce the same ID for the same record without scanning the local checkout. The slug is capped at 30 characters at the last whole-word boundary (with trailing stop-words trimmed), so prefer concise, meaningful titles. Index regeneration is deterministic and safe to re-run when resolving an index merge conflict.
|
|
23
24
|
|
|
24
|
-
Run `oat backlog init`
|
|
25
|
+
Run `oat backlog init` directly when you need to create or repair only the backlog scaffold. `oat backlog new` initializes a missing scaffold automatically after validating its inputs. This command group is primarily used by the `oat-pjm-*` project-management skills, but it is also available directly when you need to inspect or repair backlog metadata by hand.
|
|
25
26
|
|
|
26
27
|
For the end-to-end states an item moves through — and how `oat backlog archive` and `oat pjm doctor` keep the backlog honest — see [Backlog Lifecycle](backlog-lifecycle.md).
|
|
27
28
|
|
|
29
|
+
### `oat backlog new`
|
|
30
|
+
|
|
31
|
+
`oat backlog new <title> [--priority <priority>] [--scope <scope>] [--scope-estimate <size>] [--labels <labels>] [--description <text>] [--backlog-root <path>]` creates one active item and refreshes the managed backlog index.
|
|
32
|
+
|
|
33
|
+
Defaults are `priority: medium` and `scope: task`. Valid priorities are `urgent`, `high`, `medium`, `low`, and `none`; valid scopes are `idea`, `task`, `feature`, and `initiative`; scope estimates accept `XS`, `S`, `M`, `L`, `XL`, or `XXL`. Pass labels as a comma-delimited list.
|
|
34
|
+
|
|
35
|
+
The command validates all inputs before creating the scaffold or writing an item. It uses the repo-local canonical backlog template when available, falls back to the CLI's bundled template, writes structured YAML frontmatter, and rejects an ID collision in either `items/` or `archived/` without overwriting the existing record. If managed-index regeneration fails after the item write, OAT removes only the new item and restores the prior index.
|
|
36
|
+
|
|
28
37
|
### `oat backlog archive`
|
|
29
38
|
|
|
30
39
|
`oat backlog archive <id> [--wont-do] [--summary <text>] [--json] [--backlog-root <path>]` performs the full close-out for a backlog item so status flip, completed-log entry, file move, and index regeneration never drift apart.
|
|
@@ -33,22 +42,23 @@ For the end-to-end states an item moves through — and how `oat backlog archive
|
|
|
33
42
|
|
|
34
43
|
- `<id>` (required) - the backlog item id (`BL-YYMMDD-slug`); the item file must live under `items/`.
|
|
35
44
|
- `--wont-do` - close the item as `wont_do` instead of the default terminal status `closed`.
|
|
36
|
-
- `--summary <text>` - one-line outcome summary recorded in `completed.md
|
|
45
|
+
- `--summary <text>` - one-line outcome summary recorded in `completed.md`; required and nonblank for the default `closed` path.
|
|
37
46
|
- `--backlog-root <path>` - override the backlog root (defaults to `.oat/repo/pjm/backlog`).
|
|
38
47
|
- `--json` - emit the machine-readable result payload instead of human log lines.
|
|
39
48
|
|
|
40
49
|
**Behavior:**
|
|
41
50
|
|
|
42
51
|
- Validates the item's current `status` against the enum (`open | in_progress | closed | wont_do`); an out-of-enum value such as `done` is a hard error with a fix hint. Archiving is legal from any valid status — a `closed` item still in `items/` just gets its move finished.
|
|
52
|
+
- For the default `closed` path, validates and trims a nonblank `--summary` before any file or index mutation. The `wont_do` path may omit the summary and completion-ledger entry.
|
|
43
53
|
- Rewrites only the `status:` and `updated:` frontmatter lines (preserving any inline enum comment), then moves the item from `items/` to `archived/` with `git mv` inside a work tree, falling back to a plain rename (with a warning) outside git or if `git mv` fails.
|
|
44
|
-
- `closed` archives
|
|
54
|
+
- `closed` archives append a canonical newest-first `completed.md` entry (`YYYY-MM-DD — <id> — Title — summary`). `wont_do` archives append an entry only when `--summary` is provided. A missing `completed.md` is scaffolded from the starter template; a missing `## Completed Items` heading is scaffolded with a warning.
|
|
45
55
|
- Regenerates the managed backlog index after the move.
|
|
46
56
|
- Idempotent: re-running on an item already in `archived/` is a no-op warning with no writes.
|
|
47
57
|
|
|
48
58
|
**Exit codes:**
|
|
49
59
|
|
|
50
60
|
- `0` - item archived, or already-archived no-op.
|
|
51
|
-
- `1` - actionable error: unknown id
|
|
61
|
+
- `1` - actionable error: unknown id, out-of-enum current status, duplicate active/archived ID, or a missing closed-item summary. The message includes the recovery action.
|
|
52
62
|
- `2` - reserved for unexpected system/runtime failures.
|
|
53
63
|
|
|
54
64
|
**JSON payload (`--json`):**
|
|
@@ -76,10 +86,12 @@ For full project-management repo-reference setup, use [`oat pjm init`](tool-pack
|
|
|
76
86
|
Use the `oat decision` group for file-per-record decisions under `.oat/repo/reference/decisions/`. Each decision is its own file with a deterministic `DR-YYMMDD-slug` ID (the slug is capped at 30 characters at the last whole-word boundary, with trailing stop-words trimmed), and the human-facing index is a committed generated view.
|
|
77
87
|
|
|
78
88
|
- `oat decision init` - scaffold `.oat/repo/reference/decisions/` and the managed decision index
|
|
79
|
-
- `oat decision new <title>` - create a new decision record; supports `--status`, `--context`, and `--created-at`
|
|
89
|
+
- `oat decision new <title>` - create a new decision record; supports `--status`, `--context`, `--decision`, `--consequences`, and `--created-at`
|
|
80
90
|
- `oat decision regenerate-index` - rebuild the managed decision index table from record frontmatter
|
|
81
91
|
- `oat decision migrate` - convert a legacy single `decision-record.md` into file-per-record decisions, preserving each old `ADR-NNN`/`DR-NNN` ID as `legacy_id`; applies by default, so pass `--dry-run` to preview the legacy-to-new mappings without writing, and `--delete-legacy` to remove the source file after a verified migration (unlike `oat pjm migrate`, which defaults to dry-run)
|
|
82
92
|
|
|
93
|
+
Pass `--context`, `--decision`, and `--consequences` together when creating a resolved decision so every substantive template section is complete in the same atomic creation step. Callers that omit them retain the template's placeholder content for later editing.
|
|
94
|
+
|
|
83
95
|
The decision index uses managed marker pairs and is deterministic, so an index merge conflict can be resolved by re-running `oat decision regenerate-index` and staging the result. Decision records replace the legacy single `decision-record.md`; repos still on the old layout migrate with `oat decision migrate` (or the broader `oat pjm migrate`).
|
|
84
96
|
|
|
85
97
|
## `oat local ...`
|
|
@@ -239,4 +251,6 @@ For the full state model, repair semantics, and examples, see [Instruction Sync]
|
|
|
239
251
|
- `oat internal validate-oat-skills` - validate `oat-*` skill contracts and metadata
|
|
240
252
|
- `oat doctor` - run environment and setup diagnostics, including installed-vs-bundled skill version checks
|
|
241
253
|
|
|
242
|
-
`oat doctor` is the quickest way to confirm that your runtime, directory structure, and installed OAT assets are healthy before deeper debugging.
|
|
254
|
+
`oat doctor` is the quickest way to confirm that your runtime, directory structure, and installed OAT assets are healthy before deeper debugging. At project scope it also scans bounded repository script and documentation surfaces for known-stale CLI grammar, such as `oat --scope all sync`, and reports file/line evidence plus the current `oat sync --scope all` form. Generated provider views, OAT lifecycle artifacts, archived content, dependencies, build output, and nested worktrees are excluded.
|
|
255
|
+
|
|
256
|
+
The `/oat-doctor` skill (installed via the core pack) provides richer diagnostics with check and summary modes, including config explanations sourced from bundled documentation.
|
|
@@ -171,6 +171,7 @@ Purpose:
|
|
|
171
171
|
Key behavior:
|
|
172
172
|
|
|
173
173
|
- Accepts a tool name, `--pack <pack>`, or `--all` (mutually exclusive)
|
|
174
|
+
- With no target, exits without mutation and suggests the explicit bulk command `oat tools update --all`; invalid packs and conflicting targets keep their own targeted diagnostics
|
|
174
175
|
- Compares installed versions against bundled versions and copies updated assets
|
|
175
176
|
- For `--pack <pack>` and `--all`, an already-installed pack is reconciled to include newly added bundled skills or agents in that same scope
|
|
176
177
|
- Pack-targeted updates intentionally rewrite bundled template and script companions in place, even when the pack's installed skills are already current
|
|
@@ -451,7 +451,9 @@ By default the dispatcher:
|
|
|
451
451
|
5. Applies `--avoid same-family`.
|
|
452
452
|
6. Checks candidate availability in descending priority order, with target id as
|
|
453
453
|
the tie-breaker.
|
|
454
|
-
7. Runs the chosen `baseCommand` with the selected model and prompt appended.
|
|
454
|
+
7. Runs the chosen `baseCommand` with the selected model and prompt appended. The
|
|
455
|
+
prompt is carried in argv, stdin is closed, and stdout/stderr remain captured
|
|
456
|
+
for diagnostics and liveness tracking.
|
|
455
457
|
8. Exits with the child process status.
|
|
456
458
|
|
|
457
459
|
Use `--target <id>` to pin one target and skip detection/avoidance:
|
|
@@ -96,6 +96,24 @@ not the steady-state path.
|
|
|
96
96
|
- Make verification explicit in commit-adjacent notes or review artifacts.
|
|
97
97
|
- If docs behavior changes, update the docs surface in the same change window.
|
|
98
98
|
|
|
99
|
+
### Breaking CLI grammar changes
|
|
100
|
+
|
|
101
|
+
When a command, option name, or option placement changes, make the migration visible to both reviewers and release-note readers:
|
|
102
|
+
|
|
103
|
+
- Use a `BREAKING:` PR title or prominent callout so generated release notes retain the warning.
|
|
104
|
+
- Include the old and new copy-pasteable commands.
|
|
105
|
+
- State the migration action for scripts, docs, and automation that use the old grammar.
|
|
106
|
+
|
|
107
|
+
For example:
|
|
108
|
+
|
|
109
|
+
**Breaking change title/callout:** `BREAKING: move scope after the sync command`
|
|
110
|
+
|
|
111
|
+
**Before:** `oat --scope all sync` <!-- oat-doctor: allow-stale-invocation -->
|
|
112
|
+
|
|
113
|
+
**After:** `oat sync --scope all`
|
|
114
|
+
|
|
115
|
+
**Migration action:** Update repository scripts and documentation, then run `oat doctor --scope project` to find known-stale invocations.
|
|
116
|
+
|
|
99
117
|
## Related Guides
|
|
100
118
|
|
|
101
119
|
- [Contributing Docs](documentation.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-agent-instructions-analyze
|
|
3
|
-
version: 1.11.
|
|
3
|
+
version: 1.11.1
|
|
4
4
|
description: Run when you need to evaluate agent instruction file coverage, quality, and drift. Produces a severity-rated analysis artifact. Run before oat-agent-instructions-apply to identify what needs improvement.
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
@@ -405,7 +405,8 @@ PACKS_DIR="${BUNDLE_DIR}/packs"
|
|
|
405
405
|
mkdir -p "$PACKS_DIR"
|
|
406
406
|
```
|
|
407
407
|
|
|
408
|
-
Fill in all template sections with findings from Steps 2
|
|
408
|
+
Fill in all template sections with findings from Steps 2–7, including Step
|
|
409
|
+
3.5's existing-rule validation.
|
|
409
410
|
|
|
410
411
|
Write the human-readable markdown artifact to `$ARTIFACT_PATH`.
|
|
411
412
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-pjm-add-backlog-item
|
|
3
|
-
version: 1.3.
|
|
3
|
+
version: 1.3.1
|
|
4
4
|
description: Use when the user requests or confirms adding a new repo backlog item — e.g. "add a backlog item for X", "capture that as backlog", "track that follow-up", "file a backlog ticket", or confirms a previously offered backlog capture. Do NOT auto-invoke when a follow-up is mentioned. Creates the item file in the file-per-item backlog structure, regenerates the index, and prompts for curated overview updates.
|
|
5
5
|
disable-model-invocation: false
|
|
6
6
|
user-invocable: true
|
|
@@ -29,8 +29,8 @@ When executing this skill, provide lightweight progress feedback so the user can
|
|
|
29
29
|
|
|
30
30
|
- Before multi-step work, print short step indicators, e.g.:
|
|
31
31
|
- `[1/4] Resolving item details…`
|
|
32
|
-
- `[2/4]
|
|
33
|
-
- `[3/4]
|
|
32
|
+
- `[2/4] Creating the item + managed index atomically…`
|
|
33
|
+
- `[3/4] Enriching acceptance criteria…`
|
|
34
34
|
- `[4/4] Updating curated overview guidance…`
|
|
35
35
|
|
|
36
36
|
## Process
|
|
@@ -47,85 +47,30 @@ Collect the item details from the user or surrounding context:
|
|
|
47
47
|
If the title is missing, ask the user.
|
|
48
48
|
If the description is missing, ask for 1-3 sentences of context.
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
Propose an initial scope estimate (`XS`, `S`, `M`, `L`, `XL`, or `XXL`) from the described work, then ask the user to confirm or adjust it before creation.
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
### Step 2: Create the Backlog Item Atomically
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
oat backlog init
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
This command is idempotent. Use it even in existing repos so the canonical backlog scaffold and exact managed index markers are present before `oat backlog regenerate-index` runs.
|
|
59
|
-
|
|
60
|
-
Do not hand-create the managed marker block in `backlog/index.md`. The scaffold writes the exact markers required by the CLI:
|
|
61
|
-
|
|
62
|
-
```md
|
|
63
|
-
<!-- OAT BACKLOG-INDEX -->
|
|
64
|
-
<!-- END OAT BACKLOG-INDEX -->
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### Step 3: Generate ID
|
|
68
|
-
|
|
69
|
-
Run:
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
oat backlog generate-id "{title}"
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
The CLI returns a deterministic `BL-YYMMDD-slug` value derived from the creation date and the title. It performs no scan, hash, counter, or random allocation.
|
|
76
|
-
|
|
77
|
-
If the command reports a same-day same-slug filename collision against an existing `items/<id>.md` or `archived/<id>.md`, do not overwrite the existing record. Disambiguate by using a more specific title and re-running `oat backlog generate-id`.
|
|
78
|
-
|
|
79
|
-
### Step 4: Prepare Output Path
|
|
80
|
-
|
|
81
|
-
Set the output path using the returned ID so the filename stem equals the ID:
|
|
54
|
+
Run the single creation command with the confirmed values:
|
|
82
55
|
|
|
83
56
|
```bash
|
|
84
|
-
|
|
57
|
+
oat backlog new "{title}" --priority "<priority>" --scope "<scope>" --scope-estimate "<confirmed-scope-estimate>" --labels "<comma-delimited-labels>" --description "<description>"
|
|
85
58
|
```
|
|
86
59
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
1. Use `.oat/templates/backlog-item.md` as the source template.
|
|
90
|
-
2. Fill:
|
|
91
|
-
- `id`
|
|
92
|
-
- `title`
|
|
93
|
-
- `created`
|
|
94
|
-
- `updated`
|
|
95
|
-
- `status` (default `open`)
|
|
96
|
-
- `priority` (default `medium` unless the user says otherwise)
|
|
97
|
-
- `scope` (default `task` unless the user says otherwise)
|
|
98
|
-
- `labels`
|
|
99
|
-
- `assignee`
|
|
100
|
-
- `associated_issues`
|
|
101
|
-
- `external_plans` (initialize to `[]`; `oat-repo-improve` owns later reverse-link additions)
|
|
102
|
-
3. Keep `external_plans` as a YAML string array of repo-relative paths under `.oat/repo/reference/external-plans/`. Do not pre-populate it from discussion or anticipated work.
|
|
103
|
-
4. The agent should propose an initial `scope_estimate` based on the described work, then ask the user to confirm or adjust it.
|
|
104
|
-
5. Write the item body with:
|
|
105
|
-
- `## Description`
|
|
106
|
-
- `## Acceptance Criteria`
|
|
107
|
-
|
|
108
|
-
### Step 6: Write the Backlog Item
|
|
109
|
-
|
|
110
|
-
Write the completed file to the path resolved in Step 4:
|
|
60
|
+
The command validates all inputs, initializes the scaffold when needed, generates and collision-checks the `BL-YYMMDD-slug` ID, renders the canonical template, writes the item, and regenerates the managed index. If it reports a collision, do not overwrite the existing active or archived record; use a more specific title and rerun the same command.
|
|
111
61
|
|
|
112
|
-
|
|
113
|
-
.oat/repo/pjm/backlog/items/{id}.md
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
Use the template field order from `.oat/templates/backlog-item.md`.
|
|
62
|
+
Use the item path and ID reported by the command. Do not hand-author frontmatter or edit the managed index block. The command initializes `external_plans: []`; `oat-repo-improve` owns later reverse-link additions.
|
|
117
63
|
|
|
118
|
-
### Step
|
|
64
|
+
### Step 3: Enrich Acceptance Criteria
|
|
119
65
|
|
|
120
|
-
|
|
66
|
+
Read the created item and replace only the placeholder bullets under `## Acceptance Criteria` with the acceptance criteria confirmed in Step 1. Preserve the command-generated frontmatter and description. This post-create enrichment is safe because Acceptance Criteria are not index-visible fields.
|
|
121
67
|
|
|
122
|
-
|
|
123
|
-
oat backlog regenerate-index
|
|
124
|
-
```
|
|
68
|
+
The item must retain both required body sections:
|
|
125
69
|
|
|
126
|
-
|
|
70
|
+
- `## Description`
|
|
71
|
+
- `## Acceptance Criteria`
|
|
127
72
|
|
|
128
|
-
### Step
|
|
73
|
+
### Step 4: Update Curated Overview
|
|
129
74
|
|
|
130
75
|
Read `.oat/repo/pjm/backlog/index.md` and update the `## Curated Overview` section with a brief human-written note when helpful, for example:
|
|
131
76
|
|
|
@@ -135,7 +80,7 @@ Read `.oat/repo/pjm/backlog/index.md` and update the `## Curated Overview` secti
|
|
|
135
80
|
|
|
136
81
|
Do not edit inside the managed marker section.
|
|
137
82
|
|
|
138
|
-
### Step
|
|
83
|
+
### Step 5: Summarize to the User
|
|
139
84
|
|
|
140
85
|
Report:
|
|
141
86
|
|
|
@@ -151,5 +96,5 @@ Report:
|
|
|
151
96
|
- Item includes populated frontmatter and both required body sections
|
|
152
97
|
- Item initializes `external_plans: []` for future reverse links
|
|
153
98
|
- `scope_estimate` was proposed and confirmed
|
|
154
|
-
- `oat backlog
|
|
99
|
+
- `oat backlog new` created the item and regenerated the managed index successfully
|
|
155
100
|
- `.oat/repo/pjm/backlog/index.md` remains valid, with managed section untouched except by regeneration
|
|
@@ -218,12 +218,12 @@ remains immutable baseline evidence for the original p01-t01 verification.
|
|
|
218
218
|
| Skill root / file | Stable prompt-site mappings |
|
|
219
219
|
| -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
220
220
|
| `oat-project-new/SKILL.md` | `f7ca8635452f -> NG`; `b137f73db20c -> NEW-01`; `45b699c1c0b5 -> NEW-01`; `ba6d120791c1 -> NEW-01`; `33ce6a6c30aa -> NEW-02`; `0f5a90f34f63 -> NG`; `d0ea3a91261d -> NG` |
|
|
221
|
-
| `oat-project-quick-start/SKILL.md` | `f7ca8635452f -> NG`; `c493a38b89f2 -> QS-04`; `655d61df0a8f -> NG`; `b137f73db20c -> QS-01`; `45b699c1c0b5 -> QS-01`; `ba6d120791c1 -> QS-01`; `1a5ee85164ff -> QS-02`; `af8e2bea90d7 -> QS-04`; `a823cf5aeaec -> QS-04`; `7753dc323083 -> QS-04`; `1f557da5e03c -> QS-04`; `0960c3eb1564 -> NG`; `c24787334ade -> QS-05`; `021ba03c82c5 -> QS-05`; `5d1a9d1b661d -> QS-05`; `318f304ee3b3 -> QS-05`; `cc700d4d2cab -> QS-05`; `7ef6aa642400 -> QS-05`; `4d389b234556 -> QS-05`; `84c506dac106 -> QS-05`; `caf7622a2e02 -> QS-05`; `8917190b2e98 -> QS-06`; `5a028d846aa5 -> QS-06`; `b1d92192b8ca -> QS-06`; `bdbb18955cc4 -> QS-06`; `6d159a2e8f8e -> QS-06`; `61a9849f4dfc -> QS-06`; `31cb92052ea6 -> QS-06`; `39e3fe23dd85 -> QS-07`; `2cb069a2590b -> NG`; `fd0aff270853 -> NG`; `a114b27f8b4b -> NG`; `77dc8e1b728a -> QS-08`; `d3e3fba65b96 -> QS-09`; `71c2a0ba99bf -> QS-09`; `f47f9f9c0d03 -> QS-09`; `224a4b43fb29 -> QS-10`; `744f130d4116 -> QS-12`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> QS-12`; `857e91aa3095 -> NG`
|
|
221
|
+
| `oat-project-quick-start/SKILL.md` | `f7ca8635452f -> NG`; `c493a38b89f2 -> QS-04`; `655d61df0a8f -> NG`; `b137f73db20c -> QS-01`; `45b699c1c0b5 -> QS-01`; `ba6d120791c1 -> QS-01`; `1a5ee85164ff -> QS-02`; `af8e2bea90d7 -> QS-04`; `a823cf5aeaec -> QS-04`; `7753dc323083 -> QS-04`; `1f557da5e03c -> QS-04`; `0960c3eb1564 -> NG`; `c24787334ade -> QS-05`; `021ba03c82c5 -> QS-05`; `5d1a9d1b661d -> QS-05`; `318f304ee3b3 -> QS-05`; `cc700d4d2cab -> QS-05`; `7ef6aa642400 -> QS-05`; `4d389b234556 -> QS-05`; `84c506dac106 -> QS-05`; `caf7622a2e02 -> QS-05`; `8917190b2e98 -> QS-06`; `5a028d846aa5 -> QS-06`; `b1d92192b8ca -> QS-06`; `bdbb18955cc4 -> QS-06`; `6d159a2e8f8e -> QS-06`; `61a9849f4dfc -> QS-06`; `31cb92052ea6 -> QS-06`; `39e3fe23dd85 -> QS-07`; `2cb069a2590b -> NG`; `fd0aff270853 -> NG`; `a114b27f8b4b -> NG`; `77dc8e1b728a -> QS-08`; `d3e3fba65b96 -> QS-09`; `71c2a0ba99bf -> QS-09`; `f47f9f9c0d03 -> QS-09`; `224a4b43fb29 -> QS-10`; `744f130d4116 -> QS-12`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> QS-12`; `857e91aa3095 -> NG`; `b4af2220eb91 -> QS-12` |
|
|
222
222
|
| `oat-project-quick-start/references/docs/autonomy-contract.md` | `* -> NG` |
|
|
223
|
-
| `oat-project-discover/SKILL.md` | `8fe35bbfbcd6 -> NG`; `6acc57686847 -> NG`; `4df56b83b98e -> NG`; `660fcdb9dd0d -> NG`; `655d61df0a8f -> NG`; `302f5a4e2f7e -> DISC-03`; `8ee1861bb37c -> DISC-03`; `5c8d5f04f6e2 -> DISC-05`; `73964bb042ab -> DISC-05`; `82cc79370b80 -> DISC-05`; `ff09e8f7774f -> DISC-06`; `323e71dca05d -> DISC-06`; `012bab5b478e -> DISC-06`; `523764981692 -> DISC-06`; `7eaa40e078b9 -> DISC-07`; `b57408be1e7b -> DISC-07`; `4683ea4a7d2f -> DISC-07`; `
|
|
224
|
-
| `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `5eb3949f32e1 -> NG`; `8bdedbff2084 -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> DES-01`; `2fd9e4306093 -> NG`; `30aaa490f54f -> NG`; `5d39260a7350 -> DES-03`; `925238b3a9b8 -> DES-03`; `f44832c14f8f -> DES-03`; `7f6ed9174a80 -> DES-03`; `ea8a45cff484 -> DES-03`; `ae06e7f3590d -> DES-03`; `ad9715bfa9b5 -> DES-03`; `235f4eba81d9 -> DES-03`; `86d15c022ff2 -> DES-03`; `c08ee2c84186 -> DES-03`; `bd3ee332d171 -> DES-03`; `ec88b585a24d -> DES-03`; `a9595a6486f1 -> DES-04`; `accb06cd6f3c -> DES-04`; `806001c2c365 -> DES-04`; `696587b33f1e -> DES-04`; `8678cdb975d0 -> NG`; `8ad2a4dc63d2 -> DES-05`; `33cc7540d89e -> DES-05`; `51a2b698ba14 -> DES-05`; `81085592cc91 -> DES-05`; `74b952cc1121 -> DES-05`; `da7551391a41 -> DES-05`; `02c93ec05a4a -> DES-06`; `6864967fd8a4 -> DES-06`; `84e9be719156 -> DES-06`; `7ed89c44264b -> DES-06`; `dc7ba56c1cd4 -> DES-06`; `57ccefb935bf -> DES-06`; `9d27238332b2 -> NG`; `a0c758ab26aa -> NG`; `0e17c1a2de0b -> DES-07`; `e9ea8625567c -> DES-07`; `908e710e7304 -> DES-07`; `38a0adf2dcd6 -> DES-07`; `16c2036990df -> DES-07`; `b23bbe0c4282 -> DES-07`; `71972778f6b8 -> DES-07`; `7f88caab1f38 -> DES-07`; `7eb6f3a2d666 -> DES-07`; `e7a364820674 -> DES-07`; `241de26a0b0b -> DES-07`; `9d7a898331a3 -> DES-07`; `686152516d78 -> DES-07`; `
|
|
223
|
+
| `oat-project-discover/SKILL.md` | `8fe35bbfbcd6 -> NG`; `6acc57686847 -> NG`; `4df56b83b98e -> NG`; `660fcdb9dd0d -> NG`; `655d61df0a8f -> NG`; `302f5a4e2f7e -> DISC-03`; `8ee1861bb37c -> DISC-03`; `5c8d5f04f6e2 -> DISC-05`; `73964bb042ab -> DISC-05`; `82cc79370b80 -> DISC-05`; `ff09e8f7774f -> DISC-06`; `323e71dca05d -> DISC-06`; `012bab5b478e -> DISC-06`; `523764981692 -> DISC-06`; `7eaa40e078b9 -> DISC-07`; `b57408be1e7b -> DISC-07`; `4683ea4a7d2f -> DISC-07`; `04454a79d998 -> DISC-08`; `54444ee79fc8 -> DISC-08`; `dd3b5d3d6424 -> DISC-08`; `f64efa435cb2 -> DISC-08`; `1f802b9bc5ad -> DISC-08`; `3fad0405b2bc -> NG`; `2eeba46b7d76 -> DISC-08` |
|
|
224
|
+
| `oat-project-design/SKILL.md` | `d942bb5a75dc -> NG`; `5eb3949f32e1 -> NG`; `8bdedbff2084 -> NG`; `655d61df0a8f -> NG`; `cf317c17c586 -> DES-01`; `2fd9e4306093 -> NG`; `30aaa490f54f -> NG`; `5d39260a7350 -> DES-03`; `925238b3a9b8 -> DES-03`; `f44832c14f8f -> DES-03`; `7f6ed9174a80 -> DES-03`; `ea8a45cff484 -> DES-03`; `ae06e7f3590d -> DES-03`; `ad9715bfa9b5 -> DES-03`; `235f4eba81d9 -> DES-03`; `86d15c022ff2 -> DES-03`; `c08ee2c84186 -> DES-03`; `bd3ee332d171 -> DES-03`; `ec88b585a24d -> DES-03`; `a9595a6486f1 -> DES-04`; `accb06cd6f3c -> DES-04`; `806001c2c365 -> DES-04`; `696587b33f1e -> DES-04`; `8678cdb975d0 -> NG`; `8ad2a4dc63d2 -> DES-05`; `33cc7540d89e -> DES-05`; `51a2b698ba14 -> DES-05`; `81085592cc91 -> DES-05`; `74b952cc1121 -> DES-05`; `da7551391a41 -> DES-05`; `02c93ec05a4a -> DES-06`; `6864967fd8a4 -> DES-06`; `84e9be719156 -> DES-06`; `7ed89c44264b -> DES-06`; `dc7ba56c1cd4 -> DES-06`; `57ccefb935bf -> DES-06`; `9d27238332b2 -> NG`; `a0c758ab26aa -> NG`; `0e17c1a2de0b -> DES-07`; `e9ea8625567c -> DES-07`; `908e710e7304 -> DES-07`; `38a0adf2dcd6 -> DES-07`; `16c2036990df -> DES-07`; `b23bbe0c4282 -> DES-07`; `71972778f6b8 -> DES-07`; `7f88caab1f38 -> DES-07`; `7eb6f3a2d666 -> DES-07`; `e7a364820674 -> DES-07`; `241de26a0b0b -> DES-07`; `9d7a898331a3 -> DES-07`; `686152516d78 -> DES-07`; `bd3ad56d6265 -> DES-08`; `a19d9c6d7b42 -> DES-08`; `3af5412588ba -> DES-08`; `a0f1c66507d0 -> DES-08`; `a97364c2ca8b -> DES-08`; `4725e333dea4 -> DES-07`; `595d3a64c0f4 -> DES-07`; `57923a130802 -> DES-07`; `7d8fdfb4ca6f -> NG`; `033fb711de49 -> NG`; `d30bb6464138 -> DES-08` |
|
|
225
225
|
| `oat-project-design/references/selective-review-pass.md` | `d4956192b82e -> DES-06`; `7d6e1f926ecb -> DES-06`; `04f918a5fcac -> DES-07` |
|
|
226
|
-
| `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `
|
|
226
|
+
| `oat-project-plan/SKILL.md` | `5eb3949f32e1 -> NG`; `64a08153bb9e -> NG`; `655d61df0a8f -> NG`; `56b37486f09d -> PLAN-01`; `cf317c17c586 -> PLAN-02`; `781643b0f2c3 -> NG`; `01fd7cca8253 -> PLAN-04`; `7bc7fa3f2cbb -> NG`; `da28ce0a5f2e -> NG`; `e334f94c4d35 -> NG`; `1fa55762c038 -> NG`; `c0935b5484a2 -> NG`; `6008163054f8 -> PLAN-05`; `571271f4d71b -> PLAN-06`; `746b760289e4 -> PLAN-06`; `de195590ff83 -> NG`; `49640510829a -> PLAN-07`; `4bef7afa7a71 -> PLAN-08`; `e5886632533e -> PLAN-08`; `4cfe1df14372 -> NG`; `d116c97a500c -> PLAN-10`; `aa62facff547 -> PLAN-10`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> PLAN-11`; `1734b2c85c5d -> NG`; `b4af2220eb91 -> PLAN-11` |
|
|
227
227
|
| `oat-project-import-plan/SKILL.md` | `f7ca8635452f -> NG`; `c2e5fa410069 -> NG`; `655d61df0a8f -> NG`; `b137f73db20c -> IMPORT-01`; `45b699c1c0b5 -> IMPORT-01`; `ba6d120791c1 -> IMPORT-01`; `070ebc5259af -> IMPORT-03`; `c11552696e2e -> IMPORT-03`; `cfe661966baf -> IMPORT-04`; `baa91c0a0bf8 -> NG`; `e364e84b2702 -> NG`; `39031985a945 -> IMPORT-06`; `f106aa29a217 -> IMPORT-07`; `65038450aee3 -> IMPORT-07`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPORT-09` |
|
|
228
228
|
| `oat-project-implement/SKILL.md` | `c6732295bc8c -> NG`; `ffb3af0ba8ef -> NG`; `e0355c7a05e9 -> IMPLEMENT-11+IMPLEMENT-13+IMPLEMENT-16`; `6296f41ae11c -> NG`; `a167d03559fa -> NG`; `cf317c17c586 -> IMPLEMENT-01`; `8ce8a09feca4 -> NG` |
|
|
229
229
|
| `oat-project-implement/references/completion-and-closeout.md` | `105600fbd045 -> IMPLEMENT-11`; `3e6055aede6c -> IMPLEMENT-11`; `0705f7533039 -> IMPLEMENT-11`; `0c39746f3cb5 -> IMPLEMENT-11`; `14d89fe39c8c -> IMPLEMENT-11`; `378a75543a72 -> IMPLEMENT-11`; `c7b25627e674 -> IMPLEMENT-11`; `51ef9a453323 -> IMPLEMENT-11`; `c67145e3fb00 -> IMPLEMENT-11`; `64fbeac64811 -> IMPLEMENT-11`; `19b13c17bddb -> NG`; `f7dab9c1f96c -> IMPLEMENT-12`; `c69c17a069a8 -> IMPLEMENT-14`; `a97fa5634a68 -> IMPLEMENT-14`; `3af58881811c -> IMPLEMENT-14`; `4203e1f49d0f -> IMPLEMENT-14`; `c3bd2458a3d3 -> IMPLEMENT-13`; `95b5eafc070d -> IMPLEMENT-13`; `25ecbe9c998b -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f6f24fd71da4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `f18283bc1cf9 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `2c1ffc4a82dd -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `3454a07aa843 -> IMPLEMENT-16`; `0d86e2098cfb -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d5fe597d266f -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `55a152e944c1 -> IMPLEMENT-16`; `effac7cbd573 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d2a34d8b148 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `d27462aaed26 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `9d52ecb17268 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `5b91aabe3757 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `fd0ad919f702 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `63bf28df1474 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a4ed471dbc78 -> IMPLEMENT-16`; `6b7a64cec6e5 -> IMPLEMENT-16`; `0a4fdba0ebc0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `a5033c2aada5 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `e77609eddba0 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `351156e8dde4 -> IMPLEMENT-13+IMPLEMENT-14+IMPLEMENT-15+IMPLEMENT-16`; `51d45bd2bbd1 -> IMPLEMENT-16`; `f7796ffcc804 -> IMPLEMENT-16`; `990d730cb494 -> IMPLEMENT-16`; `6ed28bb7d384 -> IMPLEMENT-16`; `8b7d4b5bcf1b -> IMPLEMENT-16`; `88aad500e6e9 -> IMPLEMENT-16`; `877e3e3f9eda -> IMPLEMENT-16`; `fc03c97f834e -> IMPLEMENT-16`; `12939a3da5e0 -> IMPLEMENT-16`; `bdb418335a88 -> IMPLEMENT-16`; `fba97e596ebd -> IMPLEMENT-16`; `3d0b5e2f14f0 -> IMPLEMENT-17`; `f56a9ce88461 -> IMPLEMENT-17`; `9ba67b50d0ba -> IMPLEMENT-17`; `39ff911760af -> IMPLEMENT-17`; `5b560b5bd6e3 -> IMPLEMENT-17`; `fa21df5e5e01 -> IMPLEMENT-17`; `0fed77bec55e -> IMPLEMENT-17`; `6d81cfb0483f -> IMPLEMENT-17`; `bee4c4aa34c6 -> NG`; `3f0b53056edd -> IMPLEMENT-18` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: oat-project-design
|
|
3
|
-
version: 2.
|
|
3
|
+
version: 2.3.0
|
|
4
4
|
description: Use when discovery is complete and implementation-ready decisions are needed. Runs a collaborative, selective collaborative, or draft-and-review design flow, confirms requirements and produces both `spec.md` and `design.md`, and commits artifacts before the user-review gate.
|
|
5
5
|
disable-model-invocation: true
|
|
6
6
|
user-invocable: true
|
|
@@ -619,79 +619,10 @@ Wait for user response:
|
|
|
619
619
|
stop and report: "Design draft committed; awaiting HiLL approval."
|
|
620
620
|
```
|
|
621
621
|
|
|
622
|
-
### Step 7:
|
|
622
|
+
### Step 7: Gate Execution
|
|
623
623
|
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
**Step 7a: Mark design.md complete**
|
|
627
|
-
|
|
628
|
-
Update `design.md` frontmatter:
|
|
629
|
-
|
|
630
|
-
```yaml
|
|
631
|
-
---
|
|
632
|
-
oat_status: complete
|
|
633
|
-
oat_ready_for: oat-project-plan
|
|
634
|
-
oat_blockers: []
|
|
635
|
-
oat_last_updated: { today }
|
|
636
|
-
---
|
|
637
|
-
```
|
|
638
|
-
|
|
639
|
-
**Step 7b: Update project state.md**
|
|
640
|
-
|
|
641
|
-
Update `"$PROJECT_PATH/state.md"`:
|
|
642
|
-
|
|
643
|
-
**Frontmatter updates:**
|
|
644
|
-
|
|
645
|
-
- `oat_current_task: null`
|
|
646
|
-
- `oat_last_commit: {commit_sha_from_step_6a_or_revision}`
|
|
647
|
-
- `oat_blockers: []`
|
|
648
|
-
- `oat_phase: design`
|
|
649
|
-
- `oat_phase_status: complete`
|
|
650
|
-
- `oat_project_state_updated: "{ISO 8601 UTC timestamp}"`
|
|
651
|
-
- **If** `"design"` is in `oat_hill_checkpoints`: append `"design"` to `oat_hill_completed` array.
|
|
652
|
-
- **If** `"spec"` is in `oat_hill_checkpoints` and not previously completed via the standalone spec skill: append `"spec"` too (folded HiLL — a single approval covers both).
|
|
653
|
-
|
|
654
|
-
**Note:** Only append to `oat_hill_completed` when the phase is configured as a HiLL gate.
|
|
655
|
-
|
|
656
|
-
Update content:
|
|
657
|
-
|
|
658
|
-
```markdown
|
|
659
|
-
## Current Phase
|
|
660
|
-
|
|
661
|
-
Design - Ready for implementation planning
|
|
662
|
-
|
|
663
|
-
## Progress
|
|
664
|
-
|
|
665
|
-
- ✓ Discovery complete
|
|
666
|
-
- ✓ Specification complete (folded into design)
|
|
667
|
-
- ✓ Design complete
|
|
668
|
-
- ⧗ Awaiting implementation plan
|
|
669
|
-
```
|
|
670
|
-
|
|
671
|
-
**Step 7c: Commit the approval-side metadata**
|
|
672
|
-
|
|
673
|
-
```bash
|
|
674
|
-
git add "$PROJECT_PATH/design.md" "$PROJECT_PATH/state.md"
|
|
675
|
-
git diff --cached --quiet || git commit -m "chore(oat): mark design complete for {project-name}"
|
|
676
|
-
```
|
|
677
|
-
|
|
678
|
-
### Step 8: Output Summary
|
|
679
|
-
|
|
680
|
-
```
|
|
681
|
-
Design phase complete for {project-name}.
|
|
682
|
-
|
|
683
|
-
Architecture:
|
|
684
|
-
- {N} components defined
|
|
685
|
-
- {N} data models specified
|
|
686
|
-
- {N} API endpoints designed
|
|
687
|
-
|
|
688
|
-
Next: Create implementation plan with the oat-project-plan skill
|
|
689
|
-
```
|
|
690
|
-
|
|
691
|
-
### Gate Execution
|
|
692
|
-
|
|
693
|
-
Before reporting this skill as complete, run the configured gate as the final
|
|
694
|
-
step:
|
|
624
|
+
After artifact finalization and any configured HiLL approval, run the configured
|
|
625
|
+
gate as the last check before the completion boundary:
|
|
695
626
|
|
|
696
627
|
1. Resolve the gate for this skill:
|
|
697
628
|
|
|
@@ -699,8 +630,8 @@ step:
|
|
|
699
630
|
oat gate resolve <this-skill> --json
|
|
700
631
|
```
|
|
701
632
|
|
|
702
|
-
If the command returns JSON `null`, no gate is configured;
|
|
703
|
-
|
|
633
|
+
If the command returns JSON `null`, no gate is configured; proceed directly
|
|
634
|
+
to the completion steps in Step 8 below.
|
|
704
635
|
|
|
705
636
|
2. Export the resolved project path into the command shell:
|
|
706
637
|
|
|
@@ -766,6 +697,88 @@ setting; record the blocker and leave the project resumable. Important findings
|
|
|
766
697
|
follow the configured gate policy. When autonomy is inactive, the interactive
|
|
767
698
|
behavior above is unchanged.
|
|
768
699
|
|
|
700
|
+
A gate that ends in `block` after attempts are exhausted, or at an unresolved
|
|
701
|
+
`prompt` boundary, means the completion steps below MUST NOT run; the phase
|
|
702
|
+
stays `in_progress` and resumable.
|
|
703
|
+
|
|
704
|
+
### Step 8: Approval — Mark Design Complete and Update HiLL State
|
|
705
|
+
|
|
706
|
+
Reach this completion boundary only after the configured gate passes or resolves
|
|
707
|
+
according to its `onFailure` policy.
|
|
708
|
+
|
|
709
|
+
On approval (either explicit user approval when HiLL gate fired, or automatic when no HiLL gate is configured):
|
|
710
|
+
|
|
711
|
+
**Step 8a: Mark design.md complete**
|
|
712
|
+
|
|
713
|
+
Update `design.md` frontmatter:
|
|
714
|
+
|
|
715
|
+
```yaml
|
|
716
|
+
---
|
|
717
|
+
oat_status: complete
|
|
718
|
+
oat_ready_for: oat-project-plan
|
|
719
|
+
oat_blockers: []
|
|
720
|
+
oat_last_updated: { today }
|
|
721
|
+
---
|
|
722
|
+
```
|
|
723
|
+
|
|
724
|
+
**Step 8b: Update project state.md**
|
|
725
|
+
|
|
726
|
+
Update `"$PROJECT_PATH/state.md"`:
|
|
727
|
+
|
|
728
|
+
**Frontmatter updates:**
|
|
729
|
+
|
|
730
|
+
- `oat_current_task: null`
|
|
731
|
+
- `oat_last_commit: {commit_sha_from_step_6a_or_revision}`
|
|
732
|
+
- `oat_blockers: []`
|
|
733
|
+
- `oat_phase: design`
|
|
734
|
+
- `oat_phase_status: complete`
|
|
735
|
+
- `oat_project_state_updated: "{ISO 8601 UTC timestamp}"`
|
|
736
|
+
- **If** `"design"` is in `oat_hill_checkpoints`: append `"design"` to `oat_hill_completed` array.
|
|
737
|
+
- **If** `"spec"` is in `oat_hill_checkpoints` and not previously completed via the standalone spec skill: append `"spec"` too (folded HiLL — a single approval covers both).
|
|
738
|
+
|
|
739
|
+
**Note:** Only append to `oat_hill_completed` when the phase is configured as a HiLL gate.
|
|
740
|
+
|
|
741
|
+
Update content:
|
|
742
|
+
|
|
743
|
+
```markdown
|
|
744
|
+
## Current Phase
|
|
745
|
+
|
|
746
|
+
Design - Ready for implementation planning
|
|
747
|
+
|
|
748
|
+
## Progress
|
|
749
|
+
|
|
750
|
+
- ✓ Discovery complete
|
|
751
|
+
- ✓ Specification complete (folded into design)
|
|
752
|
+
- ✓ Design complete
|
|
753
|
+
- ⧗ Awaiting implementation plan
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
**Step 8c: Commit the approval-side metadata**
|
|
757
|
+
|
|
758
|
+
Reach this commit step only after the configured gate passes or resolves
|
|
759
|
+
according to its `onFailure` policy.
|
|
760
|
+
|
|
761
|
+
```bash
|
|
762
|
+
git add "$PROJECT_PATH/design.md" "$PROJECT_PATH/state.md"
|
|
763
|
+
git diff --cached --quiet || git commit -m "chore(oat): mark design complete for {project-name}"
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
### Step 9: Output Summary
|
|
767
|
+
|
|
768
|
+
Report completion only after the configured gate passes or resolves according to
|
|
769
|
+
its `onFailure` policy.
|
|
770
|
+
|
|
771
|
+
```
|
|
772
|
+
Design phase complete for {project-name}.
|
|
773
|
+
|
|
774
|
+
Architecture:
|
|
775
|
+
- {N} components defined
|
|
776
|
+
- {N} data models specified
|
|
777
|
+
- {N} API endpoints designed
|
|
778
|
+
|
|
779
|
+
Next: Create implementation plan with the oat-project-plan skill
|
|
780
|
+
```
|
|
781
|
+
|
|
769
782
|
## Success Criteria
|
|
770
783
|
|
|
771
784
|
- Architecture aligns with existing patterns (from architecture.md)
|