@open-agent-toolkit/cli 0.3.13 → 0.3.15
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/markdown-features.md +38 -0
- package/assets/docs/contributing/skills.md +64 -2
- package/assets/docs/contributing/smoke-testing.md +23 -16
- 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 +32 -0
- package/assets/docs/docs-tooling/agent-instructions.md +131 -0
- package/assets/docs/docs-tooling/index.md +1 -0
- package/assets/docs/docs-tooling/meta.json +1 -1
- package/assets/docs/docs-tooling/workflows.md +338 -2
- package/assets/docs/{cli-utilities → getting-started}/bootstrap.md +60 -5
- package/assets/docs/getting-started/concepts.md +120 -0
- 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 +142 -14
- package/assets/docs/index.md +47 -48
- package/assets/docs/meta.json +6 -7
- package/assets/docs/provider-sync/commands.md +25 -2
- 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 +32 -1
- package/assets/docs/provider-sync/manifest-and-drift.md +92 -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 +33 -33
- 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/file-locations.md +4 -1
- package/assets/docs/reference/index.md +13 -1
- package/assets/docs/reference/meta.json +7 -1
- package/assets/docs/reference/oat-directory-structure.md +1 -1
- 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} +28 -21
- 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 +20 -13
- 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 +108 -35
- 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 +225 -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} +52 -38
- 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 +159 -74
- 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 +650 -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 +1 -1
- package/assets/skills/oat-docs-apply/SKILL.md +1 -1
- package/assets/skills/oat-docs-authoring/SKILL.md +1 -1
- package/assets/skills/oat-docs-bootstrap/SKILL.md +1 -1
- package/assets/skills/oat-doctor/SKILL.md +25 -25
- package/assets/templates/docs-app-fuma/app/[[...slug]]/page.tsx +14 -2
- package/assets/templates/docs-app-fuma/app/globals.css +1 -0
- package/dist/release/public-package-contract.js +1 -1
- 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/concepts.md +0 -88
- 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
|
@@ -12,10 +12,10 @@ Use this guide when you need to answer two questions quickly:
|
|
|
12
12
|
|
|
13
13
|
For the deep file-by-file reference, see:
|
|
14
14
|
|
|
15
|
-
- [File Locations](
|
|
16
|
-
- [`.oat` Directory Structure](
|
|
15
|
+
- [File Locations](file-locations.md)
|
|
16
|
+
- [`.oat` Directory Structure](oat-directory-structure.md)
|
|
17
17
|
- [Sync Config (`.oat/sync/config.json`)](../provider-sync/config.md)
|
|
18
|
-
- [Remote Project Management](remote-project-management.md)
|
|
18
|
+
- [Remote Project Management](../workflows/backlog-and-planning/remote-project-management.md)
|
|
19
19
|
|
|
20
20
|
## The five config surfaces
|
|
21
21
|
|
|
@@ -44,15 +44,15 @@ oat config list
|
|
|
44
44
|
oat config get projects.root
|
|
45
45
|
oat config describe
|
|
46
46
|
oat config describe archive.s3Uri
|
|
47
|
-
oat config describe sync.providers.
|
|
47
|
+
oat config describe sync.providers.copilot.enabled
|
|
48
48
|
```
|
|
49
49
|
|
|
50
50
|
What each command is for:
|
|
51
51
|
|
|
52
52
|
- `oat config list` shows the currently resolved command-surface values for shared and repo-local keys.
|
|
53
53
|
- `oat config get <key>` reads one supported key value.
|
|
54
|
-
- `oat config set <key> <value>` updates supported shared
|
|
55
|
-
- `oat config unset <key>` removes a supported key from one surface, using the same `--shared`/`--local`/`--user` flags and per-key restrictions as `set`. The resolved value then falls back to the next surface down, or to the built-in default. A key the surface does not hold exits 0 as already-unset (`--json` adds a `removed` boolean to tell the two apart). Unknown keys, lifecycle state, `tools.*` pack intent, aggregate read views, read-only remote-policy structure, and environment-shadowed keys with nothing stored are refused with exit 1 — see [CLI Reference](
|
|
54
|
+
- `oat config set <key> <value>` updates supported shared, repo-local, or user keys according to per-key restrictions. Writes to the shared `.oat/config.json` keep the file's existing key order, and a write that would not change any value leaves the file byte-identical.
|
|
55
|
+
- `oat config unset <key>` removes a supported key from one surface, using the same `--shared`/`--local`/`--user` flags and per-key restrictions as `set`. The resolved value then falls back to the next surface down, or to the built-in default. A key the surface does not hold exits 0 as already-unset (`--json` adds a `removed` boolean to tell the two apart). Unknown keys, lifecycle state, `tools.*` pack intent, aggregate read views, read-only remote-policy structure, and environment-shadowed keys with nothing stored are refused with exit 1 — see [CLI Reference](cli-reference.md#oat-config-surface-flags).
|
|
56
56
|
- `oat config describe` shows the supported config catalog across shared repo, repo-local, user, and sync/provider surfaces.
|
|
57
57
|
- `oat config describe <key>` shows file, scope, default, mutability, owning command, and description for one key. A deprecated key also prints `Deprecated: prefer <successor>`, and `--json` carries the same fact as a `deprecated` object (`supersededBy`, plus `note` and `legacyValues` where they apply).
|
|
58
58
|
|
|
@@ -72,9 +72,9 @@ For a guided pass instead of individual commands, run the `/oat-doctor` skill (c
|
|
|
72
72
|
|
|
73
73
|
These labels match what `oat config dump` emits, so tooling that consumes either command can rely on the same vocabulary.
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
> [!NOTE]
|
|
76
|
+
> **Upgrade note.**
|
|
77
|
+
> Earlier CLI versions returned `config.json` / `config.local.json` / `env` / `default` as the `source` strings. External scripts that previously matched on `"source":"config.json"` or `"source":"config.local.json"` should update to match the new `shared` / `local` labels. This change was made to align the `oat config get` / `oat config list` output with `oat config dump` and to avoid confusing users about which file was consulted.
|
|
78
78
|
|
|
79
79
|
## Shared repo config you will touch most often
|
|
80
80
|
|
|
@@ -93,7 +93,7 @@ Common keys in `.oat/config.json`:
|
|
|
93
93
|
configured value for the current process.
|
|
94
94
|
- `worktrees.root` — where OAT-managed worktrees live
|
|
95
95
|
- `git.defaultBranch` — base branch fallback for PR workflows
|
|
96
|
-
- `documentation.root`, `documentation.tooling`, `documentation.config` — docs-surface ownership. With tooling `markdown`, root is the literal content directory (including nested `docs`) and `documentation.index` is authored `<root>/index.md`; Markdown adds no framework config. Framework roots retain app/source semantics. Use `oat docs init --framework markdown` or explicit `--adopt` for setup; optional manifests need external output and never change the authored index. See [Documentation path resolution](
|
|
96
|
+
- `documentation.root`, `documentation.tooling`, `documentation.config` — docs-surface ownership. With tooling `markdown`, root is the literal content directory (including nested `docs`) and `documentation.index` is authored `<root>/index.md`; Markdown adds no framework config. Framework roots retain app/source semantics. Use `oat docs init --framework markdown` or explicit `--adopt` for setup; optional manifests need external output and never change the authored index. See [Documentation path resolution](oat-directory-structure.md#documentation-path-resolution)
|
|
97
97
|
- `documentation.excludes` — a JSON array of globs, relative to the docs directory, that `oat docs generate-index` leaves out of the generated index. `oat config set` takes the list as one comma-separated value (`"a/**,b.md"`) and stores it as an array; repeated `--exclude` flags extend it, and an empty value clears the key
|
|
98
98
|
- `documentation.requireForProjectCompletion` — whether docs sync is a completion gate
|
|
99
99
|
- `instructions.claude.shims` — how `oat instructions sync` keeps a `CLAUDE.md` beside each `AGENTS.md`: `none` (the default: no shims; sync removes the ones OAT created and warns about any other `CLAUDE.md`, all or nothing: it removes none while any `CLAUDE.md`, `.claude/CLAUDE.md`, or `CLAUDE.local.md` has content of its own; see [All or nothing](../provider-sync/instruction-sync.md#all-or-nothing)), `pointer`, `symlink`, or `copy`. The `--strategy` flag overrides it for one run. Set it with `oat config set instructions.claude.shims pointer` when contributors need `CLAUDE.md` (see [Claude Code and AGENTS.md](../provider-sync/instruction-sync.md#claude-code-and-agentsmd)); `oat config unset` returns to `none`. Any other value is rejected with exit code `2` rather than read as unset, and `oat config set` can still replace it
|
|
@@ -106,7 +106,8 @@ Common keys in `.oat/config.json`:
|
|
|
106
106
|
- `archive.awsRegion` — optional AWS region forwarded as `AWS_REGION` to every `aws` invocation in archive flows
|
|
107
107
|
- `tools.<pack>` — project-scope intent for a bundled tool pack (`true` or absent)
|
|
108
108
|
- `pjm.remote.storage.state` — `local` by default; `shared` requires an
|
|
109
|
-
explicit preview and fresh approval
|
|
109
|
+
explicit preview and fresh approval. The current production store does not
|
|
110
|
+
enforce the intended local-project exclusion; see the remote storage warning
|
|
110
111
|
- `pjm.remote.policy.description` — `none`, `managed-section`, or `replace`;
|
|
111
112
|
the default is `none`
|
|
112
113
|
- `pjm.remote.policy.authority.*` — repository defaults and operation-specific
|
|
@@ -126,6 +127,10 @@ and purpose field grants intersect to narrow outbound fields. No configured
|
|
|
126
127
|
layer bypasses hard approval floors or current caller-owned authority evidence;
|
|
127
128
|
missing, stale, or mismatched evidence fails closed.
|
|
128
129
|
|
|
130
|
+
Current CLI bindings use fixed intake/source or publish/planning purposes and
|
|
131
|
+
empty per-binding restrictions. Those internal narrowing layers are not
|
|
132
|
+
additional user-settable binding policy controls.
|
|
133
|
+
|
|
129
134
|
The shared `pjm.remote` tree is closed. An unknown key, a non-object where an
|
|
130
135
|
object is expected, or a wrong-typed leaf (for example `authority.default: 5`,
|
|
131
136
|
a string `schemaVersion`, or a number, boolean, array, object, or `null` where a
|
|
@@ -189,7 +194,7 @@ oat pjm doctor --json
|
|
|
189
194
|
verified. It is the authoritative repository adoption marker: PJM, backlog, and
|
|
190
195
|
decision mutations fail closed without it, and `oat doctor` keys its `pjm:*`
|
|
191
196
|
checks on adoption state rather than on `tools.project-management`. See
|
|
192
|
-
[Install vs. initialize](tool-packs.md#install-vs-initialize) for the full state
|
|
197
|
+
[Install vs. initialize](../getting-started/tool-packs.md#install-vs-initialize) for the full state
|
|
193
198
|
table and template precedence.
|
|
194
199
|
|
|
195
200
|
### Explainer configuration
|
|
@@ -263,9 +268,8 @@ packaged `assets/` directory next to the installed CLI. Setting a non-empty
|
|
|
263
268
|
`validateBundleStructure`. That is a narrower promise than the exit-2 list
|
|
264
269
|
above: release validation does not check bundle metadata beyond its presence,
|
|
265
270
|
so a malformed or version-mismatched `bundle-metadata.json` is not covered.
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
`fails release validation when a required bundle directory is empty in the tarball`.
|
|
271
|
+
OAT's own release tests include a check that release validation fails when a
|
|
272
|
+
required bundle directory is empty in the packed tarball.
|
|
269
273
|
- Produce a matching bundle with `bash packages/cli/scripts/bundle-assets.sh`
|
|
270
274
|
while `OAT_ASSETS_DIR` points at the target directory (the script already
|
|
271
275
|
honors the variable as its destination).
|
|
@@ -273,12 +277,12 @@ packaged `assets/` directory next to the installed CLI. Setting a non-empty
|
|
|
273
277
|
This is primarily a test-isolation and packaging seam; day-to-day use of the CLI
|
|
274
278
|
does not need it.
|
|
275
279
|
|
|
276
|
-
See [Explainer Kit](../
|
|
280
|
+
See [Explainer Kit](../skills/explainer-kit.md) for recipes, artifact
|
|
277
281
|
locations, lifecycle behavior, and archive/export behavior.
|
|
278
282
|
|
|
279
283
|
Workflow gate objects are structured config and use their own command group
|
|
280
284
|
instead of the scalar `oat config set` surface. See
|
|
281
|
-
[Workflow Gates](workflow-gates.md) for the full command surface and examples.
|
|
285
|
+
[Workflow Gates](../workflows/advanced/workflow-gates.md) for the full command surface and examples.
|
|
282
286
|
|
|
283
287
|
Gate budgets resolve per run in this order: CLI `--timeout-ms`, selected
|
|
284
288
|
target `timeoutMs`, `workflow.gateTimeouts` by review type,
|
|
@@ -377,7 +381,7 @@ configuration, never mutates any config layer, and is never written by a
|
|
|
377
381
|
non-interactive run. Resolve it with
|
|
378
382
|
`oat gate resolve <skill> --project <path-or-name> --json`; without `--project`
|
|
379
383
|
the command keeps its original raw output. See
|
|
380
|
-
[Workflow gates](
|
|
384
|
+
[Workflow gates](../workflows/advanced/workflow-gates.md) for the full resolution envelope and the
|
|
381
385
|
phase-review and autonomous exclusions.
|
|
382
386
|
|
|
383
387
|
In practice, you usually inspect these via:
|
|
@@ -398,14 +402,14 @@ Dispatch configuration has two layers:
|
|
|
398
402
|
|
|
399
403
|
A named ceiling is a maximum constraint, not an exact model-family or effort
|
|
400
404
|
preference. For the full model, see
|
|
401
|
-
[Dispatch Policy](../workflows/
|
|
405
|
+
[Dispatch Policy](../workflows/advanced/dispatch-ceiling.md).
|
|
402
406
|
|
|
403
407
|
### Config keys
|
|
404
408
|
|
|
405
409
|
| Key | Values | Purpose |
|
|
406
410
|
| ------------------------------------------------------ | ----------------------------------------------------- | ------------------------------------------------------------------------------------ |
|
|
407
411
|
| `workflow.dispatchPolicy.mode` | `managed`, `inherit` | `managed` lets OAT select exact candidates; `inherit` leaves controls to the host |
|
|
408
|
-
| `workflow.dispatchPolicy.policy` | `economy`, `balanced`, `high`, `frontier`, `uncapped` |
|
|
412
|
+
| `workflow.dispatchPolicy.policy` | `economy`, `balanced`, `high`, `frontier`, `uncapped` | Configured maximum overriding project state, or explicit managed uncapped state |
|
|
409
413
|
| `workflow.dispatchCeiling.providers.<provider>` | tier map or legacy bare value | Reusable provider candidate column |
|
|
410
414
|
| `workflow.dispatchCeiling.providers.<provider>.<tier>` | `candidates` cell, route, or legacy bare value | One named tier in the provider ladder |
|
|
411
415
|
| `workflow.dispatchCeiling.recommendationVersion` | string | Bundle version last written by adoption; does not prove the effective ladder matches |
|
|
@@ -705,7 +709,7 @@ Workflow preferences let power users answer repetitive confirmation prompts once
|
|
|
705
709
|
Workflow preference keys live under the `workflow.*` namespace:
|
|
706
710
|
|
|
707
711
|
- `workflow.designMode` — `collaborative`, `selective`, or `draft`. Default design interaction mode. `selective` applies only to full `oat-project-design`; quick-start lightweight design treats it as collaborative because quick-start keeps the smaller collaborative/draft choice.
|
|
708
|
-
- `workflow.hillCheckpointDefault` — `every` or `final`. Default HiLL checkpoint behavior in `oat-project-implement
|
|
712
|
+
- `workflow.hillCheckpointDefault` — `every` or `final`. Default HiLL checkpoint behavior in `oat-project-implement` (a HiLL, or human-in-the-loop, checkpoint is a stop for your review): pause after every phase or only after the last phase. When unset, the skill prompts. See [Choosing a checkpoint default](#choosing-a-checkpoint-default).
|
|
709
713
|
- `workflow.archiveOnComplete` — boolean. Skip the "Archive after completion?" prompt in `oat-project-complete`. When unset, the skill prompts.
|
|
710
714
|
- `workflow.createPrOnComplete` — boolean. Skip the "Open a PR?" prompt in `oat-project-complete`; when true, completion auto-triggers PR creation. When unset, the skill prompts.
|
|
711
715
|
- `workflow.postImplementSequence` — legacy `wait`, `summary`, `pr`, or `docs-pr`, or `{ "preApproval": [...], "postApproval": [...] }`. Legacy values remain strings and keep their existing mappings. Structured arrays contain ordered, globally unique `summary`, `document`, `pr`, and `retro` steps. `retro` is post-approval only: a structured value containing it in `preApproval` is rejected. Pre-approval steps run after final review and before final HiLL approval; post-approval steps run only after that approval. Plain retrieval keeps legacy strings and prints structured values as compact JSON; `--json` returns the raw value.
|
|
@@ -735,6 +739,22 @@ Without those settings, non-interactive retro generation records proposals but
|
|
|
735
739
|
does not apply or file them. Interactive runs still present the applicable
|
|
736
740
|
promotion and filing choices before side effects.
|
|
737
741
|
|
|
742
|
+
What leaves your repository through retro filing: `oat-project-retro-file`
|
|
743
|
+
files the retro's "OAT Upstream Feedback" items (`UP-01`, `UP-02`, and so on;
|
|
744
|
+
each is a title plus a problem, evidence summary, and suggested direction) as
|
|
745
|
+
GitHub issues in the upstream repository. That repository is
|
|
746
|
+
`workflow.retro.upstreamRepo` when set and `voxmedia/open-agent-toolkit` when
|
|
747
|
+
it is not. Nothing is filed by default: the skill runs only when you ask for
|
|
748
|
+
it, an interactive run asks you to confirm each destination and each item, and
|
|
749
|
+
a non-interactive run files nothing for a lane whose filing key is unset or
|
|
750
|
+
`none`. When the source repository is private and the destination is public,
|
|
751
|
+
the skill removes private log excerpts, internal URLs, credential-shaped
|
|
752
|
+
strings, and private identifiers before posting, and does not post an item it
|
|
753
|
+
cannot sanitize safely. To stop non-interactive upstream filing, run
|
|
754
|
+
`oat config set workflow.retro.filing.upstream none`; to send upstream items to
|
|
755
|
+
a different repository, run
|
|
756
|
+
`oat config set workflow.retro.upstreamRepo <owner/name>`.
|
|
757
|
+
|
|
738
758
|
The two project-log keys use the standard workflow precedence:
|
|
739
759
|
`local > shared > user > default`.
|
|
740
760
|
|
|
@@ -764,7 +784,7 @@ explicit final-default path and enables checkpoint auto-review; it preserves an
|
|
|
764
784
|
existing valid empty or explicit list. Because autonomy itself is never
|
|
765
785
|
persisted, a later interactive run pauses at the stored checkpoints normally.
|
|
766
786
|
|
|
767
|
-
See [HiLL Checkpoints](../workflows/projects/hill-checkpoints.md) for timing and
|
|
787
|
+
See [HiLL Checkpoints](../workflows/projects/planning/hill-checkpoints.md) for timing and
|
|
768
788
|
approval behavior.
|
|
769
789
|
|
|
770
790
|
### Auto artifact-review preferences
|
|
@@ -792,23 +812,20 @@ Workflow preferences resolve through three config surfaces, with `local > shared
|
|
|
792
812
|
|
|
793
813
|
```bash
|
|
794
814
|
# User-level: applies to all repos on this machine
|
|
815
|
+
# Checkpoint default: choose every (pause after each phase) or final (pause once at the end)
|
|
795
816
|
oat config set workflow.hillCheckpointDefault final --user
|
|
796
|
-
oat config set workflow.archiveOnComplete true --user
|
|
797
|
-
oat config set workflow.createPrOnComplete true --user
|
|
798
|
-
oat config set workflow.postImplementSequence pr --user
|
|
799
817
|
oat config set workflow.reviewExecutionModel subagent --user
|
|
800
818
|
oat config set workflow.autoReviewAtHillCheckpoints true --user
|
|
801
819
|
oat config set workflow.designMode selective --user
|
|
802
|
-
oat config set workflow.
|
|
803
|
-
oat config adopt dispatch-matrix --user
|
|
804
|
-
oat config set workflow.autoArtifactReview.plan true --user
|
|
805
|
-
oat config set workflow.autoArtifactReview.analysis true --user
|
|
820
|
+
oat config set workflow.autoNarrowReReviewScope true --user
|
|
821
|
+
oat config adopt dispatch-matrix --user # your own model ladder; sets no policy
|
|
806
822
|
|
|
807
823
|
# Shared repo: team decision for this repo
|
|
824
|
+
oat config set workflow.archiveOnComplete true --shared
|
|
825
|
+
oat config set workflow.postImplementSequence docs-pr --shared
|
|
808
826
|
oat config set workflow.createPrOnComplete false --shared
|
|
809
827
|
oat config set workflow.designMode collaborative --shared
|
|
810
|
-
oat config set workflow.dispatchCeiling.
|
|
811
|
-
oat config set workflow.dispatchCeiling.providers.cursor.high composer-2.5 --shared
|
|
828
|
+
oat config set workflow.dispatchCeiling.providers.cursor.high composer-2.5 --shared # one ladder cell
|
|
812
829
|
oat config set workflow.autoArtifactReview.plan false --shared
|
|
813
830
|
oat config set workflow.projectLog auto --shared
|
|
814
831
|
oat config set workflow.projectLogLedgerPath .oat/repo/reference/project-observations.md --shared
|
|
@@ -816,10 +833,40 @@ oat config set workflow.projectLogLedgerPath .oat/repo/reference/project-observa
|
|
|
816
833
|
# Repo-local: personal override for this repo (default when no flag)
|
|
817
834
|
oat config set workflow.hillCheckpointDefault every
|
|
818
835
|
oat config set workflow.designMode draft
|
|
819
|
-
oat config set workflow.dispatchCeiling.providers.codex medium # Advanced: per-provider override
|
|
820
836
|
oat config set workflow.autoArtifactReview.analysis false
|
|
821
837
|
```
|
|
822
838
|
|
|
839
|
+
The user-level workflow preference lines use only keys that this page lists as
|
|
840
|
+
safe personal defaults in [Choosing the right surface](#choosing-the-right-surface-personal-vs-per-repo).
|
|
841
|
+
The dispatch lines adopt a model ladder and set one ladder cell; neither sets
|
|
842
|
+
a dispatch policy. The examples deliberately leave out the legacy
|
|
843
|
+
`workflow.dispatchCeiling.preset` key and bare per-provider values such as
|
|
844
|
+
`workflow.dispatchCeiling.providers.codex medium`: both still work, but they
|
|
845
|
+
replace that scope's ladder columns with a single legacy ceiling, and a
|
|
846
|
+
dispatch policy set in any config file overrides every project's own choice.
|
|
847
|
+
Read the warning below and [Dispatch Policy](../workflows/advanced/dispatch-ceiling.md)
|
|
848
|
+
before setting either.
|
|
849
|
+
The completion and PR keys (`workflow.archiveOnComplete`,
|
|
850
|
+
`workflow.createPrOnComplete`, and `workflow.postImplementSequence`) appear in
|
|
851
|
+
the shared block instead. A value in `~/.oat/config.json` applies in every
|
|
852
|
+
repository on your machine that does not set the same key in its own
|
|
853
|
+
`.oat/config.json` or `.oat/config.local.json`, because OAT resolves each key
|
|
854
|
+
as local, then shared, then user, then the built-in default. Whether those
|
|
855
|
+
completion keys are safe depends on each repository's archive and
|
|
856
|
+
documentation settings, so set them per repository. The
|
|
857
|
+
`workflow.autoArtifactReview.*` keys already default to `true`; set them only
|
|
858
|
+
in a repository that opts out, as the shared and repo-local examples show.
|
|
859
|
+
|
|
860
|
+
The legacy preset and bare-provider examples above remain readable compatibility
|
|
861
|
+
syntax, not recommended complete-ladder setup. They can replace candidate
|
|
862
|
+
columns with bare legacy ceilings. Prefer named policy plus explicit ladder
|
|
863
|
+
adoption for new configurations.
|
|
864
|
+
|
|
865
|
+
> [!WARNING]
|
|
866
|
+
> A dispatch policy set in any config file overrides the policy that every
|
|
867
|
+
> project chose for itself in its `state.md`. Leave the policy keys unset when
|
|
868
|
+
> each project should choose its own policy.
|
|
869
|
+
|
|
823
870
|
Default (no flag) targets `.oat/config.local.json` for workflow keys. Pass at most one of `--user`, `--shared`, or `--local`. Structural keys (`projects.root`, `worktrees.root`, `git.*`, `documentation.*`, `instructions.*`, `archive.*`, `tools.*`) are still shared-only regardless of flag.
|
|
824
871
|
|
|
825
872
|
### Choosing the right surface (personal vs per-repo)
|
|
@@ -830,7 +877,7 @@ Not every workflow preference belongs at user level, even though "set once, appl
|
|
|
830
877
|
|
|
831
878
|
Some preferences are **genuinely personal** — their correct value is the same for you regardless of which repo you're in. These are safe to set at `--user`:
|
|
832
879
|
|
|
833
|
-
- `workflow.hillCheckpointDefault` — your personal
|
|
880
|
+
- `workflow.hillCheckpointDefault` — how often you want implementation to pause for your review. It is a personal preference by default; see [Choosing a checkpoint default](#choosing-a-checkpoint-default) below for when a team should set it instead.
|
|
834
881
|
- `workflow.designMode` — your preferred full-design interaction style. Set `selective` when you usually want low-risk sections drafted silently but high-risk sections reviewed live.
|
|
835
882
|
- `workflow.reviewExecutionModel` — depends on your provider environment (Claude Code, Cursor, Codex), not the repo
|
|
836
883
|
- `workflow.autoReviewAtHillCheckpoints` — your preference for automatic lifecycle review at HiLL checkpoints. Shared/local config can still override this when a repo should behave differently.
|
|
@@ -845,10 +892,12 @@ Other preferences **depend on per-repo configuration** to be safe. These should
|
|
|
845
892
|
|
|
846
893
|
**Cross-repo foot-gun example:** If you set `workflow.createPrOnComplete: true --user`, it applies to every repo you work on. In a repo with `documentation.requireForProjectCompletion: true` and `postImplementSequence: pr` (no docs step), running `oat-project-complete` would try to auto-create a PR, then immediately hit the docs gate and block you — leaving you with an open PR and a stuck completion. Your user-level preference silently asserted something that only holds in a specific shared-config shape.
|
|
847
894
|
|
|
848
|
-
**
|
|
895
|
+
**Example split between personal and team settings:**
|
|
849
896
|
|
|
850
897
|
```bash
|
|
851
898
|
# Personal preferences that differ from built-in defaults (apply everywhere)
|
|
899
|
+
# Optional checkpoint default: every for more control, final for fewer interruptions;
|
|
900
|
+
# leave unset to be asked on each project's first implementation run
|
|
852
901
|
oat config set workflow.hillCheckpointDefault final --user
|
|
853
902
|
oat config set workflow.reviewExecutionModel subagent --user
|
|
854
903
|
oat config set workflow.autoReviewAtHillCheckpoints true --user
|
|
@@ -864,6 +913,29 @@ If you want to override a shared team decision for this specific checkout, use `
|
|
|
864
913
|
oat config set workflow.archiveOnComplete false --local # "I don't want to archive on this specific branch checkout"
|
|
865
914
|
```
|
|
866
915
|
|
|
916
|
+
### Choosing a checkpoint default
|
|
917
|
+
|
|
918
|
+
`workflow.hillCheckpointDefault` decides where `oat-project-implement` stops
|
|
919
|
+
for your review. These stops are called HiLL checkpoints (HiLL stands for
|
|
920
|
+
"human in the loop"). Neither value is right for everyone:
|
|
921
|
+
|
|
922
|
+
- `every` pauses after each phase. You get more control over the work, at the
|
|
923
|
+
cost of more interruptions.
|
|
924
|
+
- `final` pauses once, after the last phase. You are interrupted less, but you
|
|
925
|
+
see the work only at the end.
|
|
926
|
+
|
|
927
|
+
When the key is unset, the first implementation run of each project asks you
|
|
928
|
+
which to use. When it is set, that first run uses the configured value without
|
|
929
|
+
asking, and the value replaces any checkpoint value already written in the
|
|
930
|
+
project's `plan.md`. Later runs of the same project keep the value stored in
|
|
931
|
+
`plan.md`.
|
|
932
|
+
|
|
933
|
+
Treat the key as a personal preference by default, and set it at user level
|
|
934
|
+
(`--user`) or for one checkout (`--local`). Set it at shared level (`--shared`)
|
|
935
|
+
only when your team has agreed on a rule for where agents must pause. A shared
|
|
936
|
+
value overrides each person's user-level value, but anyone can still override
|
|
937
|
+
it for their own checkout with `--local`.
|
|
938
|
+
|
|
867
939
|
### Relationship to `autoReviewAtCheckpoints`
|
|
868
940
|
|
|
869
941
|
`workflow.autoReviewAtHillCheckpoints` is the preferred key. It controls whether `oat-project-implement` runs the extra lifecycle review when a configured HiLL checkpoint is reached.
|
|
@@ -914,3 +986,48 @@ When you are unsure where a setting lives:
|
|
|
914
986
|
3. Use the owning command shown there.
|
|
915
987
|
|
|
916
988
|
That keeps config discovery centralized without forcing you to remember which settings belong to workflow state versus provider sync.
|
|
989
|
+
|
|
990
|
+
## Choosing a config layer
|
|
991
|
+
|
|
992
|
+
`oat config set` can write a setting to one of three files, called layers:
|
|
993
|
+
|
|
994
|
+
- **shared** (`--shared`): `.oat/config.json`, committed with the repository so
|
|
995
|
+
it applies to the whole team;
|
|
996
|
+
- **local** (`--local`): `.oat/config.local.json`, which applies only to this
|
|
997
|
+
checkout and is not committed;
|
|
998
|
+
- **user** (`--user`): `~/.oat/config.json` in your home directory, which
|
|
999
|
+
applies to you in every repository.
|
|
1000
|
+
|
|
1001
|
+
When the same key is set in more than one layer, local wins over shared, and
|
|
1002
|
+
shared wins over user. A team's shared value therefore overrides your personal
|
|
1003
|
+
user value unless you also set it locally.
|
|
1004
|
+
|
|
1005
|
+
| Layer | Choose it when | What you give up |
|
|
1006
|
+
| ---------- | ----------------------------------------------------------- | --------------------------------------------------------------------- |
|
|
1007
|
+
| `--shared` | The team should behave the same way in this repository | Personal flexibility: changes go through code review like other files |
|
|
1008
|
+
| `--local` | You want to override something for yourself in one checkout | Nobody else, and none of your other checkouts, sees the value |
|
|
1009
|
+
| `--user` | The value is about how you work, whatever the repository | Any repository that sets the key in shared or local config wins |
|
|
1010
|
+
|
|
1011
|
+
With no flag, workflow preferences, project state, and explainer defaults are
|
|
1012
|
+
written to local config, update notifications to user config, and structural
|
|
1013
|
+
settings (repository paths and policy, such as `projects.root` or
|
|
1014
|
+
`documentation.*`) to shared config. Some keys can live in only one layer:
|
|
1015
|
+
project state is local-only, update notifications are user-only, and remote
|
|
1016
|
+
project-management policy is shared-only. `oat tools install` records each pack
|
|
1017
|
+
in the scope you installed it to, but `oat config set tools.*` writes only to
|
|
1018
|
+
shared config.
|
|
1019
|
+
|
|
1020
|
+
- If you are trying OAT on your own, set values with no flag and accept the
|
|
1021
|
+
defaults.
|
|
1022
|
+
- If you are rolling OAT out to a team, set policy keys with `--shared` and
|
|
1023
|
+
commit the change so it is reviewed.
|
|
1024
|
+
- If you want a preference to follow you into every repository, use `--user`,
|
|
1025
|
+
but only for keys listed as personal in
|
|
1026
|
+
[Choosing the right surface](#choosing-the-right-surface-personal-vs-per-repo).
|
|
1027
|
+
- If you need to differ from the team's setting in one checkout, use `--local`
|
|
1028
|
+
rather than changing the policy for everyone.
|
|
1029
|
+
|
|
1030
|
+
Environment variables override all three layers, but only for three keys:
|
|
1031
|
+
`projects.root`, `projects.defaultScope`, and `worktrees.root`. Some skills read
|
|
1032
|
+
their own environment variables, such as `OAT_DESIGN_MODE`; those are separate
|
|
1033
|
+
from config resolution.
|
|
@@ -111,7 +111,7 @@ When shared state is explicitly previewed and approved,
|
|
|
111
111
|
`.oat/repo/pjm/remote/state/` or `<project>/remote/state/` replaces the local
|
|
112
112
|
operational root. Shared state can contain remote planning content and is not
|
|
113
113
|
available for local projects. See
|
|
114
|
-
[Remote Project Management](../
|
|
114
|
+
[Remote Project Management](../workflows/backlog-and-planning/remote-project-management.md).
|
|
115
115
|
|
|
116
116
|
## Project artifact trees
|
|
117
117
|
|
|
@@ -168,6 +168,9 @@ Archive sync surfaces:
|
|
|
168
168
|
|
|
169
169
|
## CLI code
|
|
170
170
|
|
|
171
|
+
These paths are in the OAT source repository, not in a repository that uses
|
|
172
|
+
OAT. They matter only if you are working on OAT itself.
|
|
173
|
+
|
|
171
174
|
- `packages/control-plane/` - read-only control-plane library for project-state parsing and recommendation
|
|
172
175
|
- `packages/cli/src/commands/`
|
|
173
176
|
- `packages/cli/src/commands/cleanup/`
|
|
@@ -11,11 +11,17 @@ Contributor how-to material now lives under `contributing/`, and user-facing rou
|
|
|
11
11
|
|
|
12
12
|
## Contents
|
|
13
13
|
|
|
14
|
+
- [What OAT Writes](what-oat-writes.md) - Every file, link and Git ref OAT creates, what to commit, and how to remove it.
|
|
15
|
+
- [Configuration](configuration.md) - OAT configuration guidance across shared, local, user, and provider-sync surfaces.
|
|
16
|
+
- [Config and Local State](config-and-local-state.md) - Utility command groups for config, local state, diagnostics, and related inspection flows.
|
|
14
17
|
- [CLI Reference](cli-reference.md) - Shallow map of the OAT command surface with links to owning sections.
|
|
15
18
|
- [File Locations](file-locations.md) - Where core OAT files, assets, and artifacts live.
|
|
16
19
|
- [Docs Index Contract](docs-index-contract.md) - Authored `index.md` maps, `.md` links, generated Fumadocs manifests, and MkDocs and Fumadocs nav sync boundaries.
|
|
17
|
-
- [
|
|
20
|
+
- [`.oat` Directory Structure](oat-directory-structure.md) - Canonical `.oat/` tree map and the role of each major directory.
|
|
18
21
|
- [Troubleshooting](troubleshooting.md) - Common issues, diagnostics, and remediation guidance.
|
|
22
|
+
- [Project Artifacts](project-artifacts.md) - What lives in `state.md`, `discovery.md`, `plan.md`, `implementation.md`, and related files.
|
|
23
|
+
- [State Machine](project-state-machine.md) - Lifecycle and review status transitions across a project.
|
|
24
|
+
- [Repository PR Comment Analysis](repository-pr-comments.md) - Repo-wide PR comment collection and triage workflows.
|
|
19
25
|
|
|
20
26
|
## What Belongs Here
|
|
21
27
|
|
|
@@ -28,3 +34,9 @@ Contributor how-to material now lives under `contributing/`, and user-facing rou
|
|
|
28
34
|
- [CLI Reference](cli-reference.md) for the command-surface map
|
|
29
35
|
- [Docs Tooling](../docs-tooling/index.md) for docs app setup and workflow guidance
|
|
30
36
|
- [Contributing](../contributing/index.md) for code, docs, and skill-authoring practices
|
|
37
|
+
|
|
38
|
+
## General CLI Adoption Guidance
|
|
39
|
+
|
|
40
|
+
Use OAT's general CLI for repository setup, tool-pack management, configuration and diagnostics independently of provider sync, docs tooling or tracked workflows.
|
|
41
|
+
|
|
42
|
+
Start with [Getting Started](../getting-started/index.md) for bootstrap and tool packs. See [Configuration](configuration.md) for settings, [Config and Local State](config-and-local-state.md) for diagnostics, and [Advanced](../workflows/advanced/index.md) for workflow gates.
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"title": "Reference",
|
|
3
3
|
"pages": [
|
|
4
|
+
"what-oat-writes",
|
|
5
|
+
"configuration",
|
|
6
|
+
"config-and-local-state",
|
|
4
7
|
"cli-reference",
|
|
5
8
|
"file-locations",
|
|
6
9
|
"docs-index-contract",
|
|
7
10
|
"oat-directory-structure",
|
|
8
|
-
"troubleshooting"
|
|
11
|
+
"troubleshooting",
|
|
12
|
+
"project-artifacts",
|
|
13
|
+
"project-state-machine",
|
|
14
|
+
"repository-pr-comments"
|
|
9
15
|
]
|
|
10
16
|
}
|
|
@@ -148,7 +148,7 @@ Current schema keys:
|
|
|
148
148
|
Most `documentation.*` keys are managed via `oat config get/set` and are set automatically by `oat docs init`. One has no `oat config set` entry and is edited directly in `.oat/config.json`: `documentation.index`, which `oat docs init` still seeds for you.
|
|
149
149
|
The `git.defaultBranch` key is auto-detected during `oat init` and can be overridden via `oat config set git.defaultBranch <branch>`.
|
|
150
150
|
Archive settings are managed via `oat config get/set`, and `oat config describe archive.s3Uri` (or the other archive keys) shows the lifecycle and ownership details from the CLI.
|
|
151
|
-
Workflow gate objects are structured config and are managed with `oat gate`, not the scalar `oat config set` surface. See [Workflow Gates](../
|
|
151
|
+
Workflow gate objects are structured config and are managed with `oat gate`, not the scalar `oat config set` surface. See [Workflow Gates](../workflows/advanced/workflow-gates.md).
|
|
152
152
|
|
|
153
153
|
Example:
|
|
154
154
|
|
|
@@ -86,7 +86,7 @@ behavioral change needs evidence that fails without the change.
|
|
|
86
86
|
machine-scannable repo-improvement (`RP-NN`) and upstream-feedback (`UP-NN`)
|
|
87
87
|
registers. Promotion and filing rollups let the retro skills resume approved
|
|
88
88
|
applications and tracker filing without repeating settled work. See
|
|
89
|
-
[Project Retrospectives](retro.md).
|
|
89
|
+
[Project Retrospectives](../workflows/projects/closeout/retro.md).
|
|
90
90
|
|
|
91
91
|
### Explainer artifacts
|
|
92
92
|
|
|
@@ -197,7 +197,7 @@ Coordination parents do not contain executable phase files. `spec.md`, `design.m
|
|
|
197
197
|
|
|
198
198
|
The parent still keeps `state.md`, `discovery.md`, and `references/split-plan.json`. Child projects are flat siblings and link back to the parent through state metadata. Each child starts from a distilled discovery seed and must revalidate inherited context before moving beyond discovery/design.
|
|
199
199
|
|
|
200
|
-
See [Project Splitting](splitting.md) for the full parent/child model.
|
|
200
|
+
See [Project Splitting](../workflows/projects/planning/splitting.md) for the full parent/child model.
|
|
201
201
|
|
|
202
202
|
### plan.md frontmatter
|
|
203
203
|
|
|
@@ -232,7 +232,7 @@ Each inner array is a group of phases that execute concurrently in their own wor
|
|
|
232
232
|
|
|
233
233
|
**Validation:**
|
|
234
234
|
|
|
235
|
-
Before dispatching, `oat-project-implement` invokes `oat project validate-plan --project-path "${PROJECT_PATH}"`. Non-zero exit blocks the run. See [CLI Reference](
|
|
235
|
+
Before dispatching, `oat-project-implement` invokes `oat project validate-plan --project-path "${PROJECT_PATH}"`. Non-zero exit blocks the run. See [CLI Reference](cli-reference.md) and [Implementation Execution](../workflows/projects/execution/implementation-execution.md) for details.
|
|
236
236
|
|
|
237
237
|
#### oat_phase_review_gate
|
|
238
238
|
|
|
@@ -261,7 +261,7 @@ oat_phase_review_gate:
|
|
|
261
261
|
- `review_type` → optional, defaults to `code`. Only `code` is supported for phase gates.
|
|
262
262
|
- `exit_nonzero_on` → optional, defaults to `high`. One of `critical`, `high`, `medium`, `low`. This is the blocking threshold: findings at or above it stop the phase; sub-threshold findings are dispositioned by the judgment sweep rather than ignored.
|
|
263
263
|
|
|
264
|
-
A malformed gate stops the run before task execution rather than being silently disabled. The gate is independent of HiLL checkpoints and reuses the existing `oat gate review` target config — it does not hardcode a `--target`. See [Reviews → Phase review gate](reviews.md#phase-review-gate) for the runtime behavior and disposition rules.
|
|
264
|
+
A malformed gate stops the run before task execution rather than being silently disabled. The gate is independent of HiLL checkpoints and reuses the existing `oat gate review` target config — it does not hardcode a `--target`. See [Reviews → Phase review gate](../workflows/projects/reviews/index.md#phase-review-gate) for the runtime behavior and disposition rules.
|
|
265
265
|
|
|
266
266
|
## Reference artifacts
|
|
267
267
|
|
package/assets/docs/{workflows/projects/state-machine.md → reference/project-state-machine.md}
RENAMED
|
@@ -15,26 +15,33 @@ This page is the compact contract for how project lifecycle state and review sta
|
|
|
15
15
|
|
|
16
16
|
## State Transition Map
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
18
|
+
=== "Diagram"
|
|
19
|
+
|
|
20
|
+

|
|
21
|
+

|
|
22
|
+
|
|
23
|
+
=== "Mermaid source"
|
|
24
|
+
|
|
25
|
+
```mermaid
|
|
26
|
+
flowchart TD
|
|
27
|
+
D["Discovery in progress"] --> RS["Ready for spec"]
|
|
28
|
+
RS --> S["Spec in progress"] --> RD["Ready for design"]
|
|
29
|
+
RD --> G["Design in progress"] --> RP["Ready for plan"]
|
|
30
|
+
RP --> P["Plan in progress"] --> RI["Ready for implement"]
|
|
31
|
+
RI --> I["Implement in progress"] --> IC["Implement complete"]
|
|
32
|
+
IC --> PRO["PR open (pr_open)"]
|
|
33
|
+
PRO --> REV["Revise (in_progress)"]
|
|
34
|
+
REV --> PRO
|
|
35
|
+
PRO --> C["Complete"]
|
|
36
|
+
|
|
37
|
+
I --> RV["Review received"]
|
|
38
|
+
RV --> FA["Fixes added"]
|
|
39
|
+
FA --> FC["Fixes completed"]
|
|
40
|
+
FC --> PASSED["Review passed"]
|
|
41
|
+
PASSED --> I
|
|
42
|
+
|
|
43
|
+
LITE["Lite: batched interview\n(no discovery/spec/design)"] -. entry point .-> P
|
|
44
|
+
```
|
|
38
45
|
|
|
39
46
|
The solid chain is the spec-driven progression. Lite enters at **Plan in
|
|
40
47
|
progress** and never sets `oat_phase` to `discovery`, `spec`, or `design`;
|
|
@@ -83,7 +90,7 @@ Lite progression:
|
|
|
83
90
|
A lite project that outgrows one sitting can move to the quick chain with `oat
|
|
84
91
|
project promote <project-path> --to quick`, which flips `oat_workflow_mode` to
|
|
85
92
|
`quick` and sets `oat_phase: discovery` with `oat_phase_status: complete`. See
|
|
86
|
-
[Lifecycle](lifecycle.md#promoting-a-lite-project-to-quick).
|
|
93
|
+
[Lifecycle](../workflows/projects/lifecycle.md#promoting-a-lite-project-to-quick).
|
|
87
94
|
|
|
88
95
|
## Review progression
|
|
89
96
|
|
package/assets/docs/{workflows/projects/repo-analysis.md → reference/repository-pr-comments.md}
RENAMED
|
@@ -7,7 +7,7 @@ description: 'Repository-level PR comment analysis commands for collecting and t
|
|
|
7
7
|
|
|
8
8
|
The `oat repo pr-comments` command group provides repository-level review analysis tools. These commands operate across merged pull requests rather than on individual PRs.
|
|
9
9
|
|
|
10
|
-
This page covers the PR-comment analysis surface only. Other repository-level commands, such as `oat repo archive sync`, are covered in [Lifecycle](lifecycle.md#completion-archive-behavior) and [Configuration](
|
|
10
|
+
This page covers the PR-comment analysis surface only. Other repository-level commands, such as `oat repo archive sync`, are covered in [Lifecycle](../workflows/projects/lifecycle.md#completion-archive-behavior) and [Configuration](configuration.md#shared-repo-config-you-will-touch-most-often).
|
|
11
11
|
|
|
12
12
|
## Quick Look
|
|
13
13
|
|
|
@@ -102,4 +102,4 @@ Both commands accept dependency injection for testability:
|
|
|
102
102
|
|
|
103
103
|
- Source: `packages/cli/src/commands/repo/pr-comments/`
|
|
104
104
|
- Types: `packages/cli/src/commands/repo/pr-comments/collect/pr-comments.types.ts`
|
|
105
|
-
- Archive sync: [Lifecycle](lifecycle.md#completion-archive-behavior) and [Configuration](
|
|
105
|
+
- Archive sync: [Lifecycle](../workflows/projects/lifecycle.md#completion-archive-behavior) and [Configuration](configuration.md#shared-repo-config-you-will-touch-most-often)
|