@open-agent-toolkit/cli 0.0.43 → 0.0.50

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.
Files changed (63) hide show
  1. package/assets/agents/oat-phase-implementer.md +230 -0
  2. package/assets/agents/oat-reviewer.md +3 -3
  3. package/assets/docs/cli-utilities/configuration.md +15 -3
  4. package/assets/docs/reference/cli-reference.md +17 -14
  5. package/assets/docs/reference/oat-directory-structure.md +17 -17
  6. package/assets/docs/workflows/projects/artifacts.md +34 -0
  7. package/assets/docs/workflows/projects/implementation-execution.md +161 -0
  8. package/assets/docs/workflows/projects/lifecycle.md +22 -29
  9. package/assets/docs/workflows/projects/reviews.md +4 -2
  10. package/assets/docs/workflows/skills/index.md +0 -1
  11. package/assets/public-package-versions.json +4 -4
  12. package/assets/skills/oat-doctor/SKILL.md +3 -3
  13. package/assets/skills/oat-project-implement/SKILL.md +363 -126
  14. package/assets/skills/oat-project-import-plan/SKILL.md +2 -3
  15. package/assets/skills/oat-project-next/SKILL.md +11 -12
  16. package/assets/skills/oat-project-plan/SKILL.md +23 -5
  17. package/assets/skills/oat-project-plan-writing/SKILL.md +2 -2
  18. package/assets/skills/oat-project-progress/SKILL.md +29 -35
  19. package/assets/skills/oat-project-quick-start/SKILL.md +13 -3
  20. package/assets/skills/oat-worktree-bootstrap-auto/SKILL.md +2 -2
  21. package/assets/templates/implementation.md +8 -3
  22. package/assets/templates/plan.md +24 -3
  23. package/assets/templates/state.md +1 -1
  24. package/dist/commands/config/index.d.ts.map +1 -1
  25. package/dist/commands/config/index.js +17 -4
  26. package/dist/commands/init/tools/index.js +1 -1
  27. package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
  28. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  29. package/dist/commands/init/tools/shared/skill-manifest.js +1 -1
  30. package/dist/commands/project/index.d.ts.map +1 -1
  31. package/dist/commands/project/index.js +3 -1
  32. package/dist/commands/project/set-mode/index.d.ts +0 -6
  33. package/dist/commands/project/set-mode/index.d.ts.map +1 -1
  34. package/dist/commands/project/set-mode/index.js +16 -96
  35. package/dist/commands/project/validate-plan/index.d.ts +3 -0
  36. package/dist/commands/project/validate-plan/index.d.ts.map +1 -0
  37. package/dist/commands/project/validate-plan/index.js +44 -0
  38. package/dist/commands/project/validate-plan/validate-plan.d.ts +20 -0
  39. package/dist/commands/project/validate-plan/validate-plan.d.ts.map +1 -0
  40. package/dist/commands/project/validate-plan/validate-plan.js +77 -0
  41. package/dist/commands/tools/update/index.d.ts +4 -0
  42. package/dist/commands/tools/update/index.d.ts.map +1 -1
  43. package/dist/commands/tools/update/index.js +17 -1
  44. package/dist/commands/tools/update/update-tools.d.ts +1 -0
  45. package/dist/commands/tools/update/update-tools.d.ts.map +1 -1
  46. package/dist/commands/tools/update/update-tools.js +80 -1
  47. package/dist/config/oat-config.d.ts +1 -0
  48. package/dist/config/oat-config.d.ts.map +1 -1
  49. package/dist/config/oat-config.js +3 -0
  50. package/dist/config/resolve.d.ts.map +1 -1
  51. package/dist/config/resolve.js +9 -0
  52. package/package.json +2 -2
  53. package/assets/skills/oat-project-subagent-implement/SKILL.md +0 -549
  54. package/assets/skills/oat-project-subagent-implement/examples/pattern-hill-checkpoint.md +0 -110
  55. package/assets/skills/oat-project-subagent-implement/examples/pattern-parallel-phases.md +0 -118
  56. package/assets/skills/oat-project-subagent-implement/scripts/dispatch.sh +0 -133
  57. package/assets/skills/oat-project-subagent-implement/scripts/reconcile.sh +0 -182
  58. package/assets/skills/oat-project-subagent-implement/scripts/review-gate.sh +0 -187
  59. package/assets/skills/oat-project-subagent-implement/tests/fixtures/sample-plan.md +0 -234
  60. package/assets/skills/oat-project-subagent-implement/tests/test-dry-run.sh +0 -126
  61. package/assets/skills/oat-project-subagent-implement/tests/test-hill-checkpoint.sh +0 -127
  62. package/assets/skills/oat-project-subagent-implement/tests/test-reconcile.sh +0 -254
  63. package/assets/skills/oat-project-subagent-implement/tests/test-review-gate.sh +0 -220
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-import-plan
3
- version: 1.2.0
3
+ version: 1.2.1
4
4
  description: Use when you have an external markdown plan to execute with OAT. Preserves the source plan and normalizes it into canonical plan.md format.
5
5
  argument-hint: '<path-to-plan.md> [--provider codex|cursor|claude] [--project <name>]'
