@open-agent-toolkit/cli 0.3.18 → 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.
Files changed (99) hide show
  1. package/assets/agents/oat-phase-implementer.md +81 -3
  2. package/assets/agents/oat-reviewer.md +15 -5
  3. package/assets/bundle-metadata.json +1 -1
  4. package/assets/docs/reference/cli-reference.md +8 -5
  5. package/assets/docs/reference/oat-directory-structure.md +1 -0
  6. package/assets/docs/reference/project-artifacts.md +17 -1
  7. package/assets/docs/reference/project-state-machine.md +19 -4
  8. package/assets/docs/skills/brainstorm.md +2 -1
  9. package/assets/docs/skills/index.md +1 -0
  10. package/assets/docs/workflows/advanced/autonomy.md +9 -1
  11. package/assets/docs/workflows/advanced/workflow-gates.md +11 -6
  12. package/assets/docs/workflows/approvals-and-automation.md +13 -8
  13. package/assets/docs/workflows/choose-workflow.md +16 -8
  14. package/assets/docs/workflows/projects/closeout/closeout-skills.md +8 -3
  15. package/assets/docs/workflows/projects/closeout/pr-flow.md +2 -0
  16. package/assets/docs/workflows/projects/execution/execution-skills.md +14 -2
  17. package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
  18. package/assets/docs/workflows/projects/execution/picking-up-projects.md +10 -1
  19. package/assets/docs/workflows/projects/lifecycle.md +73 -9
  20. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
  21. package/assets/docs/workflows/projects/planning/planning-skills.md +11 -10
  22. package/assets/docs/workflows/projects/planning/starting-projects.md +92 -20
  23. package/assets/docs/workflows/projects/reviews/index.md +15 -2
  24. package/assets/docs/workflows/projects/reviews/review-flavors.md +5 -3
  25. package/assets/public-package-versions.json +4 -4
  26. package/assets/skills/oat-brainstorm/SKILL.md +33 -9
  27. package/assets/skills/oat-brainstorm/references/destinations.md +9 -4
  28. package/assets/skills/oat-docs/SKILL.md +9 -4
  29. package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
  30. package/assets/skills/oat-project-autonomous/SKILL.md +14 -8
  31. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +17 -2
  32. package/assets/skills/oat-project-brief/SKILL.md +592 -0
  33. package/assets/skills/oat-project-brief/references/brief-contract.md +294 -0
  34. package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +393 -0
  35. package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +84 -0
  36. package/assets/skills/oat-project-capture/SKILL.md +2 -2
  37. package/assets/skills/oat-project-complete/SKILL.md +7 -2
  38. package/assets/skills/oat-project-discover/SKILL.md +3 -2
  39. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
  40. package/assets/skills/oat-project-document/SKILL.md +11 -1
  41. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +17 -2
  42. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  43. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +40 -0
  44. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +17 -2
  45. package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +4 -0
  46. package/assets/skills/oat-project-implement/references/phase-execution.md +166 -1
  47. package/assets/skills/oat-project-implement/references/plan-and-resume.md +97 -3
  48. package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
  49. package/assets/skills/oat-project-lite/SKILL.md +4 -1
  50. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +17 -2
  51. package/assets/skills/oat-project-new/SKILL.md +5 -1
  52. package/assets/skills/oat-project-next/SKILL.md +31 -4
  53. package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +4 -0
  54. package/assets/skills/oat-project-plan/SKILL.md +12 -2
  55. package/assets/skills/oat-project-plan-writing/SKILL.md +6 -4
  56. package/assets/skills/oat-project-pr-final/SKILL.md +15 -3
  57. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +17 -2
  58. package/assets/skills/oat-project-pr-progress/SKILL.md +31 -4
  59. package/assets/skills/oat-project-progress/SKILL.md +30 -8
  60. package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +4 -0
  61. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  62. package/assets/skills/oat-project-quick-start/SKILL.md +60 -1
  63. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +17 -2
  64. package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +4 -0
  65. package/assets/skills/oat-project-reconcile/SKILL.md +65 -3
  66. package/assets/skills/oat-project-review-provide/SKILL.md +331 -12
  67. package/assets/skills/oat-project-review-receive/SKILL.md +86 -1
  68. package/assets/skills/oat-project-revise/SKILL.md +27 -4
  69. package/assets/skills/oat-project-summary/SKILL.md +95 -2
  70. package/assets/skills/oat-wave-execute/SKILL.md +3 -2
  71. package/assets/templates/implementation-brief.md +165 -0
  72. package/assets/templates/plan-brief.md +140 -0
  73. package/assets/templates/plan.md +1 -1
  74. package/assets/templates/state.md +8 -2
  75. package/dist/commands/project/new/scaffold.d.ts +1 -1
  76. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  77. package/dist/commands/project/new/scaffold.js +35 -7
  78. package/dist/commands/project/promote/promote.d.ts +32 -1
  79. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  80. package/dist/commands/project/promote/promote.js +562 -5
  81. package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
  82. package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
  83. package/dist/commands/project/validate-plan/frontmatter.js +27 -0
  84. package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
  85. package/dist/commands/project/validate-plan/index.js +52 -18
  86. package/dist/commands/project/validate-plan/profiles.d.ts +54 -0
  87. package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
  88. package/dist/commands/project/validate-plan/profiles.js +269 -0
  89. package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
  90. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
  91. package/dist/commands/project/validate-plan/validate-plan.js +5 -82
  92. package/dist/commands/shared/frontmatter.d.ts +1 -1
  93. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  94. package/dist/commands/shared/frontmatter.js +1 -0
  95. package/dist/commands/state/generate.d.ts.map +1 -1
  96. package/dist/commands/state/generate.js +51 -2
  97. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  98. package/dist/commands/tools/shared/pack-manifest.js +3 -0
  99. 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 lite accept their mode-appropriate reduced artifacts. The latest
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, spec, or design.
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.
@@ -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 capture
55
- lanes each skip part of it — see [Lane diagrams](#lane-diagrams) below. Lite in
56
- particular has no discovery, spec, or design step at all.
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
+ ![Brief lane: a design-aligned interview, one reviewed and approved Project Brief, phase-units executed with execution records and anchors, a fresh review per phase, final review audited against Outcomes, and PR, with promotion to quick when a task plan is wanted](/diagrams/project-lifecycle-8-brief-lane-light.svg)
511
+ ![Brief lane: a design-aligned interview, one reviewed and approved Project Brief, phase-units executed with execution records and anchors, a fresh review per phase, final review audited against Outcomes, and PR, with promotion to quick when a task plan is wanted](/diagrams/project-lifecycle-8-brief-lane-dark.svg)
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 three modes: `lite`, `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`.
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 three 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.
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, so it does not apply to them.
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 projects
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 lite projects use their own next step instead. Mentioning a
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 lite projects never use this skill to author a plan. On a
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`. Do not invoke it on those projects unless you
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 the actual terminal
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 lite project path, for example
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 lite resume an active project of their
11
- 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
- | You already have a Markdown plan. | `oat-project-import-plan` | The original source preserved beside a normalized OAT plan. |
19
- | Implementation happened without project tracking. | `oat-project-capture` | Retroactive discovery and implementation records from the session and commits. |
20
- | A confirmed scope contains several coordinated projects. | `oat-project-split` | A coordination parent and children that resume at discovery. |
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, and
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 projects have
129
- no workflow-phase checkpoints before implementation. Lite still asks you to
130
- approve its plan once. See [HiLL checkpoints](hill-checkpoints.md).
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 review does not require absent
461
- discovery, spec or design artifacts. Code reviews and plan artifact reviews
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
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.3.18",
3
- "docs-config": "0.3.18",
4
- "docs-theme": "0.3.18",
5
- "docs-transforms": "0.3.18"
2
+ "cli": "0.3.19",
3
+ "docs-config": "0.3.19",
4
+ "docs-theme": "0.3.19",
5
+ "docs-transforms": "0.3.19"
6
6
  }