@open-agent-toolkit/cli 0.3.12 → 0.3.14
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 +1 -1
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/contributing/index.md +14 -1
- package/assets/docs/contributing/skills.md +64 -2
- package/assets/docs/contributing/smoke-testing.md +3 -3
- package/assets/docs/contributing/updating-model-guidance.md +2 -2
- package/assets/docs/contributing/verifying-cursor-pins.md +1 -1
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +112 -15
- package/assets/docs/docs-tooling/agent-instructions.md +131 -0
- package/assets/docs/docs-tooling/commands.md +74 -30
- package/assets/docs/docs-tooling/index.md +7 -6
- package/assets/docs/docs-tooling/meta.json +1 -1
- package/assets/docs/docs-tooling/workflows.md +357 -11
- package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
- package/assets/docs/{guide → getting-started}/concepts.md +28 -10
- package/assets/docs/getting-started/index.md +68 -0
- package/assets/docs/getting-started/meta.json +4 -0
- package/assets/docs/getting-started/quickstart.md +174 -0
- package/assets/docs/{cli-utilities → getting-started}/tool-packs.md +146 -15
- package/assets/docs/index.md +47 -48
- package/assets/docs/meta.json +6 -7
- package/assets/docs/provider-sync/commands.md +26 -3
- package/assets/docs/provider-sync/config.md +60 -1
- package/assets/docs/provider-sync/index.md +31 -15
- package/assets/docs/provider-sync/instruction-sync.md +43 -5
- package/assets/docs/provider-sync/manifest-and-drift.md +85 -0
- package/assets/docs/provider-sync/meta.json +1 -0
- package/assets/docs/provider-sync/pilot-with-a-team.md +236 -0
- package/assets/docs/provider-sync/scope-and-surface.md +37 -3
- package/assets/docs/reference/cli-reference.md +34 -34
- package/assets/docs/{cli-utilities → reference}/config-and-local-state.md +25 -9
- package/assets/docs/{cli-utilities → reference}/configuration.md +151 -34
- package/assets/docs/reference/docs-index-contract.md +19 -4
- package/assets/docs/reference/file-locations.md +7 -2
- package/assets/docs/reference/index.md +13 -1
- package/assets/docs/reference/meta.json +7 -1
- package/assets/docs/reference/oat-directory-structure.md +24 -22
- package/assets/docs/{workflows/projects/artifacts.md → reference/project-artifacts.md} +4 -4
- package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md} +1 -1
- package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md} +2 -2
- package/assets/docs/reference/troubleshooting.md +125 -10
- package/assets/docs/reference/what-oat-writes.md +410 -0
- package/assets/docs/skills/brainstorm.md +77 -0
- package/assets/docs/skills/diagnostics.md +56 -0
- package/assets/docs/{workflows/skills → skills}/explainer-kit.md +121 -0
- package/assets/docs/skills/index.md +416 -0
- package/assets/docs/{workflows/skills → skills}/meta.json +4 -2
- package/assets/docs/{workflows/skills → skills}/recon.md +49 -0
- package/assets/docs/skills/repo-improve.md +254 -0
- package/assets/docs/skills/research.md +237 -0
- package/assets/docs/skills/session-closeout.md +61 -0
- package/assets/docs/workflows/advanced/autonomy.md +344 -0
- package/assets/docs/workflows/{projects → advanced}/cursor-cloud.md +69 -1
- package/assets/docs/workflows/{projects → advanced}/dispatch-ceiling.md +163 -18
- package/assets/docs/workflows/{projects → advanced}/evidence-layers.md +1 -1
- package/assets/docs/workflows/advanced/index.md +19 -0
- package/assets/docs/workflows/advanced/meta.json +13 -0
- package/assets/docs/workflows/{projects → advanced}/orchestration-model.md +63 -4
- package/assets/docs/workflows/{projects → advanced}/programmatic-execution.md +4 -4
- package/assets/docs/{cli-utilities → workflows/advanced}/workflow-gates.md +162 -8
- package/assets/docs/workflows/advanced/worktree-bootstrap.md +83 -0
- package/assets/docs/workflows/approvals-and-automation.md +261 -0
- package/assets/docs/workflows/backlog-and-planning/backlog-lifecycle.md +348 -0
- package/assets/docs/workflows/backlog-and-planning/index.md +13 -0
- package/assets/docs/workflows/backlog-and-planning/meta.json +4 -0
- package/assets/docs/workflows/backlog-and-planning/remote-project-management.md +303 -0
- package/assets/docs/workflows/choose-workflow.md +114 -0
- package/assets/docs/workflows/ideas/index.md +3 -3
- package/assets/docs/workflows/ideas/lifecycle.md +218 -1
- package/assets/docs/workflows/index.md +11 -62
- package/assets/docs/workflows/meta.json +10 -2
- package/assets/docs/workflows/projects/closeout/closeout-skills.md +538 -0
- package/assets/docs/workflows/projects/closeout/index.md +14 -0
- package/assets/docs/workflows/projects/closeout/meta.json +4 -0
- package/assets/docs/workflows/projects/{pr-flow.md → closeout/pr-flow.md} +1 -1
- package/assets/docs/workflows/projects/{retro.md → closeout/retro.md} +1 -1
- package/assets/docs/workflows/projects/execution/execution-skills.md +258 -0
- package/assets/docs/workflows/projects/{implementation-execution.md → execution/implementation-execution.md} +8 -8
- package/assets/docs/workflows/projects/execution/index.md +15 -0
- package/assets/docs/workflows/projects/execution/meta.json +9 -0
- package/assets/docs/workflows/projects/execution/picking-up-projects.md +376 -0
- package/assets/docs/{cli-utilities → workflows/projects/execution}/project-log.md +1 -1
- package/assets/docs/workflows/projects/index.md +38 -49
- package/assets/docs/workflows/projects/lifecycle.md +47 -11
- package/assets/docs/workflows/projects/meta.json +2 -23
- package/assets/docs/workflows/projects/{design-modes.md → planning/design-modes.md} +29 -0
- package/assets/docs/workflows/projects/planning/hill-checkpoints.md +167 -0
- package/assets/docs/workflows/projects/planning/index.md +16 -0
- package/assets/docs/workflows/projects/planning/meta.json +10 -0
- package/assets/docs/workflows/projects/planning/planning-skills.md +381 -0
- package/assets/docs/workflows/projects/{splitting.md → planning/splitting.md} +3 -3
- package/assets/docs/workflows/projects/planning/starting-projects.md +511 -0
- package/assets/docs/workflows/projects/{reviews.md → reviews/index.md} +51 -5
- package/assets/docs/workflows/projects/reviews/meta.json +4 -0
- package/assets/docs/workflows/projects/reviews/review-flavors.md +643 -0
- package/assets/docs/workflows/projects/{reviewing-oat-prs.md → reviews/reviewing-oat-prs.md} +3 -3
- package/assets/docs/workflows/waves/index.md +12 -0
- package/assets/docs/workflows/waves/meta.json +4 -0
- package/assets/docs/workflows/waves/wave-workflows.md +206 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-docs/SKILL.md +19 -19
- package/assets/skills/oat-docs-analyze/SKILL.md +27 -7
- package/assets/skills/oat-docs-analyze/references/quality-checklist.md +16 -3
- package/assets/skills/oat-docs-apply/SKILL.md +20 -3
- package/assets/skills/oat-docs-authoring/SKILL.md +11 -7
- package/assets/skills/oat-docs-authoring/references/docs-root-resolution.md +12 -5
- package/assets/skills/oat-docs-authoring/references/lifecycle-boundaries.md +7 -7
- package/assets/skills/oat-docs-authoring/references/oat-fumadocs-contract.md +13 -3
- package/assets/skills/oat-docs-authoring/references/targeted-authoring-workflow.md +5 -4
- package/assets/skills/oat-docs-authoring/references/validation.md +11 -1
- package/assets/skills/oat-docs-bootstrap/SKILL.md +31 -8
- package/assets/skills/oat-docs-bootstrap/assets/AGENTS.md.template +2 -1
- package/assets/skills/oat-doctor/SKILL.md +25 -25
- package/assets/skills/oat-project-document/SKILL.md +21 -2
- package/assets/templates/docs-markdown/contributing.md +35 -0
- package/assets/templates/docs-markdown/index.md +18 -0
- package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
- package/dist/commands/docs/index-generate/index.js +41 -8
- package/dist/commands/docs/init/index.d.ts +17 -2
- package/dist/commands/docs/init/index.d.ts.map +1 -1
- package/dist/commands/docs/init/index.js +194 -14
- package/dist/commands/docs/init/markdown.d.ts +39 -0
- package/dist/commands/docs/init/markdown.d.ts.map +1 -0
- package/dist/commands/docs/init/markdown.js +317 -0
- package/dist/commands/docs/init/resolve-options.d.ts +3 -1
- package/dist/commands/docs/init/resolve-options.d.ts.map +1 -1
- package/dist/commands/docs/init/resolve-options.js +36 -0
- package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
- package/dist/commands/docs/init/scaffold.js +11 -0
- package/dist/commands/shared/agents-md.d.ts +7 -0
- package/dist/commands/shared/agents-md.d.ts.map +1 -1
- package/dist/commands/shared/agents-md.js +131 -91
- package/dist/commands/tools/shared/pack-manifest.d.ts.map +1 -1
- package/dist/commands/tools/shared/pack-manifest.js +1 -0
- package/dist/config/oat-config.d.ts +2 -1
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +4 -2
- package/package.json +2 -2
- package/assets/docs/cli-utilities/backlog-lifecycle.md +0 -80
- package/assets/docs/cli-utilities/index.md +0 -74
- package/assets/docs/cli-utilities/meta.json +0 -13
- package/assets/docs/cli-utilities/remote-project-management.md +0 -191
- package/assets/docs/guide/index.md +0 -31
- package/assets/docs/guide/meta.json +0 -4
- package/assets/docs/quickstart.md +0 -88
- package/assets/docs/workflows/projects/autonomy.md +0 -196
- package/assets/docs/workflows/projects/hill-checkpoints.md +0 -93
- package/assets/docs/workflows/projects/picking-up-projects.md +0 -124
- package/assets/docs/workflows/projects/review-flavors.md +0 -138
- package/assets/docs/workflows/skills/index.md +0 -184
- package/assets/docs/workflows/skills/repo-improve.md +0 -89
- package/assets/docs/workflows/wave-workflows.md +0 -77
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Picking Up Projects
|
|
3
|
-
description: Continue a synced OAT project on another machine or from another user through its dedicated Git ref.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Picking Up a Project on Another Machine or From Another User
|
|
7
|
-
|
|
8
|
-
Synced projects travel through ordinary Git refs on `origin`. Their artifact
|
|
9
|
-
history is independent from the implementation branch, so a teammate or a
|
|
10
|
-
second machine can continue the project even before the branch carrying its
|
|
11
|
-
record file merges.
|
|
12
|
-
|
|
13
|
-
## Discover and adopt
|
|
14
|
-
|
|
15
|
-
From any checkout with access to `origin`:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
oat project list --remote
|
|
19
|
-
oat project pull <project>
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
`list --remote` discovers `refs/oat/projects/*` directly. `pull` can adopt a
|
|
23
|
-
remote project that has no local record yet: it writes the record and creates
|
|
24
|
-
the nested checkout. When the selected project is a coordination parent, pull
|
|
25
|
-
also discovers and pulls its child projects by default. Pass `--no-children`
|
|
26
|
-
only when you intentionally want the selected project alone.
|
|
27
|
-
|
|
28
|
-
Completed projects are not adoption candidates. Their authoritative ref is
|
|
29
|
-
`refs/oat/completed/<project>`; both `pull` and `open` return a terminal
|
|
30
|
-
diagnosis instead of recreating an archived checkout or record. A same-SHA
|
|
31
|
-
active ref may remain as an inert alias and is ignored. Differing active and
|
|
32
|
-
completed SHAs require repair before lifecycle work continues. The same guard
|
|
33
|
-
applies to coordination children: a terminal child discovered while pulling
|
|
34
|
-
its parent is reported and skipped rather than adopted.
|
|
35
|
-
|
|
36
|
-
After adoption, set or open the project through the normal lifecycle command
|
|
37
|
-
you are using. Arrival-aware project skills pull before reading its artifacts.
|
|
38
|
-
|
|
39
|
-
An adopted quick-workflow project whose `plan.md` is not implementation-ready
|
|
40
|
-
resumes through `oat-project-quick-start`, which continues it in place without
|
|
41
|
-
re-scaffolding, rather than through `oat-project-implement`. `oat-project-plan`,
|
|
42
|
-
`oat-project-progress`, and `oat-project-next` all route by the single **quick
|
|
43
|
-
plan readiness** predicate that `oat-project-quick-start` defines; readiness is
|
|
44
|
-
never inferred from the presence of tasks alone.
|
|
45
|
-
|
|
46
|
-
`oat project status` and `oat project list` apply the same predicate. For a
|
|
47
|
-
quick project at the `plan` phase they recommend `oat-project-quick-start`, with
|
|
48
|
-
the unmet clause in the reason, until the plan carries ready frontmatter, a
|
|
49
|
-
durable `## Reviews` disposition, and a substantive task; only then do they
|
|
50
|
-
recommend `oat-project-implement`. Recommendations for lite, spec-driven, and
|
|
51
|
-
import projects are unchanged, because the predicate is quick-workflow policy.
|
|
52
|
-
|
|
53
|
-
## What travels
|
|
54
|
-
|
|
55
|
-
- The project ref carries the complete active artifact tree and its history.
|
|
56
|
-
- The tracked JSON record travels once the branch containing it is shared or
|
|
57
|
-
merged.
|
|
58
|
-
- Coordination relationships travel in the artifacts and records pulled with
|
|
59
|
-
the project.
|
|
60
|
-
|
|
61
|
-
## What does not travel automatically
|
|
62
|
-
|
|
63
|
-
- `local` projects never leave their original machine.
|
|
64
|
-
- GitHub forks copy branches and tags, but not the `refs/oat/*` namespace. A
|
|
65
|
-
fork collaborator needs access to the upstream remote or an explicit ref
|
|
66
|
-
transfer.
|
|
67
|
-
- A normal `git clone` fetches branches and tags, not custom OAT refs. OAT
|
|
68
|
-
handles remote discovery with `ls-remote` and explicitly fetches the selected
|
|
69
|
-
project ref during sync operations such as `pull`; do not expect a generic
|
|
70
|
-
clone or `git fetch` to materialize the checkout.
|
|
71
|
-
|
|
72
|
-
## Why completed refs remain durable
|
|
73
|
-
|
|
74
|
-
`refs/oat/completed/<project>` is a real Git ref locally and on `origin`. The
|
|
75
|
-
objects reachable from it remain garbage-collection roots even when no nested
|
|
76
|
-
checkout exists. Branch pruning, remote-tracking-ref pruning, and
|
|
77
|
-
`git worktree prune` do not delete the completed ref. Completion deliberately
|
|
78
|
-
retains this terminal reachability root so pinned PR links remain valid.
|
|
79
|
-
|
|
80
|
-
Only the explicit destructive operation `oat project prune` removes the
|
|
81
|
-
completed ref and any matching active alias. Treat that as permanent Git
|
|
82
|
-
project-history reachability deletion and review its warnings before using
|
|
83
|
-
`--force`. Prune does not remove durable local or S3 archive snapshots, and it
|
|
84
|
-
refuses to delete either ref when their SHAs differ.
|
|
85
|
-
|
|
86
|
-
## Archive contents
|
|
87
|
-
|
|
88
|
-
When archive is selected, completion copies a synced project into
|
|
89
|
-
`.oat/projects/archived/<project>/` without the nested checkout's `.git`
|
|
90
|
-
pointer or `reviews/`. S3 snapshots also omit `pr/`, following the existing
|
|
91
|
-
archive policy. When archive is disabled or declined, the active synced
|
|
92
|
-
checkout remains in place. Successful archived closeout instead uploads the S3
|
|
93
|
-
snapshot first when configured, makes the completed ref authoritative, removes
|
|
94
|
-
the checkout, and deletes the tracked JSON record. The local archive metadata
|
|
95
|
-
retains the source-ref identity needed for recordless retries and later S3
|
|
96
|
-
restore without recreating active state.
|
|
97
|
-
|
|
98
|
-
If closeout is interrupted after terminal archive identity exists, rerun
|
|
99
|
-
completion so it can resume from the completed ref and archive metadata. Do not
|
|
100
|
-
use `pull` or `open` to recreate an active record or checkout.
|
|
101
|
-
|
|
102
|
-
For a `shared` project, archive moves the project into
|
|
103
|
-
`.oat/projects/archived/<project>/` and removes the source directory, while
|
|
104
|
-
completion keeps the `activeProject` pointer until the receipt validates.
|
|
105
|
-
Rerunning completion after an interruption between the archive and that clear
|
|
106
|
-
recognizes exactly this state — the pointer names a source directory that no
|
|
107
|
-
longer exists and the archive carries `oat_lifecycle: complete` plus the
|
|
108
|
-
`Lifecycle complete; archived locally` phase marker — so it validates the
|
|
109
|
-
discovered archive and clears the pointer without archiving a second time or
|
|
110
|
-
sealing the project log again. An interruption before the archive leaves the
|
|
111
|
-
source directory in place, so completion simply reruns from the start and skips
|
|
112
|
-
the work it already finished.
|
|
113
|
-
|
|
114
|
-
If the archive cannot be discovered — the source directory is gone and either
|
|
115
|
-
no archived project or several match the name — completion stops and leaves the
|
|
116
|
-
pointer untouched. Recover manually: locate the archive directory under
|
|
117
|
-
`.oat/projects/archived/`, confirm `oat_lifecycle: complete` in its `state.md`,
|
|
118
|
-
then clear the pointer with `oat config set activeProject ""`.
|
|
119
|
-
|
|
120
|
-
## Related
|
|
121
|
-
|
|
122
|
-
- [Reviewing OAT PRs](reviewing-oat-prs.md)
|
|
123
|
-
- [Project Artifacts](artifacts.md)
|
|
124
|
-
- [Implementation Execution](implementation-execution.md#synced-projects-in-worktrees)
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Review Flavors
|
|
3
|
-
description: 'The four OAT project review flavors, when each fires in the lifecycle, and who resolves its reviewer target.'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Review Flavors
|
|
7
|
-
|
|
8
|
-
OAT projects run reviews at several different lifecycle points, and those points
|
|
9
|
-
have different independence requirements. A self-review that checks a freshly
|
|
10
|
-
written plan does not need the same producer isolation as a lifecycle gate that
|
|
11
|
-
signs off on the final artifact. Rather than force one reviewer-selection rule
|
|
12
|
-
onto every point, OAT recognizes **four review flavors**, each with its own
|
|
13
|
-
target-resolution policy layered on the shared reviewer role class.
|
|
14
|
-
|
|
15
|
-
The distinguishing question is always _"who resolves this review's target, and
|
|
16
|
-
how independent must that target be from whatever produced the work?"_ The four
|
|
17
|
-
flavors answer it differently while preserving one invariant: the reviewer runs
|
|
18
|
-
**at or above the ceiling** (see [Dispatch Policy](dispatch-ceiling.md)). Gate
|
|
19
|
-
independence is project policy layered on the generic reviewer role class
|
|
20
|
-
described in the `oat-project-dispatch-subagents` lifecycle-role table; this page
|
|
21
|
-
covers _which_ flavor fires _when_ and _who_ resolves its target, and links out
|
|
22
|
-
for the deep review request/receive mechanics.
|
|
23
|
-
|
|
24
|
-
## Quick Look
|
|
25
|
-
|
|
26
|
-
- What it does: names the four review flavors and states who resolves each
|
|
27
|
-
one's reviewer target.
|
|
28
|
-
- When to use it: when you need to know which review fires at a lifecycle point
|
|
29
|
-
and whether it inherits, pins the ceiling, or requires an independent gate.
|
|
30
|
-
- Primary sources: `oat-project-implement` phase-execution mechanics, the
|
|
31
|
-
`oat-project-dispatch-subagents` lifecycle-role table, and project design
|
|
32
|
-
Decision #11.
|
|
33
|
-
|
|
34
|
-
## Flow map
|
|
35
|
-
|
|
36
|
-
```mermaid
|
|
37
|
-
flowchart TD
|
|
38
|
-
subgraph Planning
|
|
39
|
-
PL["Planning-phase\nartifact self-review"] --> PLR["Inherit planning parent"]
|
|
40
|
-
PLR --> PLT["Parent model\n(root already at/above ceiling)"]
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
subgraph Implementation
|
|
44
|
-
IM["Root-owned phase\nself-review"] --> IMR["Resolve dispatch ceiling"]
|
|
45
|
-
IMR --> IMPIN["At-ceiling pin\n(ceiling final candidate)"]
|
|
46
|
-
IMR --> IMINH["Inherit\n(only if dispatcher known at/above ceiling)"]
|
|
47
|
-
IMR --> IMCLI["Exact CLI reviewer\n(selected pre-launch)"]
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
subgraph Gates
|
|
51
|
-
PG["Phase review gate\n(external)"] --> PGR["Configured cross-family\nexec target (gates.execTargets)"]
|
|
52
|
-
PGR --> PGT["Independent CLI/exec target\n(host-avoidance; fail closed)"]
|
|
53
|
-
|
|
54
|
-
LG["Lifecycle / final gate"] --> LGR["Cross-runtime CLI\nexec target"]
|
|
55
|
-
LGR --> LGT["Producer-independent target\n(fail closed, no self-review substitute)"]
|
|
56
|
-
LGT -. may spawn .-> LGN["Nested managed\nreviewer child inside gate"]
|
|
57
|
-
end
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
The dotted branch marks the only flavor that may **spawn a nested managed
|
|
61
|
-
reviewer child** inside the gate exec target: the lifecycle/final gate.
|
|
62
|
-
|
|
63
|
-
## The four flavors
|
|
64
|
-
|
|
65
|
-
| Flavor | Lifecycle point | Target resolution |
|
|
66
|
-
| ----------------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
67
|
-
| Planning-phase artifact self-review | Auto artifact-review loop for plan/spec/design | Inherit the planning parent by default (root is already at/above ceiling) |
|
|
68
|
-
| Implementation-phase self-review | Phase and final code reviews dispatched by `oat-project-implement` | Resolve the dispatch ceiling; pin the ceiling's final candidate (at-ceiling pin); inherit only when the review-owning dispatcher is known to be at/above ceiling; else select an exact CLI reviewer pre-launch |
|
|
69
|
-
| Phase review gate (external) | Optional non-pausing gate after a phase passes its self-review | Independent configured cross-family CLI/exec target (`gates.execTargets`), host-avoidance, unconstrained by native catalog; fail closed if unavailable |
|
|
70
|
-
| Lifecycle / final gate | End-of-lifecycle sign-off | Cross-runtime CLI exec target, independent of producer context; fails closed rather than substituting same-context self-review; may spawn a nested managed reviewer child inside the gate exec target |
|
|
71
|
-
|
|
72
|
-
The first two flavors are **self-reviews**. Planning review inherits its
|
|
73
|
-
producing parent by default; implementation phase review is dispatched by the
|
|
74
|
-
project root after the phase producer returns. The last two are **gates** — an
|
|
75
|
-
external, configured, producer-independent target. Phase implementation may run
|
|
76
|
-
_below_ the review ceiling for cost reasons, but review must never silently
|
|
77
|
-
inherit the below-ceiling phase agent.
|
|
78
|
-
|
|
79
|
-
Pre-plan inheritance has a narrow executable guard. When dispatch resolution
|
|
80
|
-
reports `unresolvedReason: policy`, an artifact review of `discovery`, `design`,
|
|
81
|
-
or `spec` deliberately inherits the current planning context and records
|
|
82
|
-
`selection_reason: inherit (pre-plan; no project policy)`. An explicit project
|
|
83
|
-
policy is still honored at those scopes. Missing or incomplete ladders
|
|
84
|
-
(`unresolvedReason: ladder | both`) fail closed, as do plan-scope artifact
|
|
85
|
-
reviews and every code review without a resolved policy. Gate exec-target
|
|
86
|
-
selection is separate and unaffected.
|
|
87
|
-
|
|
88
|
-
## Independence and fail-closed semantics
|
|
89
|
-
|
|
90
|
-
The invariant across all four flavors is that the reviewer runs **at or above
|
|
91
|
-
the ceiling**. What changes between flavors is the required _independence from
|
|
92
|
-
the producer_, and that independence is enforced by failing closed rather than
|
|
93
|
-
silently downgrading:
|
|
94
|
-
|
|
95
|
-
- **Planning self-review** needs the least independence. The planning root
|
|
96
|
-
already runs at or above the review ceiling, so inheriting the parent model
|
|
97
|
-
satisfies the invariant without managed re-pinning. Pinning is _possible_
|
|
98
|
-
once the ceiling is resolved during planning, but it is not the default.
|
|
99
|
-
- **Implementation self-review** needs ceiling-level capability but not
|
|
100
|
-
cross-family isolation. The root resolves the dispatch ceiling and pins the
|
|
101
|
-
tier's final candidate after the phase report. Inheritance is allowed only
|
|
102
|
-
when the root dispatcher is _known_ to be at or above the ceiling; otherwise
|
|
103
|
-
an exact provider CLI reviewer is selected before launch. Reviewer selection
|
|
104
|
-
is never delegated to the phase implementer.
|
|
105
|
-
- **Phase review gate** adds cross-family independence. It uses a configured
|
|
106
|
-
independent exec target from `gates.execTargets` with host-avoidance,
|
|
107
|
-
unconstrained by the harness's native subagent catalog. If the required
|
|
108
|
-
independent target cannot be enforced, the gate **fails closed** — it does
|
|
109
|
-
not downgrade to producer-context review.
|
|
110
|
-
- **Lifecycle / final gate** requires the strongest independence: a
|
|
111
|
-
cross-runtime CLI exec target chosen independently of the producer context.
|
|
112
|
-
It fails closed rather than substituting a same-context self-review, and it is
|
|
113
|
-
the one flavor permitted to spawn a nested managed reviewer child _inside_ the
|
|
114
|
-
gate exec target when the gate's own contract calls for it.
|
|
115
|
-
|
|
116
|
-
Gate independence is not a property of the generic reviewer class; it is project
|
|
117
|
-
policy layered on top of it. The dispatch adapter resolves the configured gate
|
|
118
|
-
target before launch and passes it as exact selection input. Fail-closed
|
|
119
|
-
behavior for both gate flavors is deliberate: an unavailable independent target
|
|
120
|
-
blocks the gate instead of quietly reusing whatever produced the work. For the
|
|
121
|
-
gate configuration keys and non-pausing behavior, see
|
|
122
|
-
[Workflow gates](../../cli-utilities/workflow-gates.md) and the
|
|
123
|
-
[phase review gate](reviews.md#phase-review-gate) section of the review doc.
|
|
124
|
-
|
|
125
|
-
## Related
|
|
126
|
-
|
|
127
|
-
- [Reviews](reviews.md) — the review request/receive flows and the deep review
|
|
128
|
-
contract these flavors plug into.
|
|
129
|
-
- [Dispatch Policy](dispatch-ceiling.md) — named ceilings, at-ceiling reviewer
|
|
130
|
-
selection, and the Dispatch Report V1 / producer-provenance record.
|
|
131
|
-
- [HiLL Checkpoints](hill-checkpoints.md) — how the non-pausing phase review gate
|
|
132
|
-
relates to pauseable lifecycle checkpoints.
|
|
133
|
-
- [Orchestration Model](orchestration-model.md) — the native-first dispatch
|
|
134
|
-
topology these reviewer roles run inside.
|
|
135
|
-
- [Workflow gates](../../cli-utilities/workflow-gates.md) — gate configuration
|
|
136
|
-
and exec-target selection.
|
|
137
|
-
- [Smoke testing](../../contributing/smoke-testing.md) — how the fixture makes
|
|
138
|
-
these flavors observable and assertable.
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Skills
|
|
3
|
-
description: 'User-facing guide to OAT skill families, recommended entry points, and where contributor-facing skill authoring docs live.'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Skills
|
|
7
|
-
|
|
8
|
-
Use this section when you want to choose the right OAT skill for a task. If you are writing or changing skills, jump to the contributor docs instead.
|
|
9
|
-
|
|
10
|
-
## Contents
|
|
11
|
-
|
|
12
|
-
- [Writing Skills](../../contributing/skills.md) - Contributor guide to skill authoring, contracts, and governance.
|
|
13
|
-
- [Docs Workflows](../../docs-tooling/workflows.md) - How docs CLI helpers and docs skills work together.
|
|
14
|
-
- [Explainer Kit](explainer-kit.md) - Agent-authored generation flow, direct and lifecycle callers, verification ladder, run package, and outcomes.
|
|
15
|
-
- [Repo Improve](repo-improve.md) - Source modes, external-plan boundaries, optional tracking, and OAT import handoff.
|
|
16
|
-
- [Recon Evidence Packets](recon.md) - Approved worker profiles, validated claim states, packet layout, partial outcomes, and directory-only handoff.
|
|
17
|
-
|
|
18
|
-
## Key Skills by Use Case
|
|
19
|
-
|
|
20
|
-
- Start a new tracked project: `oat-project-new`, `oat-project-quick-start`, or `oat-project-lite` for a single-sitting change with one batched interview and one approval (quick start accepts a project name plus optional description; if you omit the description it should ask before discovery begins)
|
|
21
|
-
- Resume an existing project: `oat-project-open` and `oat-project-progress`
|
|
22
|
-
- Execute a ready plan: `oat-project-implement`
|
|
23
|
-
- Import an existing plan: `oat-project-import-plan`
|
|
24
|
-
- Split a broad discovery or brainstorm into child projects: `oat-project-split`
|
|
25
|
-
- Retroactively capture existing work: `oat-project-capture`
|
|
26
|
-
- Run or receive reviews: `oat-project-review-provide`, `oat-project-review-receive`, or the non-project review variants
|
|
27
|
-
- Generate an evidence-grounded project retrospective, apply approved repo
|
|
28
|
-
improvements, or file tracker feedback: `oat-project-retro` and
|
|
29
|
-
`oat-project-retro-file`. See
|
|
30
|
-
[Project Retrospectives](../projects/retro.md).
|
|
31
|
-
- Capture a scoped, shippable backlog item: `oat-pjm-add-backlog-item` directly when the work is already scoped, or `oat-brainstorm` when the thought hasn't converged yet — the brainstorm dispatcher's "scoped backlog item" destination pre-fills the title / description / acceptance criteria / scope estimate / priority from the conversation and then runs `oat-pjm-add-backlog-item` with confirmed inputs
|
|
32
|
-
- Manage the repo backlog and reference docs: `oat-pjm-update-repo-reference`, `oat-pjm-review-backlog`
|
|
33
|
-
- Operate an explicit GitHub, Linear, or Jira planning-record binding through a
|
|
34
|
-
live host capability: `oat-pjm-remote`. The OAT CLI retains policy, preview,
|
|
35
|
-
approval, journal, and verification authority; the skill discovers and
|
|
36
|
-
invokes only the exact host action emitted for one durable operation.
|
|
37
|
-
- Turn a repo audit, maintainability review, backlog review, backlog directory, or backlog item into standalone external implementation plans: `oat-repo-improve`. Plans land under `.oat/repo/reference/external-plans/`; execute them directly or optionally pass one to `oat-project-import-plan` for tracked OAT execution.
|
|
38
|
-
- Choose what to delegate and route bounded work by task class across Codex, Claude, or Cursor: `subagent-orchestration`. It is self-contained and usable without OAT; live catalogs and current instructions take precedence over its dated provider examples.
|
|
39
|
-
- Build visual project explainers and final project recaps: `oat-explainer-kit`, backed by the destination-neutral `explainer-kit` core. See [Explainer Kit](explainer-kit.md).
|
|
40
|
-
- Work on docs surfaces: `authoring-docs` (general documentation baseline), `oat-docs-authoring` (targeted OAT/Fumadocs authoring), `oat-docs-bootstrap` (guided bootstrap of a new docs app), `oat-docs-analyze`, `oat-docs-apply`, and `oat-project-document`
|
|
41
|
-
- Generate a shipping digest or scheduled recap: `oat-wrap-up`
|
|
42
|
-
- Run a wave program over a corpus of external plans: `oat-wave-program` (durable program artifact: new/refresh/wave-close) and `oat-wave-execute` (one wave as a wrapper project) — see [Wave Workflows](../wave-workflows.md)
|
|
43
|
-
- Research a topic in depth: `deep-research`
|
|
44
|
-
- Acquire and validate bounded evidence for another workflow: `recon`
|
|
45
|
-
- Analyze an artifact, codebase, or document: `analyze`
|
|
46
|
-
- Compare options with domain-aware dimensions: `compare`
|
|
47
|
-
- Verify a claim adversarially: `skeptic`
|
|
48
|
-
- Merge multiple analysis artifacts: `synthesize`
|
|
49
|
-
- Capture or refine ideas: `oat-idea-new` (capture a new idea), `oat-idea-ideate` (resume an existing tracked idea or expand a scratchpad seed — not for blank-slate brainstorms; use `oat-brainstorm` for those), `oat-idea-scratchpad`, `oat-idea-summarize`
|
|
50
|
-
- Run a project-independent brainstorming conversation: `oat-brainstorm` — entry point with an explicit activation contract. Hard Activation fires only on the `brainstorm` verb ("let's brainstorm", "brainstorm this", "can we brainstorm X", "help me brainstorm X", or `/oat-brainstorm`); ambiguous exploratory phrasing answers conversationally without the banner and offers structured mode only after sustained exploration. Once entered, runs a structured design conversation (one question at a time, 2-3 approaches with a recommendation) and routes to inline / doc-to-path / idea / backlog item / project handoffs based on installed packs. See [Tool Packs](../../cli-utilities/tool-packs.md) for the brainstorm pack details.
|
|
51
|
-
|
|
52
|
-
## Remote host execution loop
|
|
53
|
-
|
|
54
|
-
Use `oat-pjm-remote` only for an explicit remote lifecycle request. Its loop is
|
|
55
|
-
deliberately narrow:
|
|
56
|
-
|
|
57
|
-
1. Before the first provider-contacting command, inspect currently granted MCP
|
|
58
|
-
or connector descriptions for a semantic and exact-context match.
|
|
59
|
-
2. If no capable connector is available, inspect an already configured
|
|
60
|
-
provider CLI's live help before the first attempt. Do not install a tool,
|
|
61
|
-
retain its dialect, or switch execution surfaces mid-attempt.
|
|
62
|
-
3. Construct only bounded provider-neutral capability evidence and pass it to
|
|
63
|
-
the requested command with `--capability-evidence-stdin`. Treat the CLI's
|
|
64
|
-
policy, preview, approval, safety, and durable state as authoritative.
|
|
65
|
-
4. When the CLI returns `pending` with `externalAction`, execute that exact
|
|
66
|
-
semantic action at most once and submit one bounded,
|
|
67
|
-
sanitized observation with `oat pjm remote operation continue`.
|
|
68
|
-
5. Continue only when the CLI emits another exact action for the same durable
|
|
69
|
-
operation. Stop on its terminal envelope.
|
|
70
|
-
|
|
71
|
-
The skill cannot broaden the normalized projection, bypass effective policy,
|
|
72
|
-
binding clamps, purpose field grants, hard approval floors, or caller-owned
|
|
73
|
-
authority evidence, read credential values, persist native provider data, or
|
|
74
|
-
declare remote success. A connector result, process exit, or visible remote
|
|
75
|
-
change is only evidence. Success requires an OAT `ok` envelope after
|
|
76
|
-
authoritative read-back.
|
|
77
|
-
See [Remote Project Management](../../cli-utilities/remote-project-management.md)
|
|
78
|
-
for policy, storage, approval, and recovery details.
|
|
79
|
-
|
|
80
|
-
## If You Are Trying To...
|
|
81
|
-
|
|
82
|
-
- choose the right skill for a task, stay in this guide page
|
|
83
|
-
- write or update a skill, use [Writing Skills](../../contributing/skills.md)
|
|
84
|
-
- understand how docs-specific skills fit with docs commands, use [Docs Workflows](../../docs-tooling/workflows.md)
|
|
85
|
-
|
|
86
|
-
## Full Catalog
|
|
87
|
-
|
|
88
|
-
=== "Project lifecycle"
|
|
89
|
-
|
|
90
|
-
- `oat-project-new`
|
|
91
|
-
- `oat-project-quick-start`
|
|
92
|
-
- `oat-project-lite`
|
|
93
|
-
- `oat-project-import-plan`
|
|
94
|
-
- `oat-project-promote-spec-driven`
|
|
95
|
-
- `oat-project-open`
|
|
96
|
-
- `oat-project-clear-active`
|
|
97
|
-
- `oat-project-discover`
|
|
98
|
-
- `oat-project-spec`
|
|
99
|
-
- `oat-project-design`
|
|
100
|
-
- `oat-project-plan`
|
|
101
|
-
- `oat-project-plan-writing`
|
|
102
|
-
- `oat-project-split`
|
|
103
|
-
- `oat-project-implement`
|
|
104
|
-
- `oat-project-progress`
|
|
105
|
-
- `oat-project-next`
|
|
106
|
-
- `oat-project-capture`
|
|
107
|
-
- `oat-project-reconcile`
|
|
108
|
-
- `oat-project-review-provide`
|
|
109
|
-
- `oat-project-review-provide-remote`
|
|
110
|
-
- `oat-project-review-receive`
|
|
111
|
-
- `oat-project-review-receive-remote`
|
|
112
|
-
- `oat-project-pr-progress`
|
|
113
|
-
- `oat-project-pr-final`
|
|
114
|
-
- `oat-project-document`
|
|
115
|
-
- `oat-project-retro`
|
|
116
|
-
- `oat-project-retro-file`
|
|
117
|
-
- `oat-explainer-kit`
|
|
118
|
-
- `oat-wrap-up`
|
|
119
|
-
- `oat-project-complete`
|
|
120
|
-
- `oat-wave-program`
|
|
121
|
-
- `oat-wave-execute`
|
|
122
|
-
|
|
123
|
-
=== "Ideas"
|
|
124
|
-
|
|
125
|
-
- `oat-idea-new`
|
|
126
|
-
- `oat-idea-ideate`
|
|
127
|
-
- `oat-idea-scratchpad`
|
|
128
|
-
- `oat-idea-summarize`
|
|
129
|
-
|
|
130
|
-
=== "Brainstorming"
|
|
131
|
-
|
|
132
|
-
- `oat-brainstorm`
|
|
133
|
-
|
|
134
|
-
=== "Docs and instructions"
|
|
135
|
-
|
|
136
|
-
- `authoring-docs`
|
|
137
|
-
- `oat-docs-authoring`
|
|
138
|
-
- `oat-docs-bootstrap`
|
|
139
|
-
- `oat-docs-analyze`
|
|
140
|
-
- `oat-docs-apply`
|
|
141
|
-
- `oat-agent-instructions-analyze`
|
|
142
|
-
- `oat-agent-instructions-apply`
|
|
143
|
-
|
|
144
|
-
=== "Review, backlog, and maintenance"
|
|
145
|
-
|
|
146
|
-
- `oat-review-provide`
|
|
147
|
-
- `oat-review-provide-remote`
|
|
148
|
-
- `oat-review-receive`
|
|
149
|
-
- `oat-review-receive-remote`
|
|
150
|
-
- `oat-repo-knowledge-index`
|
|
151
|
-
- `oat-repo-maintainability-review`
|
|
152
|
-
- `oat-repo-improve`
|
|
153
|
-
- `oat-pjm-add-backlog-item`
|
|
154
|
-
- `oat-pjm-update-repo-reference`
|
|
155
|
-
- `oat-pjm-review-backlog`
|
|
156
|
-
- `oat-pjm-remote`
|
|
157
|
-
- `docs-completed-projects-gap-review`
|
|
158
|
-
|
|
159
|
-
=== "Research"
|
|
160
|
-
|
|
161
|
-
- `recon`
|
|
162
|
-
- `deep-research`
|
|
163
|
-
- `analyze`
|
|
164
|
-
- `compare`
|
|
165
|
-
- `skeptic`
|
|
166
|
-
- `synthesize`
|
|
167
|
-
|
|
168
|
-
=== "Scaffolding and utility"
|
|
169
|
-
|
|
170
|
-
- `subagent-orchestration`
|
|
171
|
-
- `explainer-kit`
|
|
172
|
-
- `oat-worktree-bootstrap`
|
|
173
|
-
- `oat-worktree-bootstrap-auto`
|
|
174
|
-
- `create-oat-skill`
|
|
175
|
-
- `create-agnostic-skill`
|
|
176
|
-
- `create-pr-description`
|
|
177
|
-
- `create-ticket`
|
|
178
|
-
- `codex-skill`
|
|
179
|
-
|
|
180
|
-
## Discovery Source
|
|
181
|
-
|
|
182
|
-
`AGENTS.md` is the session-facing registry. It should stay aligned with skill frontmatter and the canonical skill directories under `.agents/skills/`.
|
|
183
|
-
|
|
184
|
-
Legacy compatibility note: `review-backlog` and `update-repo-reference` may still exist in some environments, but prefer the `oat-pjm-*` family for the current file-backed backlog/reference workflow.
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Repo Improve
|
|
3
|
-
description: 'Turn repository audits, maintainability reviews, and backlog sources into standalone external implementation plans.'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Repo Improve
|
|
7
|
-
|
|
8
|
-
Use `oat-repo-improve` when the desired output is an executable implementation plan rather than another analysis report. Every successful run writes one or more standalone plans under `.oat/repo/reference/external-plans/`.
|
|
9
|
-
|
|
10
|
-
## Choose a source
|
|
11
|
-
|
|
12
|
-
| Source | Use it when |
|
|
13
|
-
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
14
|
-
| Repo audit | You need fresh repository reconnaissance and vetted improvement findings. |
|
|
15
|
-
| Maintainability review | A file-backed `oat-repo-maintainability-review` already identifies candidates. Improve verifies selected evidence without repeating the broad audit. |
|
|
16
|
-
| Backlog review | A living backlog review and optional priority alignment already establish value, dependencies, and sequencing. |
|
|
17
|
-
| Backlog directory | You want to start from active items. Substantive backlogs should pass through backlog review and alignment before plan generation. |
|
|
18
|
-
| Backlog item | One existing item needs enough repository investigation to become executable. |
|
|
19
|
-
|
|
20
|
-
With no source argument, the skill probes for available review and backlog artifacts, annotates all five options, and asks which source to use.
|
|
21
|
-
|
|
22
|
-
## Set repo-audit boundaries
|
|
23
|
-
|
|
24
|
-
Fresh repo audits exclude agent-configuration directories from findings and plan candidates by default. The canonical default directory names are `.agents/`, `.claude/`, `.codex/`, and `.cursor/` at any depth. These locations commonly contain provider configuration, generated views, or externally sourced skills rather than the product surfaces being reviewed.
|
|
25
|
-
|
|
26
|
-
Before reconnaissance, improve shows that default and asks whether to:
|
|
27
|
-
|
|
28
|
-
- Keep all four exclusions.
|
|
29
|
-
- Include selected directory names.
|
|
30
|
-
- Include all four directory names.
|
|
31
|
-
|
|
32
|
-
It then asks whether any other repo-relative directories should be excluded and suggests other recognizable provider directories when present. The resolved scope is shown before work begins and is applied consistently to direct searches and delegated audit lanes.
|
|
33
|
-
|
|
34
|
-
These are findings exclusions, not absolute read prohibitions. Improve may read bounded instruction, convention, or intent files inside an excluded directory to understand the repository, but it does not turn those files into findings or plan candidates unless the user includes or explicitly targets that directory. A file cited by an artifact-backed source can still be verified after scope confirmation; symlinked provider views are never followed outside the repository.
|
|
35
|
-
|
|
36
|
-
## Output boundary
|
|
37
|
-
|
|
38
|
-
External plans are not canonical OAT project `plan.md` files. They contain self-contained context, scope, steps, verification, done criteria, and STOP conditions, but no canonical OAT phase/task IDs or lifecycle bookkeeping. External execution-readiness metadata is a separate thing and is carried deliberately: it describes whether the plan's own prerequisites have merged, not how an OAT project is moving through phases.
|
|
39
|
-
|
|
40
|
-
After generation, choose either execution path:
|
|
41
|
-
|
|
42
|
-
- Execute a plan directly as a standalone handoff.
|
|
43
|
-
- Run `oat-project-import-plan <external-plan-path>` to preserve and normalize one plan for tracked OAT execution.
|
|
44
|
-
|
|
45
|
-
Project-sized candidates are split when possible. If inseparable work needs multiple design decisions or lacks one coherent verification boundary, improve recommends an OAT project workflow instead of emitting a mega-plan.
|
|
46
|
-
|
|
47
|
-
## Plan readiness and execution readiness
|
|
48
|
-
|
|
49
|
-
Improve scores candidates on two independent axes. A candidate is plan-ready when it is understood well enough to write a self-contained executable plan, and execution-ready when every hard dependency it names has already merged.
|
|
50
|
-
|
|
51
|
-
A blocked candidate is still planned. Rather than dropping work whose prerequisite has not landed, improve writes the plan and records the block:
|
|
52
|
-
|
|
53
|
-
- `oat_execution_status` is `READY` or `BLOCKED` in plan frontmatter.
|
|
54
|
-
- A typed `## Dependencies` table marks each row `Hard`, `Soft`, or `Satisfied`, and every `Hard` row names the state that would unblock it.
|
|
55
|
-
- `## Landing-event impact` records what to re-anchor when a named PR or project lands, and `## Revalidation Before Execution` records when the plan must be re-checked against live state.
|
|
56
|
-
|
|
57
|
-
Plan provenance is recorded as two separate SHAs: `oat_external_plan_commit` is the full SHA of the `HEAD` whose content was actually inspected, and `oat_external_plan_main_commit` is the fetched `origin/main` or merge-base used only for comparison. They may differ, and normally do when planning happens on a branch.
|
|
58
|
-
|
|
59
|
-
Plans written before this contract landed are read in legacy mode: a short SHA, a missing comparison SHA, missing sections, and a missing status (read as `READY`) are all accepted, and those plans are never rewritten.
|
|
60
|
-
|
|
61
|
-
## Optional tracking
|
|
62
|
-
|
|
63
|
-
Plans are always the primary output. Tracking is optional and source-aware:
|
|
64
|
-
|
|
65
|
-
- `--backlog-items` creates missing PJM items for repo-audit or maintainability-review plans. Backlog-backed sources reuse their existing items and add `external_plans` reverse links.
|
|
66
|
-
- `--issues` previews one GitHub issue per plan, checks repository visibility and sensitive content, and requires explicit confirmation before publication. It is useful as a fallback when PJM is not installed.
|
|
67
|
-
- Request both modifiers explicitly to create both forms. Neither implies the other.
|
|
68
|
-
|
|
69
|
-
Failure to publish a backlog item or issue does not invalidate a successfully written plan; the skill reports partial tracking results precisely.
|
|
70
|
-
|
|
71
|
-
## Orchestration
|
|
72
|
-
|
|
73
|
-
Full repository audits use bounded read-only reconnaissance while the root
|
|
74
|
-
agent retains classification, vetting, prioritization, cross-lane synthesis,
|
|
75
|
-
and plan writing. Plan writes never move below the caller's model class — a
|
|
76
|
-
parallelized author runs on the caller's model and every plan is
|
|
77
|
-
caller-reviewed before publication or wave composition; the
|
|
78
|
-
`keeps external-plan writes on the caller's model class` case in
|
|
79
|
-
`skills-bundled-docs-contract.test.ts` is the backstop. Before launch, the
|
|
80
|
-
caller loads the durable task classes and model-selection principles from
|
|
81
|
-
`subagent-orchestration` plus exactly one active-provider selection reference.
|
|
82
|
-
|
|
83
|
-
The internal `oat-dispatch-subagents` skill then owns capability checks, live
|
|
84
|
-
catalog intersection, exact route selection, launch acceptance, recovery, and
|
|
85
|
-
dispatch records. It loads exactly one matching provider mechanics reference;
|
|
86
|
-
selection and mechanics references are not merged into one universal provider
|
|
87
|
-
contract. Dispatch is native-first. Configured project/workflow policy may
|
|
88
|
-
authorize required CLI or cross-runtime routes; an agent-improvised alternate
|
|
89
|
-
route requires explicit current-run approval.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Wave Workflows
|
|
3
|
-
description: How OAT coordinates a corpus of external plans into waves while preserving project-lifecycle ownership and human judgment.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Wave Workflows
|
|
7
|
-
|
|
8
|
-
A wave is a program layer above the per-project OAT lifecycle. It groups external implementation plans into an ordered delivery unit, then runs that unit as a wrapper OAT project. The wrapper uses the normal project lifecycle rather than replacing it.
|
|
9
|
-
|
|
10
|
-
Use wave workflows when a plan corpus is too large to execute as one project and needs durable sequencing across multiple projects, worktree groups, and merges.
|
|
11
|
-
|
|
12
|
-
## The Two Wave Skills
|
|
13
|
-
|
|
14
|
-
The workflow pack provides two complementary skills:
|
|
15
|
-
|
|
16
|
-
- `oat-wave-program` 1.1.0 maintains the durable execution-program artifact over the full plan corpus. Its `new` mode inventories the corpus, verifies the coverage invariant, and records the orchestrator-composed, operator-approved first program; `refresh` adds newly landed plans to the artifact and records the orchestrator's re-composition of waves not yet started; and `wave-close` records a completed wave. Composing waves is the orchestrating agent's judgment; the skill records the result.
|
|
17
|
-
- `oat-wave-execute` 1.5.0 runs one wave. It owns the repeatable mechanical layer: wrapper-project scaffolding, branch conventions, worktree bootstrap, briefs, gates, merge choreography, bookkeeping cadence, and closeout order.
|
|
18
|
-
|
|
19
|
-
`oat-wave-program` records which plans belong to each wave. `oat-wave-execute` consumes that mapping and executes one wave through the project lifecycle.
|
|
20
|
-
|
|
21
|
-
## Mechanical Work and Judgment
|
|
22
|
-
|
|
23
|
-
The ownership split is load-bearing. The skills automate mechanics, but the orchestrator retains judgment.
|
|
24
|
-
|
|
25
|
-
The skills own:
|
|
26
|
-
|
|
27
|
-
- integration and phase branch naming
|
|
28
|
-
- wrapper-project scaffolding
|
|
29
|
-
- worktree bootstrap
|
|
30
|
-
- merge choreography
|
|
31
|
-
- artifact and ledger bookkeeping
|
|
32
|
-
- repeatable verification and closeout sequencing
|
|
33
|
-
|
|
34
|
-
The orchestrator owns:
|
|
35
|
-
|
|
36
|
-
- wave and parallel-group composition
|
|
37
|
-
- review-finding dispositions
|
|
38
|
-
- verification of load-bearing worker claims
|
|
39
|
-
- merge-order decisions under live drift
|
|
40
|
-
- cross-lane and end-of-run synthesis
|
|
41
|
-
- all user checkpoints
|
|
42
|
-
|
|
43
|
-
Do not treat a generated grouping or a mechanically successful lane as a substitute for these decisions.
|
|
44
|
-
|
|
45
|
-
## Composition With Project Implementation
|
|
46
|
-
|
|
47
|
-
Each wave is scaffolded as a quick-mode wrapper project. Its plan points to the source plans while preserving their requirements, and `oat-project-implement` remains the lifecycle owner for phase execution, independent review, bounded fixes, checkpoints, and project state.
|
|
48
|
-
|
|
49
|
-
For plan-declared parallel groups, `oat-wave-execute` invokes its bundled `scripts/bootstrap-group.sh` helper. The helper wraps the standard worktree bootstrap flow, creates phase worktrees at an explicit base, initializes each worktree, checks provider-view parity, and reports structured status. `oat-project-implement` then dispatches and verifies each phase in its assigned worktree. The wave layer owns the serialized fan-in and integration gates after those phases pass.
|
|
50
|
-
|
|
51
|
-
This composition keeps the responsibilities separate:
|
|
52
|
-
|
|
53
|
-
1. `oat-wave-program` records the program and wave membership.
|
|
54
|
-
2. `oat-wave-execute` scaffolds and coordinates one wrapper project.
|
|
55
|
-
3. `oat-project-implement` executes that project's phases.
|
|
56
|
-
4. `oat-wave-program wave-close` updates the durable program after the wave merges.
|
|
57
|
-
|
|
58
|
-
## Execution-Program Artifact Format
|
|
59
|
-
|
|
60
|
-
The execution-program artifact is durable reference material under `.oat/repo/reference/external-plans/`. It is not an executable plan or an `oat-project-import-plan` target.
|
|
61
|
-
|
|
62
|
-
The current format contains:
|
|
63
|
-
|
|
64
|
-
- **Wave table:** one row per source plan, including its link, source index, assigned wave, ordering or dependency notes, and status (`pending`, `in-wave`, `done`, `deferred`, or `dropped`).
|
|
65
|
-
- **Coverage invariant:** every plan in every source plan index appears in exactly one row. A deferred or dropped plan includes a reason and re-entry trigger; an omitted plan is an error.
|
|
66
|
-
- **Wave sections:** the theme, lane list, intra-wave ordering, and cross-wave prerequisites for each wave.
|
|
67
|
-
- **Status ledger:** each wave advances from composed to in-progress to merged, with the wrapper-project link, PR, merge SHA, and completion-record link recorded as they become available.
|
|
68
|
-
|
|
69
|
-
> **Important:** This format is documented as a description, not a stable contract. Contract work is deferred in **BL-260718-document-execution-program — Document execution-program artifact as stable OAT contract**, grouped with **BL-260718-add-oat-wave-lifecycle-cli — Add oat wave lifecycle CLI command family**.
|
|
70
|
-
|
|
71
|
-
Until that grouped work ships, consumers should follow the bundled skill and template rather than depending on an independently versioned schema.
|
|
72
|
-
|
|
73
|
-
## Related
|
|
74
|
-
|
|
75
|
-
- [Project lifecycle](projects/lifecycle.md)
|
|
76
|
-
- [Implementation execution](projects/implementation-execution.md)
|
|
77
|
-
- [Project artifacts](projects/artifacts.md)
|