@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.
@@ -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 seven workflow preference keys live under the `workflow.*` namespace:
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
@@ -1,6 +1,6 @@
1
1
  {
2
- "cli": "0.0.53",
3
- "docs-config": "0.0.53",
4
- "docs-theme": "0.0.53",
5
- "docs-transforms": "0.0.53"
2
+ "cli": "0.0.55",
3
+ "docs-config": "0.0.55",
4
+ "docs-theme": "0.0.55",
5
+ "docs-transforms": "0.0.55"
6
6
  }