6
6
  disable-model-invocation: true
@@ -212,8 +212,7 @@ Report:
212
212
  - active project pointer path
213
213
  - dashboard refresh status
214
214
  - next options:
215
- - `oat-project-implement` (sequential, default)
216
- - `oat-project-subagent-implement` (parallel with autonomous review gates)
215
+ - `oat-project-implement` (sequential by default; parallel when `oat_plan_parallel_groups` is declared)
217
216
 
218
217
  ## Success Criteria
219
218
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-next
3
- version: 1.0.1
3
+ version: 1.0.3
4
4
  description: Use when continuing work on the active OAT project. Reads project state, determines the next lifecycle action, and invokes the appropriate skill automatically.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -101,15 +101,14 @@ ls -d "$PROJECTS_ROOT"/*/ 2>/dev/null
101
101
 
102
102
  Read `"$PROJECT_PATH/state.md"` frontmatter and extract:
103
103
 
104
- | Field | Used For |
105
- | ---------------------- | --------------------------------------------------------------------------------------- |
106
- | `oat_phase` | Current lifecycle position (discovery, spec, design, plan, implement) |
107
- | `oat_phase_status` | Phase completion state (in_progress, complete, pr_open) |
108
- | `oat_workflow_mode` | Routing table selection (spec-driven, quick, import). Default: `spec-driven` |
109
- | `oat_execution_mode` | Implementation skill variant (single-thread, subagent-driven). Default: `single-thread` |
110
- | `oat_hill_checkpoints` | Which phases require HiLL approval |
111
- | `oat_hill_completed` | Which HiLL gates have been passed |
112
- | `oat_blockers` | Informational warnings (not routing gates) |
104
+ | Field | Used For |
105
+ | ---------------------- | ---------------------------------------------------------------------------- |
106
+ | `oat_phase` | Current lifecycle position (discovery, spec, design, plan, implement) |
107
+ | `oat_phase_status` | Phase completion state (in_progress, complete, pr_open) |
108
+ | `oat_workflow_mode` | Routing table selection (spec-driven, quick, import). Default: `spec-driven` |
109
+ | `oat_hill_checkpoints` | Which phases require HiLL approval |
110
+ | `oat_hill_completed` | Which HiLL gates have been passed |
111
+ | `oat_blockers` | Informational warnings (not routing gates) |
113
112
 
114
113
  **If state.md is missing or unreadable:** Report error and suggest running the relevant phase skill directly. STOP.
115
114
 
@@ -231,7 +230,7 @@ Otherwise, look up the target skill from the routing table for the current `oat_
231
230
  | plan | complete | tier 1 | `oat-project-implement` \* |
232
231
  | implement | in_progress | — | `oat-project-implement` \* |
233
232
 
234
- \* When `oat_execution_mode: subagent-driven`, use `oat-project-subagent-implement` instead.
233
+ \* `oat-project-implement` handles both sequential and parallel execution.
235
234
 
236
235
  ### Step 4: Check for Unprocessed Reviews (Review Safety Check)
237
236
 
@@ -261,7 +260,7 @@ Apply the following checks in priority order. Stop at the first match:
261
260
  **5.1: Incomplete revision tasks**
262
261
 
263
262
  Grep plan.md for `p-revN` phases. If any `p-revN` tasks exist with status != completed in implementation.md:
264
- → Route to `oat-project-implement` (or `oat-project-subagent-implement` if subagent-driven)
263
+ → Route to `oat-project-implement`
265
264
  → Announce: "Revision tasks pending — continuing implementation"
266
265
 
267
266
  **5.2: Unprocessed reviews**
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan
3
- version: 1.2.0
3
+ version: 1.3.1
4
4
  description: Use when design.md is complete and executable implementation tasks are needed. Breaks design into bite-sized TDD tasks in canonical plan.md format.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -271,12 +271,13 @@ For each task, include:
271
271
  - **Files:** Exact paths for create/modify/delete
272
272
  - **Signatures:** Interface definitions, function signatures, type declarations
273
273
  - **Test cases:** Test file paths and test descriptions (pseudocode OK for test bodies)
274
- - **Commands:** Exact verification commands
274
+ - **Commands:** Exact verification commands that match the claimed scope. If the task says "run this file" or "run this test target," use the real runner invocation that actually scopes to that target rather than a shortcut that may execute the full package suite.
275
275
  - **Commit:** Conventional commit message with task ID (e.g., `feat(p01-t03): ...`)
276
276
 
277
277
  **Avoid:**
278
278
  - Vague instructions ("update the file")
279
279
  - Missing verification steps
280
+ - Verification shortcuts that claim file-scoped coverage but actually run a broader suite
280
281
  - Bundled unrelated changes
281
282
  - Full implementation code (leave that for oat-project-implement)
282
283
 
@@ -342,6 +343,25 @@ oat_last_updated: {today}
342
343
  ---
343
344
  ````
344
345
 
346
+ ### Step 14.5: Propose Parallel Groups (Optional)
347
+
348
+ After all phases are drafted, evaluate whether any phases have non-overlapping file boundaries:
349
+
350
+ 1. For each pair of adjacent phases in the plan, check the `Files:` section of all tasks in each phase.
351
+ 2. If no file appears in both phases' task files sections, they are candidates for a parallel group.
352
+ 3. Propose to the user:
353
+
354
+ ```
355
+ I noticed phases p02 and p03 have disjoint file boundaries (no overlap).
356
+ Declare them as a parallel group? This lets oat-project-implement run them
357
+ concurrently in worktrees, cutting wall-clock time.
358
+ ```
359
+
360
+ 4. If the user confirms, update `oat_plan_parallel_groups` in the plan frontmatter.
361
+ 5. If no phases are obviously independent, skip this step silently — do not invent parallelism.
362
+
363
+ Never silently infer parallelism without explicit user confirmation.
364
+
345
365
  ### Step 14: Update Project State
346
366
 
347
367
  Update `"$PROJECT_PATH/state.md"`:
@@ -400,9 +420,7 @@ Phases:
400
420
 
401
421
  Total: {N} tasks
402
422
 
403
- Next: Choose your implementation approach:
404
- - oat-project-implement — Sequential task execution (default)
405
- - oat-project-subagent-implement — Parallel worktree execution with autonomous review gates
423
+ Next: Run oat-project-implement to begin execution.
406
424
  ```
407
425
 
408
426
  ## Success Criteria
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-plan-writing
3
- version: 1.2.0
3
+ version: 1.2.1
4
4
  description: Use when authoring or mutating plan.md in any OAT workflow. Defines canonical format invariants — stable task IDs, required sections, review table rules, and resume guardrails.
5
5
  disable-model-invocation: true
6
6
  user-invocable: false
@@ -47,7 +47,7 @@ Planning-time default:
47
47
  Runtime routing note:
48
48
 
49
49
  - Keep `oat_ready_for` canonical as `oat-project-implement`.
50
- - Use `oat_execution_mode` in `state.md` (`single-thread` or `subagent-driven`) to choose sequential vs subagent implementation flow at runtime.
50
+ - Declare parallelism via `oat_plan_parallel_groups` in plan.md frontmatter (empty = sequential; nested arrays of phase IDs = parallel groups). `oat-project-implement` reads this field to choose sequential vs worktree-isolated parallel execution.
51
51
 
52
52
  Additional frontmatter keys (`oat_phase`, `oat_phase_status`, `oat_blockers`, `oat_last_updated`, `oat_generated`, `oat_template`, `oat_import_reference`, `oat_import_source_path`, `oat_import_provider`) are set by calling skills as needed.
53
53
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-progress
3
- version: 1.2.0
3
+ version: 1.2.2
4
4
  description: Use when resuming work, checking status, or unsure which OAT skill to run next. Evaluates project progress and routes to the appropriate next step.
5
5
  disable-model-invocation: true
6
6
  user-invocable: true
@@ -180,11 +180,6 @@ Read `oat_workflow_mode` from `state.md` frontmatter:
180
180
  - `quick`
181
181
  - `import`
182
182
 
183
- Read `oat_execution_mode` from `state.md` frontmatter:
184
-
185
- - `single-thread` (default if missing)
186
- - `subagent-driven`
187
-
188
183
  **HiLL override (apply before phase routing):**
189
184
 
190
185
  - If current `oat_phase` is listed in `oat_hill_checkpoints` **and** not listed in `oat_hill_completed`, the phase's HiLL gate is still pending.
@@ -228,38 +223,38 @@ Routing matrix by mode:
228
223
 
229
224
  **Spec-Driven mode (`oat_workflow_mode: spec-driven`):**
230
225
 
231
- | oat_phase | oat_phase_status | Next Skill |
232
- | --------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
233
- | discovery | in_progress | Continue `oat-project-discover` |
234
- | discovery | complete | `oat-project-spec` |
235
- | spec | in_progress | Continue `oat-project-spec` |
236
- | spec | complete | `oat-project-design` |
237
- | design | in_progress | Continue `oat-project-design` |
238
- | design | complete | `oat-project-plan` |
239
- | plan | in_progress | Continue `oat-project-plan` |
240
- | plan | complete | `oat-project-subagent-implement` when `oat_execution_mode: subagent-driven`, otherwise `oat-project-implement` |
241
- | implement | in_progress | Continue `oat-project-subagent-implement` when `oat_execution_mode: subagent-driven`, otherwise `oat-project-implement`. If artifacts appear out of sync with recent commits (e.g., `implementation.md` has fewer completed tasks than commits suggest), also mention `oat-project-reconcile` as an option. |
242
- | implement | complete | Ready for final review / PR |
226
+ | oat_phase | oat_phase_status | Next Skill |
227
+ | --------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
228
+ | discovery | in_progress | Continue `oat-project-discover` |
229
+ | discovery | complete | `oat-project-spec` |
230
+ | spec | in_progress | Continue `oat-project-spec` |
231
+ | spec | complete | `oat-project-design` |
232
+ | design | in_progress | Continue `oat-project-design` |
233
+ | design | complete | `oat-project-plan` |
234
+ | plan | in_progress | Continue `oat-project-plan` |
235
+ | plan | complete | `oat-project-implement` |
236
+ | implement | in_progress | Continue `oat-project-implement`. If artifacts appear out of sync with recent commits (e.g., `implementation.md` has fewer completed tasks than commits suggest), also mention `oat-project-reconcile` as an option. |
237
+ | implement | complete | Ready for final review / PR |
243
238
 
244
239
  **Quick mode (`oat_workflow_mode: quick`):**
245
240
 
246
- | oat_phase | oat_phase_status | Next Skill |
247
- | --------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
248
- | discovery | in_progress | Continue `oat-project-discover` |
249
- | discovery | complete | `oat-project-plan` |
250
- | plan | in_progress | Continue `oat-project-plan` |
251
- | plan | complete | `oat-project-subagent-implement` when `oat_execution_mode: subagent-driven`, otherwise `oat-project-implement` |
252
- | implement | in_progress | Continue `oat-project-subagent-implement` when `oat_execution_mode: subagent-driven`, otherwise `oat-project-implement`. If drift detected (see drift detection above), also mention `oat-project-reconcile` as an option. |
253
- | implement | complete | Ready for final review / PR |
241
+ | oat_phase | oat_phase_status | Next Skill |
242
+ | --------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
243
+ | discovery | in_progress | Continue `oat-project-discover` |
244
+ | discovery | complete | `oat-project-plan` |
245
+ | plan | in_progress | Continue `oat-project-plan` |
246
+ | plan | complete | `oat-project-implement` |
247
+ | implement | in_progress | Continue `oat-project-implement`. If drift detected (see drift detection above), also mention `oat-project-reconcile` as an option. |
248
+ | implement | complete | Ready for final review / PR |
254
249
 
255
250
  **Import mode (`oat_workflow_mode: import`):**
256
251
 
257
- | oat_phase | oat_phase_status | Next Skill |
258
- | --------- | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
259
- | plan | in_progress | Continue `oat-project-import-plan` |
260
- | plan | complete | `oat-project-subagent-implement` when `oat_execution_mode: subagent-driven`, otherwise `oat-project-implement` |
261
- | implement | in_progress | Continue `oat-project-subagent-implement` when `oat_execution_mode: subagent-driven`, otherwise `oat-project-implement`. If drift detected (see drift detection above), also mention `oat-project-reconcile` as an option. |
262
- | implement | complete | Ready for final review / PR |
252
+ | oat_phase | oat_phase_status | Next Skill |
253
+ | --------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
254
+ | plan | in_progress | Continue `oat-project-import-plan` |
255
+ | plan | complete | `oat-project-implement` |
256
+ | implement | in_progress | Continue `oat-project-implement`. If drift detected (see drift detection above), also mention `oat-project-reconcile` as an option. |
257
+ | implement | complete | Ready for final review / PR |
263
258
 
264
259
  **If blockers exist:**
265
260
 
@@ -272,7 +267,7 @@ Address blocker before continuing.
272
267
  Execution-mode note:
273
268
 
274
269
  - Keep `oat_ready_for` in `plan.md` canonical (`oat-project-implement`).
275
- - Runtime routing at plan completion is controlled by `oat_execution_mode` in `state.md`.
270
+ - Runtime execution is handled by `oat-project-implement`; parallelism is declared in plan.md via `oat_plan_parallel_groups`.
276
271
 
277
272
  ### Step 6: Show Available Skills
278
273
 
@@ -290,8 +285,7 @@ Workflow:
290
285
  oat-project-spec - Create specification from discovery
291
286
  oat-project-design - Create technical design from spec
292
287
  oat-project-plan - Create implementation plan from design (spec-driven mode)
293
- oat-project-implement - Execute implementation plan
294
- oat-project-subagent-implement - Execute implementation plan with subagent orchestration
288
+ oat-project-implement - Execute implementation plan (sequential or parallel)
295
289
  oat-project-reconcile - Reconcile manual/human commits with plan tasks
296
290
 
297
291
  Status:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-project-quick-start
3
- version: 1.3.4
3
+ version: 1.3.6
4
4
  description: Use when a task is small enough for quick mode or rapid iteration is preferred. Scaffolds a lightweight OAT project from discovery directly to a runnable plan, with optional brainstorming and lightweight design.
5
5
  argument-hint: '<project-name> ["project description"]'
6
6
  disable-model-invocation: true
@@ -301,6 +301,16 @@ Plan requirements — apply `oat-project-plan-writing` canonical format invarian
301
301
  - Required sections: `## Reviews`, `## Implementation Complete`, `## References`
302
302
  - Review table preservation rules (never delete existing rows)
303
303
 
304
+ Required parallelism pass before finalizing the plan:
305
+
306
+ - Evaluate adjacent phases for phase-level parallelism before treating the plan as complete.
307
+ - Set `oat_plan_parallel_groups` whenever phases can run independently in isolated worktrees with disjoint write boundaries and independent verification.
308
+ - Keep dependent tasks in the same phase when they must run sequentially.
309
+ - Do not declare parallel groups when phases share a fragile migration, require the same generated artifact, or one phase's tests depend on another phase's behavior.
310
+ - Add a short `## Parallelism` section to `plan.md` explaining the dependency and write-set reasoning, including why groups were declared or why the plan remains sequential.
311
+ - Quick mode is not "sequential by default." A quick-start plan is sequential only when the dependency and write-set analysis says it should be.
312
+ - When a task claims scoped verification, prefer the exact runner invocation that truly scopes to the intended file, test, or target instead of package-level shortcuts that may execute the full suite.
313
+
304
314
  ### Step 4: Sync Project State
305
315
 
306
316
  Update `"$PROJECT_PATH/state.md"`:
@@ -355,9 +365,9 @@ Report:
355
365
  - workflow mode (`quick`)
356
366
  - total phases/tasks generated
357
367
  - first task ID
368
+ - execution shape summary (sequential or declared parallel groups)
358
369
  - next options:
359
- - `oat-project-implement` (sequential, default)
360
- - `oat-project-subagent-implement` (parallel with autonomous review gates)
370
+ - `oat-project-implement`
361
371
  - dashboard location: `.oat/state.md` (confirm it was regenerated)
362
372
 
363
373
  ## Success Criteria
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: oat-worktree-bootstrap-auto
3
- version: 1.2.0
3
+ version: 1.2.1
4
4
  description: Use when an orchestrator/subagent needs autonomous worktree bootstrap. Non-interactive companion to oat-worktree-bootstrap.
5
5
  argument-hint: '<branch-name> [--base <ref>] [--path <root>] [--baseline-policy <strict|allow-failing>]'
6
6
  disable-model-invocation: true
@@ -226,7 +226,7 @@ Append to `implementation.md` under `## Implementation Log`:
226
226
 
227
227
  **Orchestrator integration:**
228
228
 
229
- - When invoked by `oat-project-subagent-implement`, the baseline policy is passed through from the orchestration run policy.
229
+ - When invoked by `oat-project-implement` in parallel mode, the baseline policy is passed through from the orchestration run policy.
230
230
  - The orchestrator may set `--baseline-policy allow-failing` for exploratory runs and `strict` for production-quality execution.
231
231
  - The bootstrap skill does not interpret HiLL checkpoints — that responsibility belongs to the orchestrator.
232
232
 
@@ -112,11 +112,16 @@ oat_template_name: implementation
112
112
 
113
113
  ## Orchestration Runs
114
114
 
115
- > This section is used by `oat-project-subagent-implement` to log parallel execution runs.
116
- > Each run appends a new subsection never overwrite prior entries.
117
- > For single-thread execution (via `oat-project-implement`), this section remains empty.
115
+ _Each run from `oat-project-implement` appends an entry below with:_
116
+ _- Run header (number, timestamp, branch, tier, policy, phase counts)_
117
+ _- Phase Outcomes table_
118
+ _- Parallel Groups list_
119
+ _- Outstanding Items_
118
120
 
119
121
  <!-- orchestration-runs-start -->
122
+
123
+ _Orchestration runs from `oat-project-implement` are appended here, most-recent-first within the file but append-only at the bottom of the log._
124
+
120
125
  <!-- orchestration-runs-end -->
121
126
 
122
127
  ---
@@ -6,6 +6,7 @@ oat_last_updated: YYYY-MM-DD
6
6
  oat_phase: plan
7
7
  oat_phase_status: in_progress
8
8
  oat_plan_hill_phases: [] # phases to pause AFTER completing (empty = every phase)
9
+ oat_plan_parallel_groups: [] # groups of phases that run concurrently in worktrees; [] = fully sequential
9
10
  oat_plan_source: spec-driven # spec-driven | quick | imported
10
11
  oat_import_reference: null # e.g., references/imported-plan.md
11
12
  oat_import_source_path: null # original source path provided by user
@@ -17,7 +18,7 @@ oat_template_name: plan
17
18
 
18
19
  # Implementation Plan: {Project Name}
19
20
 
20
- > Execute this plan using `oat-project-implement` (sequential) or `oat-project-subagent-implement` (parallel), with phase checkpoints and review gates.
21
+ > Execute this plan using `oat-project-implement` sequential by default, parallel when `oat_plan_parallel_groups` is declared.
21
22
 
22
23
  **Goal:** {Brief goal statement from spec}
23
24
 
@@ -31,6 +32,22 @@ oat_template_name: plan
31
32
 
32
33
  - [ ] Confirmed HiLL checkpoints with user
33
34
  - [ ] Set `oat_plan_hill_phases` in frontmatter
35
+ - [ ] Evaluated phases for parallelism opportunities
36
+ - [ ] Set `oat_plan_parallel_groups` in frontmatter
37
+
38
+ ---
39
+
40
+ ## Parallelism
41
+
42
+ Phases that have no overlapping file modifications may run concurrently. To declare parallelism:
43
+
44
+ ```yaml
45
+ oat_plan_parallel_groups: [['p02', 'p03']]
46
+ ```
47
+
48
+ Each inner array is a group of phases that execute in parallel (each in its own worktree) and merge back in plan order after all pass. Groups themselves run sequentially.
49
+
50
+ Default is `[]` (fully sequential, no worktrees). Only declare parallelism when phases are genuinely file-disjoint — overlap will produce merge conflicts that stop the run.
34
51
 
35
52
  ---
36
53
 
@@ -54,7 +71,7 @@ describe('{feature}', () => {
54
71
  });
55
72
  ```
56
73
 
57
- Run: `pnpm test {path/to/file.test.ts}`
74
+ Run: `pnpm --filter {package-name} exec vitest run {path/to/file.test.ts}`
58
75
  Expected: Test fails (RED)
59
76
 
60
77
  **Step 2: Implement (GREEN)**
@@ -64,9 +81,11 @@ Expected: Test fails (RED)
64
81
  // Implementation code or interface signatures
65
82
  ```
66
83
 
67
- Run: `pnpm test {path/to/file.test.ts}`
84
+ Run: `pnpm --filter {package-name} exec vitest run {path/to/file.test.ts}`
68
85
  Expected: Test passes (GREEN)
69
86
 
87
+ Use the actual runner command that scopes to the intended file or test target. Do not write a package-level shortcut unless it truly executes only the scope the task claims.
88
+
70
89
  **Step 3: Refactor**
71
90
 
72
91
  {Any cleanup or improvements while tests stay green}
@@ -108,6 +127,8 @@ git commit -m "feat(p01-t01): {description}"
108
127
  Run: `{verification command}`
109
128
  Expected: {output}
110
129
 
130
+ Verification commands should be behaviorally accurate. If the task claims a file-scoped or test-scoped check, use the concrete runner invocation that really scopes to that target.
131
+
111
132
  **Step 5: Commit**
112
133
 
113
134
  ```bash
@@ -8,7 +8,7 @@ oat_hill_completed: [] # Progress: which HiLL checkpoints have been completed
8
8
  oat_parallel_execution: false
9
9
  oat_phase: { OAT_PHASE } # Current phase: discovery | spec | design | plan | implement
10
10
  oat_phase_status: in_progress # Status: in_progress | complete | pr_open
11
- oat_execution_mode: single-thread # single-thread | subagent-driven
11
+ # oat_orchestration_retry_limit: 2 # optional; override fix-loop retry limit (range 0-5)
12
12
  oat_workflow_mode: { OAT_WORKFLOW_MODE } # spec-driven | quick | import
13
13
  oat_workflow_origin: native # native | imported
14
14
  oat_docs_updated: null # null | skipped | complete — documentation sync status
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAOhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoDpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAyiCD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CA0GT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/config/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGhF,OAAO,EACL,KAAK,SAAS,EACd,KAAK,cAAc,EAGnB,KAAK,UAAU,EAOhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,KAAK,cAAc,EAEpB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDpC,UAAU,yBAAyB;IACjC,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,cAAc,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,mBAAmB,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,sBAAsB,EAAE,CACtB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,CAAC,UAAU,KACnB,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;CAC/B;AAwjCD,wBAAgB,mBAAmB,CACjC,SAAS,GAAE,OAAO,CAAC,yBAAyB,CAAM,GACjD,OAAO,CA0GT"}
@@ -34,6 +34,7 @@ const KEY_ORDER = [
34
34
  'workflow.createPrOnComplete',
35
35
  'workflow.postImplementSequence',
36
36
  'workflow.reviewExecutionModel',
37
+ 'workflow.autoReviewAtHillCheckpoints',
37
38
  'workflow.autoNarrowReReviewScope',
38
39
  'worktrees.root',
39
40
  ];
@@ -80,7 +81,7 @@ const CONFIG_CATALOG = [
80
81
  defaultValue: 'false',
81
82
  mutability: 'read/write',
82
83
  owningCommand: 'oat config set autoReviewAtCheckpoints <true|false>',
83
- description: 'Controls whether OAT automatically runs review gates at configured phase checkpoints.',
84
+ description: 'Deprecated compatibility alias for workflow.autoReviewAtHillCheckpoints. Prefer `oat config set workflow.autoReviewAtHillCheckpoints <true|false>`.',
84
85
  },
85
86
  {
86
87
  key: 'documentation.root',
@@ -346,6 +347,17 @@ const CONFIG_CATALOG = [
346
347
  owningCommand: 'oat config set workflow.reviewExecutionModel <value>',
347
348
  description: 'Default execution model for the final review step in oat-project-implement: "subagent" dispatches a review subagent, "inline" runs the review in-context, "fresh-session" prints guidance for running the review in a separate session (with an escape hatch to subagent/inline). When unset, the skill prompts. Resolution: env > local > shared > user > default.',
348
349
  },
350
+ {
351
+ key: 'workflow.autoReviewAtHillCheckpoints',
352
+ group: 'Workflow Preferences (3-layer: local > shared > user)',
353
+ file: '.oat/config.local.json | .oat/config.json | ~/.oat/config.json',
354
+ scope: 'workflow',
355
+ type: 'boolean',
356
+ defaultValue: 'unset',
357
+ mutability: 'read/write',
358
+ owningCommand: 'oat config set workflow.autoReviewAtHillCheckpoints <true|false>',
359
+ description: 'Automatically run the extra lifecycle review when a HiLL checkpoint is reached. This does not control Tier 1 per-phase oat-reviewer gates. When unset, the skill prompts. Resolution: env > local > shared > user > legacy autoReviewAtCheckpoints > default.',
360
+ },
349
361
  {
350
362
  key: 'workflow.autoNarrowReReviewScope',
351
363
  group: 'Workflow Preferences (3-layer: local > shared > user)',
@@ -422,6 +434,7 @@ const WORKFLOW_ENUM_VALUES = {
422
434
  const WORKFLOW_BOOLEAN_KEYS = new Set([
423
435
  'workflow.archiveOnComplete',
424
436
  'workflow.createPrOnComplete',
437
+ 'workflow.autoReviewAtHillCheckpoints',
425
438
  'workflow.autoNarrowReReviewScope',
426
439
  ]);
427
440
  function isWorkflowKey(key) {
@@ -467,10 +480,10 @@ function validateSurfaceForKey(key, surface) {
467
480
  }
468
481
  return;
469
482
  }
470
- // autoReviewAtCheckpoints is currently shared-only. Multi-surface support
471
- // for behavioral keys is out of scope for p01-t04 (workflow.* keys only).
483
+ // Legacy alias remains shared-only. The preferred multi-surface key is
484
+ // workflow.autoReviewAtHillCheckpoints.
472
485
  if (key === 'autoReviewAtCheckpoints' && surface !== 'shared') {
473
- throw new Error(`Cannot set 'autoReviewAtCheckpoints' at '${surface}' scope. This key is currently shared-only.`);
486
+ throw new Error(`Cannot set 'autoReviewAtCheckpoints' at '${surface}' scope. This legacy key is shared-only; use workflow.autoReviewAtHillCheckpoints for local/user overrides.`);
474
487
  }
475
488
  // Workflow keys accept any non-auto surface.
476
489
  }
@@ -349,7 +349,7 @@ export function buildToolPacksSectionBody(packs) {
349
349
  lines.push(`- **${pack}** — ${PACK_DESCRIPTIONS[pack]}${suffix}`);
350
350
  }
351
351
  if (hasWorkflows) {
352
- lines.push('', '### Workflow Execution Continuation', '', '- This guidance applies only to OAT project lifecycle execution, such as `oat-project-implement`, `oat-project-subagent-implement`, and OAT project review/receive flows. It does not apply to non-OAT tasks or ad-hoc work outside the OAT project workflow.', '- When executing an OAT project implementation or OAT project review workflow, do not stop at task boundaries, phase boundaries, or other clean checkpoints unless the configured HiLL checkpoint has been reached, a real blocker exists, or explicit user input is required.', '- Status summaries, completed bookkeeping, and "clean boundary" pauses are not valid stop reasons. After updating tracking artifacts, continue execution until an allowed stop condition applies.');
352
+ lines.push('', '### Workflow Execution Continuation', '', '- This guidance applies only to OAT project lifecycle execution, such as `oat-project-implement`, and OAT project review/receive flows. It does not apply to non-OAT tasks or ad-hoc work outside the OAT project workflow.', '- When executing an OAT project implementation or OAT project review workflow, do not stop at task boundaries, phase boundaries, or other clean checkpoints unless the configured HiLL checkpoint has been reached, a real blocker exists, or explicit user input is required.', '- Status summaries, completed bookkeeping, and "clean boundary" pauses are not valid stop reasons. After updating tracking artifacts, continue execution until an allowed stop condition applies.');
353
353
  }
354
354
  return lines.join('\n');
355
355
  }
@@ -5,8 +5,8 @@
5
5
  * `bundle-assets.sh` maintains its own bash array — `bundle-consistency.test.ts`
6
6
  * validates that it stays in sync with these lists.
7
7
  */
