@open-agent-toolkit/cli 0.2.13 → 0.2.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.
Files changed (79) hide show
  1. package/assets/agents/oat-phase-implementer.md +5 -2
  2. package/assets/agents/oat-reviewer.md +2 -2
  3. package/assets/docs/cli-utilities/config-and-local-state.md +14 -1
  4. package/assets/docs/cli-utilities/configuration.md +23 -2
  5. package/assets/docs/cli-utilities/tool-packs.md +68 -24
  6. package/assets/docs/contributing/skills.md +17 -10
  7. package/assets/docs/provider-sync/providers.md +26 -0
  8. package/assets/docs/reference/cli-reference.md +1 -1
  9. package/assets/docs/reference/troubleshooting.md +42 -0
  10. package/assets/docs/workflows/projects/lifecycle.md +2 -2
  11. package/assets/docs/workflows/projects/orchestration-model.md +14 -7
  12. package/assets/docs/workflows/projects/programmatic-execution.md +1 -1
  13. package/assets/docs/workflows/projects/reviews.md +18 -11
  14. package/assets/docs/workflows/skills/index.md +2 -0
  15. package/assets/docs/workflows/skills/repo-improve.md +13 -1
  16. package/assets/public-package-versions.json +4 -4
  17. package/assets/skills/oat-agent-instructions-analyze/SKILL.md +2 -2
  18. package/assets/skills/oat-brainstorm/SKILL.md +8 -8
  19. package/assets/skills/oat-brainstorm/references/destinations.md +3 -3
  20. package/assets/skills/oat-cursor-cloud-projects/SKILL.md +12 -5
  21. package/assets/skills/oat-dispatch-subagents/SKILL.md +81 -24
  22. package/assets/skills/oat-dispatch-subagents/references/provider-claude.md +10 -7
  23. package/assets/skills/oat-dispatch-subagents/references/provider-codex.md +18 -13
  24. package/assets/skills/oat-dispatch-subagents/references/provider-cursor.md +30 -23
  25. package/assets/skills/oat-dispatch-subagents/references/record-schema.md +86 -2
  26. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +4 -4
  27. package/assets/skills/oat-project-dispatch-subagents/SKILL.md +8 -3
  28. package/assets/skills/oat-project-document/SKILL.md +4 -4
  29. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +4 -4
  30. package/assets/skills/oat-project-implement/SKILL.md +9 -5
  31. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +4 -4
  32. package/assets/skills/oat-project-plan-writing/SKILL.md +9 -5
  33. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +4 -4
  34. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +4 -4
  35. package/assets/skills/oat-project-summary/SKILL.md +9 -9
  36. package/assets/skills/oat-repo-improve/SKILL.md +9 -2
  37. package/assets/skills/subagent-orchestration/SKILL.md +109 -0
  38. package/assets/skills/subagent-orchestration/references/evidence-and-refresh.md +103 -0
  39. package/assets/skills/subagent-orchestration/references/model-selection-principles.md +105 -0
  40. package/assets/skills/subagent-orchestration/references/provider-claude.md +81 -0
  41. package/assets/skills/subagent-orchestration/references/provider-codex.md +63 -0
  42. package/assets/skills/subagent-orchestration/references/provider-cursor.md +78 -0
  43. package/dist/commands/init/tools/brainstorm/index.d.ts +0 -3
  44. package/dist/commands/init/tools/brainstorm/index.d.ts.map +1 -1
  45. package/dist/commands/init/tools/brainstorm/index.js +0 -12
  46. package/dist/commands/init/tools/index.d.ts.map +1 -1
  47. package/dist/commands/init/tools/index.js +46 -25
  48. package/dist/commands/init/tools/shared/skill-manifest.d.ts +1 -1
  49. package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
  50. package/dist/commands/init/tools/shared/skill-manifest.js +1 -0
  51. package/dist/commands/init/tools/utility/index.d.ts.map +1 -1
  52. package/dist/commands/init/tools/utility/index.js +16 -2
  53. package/dist/commands/tools/has/has-pack.d.ts +18 -0
  54. package/dist/commands/tools/has/has-pack.d.ts.map +1 -0
  55. package/dist/commands/tools/has/has-pack.js +33 -0
  56. package/dist/commands/tools/has/index.d.ts +4 -0
  57. package/dist/commands/tools/has/index.d.ts.map +1 -0
  58. package/dist/commands/tools/has/index.js +57 -0
  59. package/dist/commands/tools/index.d.ts.map +1 -1
  60. package/dist/commands/tools/index.js +2 -0
  61. package/dist/commands/tools/remove/index.d.ts.map +1 -1
  62. package/dist/commands/tools/remove/index.js +10 -20
  63. package/dist/commands/tools/shared/project-tools-config.d.ts +16 -0
  64. package/dist/commands/tools/shared/project-tools-config.d.ts.map +1 -0
  65. package/dist/commands/tools/shared/project-tools-config.js +59 -0
  66. package/dist/commands/tools/update/index.d.ts.map +1 -1
  67. package/dist/commands/tools/update/index.js +11 -22
  68. package/dist/engine/compute-plan.d.ts.map +1 -1
  69. package/dist/engine/compute-plan.js +8 -2
  70. package/dist/engine/execute-plan.d.ts +5 -1
  71. package/dist/engine/execute-plan.d.ts.map +1 -1
  72. package/dist/engine/execute-plan.js +23 -1
  73. package/dist/engine/index.d.ts +1 -0
  74. package/dist/engine/index.d.ts.map +1 -1
  75. package/dist/engine/index.js +1 -0
  76. package/dist/engine/provider-path-safety.d.ts +2 -0
  77. package/dist/engine/provider-path-safety.d.ts.map +1 -0
  78. package/dist/engine/provider-path-safety.js +54 -0
  79. package/package.json +2 -2
