@open-agent-toolkit/cli 0.3.18 → 0.3.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/README.md +2 -1
  2. package/assets/agents/oat-phase-implementer.md +104 -3
  3. package/assets/agents/oat-reviewer.md +20 -5
  4. package/assets/bundle-metadata.json +1 -1
  5. package/assets/docs/reference/cli-reference.md +15 -7
  6. package/assets/docs/reference/oat-directory-structure.md +2 -0
  7. package/assets/docs/reference/project-artifacts.md +72 -1
  8. package/assets/docs/reference/project-state-machine.md +55 -6
  9. package/assets/docs/skills/brainstorm.md +3 -1
  10. package/assets/docs/skills/index.md +13 -9
  11. package/assets/docs/workflows/advanced/autonomy.md +12 -2
  12. package/assets/docs/workflows/advanced/dispatch-ceiling.md +2 -2
  13. package/assets/docs/workflows/advanced/workflow-gates.md +25 -7
  14. package/assets/docs/workflows/approvals-and-automation.md +25 -9
  15. package/assets/docs/workflows/choose-workflow.md +24 -8
  16. package/assets/docs/workflows/ideas/index.md +1 -1
  17. package/assets/docs/workflows/ideas/lifecycle.md +3 -2
  18. package/assets/docs/workflows/projects/closeout/closeout-skills.md +83 -5
  19. package/assets/docs/workflows/projects/closeout/pr-flow.md +9 -1
  20. package/assets/docs/workflows/projects/execution/execution-skills.md +27 -2
  21. package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
  22. package/assets/docs/workflows/projects/execution/picking-up-projects.md +20 -1
  23. package/assets/docs/workflows/projects/lifecycle.md +172 -9
  24. package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
  25. package/assets/docs/workflows/projects/planning/planning-skills.md +13 -10
  26. package/assets/docs/workflows/projects/planning/starting-projects.md +138 -20
  27. package/assets/docs/workflows/projects/reviews/index.md +36 -2
  28. package/assets/docs/workflows/projects/reviews/review-flavors.md +7 -3
  29. package/assets/public-package-versions.json +4 -4
  30. package/assets/skills/oat-brainstorm/SKILL.md +58 -9
  31. package/assets/skills/oat-brainstorm/references/destinations.md +12 -4
  32. package/assets/skills/oat-docs/SKILL.md +13 -4
  33. package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
  34. package/assets/skills/oat-project-autonomous/SKILL.md +20 -8
  35. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +156 -122
  36. package/assets/skills/oat-project-brief/SKILL.md +592 -0
  37. package/assets/skills/oat-project-brief/references/brief-contract.md +743 -0
  38. package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +412 -0
  39. package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +93 -0
  40. package/assets/skills/oat-project-capture/SKILL.md +2 -2
  41. package/assets/skills/oat-project-complete/SKILL.md +16 -2
  42. package/assets/skills/oat-project-discover/SKILL.md +4 -2
  43. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
  44. package/assets/skills/oat-project-document/SKILL.md +17 -1
  45. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +156 -122
  46. package/assets/skills/oat-project-goal/SKILL.md +697 -0
  47. package/assets/skills/oat-project-goal/references/docs/autonomy-contract.md +412 -0
  48. package/assets/skills/oat-project-goal/references/docs/gate-approval-record.md +93 -0
  49. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  50. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +107 -0
  51. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +156 -122
  52. package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +13 -0
  53. package/assets/skills/oat-project-implement/references/phase-execution.md +173 -1
  54. package/assets/skills/oat-project-implement/references/plan-and-resume.md +124 -3
  55. package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
  56. package/assets/skills/oat-project-lite/SKILL.md +4 -1
  57. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +156 -122
  58. package/assets/skills/oat-project-new/SKILL.md +5 -1
  59. package/assets/skills/oat-project-next/SKILL.md +71 -14
  60. package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +13 -0
  61. package/assets/skills/oat-project-plan/SKILL.md +24 -3
  62. package/assets/skills/oat-project-plan-writing/SKILL.md +8 -4
  63. package/assets/skills/oat-project-pr-final/SKILL.md +65 -3
  64. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +156 -122
  65. package/assets/skills/oat-project-pr-progress/SKILL.md +125 -4
  66. package/assets/skills/oat-project-progress/SKILL.md +63 -8
  67. package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +13 -0
  68. package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
  69. package/assets/skills/oat-project-quick-start/SKILL.md +65 -1
  70. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +156 -122
  71. package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +13 -0
  72. package/assets/skills/oat-project-reconcile/SKILL.md +94 -3
  73. package/assets/skills/oat-project-review-provide/SKILL.md +397 -12
  74. package/assets/skills/oat-project-review-receive/SKILL.md +155 -1
  75. package/assets/skills/oat-project-revise/SKILL.md +51 -4
  76. package/assets/skills/oat-project-summary/SKILL.md +150 -2
  77. package/assets/skills/oat-wave-execute/SKILL.md +3 -2
  78. package/assets/templates/implementation-brief.md +165 -0
  79. package/assets/templates/plan-brief.md +140 -0
  80. package/assets/templates/plan.md +1 -1
  81. package/assets/templates/state.md +8 -2
  82. package/dist/commands/project/closeout-check/closeout-invariant.d.ts +119 -3
  83. package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -1
  84. package/dist/commands/project/closeout-check/closeout-invariant.js +454 -2
  85. package/dist/commands/project/closeout-check/index.d.ts +21 -3
  86. package/dist/commands/project/closeout-check/index.d.ts.map +1 -1
  87. package/dist/commands/project/closeout-check/index.js +190 -4
  88. package/dist/commands/project/complete-state/index.d.ts +2 -1
  89. package/dist/commands/project/complete-state/index.d.ts.map +1 -1
  90. package/dist/commands/project/complete-state/index.js +7 -1
  91. package/dist/commands/project/delivery/check.d.ts +66 -0
  92. package/dist/commands/project/delivery/check.d.ts.map +1 -0
  93. package/dist/commands/project/delivery/check.js +232 -0
  94. package/dist/commands/project/delivery/evidence.d.ts +171 -0
  95. package/dist/commands/project/delivery/evidence.d.ts.map +1 -0
  96. package/dist/commands/project/delivery/evidence.js +902 -0
  97. package/dist/commands/project/delivery/index.d.ts +7 -0
  98. package/dist/commands/project/delivery/index.d.ts.map +1 -0
  99. package/dist/commands/project/delivery/index.js +13 -0
  100. package/dist/commands/project/delivery/refresh.d.ts +110 -0
  101. package/dist/commands/project/delivery/refresh.d.ts.map +1 -0
  102. package/dist/commands/project/delivery/refresh.js +441 -0
  103. package/dist/commands/project/index.d.ts.map +1 -1
  104. package/dist/commands/project/index.js +2 -0
  105. package/dist/commands/project/log/append.d.ts +6 -0
  106. package/dist/commands/project/log/append.d.ts.map +1 -1
  107. package/dist/commands/project/log/append.js +6 -1
  108. package/dist/commands/project/new/scaffold.d.ts +1 -1
  109. package/dist/commands/project/new/scaffold.d.ts.map +1 -1
  110. package/dist/commands/project/new/scaffold.js +81 -7
  111. package/dist/commands/project/promote/promote.d.ts +46 -1
  112. package/dist/commands/project/promote/promote.d.ts.map +1 -1
  113. package/dist/commands/project/promote/promote.js +646 -5
  114. package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
  115. package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
  116. package/dist/commands/project/validate-plan/frontmatter.js +27 -0
  117. package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
  118. package/dist/commands/project/validate-plan/index.js +62 -18
  119. package/dist/commands/project/validate-plan/profiles.d.ts +69 -0
  120. package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
  121. package/dist/commands/project/validate-plan/profiles.js +420 -0
  122. package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
  123. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
  124. package/dist/commands/project/validate-plan/validate-plan.js +5 -82
  125. package/dist/commands/shared/frontmatter.d.ts +1 -1
  126. package/dist/commands/shared/frontmatter.d.ts.map +1 -1
  127. package/dist/commands/shared/frontmatter.js +2 -0
  128. package/dist/commands/state/generate.d.ts.map +1 -1
  129. package/dist/commands/state/generate.js +82 -2
  130. package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
  131. package/dist/commands/tools/shared/pack-manifest.js +4 -0
  132. package/package.json +2 -2
