@open-agent-toolkit/cli 0.3.18 → 0.3.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/assets/agents/oat-phase-implementer.md +104 -3
- package/assets/agents/oat-reviewer.md +20 -5
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/reference/cli-reference.md +15 -7
- package/assets/docs/reference/oat-directory-structure.md +2 -0
- package/assets/docs/reference/project-artifacts.md +72 -1
- package/assets/docs/reference/project-state-machine.md +55 -6
- package/assets/docs/skills/brainstorm.md +3 -1
- package/assets/docs/skills/index.md +13 -9
- package/assets/docs/workflows/advanced/autonomy.md +12 -2
- package/assets/docs/workflows/advanced/dispatch-ceiling.md +2 -2
- package/assets/docs/workflows/advanced/workflow-gates.md +25 -7
- package/assets/docs/workflows/approvals-and-automation.md +25 -9
- package/assets/docs/workflows/choose-workflow.md +24 -8
- package/assets/docs/workflows/ideas/index.md +1 -1
- package/assets/docs/workflows/ideas/lifecycle.md +3 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +83 -5
- package/assets/docs/workflows/projects/closeout/pr-flow.md +9 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +27 -2
- package/assets/docs/workflows/projects/execution/implementation-execution.md +15 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +20 -1
- package/assets/docs/workflows/projects/lifecycle.md +172 -9
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +18 -1
- package/assets/docs/workflows/projects/planning/planning-skills.md +13 -10
- package/assets/docs/workflows/projects/planning/starting-projects.md +138 -20
- package/assets/docs/workflows/projects/reviews/index.md +36 -2
- package/assets/docs/workflows/projects/reviews/review-flavors.md +7 -3
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-brainstorm/SKILL.md +58 -9
- package/assets/skills/oat-brainstorm/references/destinations.md +12 -4
- package/assets/skills/oat-docs/SKILL.md +13 -4
- package/assets/skills/oat-pjm-review-backlog/SKILL.md +2 -2
- package/assets/skills/oat-project-autonomous/SKILL.md +20 -8
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +156 -122
- package/assets/skills/oat-project-brief/SKILL.md +592 -0
- package/assets/skills/oat-project-brief/references/brief-contract.md +743 -0
- package/assets/skills/oat-project-brief/references/docs/autonomy-contract.md +412 -0
- package/assets/skills/oat-project-brief/references/docs/gate-approval-record.md +93 -0
- package/assets/skills/oat-project-capture/SKILL.md +2 -2
- package/assets/skills/oat-project-complete/SKILL.md +16 -2
- package/assets/skills/oat-project-discover/SKILL.md +4 -2
- package/assets/skills/oat-project-dispatch-subagents/SKILL.md +9 -1
- package/assets/skills/oat-project-document/SKILL.md +17 -1
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-goal/SKILL.md +697 -0
- package/assets/skills/oat-project-goal/references/docs/autonomy-contract.md +412 -0
- package/assets/skills/oat-project-goal/references/docs/gate-approval-record.md +93 -0
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +107 -0
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-implement/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-implement/references/phase-execution.md +173 -1
- package/assets/skills/oat-project-implement/references/plan-and-resume.md +124 -3
- package/assets/skills/oat-project-import-plan/SKILL.md +5 -1
- package/assets/skills/oat-project-lite/SKILL.md +4 -1
- package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-new/SKILL.md +5 -1
- package/assets/skills/oat-project-next/SKILL.md +71 -14
- package/assets/skills/oat-project-next/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-plan/SKILL.md +24 -3
- package/assets/skills/oat-project-plan-writing/SKILL.md +8 -4
- package/assets/skills/oat-project-pr-final/SKILL.md +65 -3
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-pr-progress/SKILL.md +125 -4
- package/assets/skills/oat-project-progress/SKILL.md +63 -8
- package/assets/skills/oat-project-progress/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-promote-spec-driven/SKILL.md +2 -2
- package/assets/skills/oat-project-quick-start/SKILL.md +65 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +156 -122
- package/assets/skills/oat-project-quick-start/references/docs/gate-approval-record.md +13 -0
- package/assets/skills/oat-project-reconcile/SKILL.md +94 -3
- package/assets/skills/oat-project-review-provide/SKILL.md +397 -12
- package/assets/skills/oat-project-review-receive/SKILL.md +155 -1
- package/assets/skills/oat-project-revise/SKILL.md +51 -4
- package/assets/skills/oat-project-summary/SKILL.md +150 -2
- package/assets/skills/oat-wave-execute/SKILL.md +3 -2
- package/assets/templates/implementation-brief.md +165 -0
- package/assets/templates/plan-brief.md +140 -0
- package/assets/templates/plan.md +1 -1
- package/assets/templates/state.md +8 -2
- package/dist/commands/project/closeout-check/closeout-invariant.d.ts +119 -3
- package/dist/commands/project/closeout-check/closeout-invariant.d.ts.map +1 -1
- package/dist/commands/project/closeout-check/closeout-invariant.js +454 -2
- package/dist/commands/project/closeout-check/index.d.ts +21 -3
- package/dist/commands/project/closeout-check/index.d.ts.map +1 -1
- package/dist/commands/project/closeout-check/index.js +190 -4
- package/dist/commands/project/complete-state/index.d.ts +2 -1
- package/dist/commands/project/complete-state/index.d.ts.map +1 -1
- package/dist/commands/project/complete-state/index.js +7 -1
- package/dist/commands/project/delivery/check.d.ts +66 -0
- package/dist/commands/project/delivery/check.d.ts.map +1 -0
- package/dist/commands/project/delivery/check.js +232 -0
- package/dist/commands/project/delivery/evidence.d.ts +171 -0
- package/dist/commands/project/delivery/evidence.d.ts.map +1 -0
- package/dist/commands/project/delivery/evidence.js +902 -0
- package/dist/commands/project/delivery/index.d.ts +7 -0
- package/dist/commands/project/delivery/index.d.ts.map +1 -0
- package/dist/commands/project/delivery/index.js +13 -0
- package/dist/commands/project/delivery/refresh.d.ts +110 -0
- package/dist/commands/project/delivery/refresh.d.ts.map +1 -0
- package/dist/commands/project/delivery/refresh.js +441 -0
- package/dist/commands/project/index.d.ts.map +1 -1
- package/dist/commands/project/index.js +2 -0
- package/dist/commands/project/log/append.d.ts +6 -0
- package/dist/commands/project/log/append.d.ts.map +1 -1
- package/dist/commands/project/log/append.js +6 -1
- package/dist/commands/project/new/scaffold.d.ts +1 -1
- package/dist/commands/project/new/scaffold.d.ts.map +1 -1
- package/dist/commands/project/new/scaffold.js +81 -7
- package/dist/commands/project/promote/promote.d.ts +46 -1
- package/dist/commands/project/promote/promote.d.ts.map +1 -1
- package/dist/commands/project/promote/promote.js +646 -5
- package/dist/commands/project/validate-plan/frontmatter.d.ts +12 -0
- package/dist/commands/project/validate-plan/frontmatter.d.ts.map +1 -0
- package/dist/commands/project/validate-plan/frontmatter.js +27 -0
- package/dist/commands/project/validate-plan/index.d.ts.map +1 -1
- package/dist/commands/project/validate-plan/index.js +62 -18
- package/dist/commands/project/validate-plan/profiles.d.ts +69 -0
- package/dist/commands/project/validate-plan/profiles.d.ts.map +1 -0
- package/dist/commands/project/validate-plan/profiles.js +420 -0
- package/dist/commands/project/validate-plan/validate-plan.d.ts +3 -19
- package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -1
- package/dist/commands/project/validate-plan/validate-plan.js +5 -82
- package/dist/commands/shared/frontmatter.d.ts +1 -1
- package/dist/commands/shared/frontmatter.d.ts.map +1 -1
- package/dist/commands/shared/frontmatter.js +2 -0
- package/dist/commands/state/generate.d.ts.map +1 -1
- package/dist/commands/state/generate.js +82 -2
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +4 -0
- package/package.json +2 -2
|
@@ -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
|
+
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,
|
|
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`
|
|
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 `
|
|
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
|
-
|
|
|
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.
|
|
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.
|
|
175
|
-
|
|
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.
|
|
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.
|
|
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-
|
|
174
|
-
`oat-project-quick-start`, which owns
|
|
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-
|
|
310
|
-
these
|
|
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
|