@@ -0,0 +1,105 @@
1
+ # Model Selection Principles
2
+
3
+ Read this reference for every dispatch before the active provider reference.
4
+ It contains the durable contract. Provider files contain dated examples.
5
+
6
+ ## Selection Unit
7
+
8
+ Never select from a model family name alone. Preserve these axes separately:
9
+
10
+ - provider and harness;
11
+ - exact model selector and selector granularity;
12
+ - provider-native effort or reasoning selector;
13
+ - service tier, including fast or priority variants;
14
+ - reasoning mode when the provider exposes one independently of effort;
15
+ - role, context inheritance, authority, deadline, and route.
16
+
17
+ Do not normalize effort labels across providers. `medium`, `high`, `xhigh`,
18
+ `max`, extended thinking, adaptive thinking, and provider-specific modes have
19
+ different semantics. The exact pair or tuple is the route.
20
+
21
+ ## Five Task Classes
22
+
23
+ Classify in this order: deterministic verifiability, silent-miss risk,
24
+ dispersed-context reconciliation, ambiguity or novelty, then consequence.
25
+ File count and duration alone never justify escalation.
26
+
27
+ | Task class | Qualification contract |
28
+ | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
29
+ | `mechanical-recon` | Deterministic inventories, parity checks, exact extraction, or command execution whose misses are visible and cheaply verified. |
30
+ | `intelligent-recon` | Interpretation of unfamiliar code, policy, semantics, or evidence where a plausible miss could survive mechanical validation. |
31
+ | `default-implementation` | Independently bounded implementation or dossier work that must retain and reconcile dispersed context. |
32
+ | `hard-reasoning` | Ambiguity, novelty, architecture, difficult diagnosis, or competing interpretations dominates. |
33
+ | `consequential` | Security, release safety, irreversible effects, adversarial analysis, foundational decisions, or expensive failure dominates. |
34
+
35
+ When uncertain, use the stronger class. Never select below a supplied floor.
36
+
37
+ ## Default, Economy, and Escalation
38
+
39
+ Provider references may give three routes:
40
+
41
+ - **Default:** conservative route expected to hold quality without exceptional spend.
42
+ - **Economy:** permitted only when scope, verification, and consequences make the downgrade safe.
43
+ - **Escalation:** stronger route for ambiguity, unresolved evidence, or consequence.
44
+
45
+ Economy is not automatically “the smallest model.” Mechanical coding agents
46
+ still require enough capability to use tools, follow scope, and return complete
47
+ evidence. Prefer scripts over models when a deterministic program fully solves
48
+ the task.
49
+
50
+ ## Escalation Boundaries
51
+
52
+ - Mechanical to intelligent recon when judgment is required to identify a
53
+ finding, or when a miss would be silent.
54
+ - Recon to default implementation when success depends on retaining and
55
+ reconciling dispersed context, not merely searching many files.
56
+ - Default implementation to hard reasoning when ambiguity, novelty, or
57
+ reasoning difficulty dominates.
58
+ - Any class to consequential when security, production impact, irreversibility,
59
+ adversarial behavior, or expensive failure dominates.
60
+
61
+ Narrow a poorly decomposed task before escalating its model. Model capability
62
+ never repairs an over-broad objective.
63
+
64
+ ## Long Context
65
+
66
+ Large context alone does not change the task class, but it can disqualify a
67
+ model. Provider references may set a separate long-context floor based on
68
+ published retention evidence. Do not assume a cheap model with a large nominal
69
+ context window can use that window reliably.
70
+
71
+ ## Tool Reliability
72
+
73
+ Schema validity and semantic correctness are separate. For tool-using workers:
74
+
75
+ - expose the minimum tool set;
76
+ - prefer strict schemas when supported;
77
+ - document inputs, outputs, errors, and side effects;
78
+ - separate read from write authority;
79
+ - require exact evidence in the output;
80
+ - validate results and mutations outside the model;
81
+ - make writes idempotent or confirmation-bound;
82
+ - retain authorization in the caller or operator.
83
+
84
+ Higher effort may change tool-call behavior. Do not lower effort merely because
85
+ the final answer is short.
86
+
87
+ ## Service Tiers
88
+
89
+ A fast or priority tier is a latency control unless the provider explicitly
90
+ documents a capability difference. It does not satisfy a higher task-class
91
+ floor. Choose it only when wall-clock latency is worth the price and record it
92
+ separately from the model and effort.
93
+
94
+ ## Independent Review
95
+
96
+ For high-risk diffs and foundational decisions, prefer an author and reviewer
97
+ from different model families or providers. Agreement is not proof; disagreement
98
+ is evidence that the root must resolve. The root verifies every load-bearing
99
+ claim and retains final judgment.
100
+
101
+ ## Staleness
102
+
103
+ Read `evidence-and-refresh.md` when provider guidance is review-required or
104
+ stale, a newer model appears, or a current control cannot be expressed. Do not
105
+ automatically replace an incumbent with the newest version.
@@ -0,0 +1,81 @@
1
+ ---
2
+ guidance_version: 2026-07-22
3
+ last_verified: 2026-07-22
4
+ review_after: 2026-09-04
5
+ ---
6
+
7
+ # Claude Model Selection
8
+
9
+ Load this reference when the active harness is Claude Code or the route is a
10
+ direct Anthropic API worker. Current user and repository instructions override
11
+ the dated model examples below. Launch mechanics for OAT dispatch live in
12
+ `oat-dispatch-subagents/references/provider-claude.md`.
13
+
14
+ ## Current Families
15
+
16
+ - `claude-haiku-4-5`: fastest economical class for straightforward,
17
+ high-volume, mechanically verified work.
18
+ - `claude-sonnet-5`: normal workhorse for coding, tool use, knowledge work, and
19
+ agentic execution.
20
+ - `claude-opus-4-8`: strong complex coding and enterprise route and the
21
+ default for hard-reasoning and consequential work.
22
+ - `claude-fable-5`: exceptional escalation route for the most difficult
23
+ long-running agents, coding, and frontier knowledge work.
24
+
25
+ Claude Mythos 5 is invitation-only and intended for approved defensive cyber
26
+ work. It is not a general routing candidate unless the organization explicitly
27
+ provisions and authorizes it.
28
+
29
+ ## Provider-Native Effort
30
+
31
+ Never normalize Claude effort against OpenAI or Cursor labels.
32
+
33
+ - Sonnet 5: high is the default workhorse; medium is the cost-saving step down;
34
+ xhigh is for the hardest coding and agentic work; max is exceptional.
35
+ - Opus 4.8: start at xhigh for coding and agentic work; use high for other
36
+ intelligence-sensitive work; lower only after evaluation.
37
+ - Fable 5: start at high; use xhigh for capability-sensitive work; max is
38
+ exceptional; medium/low are routine-work controls, not the default economy
39
+ substitute for Sonnet.
40
+ - Haiku 4.5 does not expose the same adaptive-effort surface. Use only controls
41
+ present in the live schema.
42
+
43
+ Effort changes tool-call behavior as well as prose. Record it independently.
44
+ For Opus 4.8 direct API calls, verify adaptive thinking is enabled as required
45
+ by the current API contract. Fable adaptive thinking is always on in the
46
+ current API.
47
+
48
+ ## Dated Task-Class Matrix
49
+
50
+ | Task class | Default | Economy | Escalation | Floor notes |
51
+ | ------------------------ | -------------- | ---------------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------- |
52
+ | `mechanical-recon` | Haiku 4.5 | Same, with strict output and mechanical verification | Sonnet 5 medium | Haiku is below floor for semantic audits and silent-miss-prone exploration. |
53
+ | `intelligent-recon` | Sonnet 5 high | Sonnet 5 medium | Sonnet xhigh or Opus 4.8 xhigh | Do not use Sonnet low for coding or open-ended recon. |
54
+ | `default-implementation` | Sonnet 5 high | Sonnet 5 medium | Sonnet xhigh or Opus 4.8 xhigh | Fable low/medium is not the routine economy route. |
55
+ | `hard-reasoning` | Opus 4.8 xhigh | Sonnet 5 xhigh | Fable 5 xhigh for exceptional escalation | Unresolved ambiguity or exceptional novelty must justify Fable's incremental cost. |
56
+ | `consequential` | Opus 4.8 xhigh | No routine economy route | Fable 5 xhigh or max plus independent review | A consequential label alone does not justify Fable; retain root authorization and review. |
57
+
58
+ ## Root and Subagent Cost Posture
59
+
60
+ Preserve strong, low-volume root orchestration. Root calls are
61
+ coherence-critical and comparatively infrequent, while bounded subagents carry
62
+ most execution volume. Capture routine savings in higher-volume subagents by
63
+ routing mechanical work to Haiku and normal implementation to Sonnet instead
64
+ of weakening the root orchestrator.
65
+
66
+ Opus remains the hard-reasoning and consequential root default. Escalate the
67
+ root from Opus to Fable only when unresolved ambiguity, exceptional novelty or
68
+ consequence, or a directly relevant Fable strength is expected to justify the
69
+ incremental cost. A consequential classification by itself is insufficient.
70
+
71
+ ## Cyber-Sensitive Evidence
72
+
73
+ Fable 5 has a stronger cyber classifier that may flag benign coding and
74
+ debugging work. For security review, vulnerability triage, auth boundaries,
75
+ permissions, and other dual-use workflows where false-positive blocking would
76
+ break the run, Opus 4.8 xhigh remains the operational default. Pair
77
+ consequential findings with an independent provider review.
78
+
79
+ Do not infer that a stronger safety classifier is a capability weakness. It is
80
+ evidence about predictable workflow completion and refusal behavior, not an
81
+ exception that inverts the general Opus-first policy.
@@ -0,0 +1,63 @@
1
+ ---
2
+ guidance_version: 2026-07-22
3
+ last_verified: 2026-07-22
4
+ review_after: 2026-09-04
5
+ ---
6
+
7
+ # Codex and OpenAI Model Selection
8
+
9
+ Load this reference when the active harness is Codex or the route is a direct
10
+ OpenAI API worker. Current user and repository instructions override the dated
11
+ model examples below. Launch mechanics for OAT dispatch live in
12
+ `oat-dispatch-subagents/references/provider-codex.md`.
13
+
14
+ ## Current Families
15
+
16
+ Use the GPT-5.6 family for new general coding and knowledge work unless an
17
+ existing evaluated workflow requires an older snapshot:
18
+
19
+ - `gpt-5.6-sol`: frontier capability;
20
+ - `gpt-5.6-terra`: intelligence and cost balance;
21
+ - `gpt-5.6-luna`: cost-sensitive, high-volume work.
22
+
23
+ Direct API specialist routes:
24
+
25
+ - `gpt-5.4-mini`: economical coding, computer use, and subagent work;
26
+ - `gpt-5.4-nano`: classification, extraction, ranking, and simple high-volume
27
+ subagents. Do not use it for semantic repository exploration.
28
+
29
+ Treat GPT-5.5, GPT-5.4 full, GPT-5.3 Codex, GPT-5.2, and older models as
30
+ compatibility, regression, or account-availability routes unless current
31
+ workflow evidence prefers them. Do not keep an older model merely because its
32
+ name includes `codex`.
33
+
34
+ ## Dated Task-Class Matrix
35
+
36
+ | Task class | Default | Economy | Escalation | Floor notes |
37
+ | ------------------------ | ----------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | -------------------------------------------------------------- |
38
+ | `mechanical-recon` | `gpt-5.6-luna`, `high` | Direct API only: `gpt-5.4-mini` medium; `gpt-5.4-nano` medium for strict extraction/classification | `gpt-5.6-terra`, medium or high | Do not use Luna none/low for broad repository work. |
39
+ | `intelligent-recon` | `gpt-5.6-terra`, `high` | Terra `medium` with tight scope and verification | Sol `medium`, then `high` | A silent miss disqualifies Terra none/low. |
40
+ | `default-implementation` | `gpt-5.6-sol`, `medium` | Terra `high` for independently bounded, strongly tested work | Sol `high` | Luna is not the normal implementation lead. |
41
+ | `hard-reasoning` | `gpt-5.6-sol`, `high` | Sol `medium` only after narrowing the problem | Sol `xhigh` | Do not automatically escalate Terra to xhigh/max; move to Sol. |
42
+ | `consequential` | `gpt-5.6-sol`, `xhigh` | No routine economy route | Sol `max`, or a separately evaluated Sol `pro` route | Require independent review and root-owned authorization. |
43
+
44
+ `reasoning.mode: "pro"` is a separate quality/latency/cost control on GPT-5.6,
45
+ not a model slug and not an effort label. Record it independently. Evaluate it
46
+ against max or xhigh on representative consequential work before adopting it.
47
+
48
+ ## Long-Context Floor
49
+
50
+ For very large context, prefer Sol or Terra. Published GPT-5.6 results show a
51
+ large Luna retention drop in the 256K-to-1M range. Large context does not change
52
+ the task class, but it may disqualify Luna, mini, or nano.
53
+
54
+ ## Tool-Heavy Work
55
+
56
+ Use Programmatic Tool Calling only for bounded processing such as filtering,
57
+ joining, ranking, deduplication, aggregation, or validation over tool results.
58
+ Keep stages requiring fresh judgment in direct calls or the root. Declare the
59
+ allowed tools, output schema, evidence, concurrency, retries, and stopping
60
+ conditions.
61
+
62
+ Use strict structured outputs for mechanical API workers. Strict schema
63
+ conformance does not prove that the chosen tool or semantic result is correct.
@@ -0,0 +1,78 @@
1
+ ---
2
+ guidance_version: 2026-07-22
3
+ last_verified: 2026-07-22
4
+ review_after: 2026-09-04
5
+ catalog_basis: user-supplied Cursor snapshot plus current Cursor documentation
6
+ ---
7
+
8
+ # Cursor Model Selection
9
+
10
+ Load this reference when the active harness is Cursor (IDE, CLI, or SDK).
11
+ Current user and repository instructions override the dated model examples
12
+ below. Treat every observed catalog as a volatile snapshot, never a durable
13
+ inventory. Launch mechanics for OAT dispatch live in
14
+ `oat-dispatch-subagents/references/provider-cursor.md`.
15
+
16
+ ## Harness Rule
17
+
18
+ Cursor wraps model providers with its own prompts, tools, context management,
19
+ agent loop, aliases, and service tiers. Direct-provider evidence informs a
20
+ candidate, but Cursor-native evidence should decide a Cursor route when the two
21
+ conflict.
22
+
23
+ The Cursor SDK exposes the Cursor runtime, harness, and models. It is not a
24
+ transparent raw OpenAI or Anthropic API call.
25
+
26
+ ## Service-Tier Rule
27
+
28
+ Treat every alias ending in `-fast` as a service-tier selection, not a higher
29
+ capability class, unless current Cursor documentation explicitly says
30
+ otherwise. Composer 2.5 fast is documented as the same intelligence at a higher
31
+ price. Use standard aliases for background work and fast aliases only when
32
+ measured wall-clock latency justifies the premium.
33
+
34
+ Record the model and the service tier separately even when Cursor encodes both
35
+ in one opaque alias.
36
+
37
+ ## Dated Task-Class Matrix
38
+
39
+ Use exact aliases from the live catalog. The examples below were present in the
40
+ user's 2026-07-21 snapshot.
41
+
42
+ | Task class | Default | Economy | Escalation | Floor notes |
43
+ | ------------------------ | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
44
+ | `mechanical-recon` | `composer-2.5` | `composer-2.5` | `gpt-5.6-luna-high` | Use `composer-2.5-fast` or Luna fast only for latency, not capability. |
45
+ | `intelligent-recon` | `cursor-grok-4.5-medium` or `gpt-5.6-sol-medium` | `gpt-5.6-terra-high` | `gpt-5.6-sol-high` | Grok medium is a primary route; Sol medium is the conservative silent-miss alternative; Terra high is the cost-saving route. |
46
+ | `default-implementation` | `gpt-5.6-sol-medium` | `composer-2.5` for bounded, testable changes | `gpt-5.6-sol-high` or `claude-fable-5-thinking-high` | Sol is the conservative incumbent; `cursor-grok-4.5-medium` is a primary alternative for general implementation. Choose Fable for open-ended coherence; Sol for code-first execution. |
47
+ | `hard-reasoning` | `gpt-5.6-sol-high` | `cursor-grok-4.5-high` for architecture, ambiguous debugging, and incident diagnosis | `gpt-5.6-sol-xhigh` or `claude-fable-5-thinking-xhigh` | Narrow the task before downgrading. Do not infer equivalence between the two escalation efforts. |
48
+ | `consequential` | Cross-family author/reviewer pair, normally Sol xhigh plus Fable thinking xhigh | No routine economy route | Sol max plus Fable thinking max | For cyber-sensitive review, use `claude-opus-4-8-thinking-xhigh` or max instead of relying on Fable alone. Grok may contribute analysis but is never the sole reviewer. |
49
+
50
+ ## Broader Cursor Routes
51
+
52
+ - `cursor-grok-4.5-medium`: primary alternative for intelligent recon and
53
+ general implementation; strong for code exploration, brainstorming, research
54
+ synthesis, debugging, broad knowledge work, and judgment-heavy tool
55
+ workflows.
56
+ - `cursor-grok-4.5-high`: economy route for hard reasoning, architecture,
57
+ ambiguous debugging, and incident diagnosis.
58
+ - `cursor-grok-4.5-low`: simpler tool workflows; prefer `composer-2.5` for
59
+ highly mechanical work on cost.
60
+ - Grok is never the sole final authority for a consequential factual, security,
61
+ incident, or architectural conclusion. Require tool evidence, citations,
62
+ logs, query results, or file references for load-bearing Grok claims, or
63
+ pair it with an independent Sol, Fable, or Opus reviewer.
64
+ - CursorBench caveat: Cursor disclosed that Cursor repository data entered
65
+ Grok 4.5's training mixture. Treat its ranking as evidence of
66
+ competitiveness, not proof of superiority over nearby frontier models.
67
+ - `claude-sonnet-5-thinking-high`: strong provider-diversity alternative for
68
+ normal implementation and agentic work when available.
69
+ - `gpt-5.4-mini-medium`: economical general tool and coding worker.
70
+ - `gpt-5.4-nano-medium`: strict extraction, classification, ranking, and simple
71
+ read-only tool calls. Not a semantic repository worker.
72
+ - Gemini, Kimi, GLM, GPT-5.5/5.4/5.3 Codex/5.2, and older Claude aliases:
73
+ compatibility, availability, or task-specific alternatives. Do not make them
74
+ defaults without current relevant evidence.
75
+
76
+ `auto` is allowed for interactive convenience only. It is prohibited for
77
+ class-constrained dispatch, repeatable evaluations, auditable automation, and
78
+ consequential work because the exact model is not a stable input.
@@ -2,7 +2,6 @@ import { type CommandContext, type GlobalOptions } from '../../../../app/command
2
2
  import { type PromptContext } from '../../../shared/shared.prompts.js';