@@ -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.20",
3
+ "docs-config": "0.3.20",
4
+ "docs-theme": "0.3.20",
5
+ "docs-transforms": "0.3.20"
6
6
  }
@@ -5,7 +5,7 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion
7
7
  metadata:
8
- version: 1.3.8
8
+ version: 1.3.10
9
9
  ---
10
10
 
11
11
  # Brainstorm
@@ -238,7 +238,7 @@ ACTIVE_PROJECT_PR_STATUS=""
238
238
  if [ -n "$ACTIVE_PROJECT" ] && [ -f "$ACTIVE_PROJECT/state.md" ]; then
239
239
  ACTIVE_PROJECT_VALID="true"
240
240
  # Read state.md frontmatter — extract:
241
- # oat_workflow_mode → ACTIVE_PROJECT_MODE (e.g., "spec-driven", "quick", "lite")
241
+ # oat_workflow_mode → ACTIVE_PROJECT_MODE (e.g., "spec-driven", "quick", "import", "lite", "brief", "goal")
242
242
  # oat_phase → ACTIVE_PROJECT_PHASE (e.g., "discovery", "design", "plan", "implement")
243
243
  # oat_pr_status → ACTIVE_PROJECT_PR_STATUS (e.g., "none", "open", "closed")
244
244
  fi
