@open-agent-toolkit/cli 0.3.17 → 0.3.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/agents/oat-phase-implementer.md +81 -3
- package/assets/agents/oat-reviewer.md +15 -5
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/reference/cli-reference.md +8 -5
- package/assets/docs/reference/oat-directory-structure.md +1 -0
- package/assets/docs/reference/project-artifacts.md +17 -1
- package/assets/docs/reference/project-state-machine.md +19 -4
- package/assets/docs/skills/brainstorm.md +2 -1
- package/assets/docs/skills/index.md +1 -0
- package/assets/docs/workflows/advanced/autonomy.md +9 -1
- package/assets/docs/workflows/advanced/workflow-gates.md +11 -6
- package/assets/docs/workflows/approvals-and-automation.md +13 -8
- package/assets/docs/workflows/choose-workflow.md +16 -8
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +8 -3
- package/assets/docs/workflows/projects/closeout/pr-flow.md +2 -0
- package/assets/docs/workflows/projects/execution/execution-skills.md +14 -2
- package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +10 -1
- package/assets/docs/workflows/projects/execution/project-log.md +22 -0
- package/assets/docs/workflows/projects/lifecycle.md +73 -9
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
- package/assets/docs/workflows/projects/planning/planning-skills.md +11 -10
- package/assets/docs/workflows/projects/planning/starting-projects.md +92 -20
- package/assets/docs/workflows/projects/reviews/index.md +15 -2
- package/assets/docs/workflows/projects/reviews/review-flavors.md +5 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-brainstorm/SKILL.md +33 -9
- package/assets/skills/oat-brainstorm/references/destinations.md +9 -4
- package/assets/skills/oat-docs/SKILL.md +9 -4
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
- package/assets/skills/oat-project-autonomous/SKILL.md +14 -8
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +17 -2
- package/assets/skills/oat-project-brief/SKILL.md +592 -0
- package/assets/skills/oat-project-brief/references/brief-contract.md +294 -0
- package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +393 -0
- package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +84 -0
- package/assets/skills/oat-project-capture/SKILL.md +2 -2
- package/assets/skills/oat-project-complete/SKILL.md +7 -2
- package/assets/skills/oat-project-discover/SKILL.md +3 -2
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
- package/assets/skills/oat-project-document/SKILL.md +11 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +40 -0
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-implement/references/phase-execution.md +166 -1
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +97 -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 +17 -2
- package/assets/skills/oat-project-new/SKILL.md +5 -1
- package/assets/skills/oat-project-next/SKILL.md +31 -4
- package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-plan/SKILL.md +12 -2
- package/assets/skills/oat-project-plan-writing/SKILL.md +6 -4
- package/assets/skills/oat-project-pr-final/SKILL.md +15 -3
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-pr-progress/SKILL.md +31 -4
- package/assets/skills/oat-project-progress/SKILL.md +30 -8
- package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
- package/assets/skills/oat-project-quick-start/SKILL.md +60 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +17 -2
- package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +4 -0
- package/assets/skills/oat-project-reconcile/SKILL.md +65 -3
- package/assets/skills/oat-project-review-provide/SKILL.md +331 -12
- package/assets/skills/oat-project-review-receive/SKILL.md +86 -1
- package/assets/skills/oat-project-revise/SKILL.md +27 -4
- package/assets/skills/oat-project-summary/SKILL.md +95 -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/init/tools/shared/skill-script-references.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-script-references.js +8 -1
- package/dist/commands/project/log/append.d.ts.map +1 -1
- package/dist/commands/project/log/append.js +70 -10
- 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 +35 -7
- package/dist/commands/project/promote/promote.d.ts +32 -1
- package/dist/commands/project/promote/promote.d.ts.map +1 -1
- package/dist/commands/project/promote/promote.js +562 -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 +52 -18
- package/dist/commands/project/validate-plan/profiles.d.ts +54 -0
- package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
- package/dist/commands/project/validate-plan/profiles.js +269 -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/agents-md-lock.d.ts +3 -0
- package/dist/commands/shared/agents-md-lock.d.ts.map +1 -0
- package/dist/commands/shared/agents-md-lock.js +130 -0
- package/dist/commands/shared/agents-md.d.ts.map +1 -1
- package/dist/commands/shared/agents-md.js +26 -8
- 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 +1 -0
- package/dist/commands/state/generate.d.ts.map +1 -1
- package/dist/commands/state/generate.js +51 -2
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +3 -0
- package/package.json +2 -2
|
@@ -150,7 +150,7 @@ inputs select its destination and title.
|
|
|
150
150
|
**Prerequisites:** Needs an active OAT project: yes. If no project is active,
|
|
151
151
|
the skill asks for the project name and sets that project as active. The
|
|
152
152
|
project needs `plan.md`. Spec-driven mode also requires `spec.md` and `design.md`. Quick,
|
|
153
|
-
import, and
|
|
153
|
+
import, lite, and brief accept their mode-appropriate reduced artifacts. The latest
|
|
154
154
|
`final` code-review event in the plan's Reviews ledger should be `passed`.
|
|
155
155
|
Autonomous execution stops if it is not passed. Interactive execution warns
|
|
156
156
|
and asks before proceeding anyway.
|
|
@@ -378,7 +378,9 @@ path. The target needs `state.md` and at least `plan.md` or
|
|
|
378
378
|
`implementation.md`. Completed
|
|
379
379
|
implementation provides shipped evidence. If only a plan exists, the skill can
|
|
380
380
|
proceed but must identify recommendations as based on planned work rather than
|
|
381
|
-
verified implementation. Lite projects do not require discovery,
|
|
381
|
+
verified implementation. Lite and brief projects do not require discovery,
|
|
382
|
+
spec, or design; a brief's documentation sources are the Project Brief and the
|
|
383
|
+
per-phase journal.
|
|
382
384
|
|
|
383
385
|
**Example scenario:** Export filters shipped, but the user guide still describes
|
|
384
386
|
only unfiltered exports. Document verifies the actual endpoint and CLI behavior,
|
|
@@ -430,7 +432,10 @@ Summarize the delivered export filters, the date-format decision, and the audit-
|
|
|
430
432
|
completed task. Missing implementation tracking blocks summary generation.
|
|
431
433
|
With no completed tasks, the process warns that the summary will be minimal.
|
|
432
434
|
Lite uses its plan contract and implementation results without requiring
|
|
433
|
-
discovery, spec, or design artifacts.
|
|
435
|
+
discovery, spec, or design artifacts. Brief needs at least one accepted
|
|
436
|
+
phase-unit and draws on the brief's Goal, Outcomes, Approach, and Decisions
|
|
437
|
+
plus the journal; its staleness fingerprint changes when a phase is accepted,
|
|
438
|
+
not when execution records change.
|
|
434
439
|
|
|
435
440
|
**Example scenario:** The first export phase is delivered, and another engineer
|
|
436
441
|
will own the reporting phase next week. Summary records the shipped filter
|
|
@@ -18,11 +18,13 @@ Expected artifacts:
|
|
|
18
18
|
- Required (spec-driven mode): `spec.md`, `design.md`
|
|
19
19
|
- Optional (quick/import): `spec.md`, `design.md`
|
|
20
20
|
- Not expected (lite): `discovery.md`, `spec.md`, or `design.md`
|
|
21
|
+
- Not expected (brief): `discovery.md`, `spec.md`, or `design.md`; the Project Brief in `plan.md` and the per-phase journal in `implementation.md` are the sources
|
|
21
22
|
- Recommended (quick mode): `discovery.md`
|
|
22
23
|
- Recommended (import mode): `references/imported-plan.md`
|
|
23
24
|
- Recommended: `implementation.md` final summary
|
|
24
25
|
- Recommended: `summary.md` — pr-final treats it as the primary source for the PR Summary section and automatically refreshes it first when missing or stale
|
|
25
26
|
- Lite source row: `oat-project-pr-final` uses the plan's Summary, Decisions, and Validation Criteria plus the `implementation.md` Final Summary; it does not create `summary.md` unless lite closeout explicitly opts in
|
|
27
|
+
- Brief source row: `summary.md` is required as in quick; its sources are the brief's Goal, Outcomes, Approach, and Decisions, the journal's accepted phases and Outcomes audit, and the review rows. Progress PRs scope a phase or `pNN-pMM` run from the journal's `**Base:**`/`**Head:**` anchors rather than a commit-message search
|
|
26
28
|
- Required gate for final PR: review table final row should be `passed`
|
|
27
29
|
|
|
28
30
|
## Output
|
|
@@ -92,14 +92,26 @@ choosing `Leave Unresolved` stops the run. A non-interactive run stops with
|
|
|
92
92
|
needs your authorization, the skill asks once before any work; if you decline,
|
|
93
93
|
it runs the phases inline in the current session instead.
|
|
94
94
|
|
|
95
|
-
**Questions on the first run:** Except in a lite project, the first run lists
|
|
95
|
+
**Questions on the first run:** Except in a lite or brief project, the first run lists
|
|
96
96
|
the plan's phases and asks which checkpoint behavior you want: stop after
|
|
97
97
|
every phase (the default), after specific phases, or only after the final
|
|
98
98
|
phase. Setting `workflow.hillCheckpointDefault` to `every` or `final` answers
|
|
99
99
|
this in advance. It then asks whether to run an extra lifecycle review
|
|
100
100
|
automatically at each checkpoint, unless `workflow.autoReviewAtHillCheckpoints`
|
|
101
101
|
is set. Both answers are written to `plan.md` and are not asked again when you
|
|
102
|
-
resume. A lite project has no checkpoints and skips both questions.
|
|
102
|
+
resume. A lite project has no checkpoints and skips both questions. A brief
|
|
103
|
+
project skips them too unless its `oat_plan_hill_phases` lists phases
|
|
104
|
+
explicitly; for a brief, `[]` means no checkpoints.
|
|
105
|
+
|
|
106
|
+
**Brief projects:** Each `## Phase pNN:` block in the brief is one
|
|
107
|
+
phase-unit with Intent and Exit evidence instead of planned tasks. The root
|
|
108
|
+
records the phase's `**Base:**` in a phase-start commit before dispatch, the
|
|
109
|
+
committing owner opens `### Task pNN-tNN` execution records in
|
|
110
|
+
`implementation.md` as work happens and writes `**Head:**` when the phase's
|
|
111
|
+
work ends, a fresh reviewer reviews the anchored `Base..Head` range, and only
|
|
112
|
+
the root writes `**Status:** completed` once review dispositions and selected
|
|
113
|
+
gates settle. Progress and the next-phase decision count phase-units, never
|
|
114
|
+
records.
|
|
103
115
|
|
|
104
116
|
**What it does without asking:** After those questions, the run continues
|
|
105
117
|
until a checkpoint, a blocker or the end of the plan without asking again,
|
|
@@ -16,6 +16,10 @@ and updates project state.
|
|
|
16
16
|
in dependency order.
|
|
17
17
|
- **Task boundary:** each task still produces exactly one bounded, verified
|
|
18
18
|
commit.
|
|
19
|
+
- **Brief phase-units:** in a brief project each phase carries Intent and Exit
|
|
20
|
+
evidence instead of tasks; execution records are opened in the journal as
|
|
21
|
+
work happens, and the phase's `**Base:**`/`**Head:**` anchors scope its
|
|
22
|
+
review.
|
|
19
23
|
- **Prevention boundary:** formatting, declared task verification, and
|
|
20
24
|
applicable cheap checks run before the task commit.
|
|
21
25
|
- **Recovery boundary:** an eligible post-commit defect may produce a separate
|
|
@@ -514,6 +518,17 @@ and declare no parallel groups, so lite implementation is always sequential;
|
|
|
514
518
|
`oat project validate-plan` enforces both rules. Work that needs more than one
|
|
515
519
|
phase should promote to quick rather than declare a parallel group.
|
|
516
520
|
|
|
521
|
+
Brief plans may declare parallel groups of taskless phases once those phases
|
|
522
|
+
are concrete and pass the independence test (no shared files, state,
|
|
523
|
+
generated output, fixtures, or services, and no sequential dependency). A
|
|
524
|
+
group member's per-phase review runs before fan-in on
|
|
525
|
+
`EXPECTED_HEAD..<worktree head>`. At fan-in the root writes every member's
|
|
526
|
+
`**Base:**` as the group's fork commit and its `**Head:**` as the member's
|
|
527
|
+
integration head, which is normally a merge commit but may be the last
|
|
528
|
+
cherry-picked commit; review scope checks only the shared fork base and that
|
|
529
|
+
member heads advance in document order. The fan-in anchors govern the
|
|
530
|
+
`pNN-pMM` and `final` review scopes.
|
|
531
|
+
|
|
517
532
|
## Synced projects in worktrees
|
|
518
533
|
|
|
519
534
|
A tracked `.oat/projects/synced/<project>.json` record lets every repository
|
|
@@ -30,7 +30,7 @@ instead of `/`):
|
|
|
30
30
|
summary that `/oat-repo-knowledge-index` writes under
|
|
31
31
|
`.oat/repo/knowledge/`. If that folder has no Markdown file, progress tells
|
|
32
32
|
you to run `/oat-repo-knowledge-index` and stops without a project report,
|
|
33
|
-
whatever the project's mode; quick, lite and imported projects never
|
|
33
|
+
whatever the project's mode; quick, lite, brief and imported projects never
|
|
34
34
|
needed the index before, so this can be the first time you see it. Run
|
|
35
35
|
`/oat-repo-knowledge-index` once and then run progress again, or skip to
|
|
36
36
|
step 3: `/oat-project-next` itself does not check for the index (spec-driven
|
|
@@ -81,6 +81,15 @@ durable `## Reviews` disposition, and a substantive task; only then do they
|
|
|
81
81
|
recommend `oat-project-implement`. Recommendations for lite, spec-driven, and
|
|
82
82
|
import projects are unchanged, because the predicate is quick-workflow policy.
|
|
83
83
|
|
|
84
|
+
For a brief project, the router counts phase-units from the journal. While the
|
|
85
|
+
brief is not yet approved, it recommends `oat-project-brief`. After
|
|
86
|
+
implementation, while any phase is provisional or not yet accepted with
|
|
87
|
+
`**Status:** completed`, it recommends `oat-project-implement` ("Incomplete
|
|
88
|
+
phase-units remain in the active scope") before every later check. The
|
|
89
|
+
`.oat/state.md` dashboard does not read phase-units, so at the end of
|
|
90
|
+
implementation it prints a note that `oat project status` and
|
|
91
|
+
`oat-project-next` are the authority for brief projects.
|
|
92
|
+
|
|
84
93
|
## What travels
|
|
85
94
|
|
|
86
95
|
- The project ref carries the complete active artifact tree and its history.
|
|
@@ -71,6 +71,28 @@ oat project log append \
|
|
|
71
71
|
Structural entries require `--structural`, `--producer`, `--ref`, and `--body`.
|
|
72
72
|
Do not combine structural flags with judgment flags.
|
|
73
73
|
|
|
74
|
+
### Preview an append
|
|
75
|
+
|
|
76
|
+
Validate an entry against the current project state before appending it:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
oat project log append --dry-run \
|
|
80
|
+
--project .oat/projects/shared/example \
|
|
81
|
+
--type friction --scope project --area "gate review handoff" \
|
|
82
|
+
--body "The gate passed but the handoff was missing, so review receipt stopped."
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The preview reports whether it would append, create the log, recognize a replay,
|
|
86
|
+
or skip a disabled missing log. It writes no files, acquires no locks, and makes
|
|
87
|
+
no Git changes. `--dry-run --commit` also validates an existing recovery receipt
|
|
88
|
+
without committing or removing it. A would-create preview checks compatible
|
|
89
|
+
bundled assets and validates the template in memory; an existing log does not
|
|
90
|
+
need assets. Sealed logs and invalid entries retain normal append diagnostics.
|
|
91
|
+
|
|
92
|
+
This is advisory validation of current state. It reserves nothing and does not
|
|
93
|
+
guarantee later permissions, disk space, hook success, or the absence of other
|
|
94
|
+
writers. A normal append validates again under its required lock.
|
|
95
|
+
|
|
74
96
|
### Idempotent append and commit
|
|
75
97
|
|
|
76
98
|
Two optional flags let an interrupted append be replayed safely:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Lifecycle
|
|
3
|
-
description: 'End-to-end phase flow from discovery through completion: spec-driven, quick, lite, and import paths.'
|
|
3
|
+
description: 'End-to-end phase flow from discovery through completion: spec-driven, quick, lite, brief, and import paths.'
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Lifecycle
|
|
@@ -29,9 +29,9 @@ For a one-page view of where people approve and what runs automatically in each
|
|
|
29
29
|
|
|
30
30
|
## Quick Look
|
|
31
31
|
|
|
32
|
-
- What it does: explains the end-to-end lifecycle for tracked OAT projects, including alternate quick, lite, and import lanes.
|
|
32
|
+
- What it does: explains the end-to-end lifecycle for tracked OAT projects, including alternate quick, lite, brief, and import lanes.
|
|
33
33
|
- When to use it: when you need the actual project execution model, not just a high-level overview of workflow mode.
|
|
34
|
-
- Primary entry points: `oat-project-new`, `oat-project-quick-start`, `oat-project-lite`, `oat-project-import-plan`, `oat-project-implement`
|
|
34
|
+
- Primary entry points: `oat-project-new`, `oat-project-quick-start`, `oat-project-lite`, `oat-project-brief`, `oat-project-import-plan`, `oat-project-implement`
|
|
35
35
|
|
|
36
36
|
## Lifecycle Map
|
|
37
37
|
|
|
@@ -51,9 +51,9 @@ For a one-page view of where people approve and what runs automatically in each
|
|
|
51
51
|
DOC --> C["Complete"]
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
This map shows the spec-driven default. The quick, lite, import, and
|
|
55
|
-
lanes each skip part of it — see [Lane diagrams](#lane-diagrams) below.
|
|
56
|
-
particular
|
|
54
|
+
This map shows the spec-driven default. The quick, lite, brief, import, and
|
|
55
|
+
capture lanes each skip part of it — see [Lane diagrams](#lane-diagrams) below.
|
|
56
|
+
Lite and brief in particular have no discovery, spec, or design step at all.
|
|
57
57
|
|
|
58
58
|
## Post-implementation flow
|
|
59
59
|
|
|
@@ -337,6 +337,14 @@ See [Implementation Execution](execution/implementation-execution.md) for the fu
|
|
|
337
337
|
3. Pass the mandatory final review, then route directly to `oat-project-pr-final`
|
|
338
338
|
4. Optional `oat project promote <project-path> --to quick` when the work no longer fits one sitting
|
|
339
339
|
|
|
340
|
+
### Brief lane steps
|
|
341
|
+
|
|
342
|
+
1. `oat-project-brief` runs a design-aligned interview in readiness rounds, writes one Project Brief in `plan.md` (Goal, numbered Outcomes, Approach, Constraints and Out of Scope, Decisions, Known Unknowns, Delivery endpoint and authority, and `## Phase pNN:` blocks with Intent and Exit evidence), commits it, runs the independent artifact review and any configured `oat-project-brief` gate, and asks for one approval
|
|
343
|
+
2. Implement: `oat-project-implement` executes one phase-unit at a time (or a declared parallel group), opening `### Task pNN-tNN` execution records in `implementation.md` as work happens and recording each phase's `**Base:**` and `**Head:**` anchors
|
|
344
|
+
3. A fresh independent review of each phase on its anchored range, then the final review, whose scope comes from the anchors; completion is audited against the brief's Outcomes
|
|
345
|
+
4. `oat-project-pr-final`, through the same post-implementation sequence as quick
|
|
346
|
+
5. Optional `oat project promote <project-path> --to quick` when you want a maintained task plan instead
|
|
347
|
+
|
|
340
348
|
### Import lane steps
|
|
341
349
|
|
|
342
350
|
1. `oat-project-import-plan` (checks inherited git state before import scaffolding so sync-generated or unrelated dirty files do not silently roll into project bookkeeping)
|
|
@@ -495,6 +503,62 @@ sections, an unresolved scope, or an unreadable template each return a stable
|
|
|
495
503
|
categorical `reason` and exit non-zero. See
|
|
496
504
|
[CLI Reference](../../reference/cli-reference.md) for the full refusal contract.
|
|
497
505
|
|
|
506
|
+
### Brief lane
|
|
507
|
+
|
|
508
|
+
=== "Diagram"
|
|
509
|
+
|
|
510
|
+

|
|
511
|
+

|
|
512
|
+
|
|
513
|
+
=== "Mermaid source"
|
|
514
|
+
|
|
515
|
+
```mermaid
|
|
516
|
+
flowchart TD
|
|
517
|
+
A["Alignment interview\n(readiness rounds)"] --> B["Project Brief\n(review, gate, one approval)"]
|
|
518
|
+
B --> I["Phase-units\n(oat-project-implement)"]
|
|
519
|
+
I --> PR["Per-phase review\n(anchored range)"]
|
|
520
|
+
PR -->|Next phase| I
|
|
521
|
+
PR --> F["Final review\n(audited against Outcomes)"]
|
|
522
|
+
F --> P["PR (oat-project-pr-final)"]
|
|
523
|
+
B -->|Task plan wanted| Q["Promote to Quick"]
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
A brief project has one authored artifact: the Project Brief in `plan.md`.
|
|
527
|
+
Each `## Phase pNN:` block is one **phase-unit** with `**Intent:**`,
|
|
528
|
+
`**Exit evidence:**`, and `**Provisional:**` lines; only the next phase must
|
|
529
|
+
be concrete, and the agent may add, split, or reorder phases inside the
|
|
530
|
+
approved outcomes, constraints, and authority. Progress counts phase-units, and
|
|
531
|
+
a phase counts as complete only when the root writes `**Status:** completed`
|
|
532
|
+
under it in `implementation.md` after its review and any selected gate settle.
|
|
533
|
+
Tasks are execution records written as work happens, never a plan, so they
|
|
534
|
+
never change progress totals.
|
|
535
|
+
|
|
536
|
+
Each phase records `**Base:**` before work starts and `**Head:**` when its work
|
|
537
|
+
ends. Reviews take their range from those anchors rather than from commit
|
|
538
|
+
messages; invalid or contradictory anchors stop and route to
|
|
539
|
+
`oat-project-reconcile`. A fix after a later phase has started becomes an
|
|
540
|
+
appended `p-revN` revision phase. The shared rules live in the bundled brief
|
|
541
|
+
contract (`oat-project-brief/references/brief-contract.md`).
|
|
542
|
+
|
|
543
|
+
### Promoting a brief project to quick
|
|
544
|
+
|
|
545
|
+
`oat project promote <project-path> --to quick` converts a brief in place, and
|
|
546
|
+
there is no reverse direction. Accepted phases keep their completed execution
|
|
547
|
+
records as quick tasks (or get one synthesized `Accepted via phase evidence`
|
|
548
|
+
task against the phase head), active phases keep their completed records, and
|
|
549
|
+
pending or provisional phases stay taskless. The command lists the phases that
|
|
550
|
+
still need tasks in `oat_promotion_pending_phases`, and quick plan readiness
|
|
551
|
+
stays false until `oat-project-quick-start` authors them. The brief's
|
|
552
|
+
sections are rendered into `discovery.md` and the original is archived to
|
|
553
|
+
`references/brief-archive.md`.
|
|
554
|
+
|
|
555
|
+
Promotion writes nothing and refuses with a categorical reason when
|
|
556
|
+
`references/brief-archive.md` already exists (`brief-archive-exists`), a
|
|
557
|
+
journal phase is `extracted` (`extracted-phases`), the brief has no parseable
|
|
558
|
+
phases (`invalid-brief-plan`), or an accepted phase has neither a completed
|
|
559
|
+
record nor a `**Head:**` anchor to synthesize from (`missing-phase-head`, which
|
|
560
|
+
lists the refused phases).
|
|
561
|
+
|
|
498
562
|
### Import lane
|
|
499
563
|
|
|
500
564
|
=== "Diagram"
|
|
@@ -604,15 +668,15 @@ actionable `oat pjm init` stop instead of scaffolding implicitly. See
|
|
|
604
668
|
|
|
605
669
|
### Seeding a new project from a brainstorm
|
|
606
670
|
|
|
607
|
-
When the brainstorming destination is "promote to a new OAT project", the dispatcher confirms a project slug and one of
|
|
671
|
+
When the brainstorming destination is "promote to a new OAT project", the dispatcher confirms a project slug and one of four modes: `lite`, `brief`, `quick`, or `spec-driven`. For Quick and Spec-Driven projects, it runs `oat project new <slug> --mode <mode>` and writes `discovery.md` directly from the brainstorming payload — Initial Request, Solution Space with approaches considered, Chosen Direction, Key Decisions, and Open Questions. It writes only `discovery.md` (never a partial `design.md`), then points to `oat-project-quick-start` or `oat-project-design` without auto-chaining. For Lite projects, it instead seeds the five sections in `plan.md`, leaves `discovery.md` and `design.md` absent, and points to `oat-project-lite`. For Brief projects, it writes the payload to a research note under `references/research/`, leaves the scaffolded `plan.md` for the brief interview, and points to `oat-project-brief`.
|
|
608
672
|
|
|
609
|
-
This is a parallel entry path into all
|
|
673
|
+
This is a parallel entry path into all four lanes, not a new lane. Quick and Spec-Driven users arrive at `oat-project-quick-start` or `oat-project-design` with discovery already populated; Lite users arrive at `oat-project-lite` with the single-phase plan already seeded; Brief users arrive at `oat-project-brief` with the brainstorm payload saved as a research note under `references/research/` and the scaffolded `plan.md` left for the interview.
|
|
610
674
|
|
|
611
675
|
### Folding back into an active project
|
|
612
676
|
|
|
613
677
|
When `oat-brainstorm` fires while a project is active, it offers a 3-way picker before any pack-filtered destination shows up:
|
|
614
678
|
|
|
615
|
-
- **Related to the project** → for Lite, fold the synthesis into `plan.md` immediately above `## Phase 1` and hand off to `oat-project-lite`; for Quick and Spec-Driven, use the most-specific upstream artifact (`design.md` if it exists, otherwise `discovery.md`) and hand off to `oat-project-quick-start` or `oat-project-plan`. Any mode with an open PR hands off to `oat-project-revise`. The fold-back commit is safety-gated: a preflight `git status --porcelain -- "$ARTIFACT_PATH"` checks for dirty state, staging is exactly `git add -- "$ARTIFACT_PATH"` (never `-A`, never globs), and the handoff prompt only prints after the scoped commit succeeds.
|
|
679
|
+
- **Related to the project** → for Lite, fold the synthesis into `plan.md` immediately above `## Phase 1` and hand off to `oat-project-lite`; for Brief, fold it into `plan.md` immediately above the first `## Phase` heading so the receiving skill integrates it as new or amended phases; for Quick and Spec-Driven, use the most-specific upstream artifact (`design.md` if it exists, otherwise `discovery.md`) and hand off to `oat-project-quick-start` or `oat-project-plan`. Any mode with an open PR hands off to `oat-project-revise`. The fold-back commit is safety-gated: a preflight `git status --porcelain -- "$ARTIFACT_PATH"` checks for dirty state, staging is exactly `git add -- "$ARTIFACT_PATH"` (never `-A`, never globs), and the handoff prompt only prints after the scoped commit succeeds.
|
|
616
680
|
- **Independent of the project** → the active project is acknowledged but doesn't constrain the picker; brainstorm routes through its standard pack-filtered terminal-state options (new project, backlog item, idea, doc-to-path, inline).
|
|
617
681
|
- **Related but supplementary** → write a brainstorming reference file at `.oat/projects/<scope>/<project>/brainstorming/YYYY-MM-DD-<topic>.md`, alongside `pr/` and `reviews/`. No lifecycle artifact is touched.
|
|
618
682
|
|
|
@@ -60,6 +60,22 @@ auto-review preference prompt are all skipped in both interactive and autonomous
|
|
|
60
60
|
runs. Only HiLL approval pauses are absent — the root-owned per-phase review and
|
|
61
61
|
the final review remain required.
|
|
62
62
|
|
|
63
|
+
### Brief checkpoint resolution
|
|
64
|
+
|
|
65
|
+
Brief projects read `oat_plan_hill_phases` with a brief meaning: `[]` and an
|
|
66
|
+
absent field both mean **no checkpoints**, never "every phase". The brief
|
|
67
|
+
scaffold writes `oat_plan_hill_phases: [] # [] = none for brief modes`, and
|
|
68
|
+
`oat-project-implement` then writes:
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
oat_auto_review_at_hill_checkpoints: false # brief: no checkpoints
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
and skips the workflow preference check and the first-run checkpoint question.
|
|
75
|
+
To opt in, record an explicit phase array such as `['p03']`; implementation
|
|
76
|
+
keeps it without re-asking and pauses after exactly those phases. The
|
|
77
|
+
per-phase reviews and the final review run either way.
|
|
78
|
+
|
|
63
79
|
The rest of this section applies to `spec-driven`, `quick`, and `import`
|
|
64
80
|
projects.
|
|
65
81
|
|
|
@@ -125,7 +141,8 @@ See [Workflow preferences in the Configuration guide](../../../reference/configu
|
|
|
125
141
|
A HiLL (human-in-the-loop lifecycle) checkpoint is a point where the
|
|
126
142
|
implementing agent stops and waits for a person to approve before it continues.
|
|
127
143
|
This choice decides how often that happens during implementation. Lite projects
|
|
128
|
-
have no checkpoints,
|
|
144
|
+
have no checkpoints, and brief projects have none unless they list phases
|
|
145
|
+
explicitly, so it does not apply to them.
|
|
129
146
|
|
|
130
147
|
| Choice | Choose it when | What you give up |
|
|
131
148
|
| ------------------ | ------------------------------------------------- | -------------------------------------------- |
|
|
@@ -13,7 +13,7 @@ For a spec-driven project (one using the full workflow: discovery, design, plan,
|
|
|
13
13
|
then implementation), the usual path is discovery, then design, then plan.
|
|
14
14
|
Design confirms requirements and produces `spec.md` as well as `design.md`.
|
|
15
15
|
Standalone spec is optional when you want to review requirements before
|
|
16
|
-
designing. Quick, lite, and import workflows author their own plans through
|
|
16
|
+
designing. Quick, lite, brief, and import workflows author their own plans through
|
|
17
17
|
their entry skills. Do not send those projects through spec-driven planning
|
|
18
18
|
just because they contain a file named `plan.md`.
|
|
19
19
|
|
|
@@ -55,8 +55,8 @@ A _HiLL (human-in-the-loop lifecycle) checkpoint_ is a point where a skill stops
|
|
|
55
55
|
and waits for your explicit approval before marking a phase complete. Projects
|
|
56
56
|
created with `oat-project-new` have HiLL approvals on discovery and design **by
|
|
57
57
|
default**: each skill stops after writing its artifact and waits for your
|
|
58
|
-
explicit approval before marking it complete. Quick, lite, and import
|
|
59
|
-
have no workflow-phase HiLL checkpoints. Configured exit gates (optional reviews
|
|
58
|
+
explicit approval before marking it complete. Quick, lite, brief, and import
|
|
59
|
+
projects have no workflow-phase HiLL checkpoints. Configured exit gates (optional reviews
|
|
60
60
|
or commands your repository runs before a skill marks its work complete) can
|
|
61
61
|
also keep an artifact in progress. See [HiLL checkpoints](hill-checkpoints.md).
|
|
62
62
|
The [skill catalog](../../../skills/index.md) lists the broader lifecycle tools.
|
|
@@ -83,7 +83,7 @@ spec-driven project. The repository knowledge index must exist at
|
|
|
83
83
|
`oat-repo-knowledge-index` first. The skill checks knowledge staleness and asks
|
|
84
84
|
whether to refresh or continue when the index is stale.
|
|
85
85
|
|
|
86
|
-
Quick, import, and
|
|
86
|
+
Quick, import, lite, and brief projects use their own next step instead. Mentioning a
|
|
87
87
|
new idea does not authorize automatic discovery invocation.
|
|
88
88
|
|
|
89
89
|
**Example scenario:** The webhook-delivery project is active, but the team has
|
|
@@ -270,11 +270,12 @@ skill asks for a project name and sets it as the active project. The project
|
|
|
270
270
|
must use spec-driven mode, with `design.md` recording `oat_status: complete` and
|
|
271
271
|
`oat_ready_for: oat-project-plan`.
|
|
272
272
|
|
|
273
|
-
Quick, import, and
|
|
273
|
+
Quick, import, lite, and brief projects never use this skill to author a plan. On a
|
|
274
274
|
quick project, it resumes quick-start if the plan is not ready, and **starts
|
|
275
275
|
`oat-project-implement` immediately** if the plan is ready. On an import project
|
|
276
276
|
with a plan, it points you to `oat-project-implement`. On a lite project, it
|
|
277
|
-
points you to `oat-project-lite`.
|
|
277
|
+
points you to `oat-project-lite`. On a brief project, it stops and points you
|
|
278
|
+
to `oat-project-brief`, which owns the Project Brief. Do not invoke it on those projects unless you
|
|
278
279
|
intend that handoff.
|
|
279
280
|
|
|
280
281
|
**Example scenario:** The webhook design now defines persistence, retries, and
|
|
@@ -338,14 +339,14 @@ Promote the active cache-refresh project, keeping its imported plan and complete
|
|
|
338
339
|
skill asks for a project name and sets it as the active project. The active
|
|
339
340
|
project's `state.md` must record quick or import workflow mode. A spec-driven
|
|
340
341
|
project is already promoted, so the skill reports a no-op unless you request
|
|
341
|
-
artifact refresh. Lite must promote to quick first through
|
|
342
|
-
command:
|
|
342
|
+
artifact refresh. Lite and brief projects must promote to quick first through
|
|
343
|
+
the actual terminal command:
|
|
343
344
|
|
|
344
345
|
```bash
|
|
345
|
-
oat project promote <lite-project-path> --to quick
|
|
346
|
+
oat project promote <lite-or-brief-project-path> --to quick
|
|
346
347
|
```
|
|
347
348
|
|
|
348
|
-
Use the reported
|
|
349
|
+
Use the reported project path, for example
|
|
349
350
|
`.oat/projects/synced/retry-message` in the default synced scope. Then use this
|
|
350
351
|
skill against the active quick project.
|
|
351
352
|
|
|
@@ -7,17 +7,18 @@ description: 'Choose a project entry skill, import an existing plan, capture com
|
|
|
7
7
|
|
|
8
8
|
Choose an entry path based on what you already know and what already exists.
|
|
9
9
|
These skills do not require an existing active project. They create or import
|
|
10
|
-
tracked work, although quick-start and
|
|
11
|
-
own mode, and import writes into whichever project is active.
|
|
12
|
-
|
|
13
|
-
| Your situation
|
|
14
|
-
|
|
|
15
|
-
| Requirements need discovery and a full technical design.
|
|
16
|
-
| The outcome is bounded, with optional design decisions to resolve.
|
|
17
|
-
| The change fits one implementation sitting.
|
|
18
|
-
|
|
|
19
|
-
|
|
|
20
|
-
|
|
|
10
|
+
tracked work, although quick-start, lite, and brief resume an active project of
|
|
11
|
+
their own mode, and import writes into whichever project is active.
|
|
12
|
+
|
|
13
|
+
| Your situation | Entry skill | Result |
|
|
14
|
+
| -------------------------------------------------------------------- | ------------------------- | --------------------------------------------------------------------------------- |
|
|
15
|
+
| Requirements need discovery and a full technical design. | `oat-project-new` | A spec-driven scaffold, ready to begin discovery. |
|
|
16
|
+
| The outcome is bounded, with optional design decisions to resolve. | `oat-project-quick-start` | Discovery and an executable plan, with lightweight design when needed. |
|
|
17
|
+
| The change fits one implementation sitting. | `oat-project-lite` | One approved plan with requirements and validation criteria. |
|
|
18
|
+
| One delivery whose outcome and design you can agree in conversation. | `oat-project-brief` | One reviewed, approved Project Brief whose phases carry intent and exit evidence. |
|
|
19
|
+
| You already have a Markdown plan. | `oat-project-import-plan` | The original source preserved beside a normalized OAT plan. |
|
|
20
|
+
| Implementation happened without project tracking. | `oat-project-capture` | Retroactive discovery and implementation records from the session and commits. |
|
|
21
|
+
| A confirmed scope contains several coordinated projects. | `oat-project-split` | A coordination parent and children that resume at discovery. |
|
|
21
22
|
|
|
22
23
|
For the broader mode decision, see [Choose a workflow](../../choose-workflow.md).
|
|
23
24
|
For an existing project's discovery, design, or plan, see
|
|
@@ -68,15 +69,15 @@ in a fresh repository.
|
|
|
68
69
|
overrides the setting for one shell.
|
|
69
70
|
|
|
70
71
|
3. **Only `oat-project-new` takes a scope.** It accepts `--scope shared|local|synced`.
|
|
71
|
-
Quick-start, lite, import, capture, and split have no scope argument.
|
|
72
|
-
Quick-start, lite, import, and capture always create projects in the
|
|
72
|
+
Quick-start, lite, brief, import, capture, and split have no scope argument.
|
|
73
|
+
Quick-start, lite, brief, import, and capture always create projects in the
|
|
73
74
|
default scope. Split uses the active project's scope, or `shared` when no
|
|
74
75
|
project is active. Set the default first if you do not want `synced`.
|
|
75
76
|
|
|
76
77
|
4. **Build the knowledge index before spec-driven discovery.** `oat-project-discover`
|
|
77
78
|
refuses to start until `.oat/repo/knowledge/project-index.md` exists. Run
|
|
78
79
|
`/oat-repo-knowledge-index` once before your first spec-driven project.
|
|
79
|
-
Quick-start, lite, import, and capture do not check for it.
|
|
80
|
+
Quick-start, lite, brief, import, and capture do not check for it.
|
|
80
81
|
|
|
81
82
|
5. **Know what happens when a project is already active.** Check with
|
|
82
83
|
`oat config get activeProject` before you start:
|
|
@@ -88,6 +89,9 @@ in a fresh repository.
|
|
|
88
89
|
- `oat-project-lite` resumes an active lite project and ignores the name and
|
|
89
90
|
description you pass. With any other project active, it creates a new lite
|
|
90
91
|
project.
|
|
92
|
+
- `oat-project-brief` resumes an active brief project at the earliest step
|
|
93
|
+
whose output is missing. With any other project active, it creates a new
|
|
94
|
+
brief project.
|
|
91
95
|
- `oat-project-import-plan` writes into any active project, whatever its
|
|
92
96
|
mode. It rewrites that project's `plan.md` and switches it to import mode.
|
|
93
97
|
- `oat-project-split` makes its first child the active project.
|
|
@@ -106,14 +110,14 @@ Project creation normally activates the new project in `.oat/config.local.json`.
|
|
|
106
110
|
Check the reported project path before continuing, especially when another
|
|
107
111
|
project is already active.
|
|
108
112
|
|
|
109
|
-
The new, quick-start, lite, and import skills check inherited Git changes before
|
|
113
|
+
The new, quick-start, lite, brief, and import skills check inherited Git changes before
|
|
110
114
|
scaffolding. Unrelated changes require an explicit disposition in interactive
|
|
111
115
|
runs. One exception: if the only change is `.oat/sync/manifest.json`, it is
|
|
112
116
|
committed automatically as `chore: run sync`. Capture does not run this check.
|
|
113
117
|
Do not assume starting a project also authorizes implementation or a PR.
|
|
114
118
|
|
|
115
|
-
**Dispatch policy.** Before a plan is marked ready, quick-start, lite,
|
|
116
|
-
import ask you to choose a _dispatch policy_: the highest tier of models and
|
|
119
|
+
**Dispatch policy.** Before a plan is marked ready, quick-start, lite, brief,
|
|
120
|
+
and import ask you to choose a _dispatch policy_: the highest tier of models and
|
|
117
121
|
effort OAT may use when it dispatches implementation and review agents. The
|
|
118
122
|
choices come from `oat project dispatch-ceiling choices`. If your configuration
|
|
119
123
|
has no complete dispatch ladder (the list of models for each tier), the skill
|
|
@@ -125,9 +129,10 @@ deliberately. The plan stays not ready until this resolves. See
|
|
|
125
129
|
**Approval checkpoints.** A _HiLL (human-in-the-loop lifecycle) checkpoint_ is
|
|
126
130
|
a point where a skill stops and waits for your explicit approval before it marks
|
|
127
131
|
a phase complete. Projects created by `oat-project-new` have checkpoints on
|
|
128
|
-
discovery and design by default. Quick, lite, import, and captured
|
|
129
|
-
no workflow-phase checkpoints before implementation. Lite still
|
|
130
|
-
approve its plan once
|
|
132
|
+
discovery and design by default. Quick, lite, brief, import, and captured
|
|
133
|
+
projects have no workflow-phase checkpoints before implementation. Lite still
|
|
134
|
+
asks you to approve its plan once, and brief asks you to approve its reviewed
|
|
135
|
+
brief once. See [HiLL checkpoints](hill-checkpoints.md).
|
|
131
136
|
|
|
132
137
|
Several skills also run a configured _exit gate_, an optional review or command
|
|
133
138
|
your repository configures to run before a skill marks its work complete. When
|
|
@@ -299,6 +304,73 @@ keeping or disabling configured gates for this project.
|
|
|
299
304
|
**Next step:** Run `oat-project-implement` after the approved lite plan is ready.
|
|
300
305
|
If the scope grows, continue through `oat-project-quick-start` after promotion.
|
|
301
306
|
|
|
307
|
+
## oat-project-brief
|
|
308
|
+
|
|
309
|
+
Use brief for one delivery whose outcome and design you can agree in
|
|
310
|
+
conversation. Brief replaces discovery, design, and a task plan with one
|
|
311
|
+
reviewed Project Brief in `plan.md`. Its phases state intent and exit evidence
|
|
312
|
+
instead of tasks.
|
|
313
|
+
|
|
314
|
+
**Invocation:** Provide the slug and the intended outcome.
|
|
315
|
+
|
|
316
|
+
```text
|
|
317
|
+
/oat-project-brief export-audit "Let administrators export the audit log as CSV from the settings page."
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Prerequisites:** No active project is needed. If the active project is a
|
|
321
|
+
brief project, brief resumes it in place.
|
|
322
|
+
|
|
323
|
+
**Example scenario:** Administrators need the audit log as CSV. Brief
|
|
324
|
+
interviews you in short rounds, settling facts from the code itself and
|
|
325
|
+
putting the design choices to you, such as streaming against buffering the
|
|
326
|
+
export. It writes the agreed outcomes, approach, decisions, and phases into the
|
|
327
|
+
brief, runs artifact review and any configured gate, and asks you to approve
|
|
328
|
+
the reviewed brief once.
|
|
329
|
+
|
|
330
|
+
**Expected output:** One Project Brief in `plan.md` with a Goal, numbered
|
|
331
|
+
Outcomes that each name their evidence, the Approach (with an optional
|
|
332
|
+
`### Design` subsection), Constraints and Out of Scope, Decisions with the
|
|
333
|
+
alternatives you rejected, Known Unknowns with the phase that settles each,
|
|
334
|
+
the Delivery endpoint and authority, and `## Phase pNN:` blocks. Each phase
|
|
335
|
+
states its `**Intent:**`, `**Exit evidence:**`, and whether it is
|
|
336
|
+
`**Provisional:**`; only the first phase has to be concrete now. The skill also
|
|
337
|
+
initializes `implementation.md` as a per-phase journal with one section per
|
|
338
|
+
phase and no execution records yet. There is no `discovery.md`, `spec.md`, or
|
|
339
|
+
`design.md`, and no task list: tasks are recorded in the journal as the work
|
|
340
|
+
runs.
|
|
341
|
+
|
|
342
|
+
The interview runs in readiness rounds. The agent settles facts from the code,
|
|
343
|
+
docs, or research itself and brings you only decisions, each with a
|
|
344
|
+
recommendation and its tradeoff. It writes the brief once you have explicitly
|
|
345
|
+
agreed the design, so the approval confirms a design you already accepted.
|
|
346
|
+
Within the approved outcomes, constraints, and authority, the agent may later
|
|
347
|
+
add, split, or reorder phases and make provisional phases concrete, and logs
|
|
348
|
+
each change; a change to an Outcome, a Constraint, the authority, the endpoint,
|
|
349
|
+
a Decision, or the Approach comes back to you first.
|
|
350
|
+
|
|
351
|
+
**What it does without asking:** It creates the project through
|
|
352
|
+
`oat project new --mode brief` in the default scope and makes it active,
|
|
353
|
+
commits the authored brief before any review, runs the independent artifact
|
|
354
|
+
review (the reviewer receives the brief and the bundled brief contract, not the
|
|
355
|
+
conversation), runs any configured `oat-project-brief` gate and records its
|
|
356
|
+
outcome as `oat_brief_gate` in `state.md`, and commits the approved brief and
|
|
357
|
+
journal. In synced scope each commit is an `oat project push` to `origin`. It
|
|
358
|
+
asks before: proceeding with a dirty working tree, the interview decisions,
|
|
359
|
+
adopting a dispatch ladder into config, choosing the dispatch policy, keeping
|
|
360
|
+
or disabling configured gates for this project, and the single approval
|
|
361
|
+
(approve, revise, or promote to quick).
|
|
362
|
+
|
|
363
|
+
**Promotion to quick.** Choose promote at the approval, or later run
|
|
364
|
+
`oat project promote <project-path> --to quick`, when you want a maintained,
|
|
365
|
+
approved up-front task plan. Promotion keeps completed execution records as
|
|
366
|
+
quick tasks, lists phases that still need tasks in
|
|
367
|
+
`oat_promotion_pending_phases`, and hands off to `oat-project-quick-start`.
|
|
368
|
+
Before the brief is written and committed there is nothing to promote: abandon
|
|
369
|
+
the scaffold and start `oat-project-quick-start` instead. See
|
|
370
|
+
[Lifecycle](../lifecycle.md#promoting-a-brief-project-to-quick).
|
|
371
|
+
|
|
372
|
+
**Next step:** Run `oat-project-implement` after the brief is approved.
|
|
373
|
+
|
|
302
374
|
## oat-project-import-plan
|
|
303
375
|
|
|
304
376
|
Use import when the plan already exists, including one produced in a provider's
|
|
@@ -176,7 +176,7 @@ This feature is opt-in and disabled by default (missing or `enabled: false`). Fo
|
|
|
176
176
|
|
|
177
177
|
Generated planning and analysis artifacts have a separate review loop from code/phase reviews.
|
|
178
178
|
|
|
179
|
-
For plans, `oat-project-plan`, `oat-project-quick-start`, `oat-project-lite`, and `oat-project-import-plan` run a bounded `plan.md` artifact review before marking the plan ready for implementation. The loop dispatches `oat-reviewer` in structured-output artifact mode with `scope: plan`, applies unambiguous Critical and High artifact-local fixes, offers Medium and Low fixes, and re-runs until clean or the retry bound is exhausted. A clean result records the `plan` row in the plan's `## Reviews` table as `passed`.
|
|
179
|
+
For plans, `oat-project-plan`, `oat-project-quick-start`, `oat-project-lite`, `oat-project-brief`, and `oat-project-import-plan` run a bounded `plan.md` artifact review before marking the plan ready for implementation. The loop dispatches `oat-reviewer` in structured-output artifact mode with `scope: plan`, applies unambiguous Critical and High artifact-local fixes, offers Medium and Low fixes, and re-runs until clean or the retry bound is exhausted. A clean result records the `plan` row in the plan's `## Reviews` table as `passed`.
|
|
180
180
|
|
|
181
181
|
For analysis artifacts, `oat-docs-analyze` and `oat-agent-instructions-analyze` run a bounded accuracy review after writing their severity-rated artifacts. The reviewer checks cited evidence, severity, and recommendations before the matching apply workflow consumes the artifact. The analysis loop updates tracking metadata to mark the artifact verified.
|
|
182
182
|
|
|
@@ -220,6 +220,18 @@ See [Workflow preferences in the Configuration guide](../../../reference/configu
|
|
|
220
220
|
|
|
221
221
|
Use phase-scoped review artifacts during implementation (`p01`, `p02`, etc), then run final review before project closeout.
|
|
222
222
|
|
|
223
|
+
In a brief project, review scope comes from the journal's anchors instead of
|
|
224
|
+
commit-message inference. A phase scope is its `**Base:**..**Head:**` range, a
|
|
225
|
+
`pNN-pMM` run spans the first selected base through the last selected head,
|
|
226
|
+
and `final` covers every accepted phase, including `p-revN` revision phases.
|
|
227
|
+
The review artifact records the requested scope, the ordered phase IDs, the
|
|
228
|
+
base SHA, and `oat_review_scope_source` (`anchors`, or `merge-base-range` when
|
|
229
|
+
anchors are missing and the range widens to the confirmed merge-base range).
|
|
230
|
+
Commit-message matches only label commits and never narrow the range. Invalid
|
|
231
|
+
or contradictory anchors stop the review and route to `oat-project-reconcile`.
|
|
232
|
+
A brief `final` review also audits every numbered Outcome against the
|
|
233
|
+
journal's evidence.
|
|
234
|
+
|
|
223
235
|
Final review `passed` gate requires:
|
|
224
236
|
|
|
225
237
|
- No unresolved Critical/High/Medium findings.
|
|
@@ -455,7 +467,8 @@ An artifact review loop runs in the same agent session that wrote the artifact,
|
|
|
455
467
|
so it is not an independent review. It retries up to the project's retry limit,
|
|
456
468
|
which defaults to two; a limit of zero still allows the first review. Autonomous
|
|
457
469
|
runs turn on review at HiLL checkpoints for every project except lite projects,
|
|
458
|
-
which have no checkpoints
|
|
470
|
+
which have no checkpoints, and brief projects without explicitly listed
|
|
471
|
+
checkpoint phases.
|
|
459
472
|
|
|
460
473
|
- If you are a solo developer, or runs are unattended, and your agent tool
|
|
461
474
|
supports subagents, set the final review execution to `subagent`.
|
|
@@ -119,7 +119,8 @@ different things can happen, and only two of them stop the workflow:
|
|
|
119
119
|
- **Operational failures stay blocked.** The reviewer could not start, timed
|
|
120
120
|
out without writing a review, or wrote a review OAT could not validate or
|
|
121
121
|
match to this run. Nothing was reviewed. `oat-project-implement` and
|
|
122
|
-
`oat-project-lite` keep these failures blocked whatever `onFailure` says
|
|
122
|
+
`oat-project-lite` keep these failures blocked whatever `onFailure` says,
|
|
123
|
+
and so does `oat-project-brief`.
|
|
123
124
|
The planning skills handle them differently; see
|
|
124
125
|
[When the gate finds blocking problems](../../advanced/workflow-gates.md#when-the-gate-finds-blocking-problems).
|
|
125
126
|
- **Reviewer selection falls back.** By default (`--avoid same-family`) the gate
|
|
@@ -457,8 +458,9 @@ request.
|
|
|
457
458
|
**Prerequisites:** An initialized project must resolve from the active pointer
|
|
458
459
|
or an explicitly supplied project/review target. Its core artifacts must be
|
|
459
460
|
committed before review. Code review needs completed implementation work and
|
|
460
|
-
the mode-appropriate requirements sources; lite
|
|
461
|
-
discovery, spec or design artifacts.
|
|
461
|
+
the mode-appropriate requirements sources; lite and brief reviews do not
|
|
462
|
+
require absent discovery, spec or design artifacts. A brief code review takes
|
|
463
|
+
its range from the journal's phase anchors. Code reviews and plan artifact reviews
|
|
462
464
|
also need a resolved dispatch policy (`oat_dispatch_policy` in `state.md` or
|
|
463
465
|
`workflow.dispatchPolicy.*` in config); without one the review stops before
|
|
464
466
|
launching a reviewer. Discovery, spec and design artifact reviews run without
|