3
3
  import { type ScanToolsOptions } from '../../../tools/shared/scan-tools.js';
4
4
  import type { ToolInfo } from '../../../tools/shared/types.js';
5
- import { type OatConfig } from '../../../../config/oat-config.js';
6
5
  import { Command } from 'commander';
7
6
  import { type InstallBrainstormOptions, type InstallBrainstormResult } from './install-brainstorm.js';
8
7
  type InstallScope = 'project' | 'user';
@@ -14,8 +13,6 @@ interface InitToolsBrainstormDependencies {
14
13
  installBrainstorm: (options: InstallBrainstormOptions) => Promise<InstallBrainstormResult>;
15
14
  confirmAction: (message: string, ctx: PromptContext) => Promise<boolean>;
16
15
  scanTools: (options: ScanToolsOptions) => Promise<ToolInfo[]>;
17
- readOatConfig: (repoRoot: string) => Promise<OatConfig>;
18
- writeOatConfig: (repoRoot: string, config: OatConfig) => Promise<void>;
19
16
  }
20
17
  export declare function createInitToolsBrainstormCommand(overrides?: Partial<InitToolsBrainstormDependencies>): Command;
21
18
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/brainstorm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACL,KAAK,SAAS,EAGf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAM9B,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvC,UAAU,+BAA+B;IACvC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,CACjB,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,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;CACxE;AA+KD,wBAAgB,gCAAgC,CAC9C,SAAS,GAAE,OAAO,CAAC,+BAA+B,CAAM,GACvD,OAAO,CA2BT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/brainstorm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAMzC,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,sBAAsB,CAAC;AAM9B,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvC,UAAU,+BAA+B;IACvC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,CACjB,OAAO,EAAE,wBAAwB,KAC9B,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACtC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC/D;AA+JD,wBAAgB,gCAAgC,CAC9C,SAAS,GAAE,OAAO,CAAC,+BAA+B,CAAM,GACvD,OAAO,CA2BT"}
@@ -5,7 +5,6 @@ import { confirmAction, } from '../../../shared/shared.prompts.js';
5
5
  import { readGlobalOptions } from '../../../shared/shared.utils.js';