@@ -401,8 +401,8 @@ The payload is staged in memory only — it is not persisted between conversatio
401
401
  - Capture as new idea → confirm slug.
402
402
  - Extend existing idea → confirm which idea (slug or path).
403
403
  - Doc-to-path → confirm path.
404
- - Promote to new project → confirm slug + workflow mode (`lite`, `quick`, or `spec-driven`, with skill proposing a default based on the chosen direction and scope signals).
405
- - Active-project fold-back → for lite confirm `plan.md`; otherwise confirm which artifact (`design.md` if exists, else `discovery.md`; user signal can override toward `discovery.md` for foundational changes).
404
+ - Promote to new project → confirm slug + workflow mode (`lite`, `brief`, `goal`, `quick`, or `spec-driven`, with skill proposing a default based on the chosen direction and scope signals; propose `goal` when the direction needs several deliveries over time).
405
+ - Active-project fold-back → for lite, brief, and goal confirm `plan.md`; for import confirm `design.md` or `discovery.md` when present, else `plan.md`; otherwise confirm which artifact (`design.md` if exists, else `discovery.md`; user signal can override toward `discovery.md` for foundational changes).
406
406
  - Active-project reference file → confirm filename (default `YYYY-MM-DD-<topic>.md`).
407
407
 
408
408
  - **`none`** (currently `Inline only` and `Summarize idea directly`): no per-field confirmation at this layer. For `Inline only`, write the closing summary directly. For `Summarize idea directly`, hand off — the downstream `oat-idea-summarize` surfaces its own summary for accept/refine review.
@@ -510,7 +510,7 @@ End mode assertion when the backlog-add hands control back.
510
510
 
511
511
  #### 9g — Promote to new OAT project
512
512
 
513
- The slug and workflow mode (`lite`, `quick`, or `spec-driven`) were confirmed at
513
+ The slug and workflow mode (`lite`, `brief`, `goal`, `quick`, or `spec-driven`) were confirmed at
514
514
  step 8. Run:
515
515
 
516
516
  ```bash
@@ -552,6 +552,25 @@ fi
552
552
  # END LITE PROJECT PROMOTION CONTRACT
553
553
  ```
554
554
 
555
+ **Brief branch:** When mode is `brief`, the scaffold holds `plan.md` (the
556
+ `plan-brief` template), `implementation.md`, and `references/research/`, and
557
+ no `discovery.md`. Write the synthesized payload (`summary`, `motivation`,
558
+ `approachesConsidered`, `chosenDirection`, key decisions, `openQuestions`) to
559
+ `<project>/references/research/brainstorm-YYYY-MM-DD.md` and leave `plan.md`
560
+ as scaffolded: `oat-project-brief` authors the brief through its interview,
561
+ reading that research first. Do not create `discovery.md` or `design.md`.
562
+ Leave the project state at plan/in-progress, print the `oat-project-brief`
563
+ handoff, and stop.
564
+
565
+ **Goal branch:** When mode is `goal`, arrive exactly as the brief branch does:
566
+ the goal scaffold holds the same files (its `plan.md` carries
567
+ `oat_plan_source: goal` and the canonical Milestones table header). Write the
568
+ synthesized payload to `<project>/references/research/brainstorm-YYYY-MM-DD.md`,
569
+ leave `plan.md` as scaffolded for `oat-project-goal` to author through its
570
+ interview (including the milestone split), do not create `discovery.md` or
571
+ `design.md`, leave the project state at plan/in-progress, print the
572
+ `oat-project-goal` handoff, and stop.
573
+
555
574
  **Quick/spec-driven branch:** Only for those two modes, continue with the
556
575
  discovery flow below.
557
576
 
