@open-agent-toolkit/cli 0.0.53 → 0.0.55
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/assets/docs/cli-utilities/config-and-local-state.md +4 -0
- package/assets/docs/cli-utilities/configuration.md +31 -1
- package/assets/docs/workflows/projects/design-modes.md +108 -0
- package/assets/docs/workflows/projects/index.md +1 -0
- package/assets/docs/workflows/projects/lifecycle.md +6 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-project-design/SKILL.md +451 -212
- package/assets/skills/oat-project-design/references/selective-review-pass.md +112 -0
- package/assets/skills/oat-project-discover/SKILL.md +9 -5
- package/assets/skills/oat-project-quick-start/SKILL.md +132 -13
- package/assets/skills/oat-project-spec/SKILL.md +9 -4
- package/assets/templates/discovery.md +13 -4
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +47 -0
- package/dist/commands/project/archive/archive-utils.d.ts +53 -0
- package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
- package/dist/commands/project/archive/archive-utils.js +49 -2
- package/dist/commands/project/archive/index.d.ts.map +1 -1
- package/dist/commands/project/archive/index.js +58 -10
- package/dist/config/oat-config.d.ts +4 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +24 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +3 -0
- package/package.json +2 -2
|
@@ -57,6 +57,10 @@ Archive lifecycle settings live here as shared repo config:
|
|
|
57
57
|
- `archive.s3SyncOnComplete`
|
|
58
58
|
- `archive.summaryExportPath`
|
|
59
59
|
- `archive.wrapUpExportPath`
|
|
60
|
+
- `archive.awsProfile`
|
|
61
|
+
- `archive.awsRegion`
|
|
62
|
+
|
|
63
|
+
`archive.awsProfile` and `archive.awsRegion` are forwarded as `AWS_PROFILE` / `AWS_REGION` env vars into every `aws` spawn that runs during `oat-project-complete` and `oat project archive sync`. The per-invocation `oat project archive sync --profile <profile>` and `--region <region>` flags override the config for a single run; an `AWS_PROFILE` / `AWS_REGION` already set in the parent shell sits between the flag and the config in precedence (flag > shell env > config). Raw access keys (`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`) remain a shell-environment concern — there is no config plumbing for them.
|
|
60
64
|
|
|
61
65
|
Tool-pack installation state also lives here as shared repo config:
|
|
62
66
|
|
|
@@ -83,6 +83,8 @@ Common keys in `.oat/config.json`:
|
|
|
83
83
|
- `archive.s3SyncOnComplete` — upload archived projects to S3 during completion
|
|
84
84
|
- `archive.summaryExportPath` — export `summary.md` into a durable tracked directory during completion
|
|
85
85
|
- `archive.wrapUpExportPath` — optional tracked destination for `oat-wrap-up` reports; when unset, the skill falls back to `.oat/repo/reference/wrap-ups`
|
|
86
|
+
- `archive.awsProfile` — optional AWS named profile forwarded as `AWS_PROFILE` to every `aws` invocation in archive flows
|
|
87
|
+
- `archive.awsRegion` — optional AWS region forwarded as `AWS_REGION` to every `aws` invocation in archive flows
|
|
86
88
|
- `tools.<pack>` — whether a bundled tool pack is currently installed in the repo or user scopes after lifecycle reconciliation
|
|
87
89
|
|
|
88
90
|
Tool-pack state example:
|
|
@@ -101,6 +103,8 @@ oat config set archive.s3Uri s3://example-bucket/oat-archive
|
|
|
101
103
|
oat config set archive.s3SyncOnComplete true
|
|
102
104
|
oat config set archive.summaryExportPath .oat/repo/reference/project-summaries
|
|
103
105
|
oat config set archive.wrapUpExportPath .oat/repo/reference/wrap-ups
|
|
106
|
+
oat config set archive.awsProfile work-sso
|
|
107
|
+
oat config set archive.awsRegion us-east-1
|
|
104
108
|
```
|
|
105
109
|
|
|
106
110
|
With those values configured:
|
|
@@ -110,6 +114,27 @@ With those values configured:
|
|
|
110
114
|
- completion also copies `summary.md` into `<archive.summaryExportPath>/20260401-my-project.md`
|
|
111
115
|
- `oat project archive sync` can later pull archive data back down from S3 and materialize the latest snapshot into the local bare archive path `.oat/projects/archived/<project>/`
|
|
112
116
|
- `oat-wrap-up` can write tracked reports into `<archive.wrapUpExportPath>/YYYY-MM-DD-wrap-up-<label>.md`; if the key is unset, the skill uses `.oat/repo/reference/wrap-ups/`
|
|
117
|
+
- every `aws` spawn (preflight `aws sts get-caller-identity`, `aws s3 ls`, `aws s3 sync`) inherits `AWS_PROFILE` / `AWS_REGION` from `archive.awsProfile` / `archive.awsRegion` when the parent shell does not already set them
|
|
118
|
+
|
|
119
|
+
### Credential resolution
|
|
120
|
+
|
|
121
|
+
Profile and region resolve with the following precedence per `aws` invocation, highest first:
|
|
122
|
+
|
|
123
|
+
1. CLI flag passed to `oat project archive sync` (`--profile <profile>`, `--region <region>`)
|
|
124
|
+
2. The parent shell's existing `AWS_PROFILE` / `AWS_REGION` env vars
|
|
125
|
+
3. The repo's shared `archive.awsProfile` / `archive.awsRegion` config
|
|
126
|
+
|
|
127
|
+
If none of the three are present for a given var, OAT does not inject it — the AWS CLI's own resolution chain takes over.
|
|
128
|
+
|
|
129
|
+
The `oat project archive sync` flags only override for that single invocation:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
oat project archive sync --profile work-sso --region us-east-1
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
`oat-project-complete` does not accept per-invocation flags. Set the shared config (or your shell env) ahead of time if completion needs a specific profile.
|
|
136
|
+
|
|
137
|
+
Raw access keys (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and friends) remain a shell-environment concern. OAT does not expose config keys for them — set them in your shell before running `oat-project-complete` or `oat project archive sync` and they are inherited by the spawned `aws` process unchanged.
|
|
113
138
|
|
|
114
139
|
## Repo-local and user state
|
|
115
140
|
|
|
@@ -137,8 +162,9 @@ Workflow preferences let power users answer repetitive confirmation prompts once
|
|
|
137
162
|
|
|
138
163
|
### Preference keys
|
|
139
164
|
|
|
140
|
-
All
|
|
165
|
+
All eight workflow preference keys live under the `workflow.*` namespace:
|
|
141
166
|
|
|
167
|
+
- `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.
|
|
142
168
|
- `workflow.hillCheckpointDefault` — `every` or `final`. Default HiLL checkpoint behavior in `oat-project-implement`: pause after every phase or only after the last phase. When unset, the skill prompts.
|
|
143
169
|
- `workflow.archiveOnComplete` — boolean. Skip the "Archive after completion?" prompt in `oat-project-complete`. When unset, the skill prompts.
|
|
144
170
|
- `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.
|
|
@@ -168,12 +194,15 @@ oat config set workflow.postImplementSequence pr --user
|
|
|
168
194
|
oat config set workflow.reviewExecutionModel subagent --user
|
|
169
195
|
oat config set workflow.autoReviewAtHillCheckpoints true --user
|
|
170
196
|
oat config set workflow.autoNarrowReReviewScope true --user
|
|
197
|
+
oat config set workflow.designMode selective --user
|
|
171
198
|
|
|
172
199
|
# Shared repo: team decision for this repo
|
|
173
200
|
oat config set workflow.createPrOnComplete false --shared
|
|
201
|
+
oat config set workflow.designMode collaborative --shared
|
|
174
202
|
|
|
175
203
|
# Repo-local: personal override for this repo (default when no flag)
|
|
176
204
|
oat config set workflow.hillCheckpointDefault every
|
|
205
|
+
oat config set workflow.designMode draft
|
|
177
206
|
```
|
|
178
207
|
|
|
179
208
|
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.*`, `archive.*`, `tools.*`) are still shared-only regardless of flag.
|
|
@@ -187,6 +216,7 @@ Not every workflow preference belongs at user level, even though "set once, appl
|
|
|
187
216
|
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`:
|
|
188
217
|
|
|
189
218
|
- `workflow.hillCheckpointDefault` — your personal tolerance for mid-implementation interruption
|
|
219
|
+
- `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.
|
|
190
220
|
- `workflow.reviewExecutionModel` — depends on your provider environment (Claude Code, Cursor, Codex), not the repo
|
|
191
221
|
- `workflow.autoReviewAtHillCheckpoints` — your preference for automatic lifecycle review at HiLL checkpoints. Shared/local config can still override this when a repo should behave differently.
|
|
192
222
|
- `workflow.autoNarrowReReviewScope` — pure personal workflow preference, no per-repo interaction
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Design Modes
|
|
3
|
+
description: 'How oat-project-design balances section-by-section collaboration, selective review, and draft-and-review.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design Modes
|
|
7
|
+
|
|
8
|
+
`oat-project-design` can run full spec-driven design in three interaction modes:
|
|
9
|
+
|
|
10
|
+
- **Collaborative**: every design section is drafted, presented, confirmed, and then the skill moves to the next section.
|
|
11
|
+
- **Selective collaborative**: the skill drafts every section, but only presents sections that need live review. Routine sections are written silently and recapped at the final review gate.
|
|
12
|
+
- **Draft-and-review**: the skill drafts the full design up front and the user reviews the committed file once at the end.
|
|
13
|
+
|
|
14
|
+
The default recommendation is collaborative when in doubt. Draft-and-review is never the picker default unless it was selected explicitly through an argument, environment variable, or config preference.
|
|
15
|
+
|
|
16
|
+
## Collaborative
|
|
17
|
+
|
|
18
|
+
Use collaborative mode when:
|
|
19
|
+
|
|
20
|
+
- the design is small enough that confirming every section is reasonable
|
|
21
|
+
- discovery exposed uncertainty across most of the design
|
|
22
|
+
- the repo has sparse knowledge/docs grounding
|
|
23
|
+
- you want maximum user control over the design narrative
|
|
24
|
+
|
|
25
|
+
The agent does not write `design.md` section-by-section. It drafts sections in conversation, asks for confirmation, and writes the assembled file only after all sections are approved.
|
|
26
|
+
|
|
27
|
+
## Selective Collaborative
|
|
28
|
+
|
|
29
|
+
Selective collaborative mode sits between collaborative and draft-and-review. It keeps live review for high-risk or uncertain sections, while letting routine sections move quietly into the design document.
|
|
30
|
+
|
|
31
|
+
Before drafting, the skill runs a selective review pass and prints a **Section Review Plan**:
|
|
32
|
+
|
|
33
|
+
| Section | Classification | Meaning |
|
|
34
|
+
| ------------ | -------------------------- | ----------------------------------------------------------------- |
|
|
35
|
+
| `needs-eyes` | Presented for confirmation | The section has at least one risk or uncertainty signal. |
|
|
36
|
+
| `routine` | Drafted silently | The section follows existing patterns and has adequate grounding. |
|
|
37
|
+
|
|
38
|
+
The user gets one cheap override moment before drafting: they can elevate any `routine` section to `needs-eyes`.
|
|
39
|
+
|
|
40
|
+
### Needs-eyes Signals
|
|
41
|
+
|
|
42
|
+
The selective review pass has a conservative bias: any one needs-eyes signal marks the section `needs-eyes`.
|
|
43
|
+
|
|
44
|
+
High-risk-by-default sections are always `needs-eyes`:
|
|
45
|
+
|
|
46
|
+
- Overview + Architecture
|
|
47
|
+
- Security Considerations
|
|
48
|
+
- Performance Considerations
|
|
49
|
+
- Error Handling
|
|
50
|
+
- Migration Plan
|
|
51
|
+
|
|
52
|
+
Other signals include:
|
|
53
|
+
|
|
54
|
+
- discovery open questions or user-flagged concerns touching the area
|
|
55
|
+
- three or more requirements concentrated in the section
|
|
56
|
+
- new public API, CLI, config, defaults, or workflow semantics
|
|
57
|
+
- cross-module boundaries not already described in repo architecture docs
|
|
58
|
+
- novel patterns not present in repo conventions or stack docs
|
|
59
|
+
- new dependencies, providers, services, storage models, permission boundaries, or integrations
|
|
60
|
+
- missing or thin grounding context for the section
|
|
61
|
+
|
|
62
|
+
If every section is `needs-eyes`, selective collaborative collapses into full collaborative and the skill explains why. If no section is `needs-eyes`, the skill still forces Overview + Architecture to `needs-eyes` so the user sees the framing.
|
|
63
|
+
|
|
64
|
+
### Final Review Recap
|
|
65
|
+
|
|
66
|
+
At the user-review gate, selective collaborative lists sections drafted without live confirmation:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
Drafted without live confirmation: Testing Strategy, Deployment Strategy.
|
|
70
|
+
Please review those sections especially carefully in the committed file.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
This keeps the silent path visible without adding live prompts for low-risk sections.
|
|
74
|
+
|
|
75
|
+
## Draft-and-review
|
|
76
|
+
|
|
77
|
+
Use draft-and-review when:
|
|
78
|
+
|
|
79
|
+
- you explicitly want a full draft before reacting
|
|
80
|
+
- the context is non-interactive
|
|
81
|
+
- a persisted preference or command override selected draft mode
|
|
82
|
+
|
|
83
|
+
In draft-and-review mode, the user-review gate is the only live interaction point.
|
|
84
|
+
|
|
85
|
+
## Quick-start Parity
|
|
86
|
+
|
|
87
|
+
Selective collaborative mode is only available in full spec-driven design through `oat-project-design`.
|
|
88
|
+
|
|
89
|
+
Quick-start lightweight design keeps the smaller two-choice model:
|
|
90
|
+
|
|
91
|
+
- collaborative lightweight design
|
|
92
|
+
- draft-and-review lightweight design
|
|
93
|
+
|
|
94
|
+
The quick-start section set is intentionally small and already curated for relevance, so selective review rarely saves enough prompts to justify another picker branch. If a quick project is promoted to spec-driven, selective collaborative becomes available when it enters full `oat-project-design`.
|
|
95
|
+
|
|
96
|
+
## Configuration
|
|
97
|
+
|
|
98
|
+
Use `workflow.designMode` to persist a personal or repo preference:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
oat config set workflow.designMode selective --user
|
|
102
|
+
oat config set workflow.designMode collaborative --shared
|
|
103
|
+
oat config set workflow.designMode draft --local
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Valid values are `collaborative`, `selective`, and `draft`.
|
|
107
|
+
|
|
108
|
+
Runtime non-interactive signals still win over this preference. If `OAT_NON_INTERACTIVE=1` is set, design runs in draft-and-review mode so automation does not block on prompts.
|
|
@@ -29,6 +29,7 @@ This sub-section is the deep technical surface for how tracked OAT projects exec
|
|
|
29
29
|
## Go Deeper
|
|
30
30
|
|
|
31
31
|
- [Lifecycle](lifecycle.md) - End-to-end flow from discovery through completion.
|
|
32
|
+
- [Design Modes](design-modes.md) - How full design balances collaborative, selective collaborative, and draft-and-review interaction.
|
|
32
33
|
- [HiLL Checkpoints](hill-checkpoints.md) - Human-in-the-Loop Lifecycle configuration and approval behavior.
|
|
33
34
|
- [Artifacts](artifacts.md) - What lives in `state.md`, `discovery.md`, `plan.md`, `implementation.md`, and related files.
|
|
34
35
|
- [State Machine](state-machine.md) - Lifecycle and review status transitions across a project.
|
|
@@ -23,6 +23,8 @@ OAT lifecycle order:
|
|
|
23
23
|
|
|
24
24
|
**Shortcut:** `oat-project-next` reads project state and invokes the correct next skill automatically — use it instead of remembering which skill comes next. Complements `oat-project-progress` (which is read-only diagnostic).
|
|
25
25
|
|
|
26
|
+
Full spec-driven design supports three interaction modes: collaborative, selective collaborative, and draft-and-review. Selective collaborative drafts routine sections silently and presents high-risk or uncertain sections for live review. Quick-start lightweight design stays simpler and offers only collaborative or draft-and-review. See [Design Modes](design-modes.md) for details.
|
|
27
|
+
|
|
26
28
|
## Quick Look
|
|
27
29
|
|
|
28
30
|
- What it does: explains the end-to-end lifecycle for tracked OAT projects, including alternate quick and import lanes.
|
|
@@ -131,6 +133,8 @@ flowchart LR
|
|
|
131
133
|
I --> R["Review"] --> PR["PR"] --> Doc["Docs (optional)"] --> C["Complete"]
|
|
132
134
|
```
|
|
133
135
|
|
|
136
|
+
During the Design step, `oat-project-design` asks how to work through the document unless a mode was selected by argument, environment, or `workflow.designMode`. The three full-design choices are collaborative, selective collaborative, and draft-and-review.
|
|
137
|
+
|
|
134
138
|
### Quick lane
|
|
135
139
|
|
|
136
140
|
```mermaid
|
|
@@ -143,6 +147,8 @@ flowchart LR
|
|
|
143
147
|
QI --> QR["Review / PR"]
|
|
144
148
|
```
|
|
145
149
|
|
|
150
|
+
Quick lane lightweight design intentionally keeps a smaller collaborative/draft choice. Selective collaborative becomes available only after promotion into the full spec-driven design lane.
|
|
151
|
+
|
|
146
152
|
### Import lane
|
|
147
153
|
|
|
148
154
|
```mermaid
|