6
6
  import { canonicalPathsForPack, setInstalledCanonicalPaths, } from '../../../tools/shared/install-sync-context.js';
7
7
  import { scanTools as defaultScanTools, } from '../../../tools/shared/scan-tools.js';
8
- import { readOatConfig as defaultReadOatConfig, writeOatConfig as defaultWriteOatConfig, } from '../../../../config/oat-config.js';
9
8
  import { resolveAssetsRoot } from '../../../../fs/assets.js';
10
9
  import { resolveProjectRoot, resolveScopeRoot } from '../../../../fs/paths.js';
11
10
  import { Command } from 'commander';
@@ -18,8 +17,6 @@ const DEFAULT_DEPENDENCIES = {
18
17
  installBrainstorm: defaultInstallBrainstorm,
19
18
  confirmAction,
20
19
  scanTools: defaultScanTools,
21
- readOatConfig: defaultReadOatConfig,
22
- writeOatConfig: defaultWriteOatConfig,
23
20
  };
24
21
  async function resolveInstallScope(context, projectRoot, userRoot, assetsRoot, dependencies) {
25
22
  // Honor explicit --scope before any existing-install or default
@@ -81,11 +78,6 @@ function reportSuccess(context, scope, targetRoot, assetsRoot, result) {
81
78
  context.logger.info(`Skills: ${counts.skills}`);
82
79
  context.logger.info(`Run: oat sync --scope ${scope}`);
83
80
  }
84
- async function persistConfigAfterInstall(projectRoot, dependencies) {
85
- const config = await dependencies.readOatConfig(projectRoot);
86
- const tools = { ...(config.tools ?? {}), brainstorm: true };
87
- await dependencies.writeOatConfig(projectRoot, { ...config, tools });
88
- }
89
81
  async function runInitToolsBrainstorm(context, options, dependencies) {
90
82
  try {
91
83
  const projectRoot = await dependencies.resolveProjectRoot(context.cwd);
@@ -108,10 +100,6 @@ async function runInitToolsBrainstorm(context, options, dependencies) {
108
100
  targetRoot,
109
101
  force: options.force,
110
102
  });
111
- // Persist tools.brainstorm: true to .oat/config.json after a
112
- // successful install so config-write semantics match the main
113
- // installer flow used by `oat init tools`.
114
- await persistConfigAfterInstall(projectRoot, dependencies);
115
103
  reportSuccess(context, scope, targetRoot, assetsRoot, result);
116
104
  process.exitCode = 0;
117
105
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/commands/init/tools/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,8 @@ import { addLocalPaths } from '../../local/manage.js';
7
7
  import { removeAgentsMdSection, upsertAgentsMdSection, } from '../../shared/agents-md.js';
8
8
  import { selectManyWithAbort, selectWithAbort, } from '../../shared/shared.prompts.js';
9
9
  import { readGlobalOptions } from '../../shared/shared.utils.js';
10
- import { canonicalPathsForPacks, setInstalledCanonicalPaths, } from '../../tools/shared/install-sync-context.js';
10
+ import { canonicalPathsForPacks, getInstalledCanonicalPaths, setInstalledCanonicalPaths, } from '../../tools/shared/install-sync-context.js';
11
+ import { reconcileProjectToolsConfig } from '../../tools/shared/project-tools-config.js';
11
12
  import { scanTools } from '../../tools/shared/scan-tools.js';
12
13
  import { readOatConfig, resolveLocalPaths, writeOatConfig, } from '../../../config/oat-config.js';
13
14
  import { resolveAssetsRoot } from '../../../fs/assets.js';
@@ -443,16 +444,6 @@ function buildPackEndStateChoices(pack, currentLocation, defaultEndState) {
443
444
  const rest = annotated.filter((choice) => choice.value !== defaultEndState);
444
445
  return defaultChoice ? [defaultChoice, ...rest] : annotated;
445
446
  }
446
- function buildInstalledToolsConfig(selectedPacks, installedPackStates, existingTools) {
447
- const selectedPackSet = new Set(selectedPacks);
448
- const tools = { ...existingTools };
449
- for (const pack of ALL_TOOL_PACKS) {
450
- tools[pack] =
451
- selectedPackSet.has(pack) ||
452
- installedPackStates[pack].location !== 'not-installed';
453
- }
454
- return tools;
455
- }
456
447
  function reportSuccess(context, packs, syncScopes) {
457
448
  if (context.json) {
458
449
  context.logger.json({
@@ -877,9 +868,6 @@ export async function runInitTools(context, dependencies) {
877
868
  projectManagementSectionResult.action !== 'no-change') {
878
869
  context.logger.info(`AGENTS.md project-management section ${projectManagementSectionResult.action}.`);
879
870
  }
880
- const config = await dependencies.readOatConfig(projectRoot);
881
- const tools = buildInstalledToolsConfig(selectedPacks, initialPackStates, config.tools);
882
- await dependencies.writeOatConfig(projectRoot, { ...config, tools });
883
871
  const affectedScopesList = [...affectedScopes];
884
872
  lastRunInitToolsMetadata = {
885
873
  affectedScopes: affectedScopesList,
@@ -909,19 +897,52 @@ export function createInitToolsCommand(overrides = {}) {
909
897
  ...DEFAULT_DEPENDENCIES,
910
898
  ...overrides,
911
899
  };
912
- return new Command('tools')
913
- .description('Install OAT tool packs (core, ideas, docs, workflows, utility, project-management, research, brainstorm)')
914
- .addCommand(createInitToolsCoreCommand())
915
- .addCommand(createInitToolsIdeasCommand())
916
- .addCommand(createInitToolsDocsCommand())
917
- .addCommand(createInitToolsProjectManagementCommand())
918
- .addCommand(createInitToolsWorkflowsCommand())
919
- .addCommand(createInitToolsUtilityCommand())
920
- .addCommand(createInitToolsResearchCommand())
921
- .addCommand(createInitToolsBrainstormCommand())
922
- .action(async (_options, command) => {
900
+ async function reconcileAfterInstall(actionCommand) {
901
+ if (process.exitCode !== undefined && process.exitCode !== 0) {
902
+ return;
903
+ }
904
+ if (getInstalledCanonicalPaths(actionCommand).length === 0) {
905
+ return;
906
+ }
907
+ const context = dependencies.buildCommandContext(readGlobalOptions(actionCommand));
908
+ const repoRoot = await dependencies.resolveProjectRoot(context.cwd);
909
+ await reconcileProjectToolsConfig({
910
+ repoRoot,
911
+ cwd: context.cwd,
912
+ home: context.home,
913
+ }, dependencies);
914
+ }
915
+ const packCommands = [
916
+ createInitToolsCoreCommand(),
917
+ createInitToolsIdeasCommand(),
918
+ createInitToolsDocsCommand(),
919
+ createInitToolsProjectManagementCommand(),
920
+ createInitToolsWorkflowsCommand(),
921
+ createInitToolsUtilityCommand(),
922
+ createInitToolsResearchCommand(),
923
+ createInitToolsBrainstormCommand({
924
+ buildCommandContext: dependencies.buildCommandContext,
925
+ resolveProjectRoot: dependencies.resolveProjectRoot,
926
+ resolveScopeRoot: dependencies.resolveScopeRoot,
927
+ resolveAssetsRoot: dependencies.resolveAssetsRoot,
928
+ installBrainstorm: dependencies.installBrainstorm,
929
+ scanTools: dependencies.scanTools,
930
+ }),
931
+ ];
932
+ for (const packCommand of packCommands) {
933
+ packCommand.hook('postAction', async (_thisCommand, actionCommand) => {
934
+ await reconcileAfterInstall(actionCommand);
935
+ });
936
+ }
937
+ const command = new Command('tools').description('Install OAT tool packs (core, ideas, docs, workflows, utility, project-management, research, brainstorm)');
938
+ for (const packCommand of packCommands) {
939
+ command.addCommand(packCommand);
940
+ }
941
+ command.action(async (_options, command) => {
923
942
  const context = dependencies.buildCommandContext(readGlobalOptions(command));
924
943
  const selectedPacks = await runInitTools(context, dependencies);
925
944
  setInstalledCanonicalPaths(command, canonicalPathsForPacks(selectedPacks));
945
+ await reconcileAfterInstall(command);
926
946
  });
947
+ return command;
927
948
  }
@@ -19,7 +19,7 @@ export declare const IDEA_SKILLS: readonly ['oat-idea-new', 'oat-idea-ideate', '
19
19
  export declare const CORE_SKILLS: readonly ['oat-docs', 'oat-doctor'];
20
20
  export declare const DOCS_SKILLS: readonly ['authoring-docs', 'oat-agent-instructions-analyze', 'oat-agent-instructions-apply', 'oat-docs-analyze', 'oat-docs-apply', 'oat-docs-authoring', 'oat-docs-bootstrap'];
21
21
  export declare const DOCS_SCRIPTS: readonly ['resolve-tracking.sh'];
22
- export declare const UTILITY_SKILLS: readonly ['create-agnostic-skill', 'explainer-kit', 'oat-dispatch-subagents', 'oat-repo-improve', 'oat-repo-maintainability-review', 'oat-review-provide', 'oat-review-provide-remote', 'oat-review-receive', 'oat-review-receive-remote'];
22
+ export declare const UTILITY_SKILLS: readonly ['create-agnostic-skill', 'explainer-kit', 'oat-dispatch-subagents', 'subagent-orchestration', 'oat-repo-improve', 'oat-repo-maintainability-review', 'oat-review-provide', 'oat-review-provide-remote', 'oat-review-receive', 'oat-review-receive-remote'];
23
23
  export declare const PROJECT_MANAGEMENT_SKILLS: readonly ['oat-pjm-add-backlog-item', 'oat-pjm-decision', 'oat-pjm-update-repo-reference', 'oat-pjm-review-backlog'];
24
24
  export declare const PROJECT_MANAGEMENT_TEMPLATES: readonly ['backlog-item.md', 'roadmap.md', 'current-state.md', 'decision.md', 'repo-agents.md', 'pjm-agents.md', 'reference-agents.md'];
25
25
  export declare const PROJECT_MANAGEMENT_SCRIPTS: readonly [];
@@ -1 +1 @@
1
- {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,YAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,iCAAiC,EACjC,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,mCAAmC,EACnC,4BAA4B,EAC5B,mCAAmC,EACnC,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,CACL,CAAC;AAEX,eAAO,MAAM,eAAe,YAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,iBAAiB,CACT,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAC7B,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,CACR,CAAC;AAEX,eAAO,MAAM,gBAAgB,YAC3B,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,CACb,CAAC;AAIX,eAAO,MAAM,WAAW,YACtB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,CACb,CAAC;AAIX,eAAO,MAAM,WAAW,YAAI,UAAU,EAAE,YAAY,CAAU,CAAC;AAI/D,eAAO,MAAM,WAAW,YACtB,gBAAgB,EAChB,gCAAgC,EAChC,8BAA8B,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,CACZ,CAAC;AAEX,eAAO,MAAM,YAAY,YAAI,qBAAqB,CAAU,CAAC;AAI7D,eAAO,MAAM,cAAc,YACzB,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,kBAAkB,EAClB,iCAAiC,EACjC,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,CACnB,CAAC;AAIX,eAAO,MAAM,yBAAyB,YACpC,0BAA0B,EAC1B,kBAAkB,EAClB,+BAA+B,EAC/B,wBAAwB,CAChB,CAAC;AAEX,eAAO,MAAM,4BAA4B,YACvC,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,qBAAqB,CACb,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,YAAI,gBAAgB,CAAU,CAAC;AAI7D,eAAO,MAAM,eAAe,YAC1B,SAAS,EACT,SAAS,EACT,eAAe,EACf,SAAS,EACT,YAAY,CACJ,CAAC;AAEX,eAAO,MAAM,eAAe,YAAI,wBAAwB,CAAU,CAAC"}
1
+ {"version":3,"file":"skill-manifest.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/shared/skill-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKtD,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE5E;AAID,eAAO,MAAM,eAAe,YAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,oBAAoB,EACpB,gCAAgC,EAChC,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,iCAAiC,EACjC,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,4BAA4B,EAC5B,mCAAmC,EACnC,4BAA4B,EAC5B,mCAAmC,EACnC,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,6BAA6B,EAC7B,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,CACL,CAAC;AAEX,eAAO,MAAM,eAAe,YAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,iBAAiB,CACT,CAAC;AAEX,eAAO,MAAM,kBAAkB,YAC7B,UAAU,EACV,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,mBAAmB,EACnB,YAAY,EACZ,gBAAgB,CACR,CAAC;AAEX,eAAO,MAAM,gBAAgB,YAC3B,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,CACb,CAAC;AAIX,eAAO,MAAM,WAAW,YACtB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,CACb,CAAC;AAIX,eAAO,MAAM,WAAW,YAAI,UAAU,EAAE,YAAY,CAAU,CAAC;AAI/D,eAAO,MAAM,WAAW,YACtB,gBAAgB,EAChB,gCAAgC,EAChC,8BAA8B,EAC9B,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,CACZ,CAAC;AAEX,eAAO,MAAM,YAAY,YAAI,qBAAqB,CAAU,CAAC;AAI7D,eAAO,MAAM,cAAc,YACzB,uBAAuB,EACvB,eAAe,EACf,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,iCAAiC,EACjC,oBAAoB,EACpB,2BAA2B,EAC3B,oBAAoB,EACpB,2BAA2B,CACnB,CAAC;AAIX,eAAO,MAAM,yBAAyB,YACpC,0BAA0B,EAC1B,kBAAkB,EAClB,+BAA+B,EAC/B,wBAAwB,CAChB,CAAC;AAEX,eAAO,MAAM,4BAA4B,YACvC,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,qBAAqB,CACb,CAAC;AAEX,eAAO,MAAM,0BAA0B,aAAc,CAAC;AAItD,eAAO,MAAM,iBAAiB,YAAI,gBAAgB,CAAU,CAAC;AAI7D,eAAO,MAAM,eAAe,YAC1B,SAAS,EACT,SAAS,EACT,eAAe,EACf,SAAS,EACT,YAAY,CACJ,CAAC;AAEX,eAAO,MAAM,eAAe,YAAI,wBAAwB,CAAU,CAAC"}
@@ -99,6 +99,7 @@ export const UTILITY_SKILLS = [
99
99
  'create-agnostic-skill',
100
100
  'explainer-kit',
101
101
  'oat-dispatch-subagents',
102
+ 'subagent-orchestration',
102
103
  'oat-repo-improve',
103
104
  'oat-repo-maintainability-review',
104
105
  'oat-review-provide',
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/utility/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAEnB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAM3B,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvC,UAAU,4BAA4B;IACpC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,CACd,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,mBAAmB,EAAE,CAAC,CAAC,SAAS,MAAM,EACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAC/B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAoID,wBAAgB,6BAA6B,CAC3C,SAAS,GAAE,OAAO,CAAC,4BAA4B,CAAM,GACpD,OAAO,CAeT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/commands/init/tools/utility/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAEnB,MAAM,iCAAiC,CAAC;AAQzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAM3B,KAAK,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAEvC,UAAU,4BAA4B;IACpC,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,gBAAgB,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7E,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACzC,cAAc,EAAE,CACd,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnC,mBAAmB,EAAE,CAAC,CAAC,SAAS,MAAM,EACpC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAC/B,GAAG,EAAE,aAAa,KACf,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IACzB,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1E;AAsJD,wBAAgB,6BAA6B,CAC3C,SAAS,GAAE,OAAO,CAAC,4BAA4B,CAAM,GACpD,OAAO,CAeT"}
@@ -19,6 +19,19 @@ const DEFAULT_DEPENDENCIES = {
19
19
  function resolveScope(context) {
20
20
  return context.scope === 'user' ? 'user' : 'project';
21
21
  }
22
+ function expandUtilitySelection(selectedSkills) {
23
+ const dispatchSkill = 'oat-dispatch-subagents';
24
+ const guidanceSkill = 'subagent-orchestration';
25
+ const dispatchIndex = selectedSkills.indexOf(dispatchSkill);
26
+ if (dispatchIndex === -1 || selectedSkills.includes(guidanceSkill)) {
27
+ return selectedSkills;
28
+ }
29
+ return [
30
+ ...selectedSkills.slice(0, dispatchIndex + 1),
31
+ guidanceSkill,
32
+ ...selectedSkills.slice(dispatchIndex + 1),
33
+ ];
34
+ }
22
35
  function reportSuccess(context, scope, targetRoot, assetsRoot, selectedSkills, result) {
23
36
  if (context.json) {
24
37
  context.logger.json({
@@ -44,20 +57,21 @@ async function runInitToolsUtility(context, options, dependencies, command) {
44
57
  const targetRoot = scope === 'project'
45
58
  ? await dependencies.resolveProjectRoot(context.cwd)
46
59
  : dependencies.resolveScopeRoot('user', context.cwd, context.home);
47
- const selectedSkills = context.interactive
60
+ const requestedSkills = context.interactive
48
61
  ? await dependencies.selectManyWithAbort('Select utility skills to install', UTILITY_SKILLS.map((skill) => ({
49
62
  label: skill,
50
63
  value: skill,
51
64
  checked: true,
52
65
  })), { interactive: context.interactive })
53
66
  : [...UTILITY_SKILLS];
54
- if (selectedSkills === null) {
67
+ if (requestedSkills === null) {
55
68
  if (!context.json) {
56
69
  context.logger.info('Cancelled: no utility skills installed.');
57
70
  }
58
71
  process.exitCode = 0;
59
72
  return;
60
73
  }
74
+ const selectedSkills = expandUtilitySelection(requestedSkills);
61
75
  if (selectedSkills.length === 0) {
62
76
  if (!context.json) {
63
77
  context.logger.info('No utility skills selected.');
@@ -0,0 +1,18 @@
1
+ import type { CommandContext } from '../../../app/command-context.js';
2
+ import type { ScanToolsOptions } from '../../tools/shared/scan-tools.js';
3
+ import type { PackName, ToolInfo } from '../../tools/shared/types.js';
4
+ import type { ConcreteScope } from '../../../shared/types.js';
5
+ export declare const PACK_NAMES: readonly ["core", "ideas", "docs", "workflows", "utility", "project-management", "research", "brainstorm"];
6
+ export interface PackAvailability {
7
+ pack: PackName;
8
+ available: boolean;
9
+ scopes: ConcreteScope[];
10
+ }
11
+ export interface PackAvailabilityDependencies {
12
+ scanTools: (options: ScanToolsOptions) => Promise<ToolInfo[]>;
13
+ resolveScopeRoot: (scope: ConcreteScope, cwd: string, home: string) => Promise<string>;
14
+ resolveAssetsRoot: () => Promise<string>;
15
+ }
16
+ export declare function isPackName(value: string): value is PackName;
17
+ export declare function resolvePackAvailability(pack: PackName, scopes: ConcreteScope[], context: CommandContext, dependencies: PackAvailabilityDependencies): Promise<PackAvailability>;
18
+ //# sourceMappingURL=has-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-pack.d.ts","sourceRoot":"","sources":["../../../../src/commands/tools/has/has-pack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,eAAO,MAAM,UAAU,4GASiB,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9D,gBAAgB,EAAE,CAChB,KAAK,EAAE,aAAa,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,KACT,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,iBAAiB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,QAAQ,CAE3D;AAED,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,aAAa,EAAE,EACvB,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,4BAA4B,GACzC,OAAO,CAAC,gBAAgB,CAAC,CAyB3B"}