@@ -598,11 +617,14 @@ The 3-way router fires once per session. After convergence resumes (e.g., the us
598
617
 
599
618
  #### 9i — Active project: fold-back to upstream artifact
600
619
 
601
- Uniform across spec-driven, quick, and lite modes. Differs only in which plan-authoring skill the handoff prompt addresses (resolved by `ACTIVE_PROJECT_MODE` and `ACTIVE_PROJECT_PR_STATUS`).
620
+ Uniform across spec-driven, quick, import, lite, brief, and goal modes. Differs only in which plan-authoring skill the handoff prompt addresses (resolved by `ACTIVE_PROJECT_MODE` and `ACTIVE_PROJECT_PR_STATUS`).
602
621
 
603
622
  **Step 1 — Pick upstream artifact.** Prefer the most-specific existing one:
604
623
 
605
624
  - For lite, always select `<ACTIVE_PROJECT>/plan.md`. Append `## Brainstorming Update` immediately above `## Phase 1`; lite has no discovery or design artifact.
625
+ - For brief, always select `<ACTIVE_PROJECT>/plan.md` (the Project Brief). Append `## Brainstorming Update` immediately above the first `## Phase` heading; brief has no discovery or design artifact, and the receiving skill folds the update into the brief's sections.
626
+ - For goal, select `<ACTIVE_PROJECT>/plan.md` exactly as for brief; the update never edits the `## Milestones` table, which the receiving skill amends.
627
+ - For import, use `design.md` or `discovery.md` when present (the rules below); otherwise `<ACTIVE_PROJECT>/plan.md`, because the import scaffold has neither.
606
628
  - `<ACTIVE_PROJECT>/design.md` if it exists (any mode — quick lightweight design counts).
607
629
  - Otherwise `<ACTIVE_PROJECT>/discovery.md`.
608
630
  - The user's signal during the conversation can override toward `discovery.md` even when `design.md` exists ("this is foundational" → discovery; "this is a design refinement" → design).
@@ -674,7 +696,7 @@ beside another dirty project file must take Step 4.
674
696
 
675
697
  For non-synced projects, use the explicit `--` filename form. **Never `git add -A`. Never directory globs.** Other working-tree paths are not touched by this commit. For synced projects, `FOLD_BACK_COMMIT_SHA` comes from the push JSON rather than the parent branch.
676
698
 
677
- 3. `<artifact-basename>` is `plan.md` for lite, otherwise `design.md` or `discovery.md` depending on which was chosen. `<project-name>` is the active project's slug.
699
+ 3. `<artifact-basename>` is `plan.md` for lite, brief, and goal (and for import when it has no `design.md` or `discovery.md`), otherwise `design.md` or `discovery.md` depending on which was chosen. `<project-name>` is the active project's slug.
678
700
 
679
701
  4. If the guarded persistence succeeded → proceed to step 5 (handoff prompt).
680
702
 
@@ -749,8 +771,35 @@ Resolve the handoff target by `ACTIVE_PROJECT_MODE` and `ACTIVE_PROJECT_PR_STATU
749
771
  | spec-driven | none / closed | `oat-project-plan` |
750
772
  | quick | none / closed | `oat-project-quick-start` |
751
773
  | lite | none / closed | `oat-project-lite` |
774
+ | import | none / closed | `oat-project-import-plan` |
775
+ | brief | none / closed | `oat-project-brief` |
776
+ | goal | none / closed | `oat-project-goal` |
752
777
  | any mode | open (`oat_pr_status: open`) | `oat-project-revise` |
753
778
 
779
+ For brief, `oat-project-brief` is the target while the brief is still in
780
+ planning (`oat_phase: plan`); once implementation has started
781
+ (`oat_phase: implement`), the target is `oat-project-implement`, which
782
+ integrates the update as new or amended phases and stops for the brief's
783
+ focused realignment when the update changes an Outcome, a Constraint, a
784
+ Decision, the authority, the endpoint, or the agreed Approach. For brief, the
785
+ prompt's last two sentences read "Integrate the new content into the brief as
786
+ new or amended phases. Don't refresh the brief — preserve the review table and
787
+ the journal." instead.
788
+
789
+ For goal, `oat-project-goal` is the target: it folds the update into the
790
+ brief as an amendment through its review ladder, during authoring or at the
791
+ next re-alignment (`delivered`). While a milestone is active, an update that
792
+ stays inside that milestone's approved Outcomes and Approach goes to
793
+ `oat-project-implement` instead, which adds the new phases to the active
794
+ milestone's `## Milestones` row; anything else waits for re-alignment. The
795
+ prompt's last two sentences read as for brief.
796
+
797
+ With an open PR in goal mode the open PR is a registered delivery, and
798
+ `oat-project-revise` requires an explicit target. Name it in the prompt: add
799
+ "Target: <mNN>/<dNN> (the open delivery)." after its first sentence, with the
800
+ milestone and delivery IDs read from the `oat_deliveries` entry whose member
801
+ URL is `oat_pr_url`.
802
+
754
803
  Print the handoff prompt template, substituting `<skill-name>`, `<artifact>`, `<hash>`, and `<subject>` from the actual branch commit or synced push receipt:
755
804
 
756
805
  ```
@@ -822,9 +871,9 @@ End mode assertion when the split handoff completes or reports its own blocker.
822
871
  - ✅ The terminal-state picker conditionally includes `Promote to N projects` only when `oat project split evaluate-signals` reports `triggered: true`; small-scope convergence keeps the option hidden.
823
872
  - ✅ Synthesis payload is built per the design Data Models `SynthesizedPayload` schema: `title`, `summary`, `motivation`, `vision`, `approachesConsidered[]`, `chosenDirection`, `openQuestions[]`, `nextSteps[]`, `transcriptSessionNote`.
824
873
  - ✅ Confirmation pattern matches `references/destinations.md`: `full` for scoped backlog item (field-by-field with example wording), `minimal` for slug/path/artifact destinations, `none` for inline-only and summarize-idea-directly.
825
- - ✅ Each handoff branch (9a-9k) reads the correct downstream `SKILL.md` path and enters at the documented step. Project promotion writes `discovery.md` only — never `design.md` — and does not auto-chain into the next phase.
874
+ - ✅ Each handoff branch (9a-9k) reads the correct downstream `SKILL.md` path and enters at the documented step. Project promotion writes `discovery.md` for quick/spec-driven, `plan.md` for lite, and a `references/research/` note for brief and goal — never `design.md` — and does not auto-chain into the next phase.
826
875
  - ✅ Doc-to-path validation handles all four cases: path-is-directory, parent-missing (with explicit out-of-repo confirmation), file-already-exists (overwrite or rename), unwritable (surface OS error).
827
876
  - ✅ Fold-back persistence safety contract honored: preflight `git status --porcelain -- "$ARTIFACT_PATH"` runs before any artifact mutation; clean → append + exact-path branch commit for shared/local or validated `oat project push --json` for synced; dirty → three-option picker (persist-prior-first / mix / abort-to-reference-file); handoff prompt prints only after the scope-appropriate receipt succeeds.
828
- - ✅ Handoff target for fold-back resolves correctly per `oat_workflow_mode` + `oat_pr_status`: `oat-project-plan` (spec-driven, no/closed PR) / `oat-project-quick-start` (quick, no/closed PR) / `oat-project-lite` (lite, no/closed PR) / `oat-project-revise` (any mode, open PR).
877
+ - ✅ Handoff target for fold-back resolves correctly per `oat_workflow_mode` + `oat_pr_status`: `oat-project-plan` (spec-driven, no/closed PR) / `oat-project-quick-start` (quick, no/closed PR) / `oat-project-lite` (lite, no/closed PR) / `oat-project-import-plan` (import, no/closed PR) / `oat-project-brief` or `oat-project-implement` (brief, no/closed PR, by phase) / `oat-project-goal` or `oat-project-implement` (goal, no/closed PR, by milestone state) / `oat-project-revise` (any mode, open PR; goal names the target delivery).
829
878
  - ✅ Active-project 3-way router (related / independent / supplementary) fires before the standard pack-filtered picker when both `WORKFLOWS_INSTALLED == "true"` and `ACTIVE_PROJECT_VALID == "true"`.
830
879
  - ✅ Skill validates cleanly under `pnpm oat:validate-skills` (frontmatter contract, allowed-tools, mode-assertion structure).
@@ -122,8 +122,8 @@ Confirm to write this to a new backlog item file, or tell me what to change.
122
122
  **Required template fields:** `title`, `summary` (Initial Request), `approachesConsidered` (Solution Space), `chosenDirection` (Chosen Direction), key decisions, `openQuestions`. Template: `.oat/templates/discovery.md` (consumed via `oat project new`).
123
123
  **Optional template fields:** `motivation`, `vision`, `nextSteps`.
124
124
  **Confirmation pattern:** `minimal` (slug + workflow mode)
125
- Skill proposes `quick` vs `spec-driven` mode based on `chosenDirection` and scope signals from the conversation. User picks; skill confirms slug.
126
- **Handoff target:** Run `oat project new <slug> --mode <mode>` to scaffold. Write field-filled `discovery.md` only (Initial Request, Solution Space with approaches, Chosen Direction, Key Decisions, Open Questions). Mark `oat_status: complete`, `oat_ready_for: oat-project-quick-start` (for quick mode) or `oat-project-design` (for spec-driven). Update project `state.md` (phase=discovery, status=complete). Print pointer to next skill. **Stop — do NOT inline-execute the next phase.** Project promotion writes `discovery.md` only, never `design.md`.
125
+ Skill proposes `lite`, `brief`, `goal`, `quick`, or `spec-driven` mode based on `chosenDirection` and scope signals from the conversation (`goal` when the direction needs several deliveries over time). User picks; skill confirms slug.
126
+ **Handoff target:** Run `oat project new <slug> --mode <mode>` to scaffold. Write field-filled `discovery.md` only (Initial Request, Solution Space with approaches, Chosen Direction, Key Decisions, Open Questions). Mark `oat_status: complete`, `oat_ready_for: oat-project-quick-start` (for quick mode) or `oat-project-design` (for spec-driven). Update project `state.md` (phase=discovery, status=complete). Print pointer to next skill. **Stop — do NOT inline-execute the next phase.** Project promotion writes `discovery.md` only, never `design.md`. For `brief` mode there is no `discovery.md`: write the synthesized payload to `references/research/brainstorm-YYYY-MM-DD.md`, leave the scaffolded `plan.md` (the Project Brief) for `oat-project-brief` to author through its interview, keep state at plan/in-progress, and point to `oat-project-brief`. `goal` mode arrives the same way and points to `oat-project-goal`, which authors the brief and its milestone split. For `lite` mode, fill `plan.md` as `oat-brainstorm` step 9g describes and point to `oat-project-lite`.
127
127
  **If user wants to keep brainstorming after this is offered:** return to flow with destination = promote-to-new-project. Skill probes for missing chosen direction, key decisions, and explicit open questions — these become artifact fields that read poorly when shallow.
128
128
 
129
129
  ---
@@ -132,7 +132,7 @@ Skill proposes `quick` vs `spec-driven` mode based on `chosenDirection` and scop
132
132
 
133
133
  **Pack required:** `workflows` AND an active project pointer is set (`oat config get activeProject`) AND its `state.md` is readable.
134
134
  **Trigger phrases:** "fold this into the active project", "this is feedback for the active project", "integrate this into design", "add this to discovery", explicit "for the active project" mention. Also offered as the first option when the active-project 3-way router fires after convergence (related → fold-back).
135
- **Required template fields:** which artifact (`design.md` if exists, else `discovery.md`; user signal can override), the synthesized payload's `chosenDirection`, key decisions, `transcriptSessionNote` (transcript appendix). Template: appended in-place using `## Brainstorming Update: YYYY-MM-DD — <topic>` heading.
135
+ **Required template fields:** which artifact (`plan.md` for lite, brief, and goal; for import `design.md` or `discovery.md` when present, else `plan.md`; otherwise `design.md` if exists, else `discovery.md`; user signal can override), the synthesized payload's `chosenDirection`, key decisions, `transcriptSessionNote` (transcript appendix). Template: appended in-place using `## Brainstorming Update: YYYY-MM-DD — <topic>` heading.
136
136
  **Optional template fields:** `openQuestions`, `nextSteps` — appended if surfaced during convergence.
137
137
  **Confirmation pattern:** `minimal` (which artifact + dirty-tree handling)
138
138
 
@@ -164,7 +164,15 @@ Skill name resolved per workflow mode + PR status (read from `state.md` frontmat
164
164
  | ----------- | ---------------------------- | ------------------------- |
165
165
  | spec-driven | none / closed | `oat-project-plan` |
166
166
  | quick | none / closed | `oat-project-quick-start` |
167
- | either | open (`oat_pr_status: open`) | `oat-project-revise` |
167
+ | lite | none / closed | `oat-project-lite` |
168
+ | import | none / closed | `oat-project-import-plan` |
169
+ | brief | none / closed | `oat-project-brief` |
170
+ | goal | none / closed | `oat-project-goal` |
171
+ | any mode | open (`oat_pr_status: open`) | `oat-project-revise` |
172
+
173
+ For brief, `oat-project-brief` is the target while the brief is still in planning (`oat_phase: plan`) and `oat-project-implement` once implementation has started; the handoff prompt asks for new or amended phases instead of tasks.
174
+
175
+ For goal, `oat-project-goal` is the target (an amendment during authoring or at re-alignment), or `oat-project-implement` for an update inside the active milestone's approved Outcomes and Approach. With an open PR, the goal handoff to `oat-project-revise` names the target milestone and delivery (`<mNN>/<dNN>`, from the `oat_deliveries` entry whose member URL is `oat_pr_url`), because revise requires an explicit target in goal mode.
168
176
 
169
177
  After printing the prompt, the skill stops. The user runs the plan-authoring skill at their own pace. The brainstorming skill never auto-chains into plan authoring — the deliberate transition is the point.
170
178
 
@@ -6,7 +6,7 @@ disable-model-invocation: false
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Glob, Grep, AskUserQuestion
8
8
  metadata:
9
- version: 1.0.4
9
+ version: 1.0.6
10
10
  ---
11
11
 
12
12
  # OAT Docs
@@ -146,7 +146,7 @@ Based on the docs, here's how OAT project workflows work: [answer]
146
146
  You can read more in `workflows/projects/lifecycle.md`.
147
147
 
148
148
  Would you like me to:
149
- - Start a new project? (I'd invoke oat-project-lite for single-sitting work, or oat-project-quick-start for a larger quick workflow)
149
+ - Start a new project? (I'd invoke oat-project-lite for single-sitting work, oat-project-brief for one delivery planned as a Project Brief, oat-project-goal for an outcome delivered over several milestones, or oat-project-quick-start for a larger quick workflow)
150
150
  - Check your current project status? (I'd read your active project's state.md)
151
151
  ```
152
152
 
@@ -170,9 +170,18 @@ To create a new OAT project, you have three main approaches:
170
170
  3. **Spec-driven mode** (for complex features):
171
171
  oat-project-new <project-name>
172
172
 
173
+ Brief mode is a fourth option for one delivery whose design you can agree in
174
+ conversation:
175
+ oat-project-brief <project-name> "project description"
176
+
177
+ Goal mode is a fifth option for an outcome delivered over several milestones:
178
+ oat-project-goal <project-name> "project description"
179
+
173
180
  Lite combines the interview and requirements contract in one plan for a
174
- single sitting. Quick mode goes straight from discovery to plan. Spec-driven
175
- mode adds formal spec and design phases. If you invoke quick mode with only a
181
+ single sitting. Brief writes one reviewed Project Brief whose phases carry
182
+ intent and exit evidence instead of tasks; goal groups those phases into
183
+ milestones that are delivered and re-aligned in turn. Quick mode goes straight from
184
+ discovery to plan. Spec-driven mode adds formal spec and design phases. If you invoke quick mode with only a
176
185
  project name, it should ask you for the missing project description
177
186
  before discovery starts.
178
187
 
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
  allowed-tools: Read, Write, Glob, Grep, Bash(git:*), AskUserQuestion, Task
7
7
  user-invocable: true
8
8
  metadata:
9
- version: 1.6.3
9
+ version: 1.6.5
10
10
  ---
11
11
 
12
12
  # Review Backlog
@@ -256,7 +256,7 @@ This step mirrors the **Project Kickoff Handoffs** section of the pjm instructio
256
256
  **For each item in the agreed kickoff stack**, write or refresh `.oat/repo/pjm/handoffs/<BL-id>.md` with:
257
257
 
258
258
  - the backlog item reference — its ID **and** human-readable title **and** path (never a bare ID);
259
- - the recommended project mode (`oat-project-lite` for single-sitting work, `oat-project-quick-start` for quick work, or `oat-project-new` for spec-driven work), including which artifacts (spec/design/plan) to pre-populate from existing research when it exists;
259
+ - the recommended project mode (`oat-project-lite` for single-sitting work, `oat-project-brief` for one delivery planned as a Project Brief, `oat-project-goal` for an outcome delivered over several milestones, `oat-project-quick-start` for quick work, or `oat-project-new` for spec-driven work), including which artifacts (spec/design/plan) to pre-populate from existing research when it exists;
260
260
  - authoritative input pointers (research directories, decision records, code paths);
261
261
  - repo conventions and verification gates the item file does not restate;
262
262
  - a close-out section requiring (a) the **Backlog Lifecycle** — `oat backlog archive <id> --summary "outcome" --json` — in the same PR that ships the item, and (b) filesystem deletion of its owned handoff. Consume the complete returned `affectedPaths`, append the tracked handoff deletion, format existing text with the repository command, and commit the exact list via `oat internal commit-paths` with a unique retained identity and enabled hooks; stop if unavailable or blocked/failed. Include both old/new item names, ledger, index and rewritten references; preserve unrelated staged/unstaged work.
@@ -6,7 +6,7 @@ disable-model-invocation: true
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Write, Bash, Glob, Grep, AskUserQuestion, Task
8
8
  metadata:
9
- version: 1.0.19
9
+ version: 1.0.21
10
10
  ---
11
11
 
12
12
  # Autonomous OAT Project
@@ -74,7 +74,7 @@ waits.
74
74
 
75
75
  - Setting the two autonomy environment variables for the current process tree.
76
76
  - Resolving project home and persisted entry state.
77
- - Selecting lite, quick, or spec-driven mode from the review-density rule.
77
+ - Selecting lite, brief, quick, or spec-driven mode from the review-density rule.
78
78
  - Invoking existing OAT lifecycle and dispatch skills in their required order.
79
79
  - Auto-resolving only the gates authorized by the autonomy contract.
80
80
  - Selecting the first existing compatible dispatch-ladder config scope through
@@ -170,8 +170,9 @@ fi
170
170
  ```
171
171
 
172
172
  For a new goal, derive a safe project slug but do not hand-create the project.
173
- Mode selection in Step 2 chooses `oat-project-lite`, `oat-project-new`, or
174
- `oat-project-quick-start`, which owns scaffolding and pointer persistence. If
173
+ Mode selection in Step 2 chooses `oat-project-brief`,
174
+ `oat-project-lite`, `oat-project-new`, or `oat-project-quick-start`, which owns
175
+ scaffolding and pointer persistence. If
175
176
  the input is empty, ambiguous, collides with another project, or resolves
176
177
  outside the target repository, stop at the applicable product-judgment or
177
178
  repository-policy boundary.
@@ -225,6 +226,8 @@ Select the earliest incomplete lifecycle owner:
225
226
  | --------------------------------------------------------- | ----------------------------------------------------------- |
226
227
  | No project yet | Continue to Step 2, then invoke the selected creation skill |
227
228
  | Lite plan incomplete | `oat-project-lite` |
229
+ | Brief not yet reviewed and approved | `oat-project-brief` |
230
+ | Existing goal project (`oat_workflow_mode: goal`) | Stop at a product-judgment boundary: goal is not autonomous |
228
231
  | Quick-mode discovery, optional design, or plan incomplete | `oat-project-quick-start` |
229
232
  | Spec-driven discovery incomplete | `oat-project-discover` |
230
233
  | Spec-driven design/spec incomplete | `oat-project-design` |
@@ -299,6 +302,15 @@ For a new goal, choose mode as a rigor selector:
299
302
  - **Lite:** use when the goal is a clear, single-sitting change whose interview,
300
303
  decisions, assumptions, and validation criteria fit one combined plan and one
301
304
  sequential implementation phase.
305
+ - **Brief:** use when the goal is one delivery whose outcome and design can be
306
+ settled from evidence and recorded in one reviewed Project Brief, with
307
+ phases of intent and exit evidence instead of a pre-approved task plan.
308
+ - **Goal is excluded.** Never select `goal` for a new project, even when the
309
+ outcome needs several deliveries: each milestone's approval, re-alignment
310
+ and the terminal declaration need the user (`GOAL-11` through `GOAL-13` in
311
+ the autonomy contract), so an autonomous run cannot carry a goal end to end.
312
+ Choose brief for the first delivery, or stop at a product-judgment boundary
313
+ when one delivery cannot honestly represent the outcome.
302
314
 
303
315
  Base the choice on uncertainty, integration risk, architecture decisions,
304
316
  reversibility, and review needs—not task count. Record the chosen mode and
@@ -306,8 +318,8 @@ evidence-based review-density rationale in the first owned project artifact.
306
318
  If evidence cannot support the choice without changing product intent, stop at
307
319
  a product-judgment boundary.
308
320
 
309
- Invoke `oat-project-new` for spec-driven mode, `oat-project-quick-start` for quick, or `oat-project-lite` for lite;
310
- these three entry routes own new-project setup. Load the selected creation
321
+ Invoke `oat-project-new` for spec-driven mode, `oat-project-quick-start` for quick, `oat-project-lite` for lite, or `oat-project-brief` for brief;
322
+ these four entry routes own new-project setup. Load the selected creation
311
323
  skill's current `SKILL.md` and follow it, or dispatch a child that carries it,
312
324
  never a remembered outcome. Existing projects retain their persisted workflow
313
325
  mode.
@@ -507,7 +519,7 @@ On success, report:
507
519
  ```text
508
520
  Autonomous run: complete
509
521
  Project: {path}
510
- Workflow mode: {lite | quick | spec-driven}
522
+ Workflow mode: {lite | brief | quick | spec-driven}
511
523
  Entry state: {phase}
512
524
  Phases executed: {list}
513
525
  Reviews: {scope → route, target, independence, record}
@@ -585,7 +597,7 @@ reconciliation path. Do not guess or overwrite the tracker.
585
597
  - ✅ Both autonomy signals were active only for the current process tree.
586
598
  - ✅ The entry phase came from persisted OAT state and completed work was not
587
599
  replayed.
588
- - ✅ Lite/quick/spec-driven selection, when needed, recorded a review-density
600
+ - ✅ Lite/brief/quick/spec-driven selection, when needed, recorded a review-density
589
601
  rationale.
590
602
  - ✅ External-integration research and evidence gaps were recorded.
591
603
  - ✅ Every required review has dispatch provenance and no accepted launch fell