8
- export declare const WORKFLOW_SKILLS: readonly ["oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-subagent-implement", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wrap-up"];
9
- export declare const WORKFLOW_AGENTS: readonly ["oat-codebase-mapper.md", "oat-reviewer.md"];
8
+ export declare const WORKFLOW_SKILLS: readonly ["oat-project-capture", "oat-project-clear-active", "oat-project-complete", "oat-project-design", "oat-project-discover", "oat-project-document", "oat-project-implement", "oat-project-import-plan", "oat-project-new", "oat-project-next", "oat-project-open", "oat-project-plan", "oat-project-plan-writing", "oat-project-pr-final", "oat-project-pr-progress", "oat-project-progress", "oat-project-promote-spec-driven", "oat-project-quick-start", "oat-project-reconcile", "oat-project-revise", "oat-project-review-provide", "oat-project-review-receive", "oat-project-review-receive-remote", "oat-project-spec", "oat-project-summary", "oat-repo-knowledge-index", "oat-worktree-bootstrap", "oat-worktree-bootstrap-auto", "oat-wrap-up"];
9
+ export declare const WORKFLOW_AGENTS: readonly ["oat-codebase-mapper.md", "oat-phase-implementer.md", "oat-reviewer.md"];
10
10
  export declare const WORKFLOW_TEMPLATES: readonly ["state.md", "discovery.md", "spec.md", "design.md", "plan.md", "implementation.md", "summary.md"];
11
11
  export declare const WORKFLOW_SCRIPTS: readonly ["generate-oat-state.sh", "generate-thin-index.sh", "resolve-tracking.sh"];
12
12
  export declare const IDEA_SKILLS: readonly ["oat-idea-new", "oat-idea-ideate", "oat-idea-summarize", "oat-idea-scratchpad"];
@@ -1 +1 @@
1
- {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,eAAe,qwBA+BlB,CAAC;AAEX,eAAO,MAAM,eAAe,wDAGlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,6GAQrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,yIAMd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,gJAMjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,kGAI5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,4CAG/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
1
+ {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,eAAO,MAAM,eAAe,muBA8BlB,CAAC;AAEX,eAAO,MAAM,eAAe,oFAIlB,CAAC;AAEX,eAAO,MAAM,kBAAkB,6GAQrB,CAAC;AAEX,eAAO,MAAM,gBAAgB,qFAInB,CAAC;AAIX,eAAO,MAAM,WAAW,2FAKd,CAAC;AAIX,eAAO,MAAM,WAAW,qCAAsC,CAAC;AAI/D,eAAO,MAAM,WAAW,yIAMd,CAAC;AAEX,eAAO,MAAM,YAAY,kCAAmC,CAAC;AAI7D,eAAO,MAAM,cAAc,gJAMjB,CAAC;AAIX,eAAO,MAAM,yBAAyB,kGAI5B,CAAC;AAEX,eAAO,MAAM,4BAA4B,4CAG/B,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,eAAe,2EAMlB,CAAC;AAEX,eAAO,MAAM,eAAe,qCAAsC,CAAC"}
@@ -31,7 +31,6 @@ export const WORKFLOW_SKILLS = [
31
31
  'oat-project-review-receive',
32
32
  'oat-project-review-receive-remote',
33
33
  'oat-project-spec',
34
- 'oat-project-subagent-implement',
35
34
  'oat-project-summary',
36
35
  'oat-repo-knowledge-index',
37
36
  'oat-worktree-bootstrap',
@@ -40,6 +39,7 @@ export const WORKFLOW_SKILLS = [
40
39
  ];
41
40
  export const WORKFLOW_AGENTS = [
42
41
  'oat-codebase-mapper.md',
42
+ 'oat-phase-implementer.md',
43
43
  'oat-reviewer.md',
44
44
  ];
45
45
  export const WORKFLOW_TEMPLATES = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,wBAAgB,oBAAoB,IAAI,OAAO,CAW9C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/project/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,wBAAgB,oBAAoB,IAAI,OAAO,CAY9C"}
@@ -7,6 +7,7 @@ import { createProjectOpenCommand } from './open/index.js';
7
7
  import { createProjectPauseCommand } from './pause/index.js';
8
8
  import { createProjectSetModeCommand } from './set-mode/index.js';
9
9
  import { createProjectStatusCommand } from './status.js';
10
+ import { createProjectValidatePlanCommand } from './validate-plan/index.js';
10
11
  export function createProjectCommand() {
11
12
  return new Command('project')
12
13
  .description('Manage OAT project workflows')
@@ -17,5 +18,6 @@ export function createProjectCommand() {
17
18
  .addCommand(createProjectOpenCommand())
18
19
  .addCommand(createProjectPauseCommand())
19
20
  .addCommand(createProjectSetModeCommand())
20
- .addCommand(createProjectStatusCommand());
21
+ .addCommand(createProjectStatusCommand())
22
+ .addCommand(createProjectValidatePlanCommand());
21
23
  }
@@ -1,13 +1,7 @@
1
- import { readFile as defaultReadFile, writeFile as defaultWriteFile } from 'node:fs/promises';
2
1
  import { buildCommandContext, type CommandContext } from '../../../app/command-context.js';
3
2
  import { Command } from 'commander';
4
- export type ExecutionMode = 'single-thread' | 'subagent-driven';
5
3
  interface SetModeDependencies {
6
4
  buildCommandContext: (options: Parameters<typeof buildCommandContext>[0]) => CommandContext;
7
- resolveProjectRoot: (cwd: string) => Promise<string>;
8
- readFile: typeof defaultReadFile;
9
- writeFile: typeof defaultWriteFile;
10
- now: () => Date;
11
5
  }
12
6
  export declare function createProjectSetModeCommand(overrides?: Partial<SetModeDependencies>): Command;
13
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/set-mode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,eAAe,EAC3B,SAAS,IAAI,gBAAgB,EAC9B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAYhF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG,eAAe,GAAG,iBAAiB,CAAC;AAEhE,UAAU,mBAAmB;IAC3B,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;IACpB,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,EAAE,OAAO,eAAe,CAAC;IACjC,SAAS,EAAE,OAAO,gBAAgB,CAAC;IACnC,GAAG,EAAE,MAAM,IAAI,CAAC;CACjB;AAwID,wBAAgB,2BAA2B,CACzC,SAAS,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAeT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/project/set-mode/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,UAAU,mBAAmB;IAC3B,mBAAmB,EAAE,CACnB,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,KAC/C,cAAc,CAAC;CACrB;AA+BD,wBAAgB,2BAA2B,CACzC,SAAS,GAAE,OAAO,CAAC,mBAAmB,CAAM,GAC3C,OAAO,CAeT"}