okstra 0.102.1 → 0.102.3

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 (162) hide show
  1. package/README.kr.md +5 -6
  2. package/README.md +5 -6
  3. package/docs/kr/architecture/storage-model.md +1 -1
  4. package/docs/kr/architecture.md +8 -12
  5. package/docs/kr/cli.md +6 -6
  6. package/docs/kr/container.md +1 -1
  7. package/docs/kr/performance-improvement-plan-v2.md +2 -2
  8. package/docs/project-structure-overview.md +2 -2
  9. package/package.json +7 -2
  10. package/runtime/BUILD.json +2 -2
  11. package/runtime/bin/okstra-antigravity-exec.sh +1 -2
  12. package/runtime/bin/okstra-codex-exec.sh +1 -2
  13. package/runtime/bin/okstra-render-final-report.py +2 -9
  14. package/runtime/bin/okstra-spawn-followups.py +4 -6
  15. package/runtime/bin/okstra-trace-cleanup.sh +24 -4
  16. package/runtime/prompts/lead/okstra-lead-contract.md +2 -2
  17. package/runtime/prompts/lead/report-writer.md +1 -1
  18. package/runtime/prompts/profiles/_common-contract.md +9 -11
  19. package/runtime/python/okstra_ctl/codex_dispatch.py +4 -12
  20. package/runtime/python/okstra_ctl/consumers.py +35 -0
  21. package/runtime/python/okstra_ctl/container.py +4 -6
  22. package/runtime/python/okstra_ctl/dispatch_core.py +4 -12
  23. package/runtime/python/okstra_ctl/final_report_paths.py +24 -0
  24. package/runtime/python/okstra_ctl/handoff.py +2 -1
  25. package/runtime/python/okstra_ctl/implementation_stage.py +7 -11
  26. package/runtime/python/okstra_ctl/report_view_artifacts.py +14 -0
  27. package/runtime/python/okstra_ctl/report_views.py +7 -4
  28. package/runtime/python/okstra_ctl/run.py +3 -10
  29. package/runtime/python/okstra_ctl/stage_targets.py +18 -0
  30. package/runtime/python/okstra_ctl/wizard.py +24 -25
  31. package/runtime/python/okstra_ctl/wizard_stage_intent.py +54 -0
  32. package/runtime/python/okstra_token_usage/report.py +2 -5
  33. package/runtime/validators/validate-report-views.py +2 -1
  34. package/runtime/validators/validate-run.py +1 -11
  35. package/src/cli-registry.mjs +1 -1
  36. package/src/commands/lifecycle/install.mjs +10 -20
  37. package/src/commands/lifecycle/uninstall.mjs +7 -10
  38. package/docs/superpowers/plans/2026-05-12-ticket-id-in-reports.md +0 -638
  39. package/docs/superpowers/plans/2026-05-14-convergence-queue-pruning.md +0 -1568
  40. package/docs/superpowers/plans/2026-05-17-dual-format-final-report.md +0 -167
  41. package/docs/superpowers/plans/2026-05-20-final-report-language.md +0 -1501
  42. package/docs/superpowers/plans/2026-05-20-implementation-planning-multi-stage.md +0 -1267
  43. package/docs/superpowers/plans/2026-05-20-okstra-run-prompt-sot-b1.md +0 -1007
  44. package/docs/superpowers/plans/2026-05-20-wizard-messages-json-sot.md +0 -720
  45. package/docs/superpowers/plans/2026-05-20-wizard-prompt-json-sot-a1.md +0 -681
  46. package/docs/superpowers/plans/2026-05-21-improvement-discovery-task-type.md +0 -1691
  47. package/docs/superpowers/plans/2026-05-24-implementation-lead-context-slimming.md +0 -1700
  48. package/docs/superpowers/plans/2026-05-25-okstra-project-root-rename.md +0 -158
  49. package/docs/superpowers/plans/2026-05-26-wizard-3-option-picker.md +0 -860
  50. package/docs/superpowers/plans/2026-06-02-final-verification-protocol-hardening.md +0 -326
  51. package/docs/superpowers/plans/2026-06-02-okstra-run-branch-confirm-step.md +0 -337
  52. package/docs/superpowers/plans/2026-06-02-okstra-run-phase-pane-cleanup.md +0 -410
  53. package/docs/superpowers/plans/2026-06-02-requirements-discovery-fanout.md +0 -728
  54. package/docs/superpowers/plans/2026-06-04-adversarial-implementation-planning.md +0 -294
  55. package/docs/superpowers/plans/2026-06-04-adversarial-verification.md +0 -570
  56. package/docs/superpowers/plans/2026-06-04-coverage-critic.md +0 -516
  57. package/docs/superpowers/plans/2026-06-04-stage-cohesion-planner.md +0 -351
  58. package/docs/superpowers/plans/2026-06-04-stage-run-batching.md +0 -457
  59. package/docs/superpowers/plans/2026-06-05-acceptance-critic.md +0 -251
  60. package/docs/superpowers/plans/2026-06-05-compact-markdown-report-tables.md +0 -323
  61. package/docs/superpowers/plans/2026-06-05-wizard-batch-prompts.md +0 -559
  62. package/docs/superpowers/plans/2026-06-06-final-verification-whole-task-gate.md +0 -993
  63. package/docs/superpowers/plans/2026-06-06-stage-parallel-and-pending-fixes.md +0 -93
  64. package/docs/superpowers/plans/2026-06-06-stage-worktree-isolation-p1.md +0 -447
  65. package/docs/superpowers/plans/2026-06-06-stage-worktree-isolation-p2.md +0 -289
  66. package/docs/superpowers/plans/2026-06-06-stage-worktree-isolation-p3.md +0 -774
  67. package/docs/superpowers/plans/2026-06-06-stage-worktree-isolation-p4.md +0 -303
  68. package/docs/superpowers/plans/2026-06-06-stage-worktree-isolation-p5-multidep-base.md +0 -387
  69. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa-phase2.md +0 -275
  70. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa-phase3.md +0 -282
  71. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa-phase4a.md +0 -147
  72. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa-phase4b.md +0 -262
  73. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa-phase4c.md +0 -184
  74. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa-phase4d.md +0 -88
  75. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa-phase4e.md +0 -250
  76. package/docs/superpowers/plans/2026-06-07-stage-conformance-qa.md +0 -409
  77. package/docs/superpowers/plans/2026-06-09-implementation-run-artifact-stage-isolation.md +0 -320
  78. package/docs/superpowers/plans/2026-06-10-concurrent-run-team-guard.md +0 -456
  79. package/docs/superpowers/plans/2026-06-10-git-reconcile-stale-sha-recovery.md +0 -1408
  80. package/docs/superpowers/plans/2026-06-10-lead-worker-completion-polling-PROBE.md +0 -42
  81. package/docs/superpowers/plans/2026-06-10-lead-worker-completion-polling.md +0 -337
  82. package/docs/superpowers/plans/2026-06-10-p6-token-usage-incremental.md +0 -1029
  83. package/docs/superpowers/plans/2026-06-10-stage-group-handoff.md +0 -1572
  84. package/docs/superpowers/plans/2026-06-11-fix-cycle.md +0 -1290
  85. package/docs/superpowers/plans/2026-06-11-wizard-whole-task-final-verification.md +0 -526
  86. package/docs/superpowers/plans/2026-06-12-html-plan-approval.md +0 -1000
  87. package/docs/superpowers/plans/2026-06-13-repo-risk-hardening.md +0 -493
  88. package/docs/superpowers/plans/2026-06-14-host-runtime-auto-execution.md +0 -1775
  89. package/docs/superpowers/plans/2026-06-15-coding-preflight-pack-dispatch-path.md +0 -504
  90. package/docs/superpowers/plans/2026-06-15-internal-skill-migration-final-fixups.md +0 -342
  91. package/docs/superpowers/plans/2026-06-15-internal-skill-migration-fixups.md +0 -258
  92. package/docs/superpowers/plans/2026-06-15-internal-skill-migration-remaining-fixups.md +0 -387
  93. package/docs/superpowers/plans/2026-06-15-internal-skill-resource-migration.md +0 -749
  94. package/docs/superpowers/plans/2026-06-15-worker-prompt-anchor-final-fixups.md +0 -828
  95. package/docs/superpowers/plans/2026-06-15-worker-prompt-header-error-contract.md +0 -490
  96. package/docs/superpowers/plans/2026-06-17-okstra-error-report.md +0 -724
  97. package/docs/superpowers/plans/2026-06-18-subagent-pane-reclaim.md +0 -483
  98. package/docs/superpowers/plans/2026-06-19-agent-operating-standard.md +0 -476
  99. package/docs/superpowers/plans/2026-06-19-okstra-inspect-recap-facet.md +0 -647
  100. package/docs/superpowers/plans/2026-06-20-error-feedback-loop.md +0 -1019
  101. package/docs/superpowers/plans/2026-06-20-run-index-row-normalization.md +0 -583
  102. package/docs/superpowers/plans/2026-06-20-stage-auto-integrate-teardown.md +0 -819
  103. package/docs/superpowers/plans/2026-06-21-okstra-container-local-user-test.md +0 -714
  104. package/docs/superpowers/plans/2026-06-21-release-handoff-local-checkout.md +0 -348
  105. package/docs/superpowers/plans/2026-06-23-implementation-stage-multiselect-chain.md +0 -630
  106. package/docs/superpowers/plans/2026-06-23-implementation-step-commit-granularity.md +0 -274
  107. package/docs/superpowers/plans/2026-06-23-phase-batch-cleanup-enforcement.md +0 -409
  108. package/docs/superpowers/plans/2026-06-24-cross-project-precondition.md +0 -542
  109. package/docs/superpowers/plans/2026-06-24-decision-drafts-render-gap.md +0 -568
  110. package/docs/superpowers/plans/2026-06-24-manual-user-test-section.md +0 -203
  111. package/docs/superpowers/plans/2026-06-24-okstra-container-build-rename.md +0 -525
  112. package/docs/superpowers/specs/2026-05-12-ticket-id-in-reports-design.md +0 -131
  113. package/docs/superpowers/specs/2026-05-15-implementation-plan-verification-design.md +0 -254
  114. package/docs/superpowers/specs/2026-05-20-final-report-language-design.md +0 -383
  115. package/docs/superpowers/specs/2026-05-20-implementation-planning-multi-stage-design.md +0 -322
  116. package/docs/superpowers/specs/2026-05-20-okstra-run-prompt-sot-design.md +0 -299
  117. package/docs/superpowers/specs/2026-05-21-improvement-discovery-task-type-design.md +0 -335
  118. package/docs/superpowers/specs/2026-06-02-okstra-run-branch-confirm-step-design.md +0 -113
  119. package/docs/superpowers/specs/2026-06-02-okstra-run-phase-pane-cleanup-design.md +0 -173
  120. package/docs/superpowers/specs/2026-06-02-requirements-discovery-fanout-design.md +0 -154
  121. package/docs/superpowers/specs/2026-06-04-adversarial-implementation-planning-design.md +0 -90
  122. package/docs/superpowers/specs/2026-06-04-adversarial-verification-design.md +0 -176
  123. package/docs/superpowers/specs/2026-06-04-coverage-critic-design.md +0 -99
  124. package/docs/superpowers/specs/2026-06-04-stage-splitting-cost-aware-design.md +0 -98
  125. package/docs/superpowers/specs/2026-06-05-acceptance-critic-design.md +0 -90
  126. package/docs/superpowers/specs/2026-06-05-compact-markdown-report-tables-design.md +0 -87
  127. package/docs/superpowers/specs/2026-06-05-wizard-batch-prompts-design.md +0 -121
  128. package/docs/superpowers/specs/2026-06-06-final-verification-whole-task-gate-design.md +0 -126
  129. package/docs/superpowers/specs/2026-06-06-stage-worktree-isolation-design.md +0 -180
  130. package/docs/superpowers/specs/2026-06-06-vertical-slice-tdd-planning-design.md +0 -179
  131. package/docs/superpowers/specs/2026-06-07-stage-conformance-qa-design.md +0 -169
  132. package/docs/superpowers/specs/2026-06-09-executor-model-custom-id-cascade-design.md +0 -66
  133. package/docs/superpowers/specs/2026-06-09-implementation-run-artifact-stage-isolation-design.md +0 -87
  134. package/docs/superpowers/specs/2026-06-10-blocking-contract-posthoc-conformance-design.md +0 -168
  135. package/docs/superpowers/specs/2026-06-10-concurrent-run-team-guard-design.md +0 -107
  136. package/docs/superpowers/specs/2026-06-10-git-reconcile-stale-sha-recovery-design.md +0 -105
  137. package/docs/superpowers/specs/2026-06-10-lead-worker-completion-polling-design.md +0 -113
  138. package/docs/superpowers/specs/2026-06-10-stage-group-handoff-design.md +0 -156
  139. package/docs/superpowers/specs/2026-06-11-brief-entry-only-handoff-stage-entry-design.md +0 -158
  140. package/docs/superpowers/specs/2026-06-11-fix-cycle-design.md +0 -94
  141. package/docs/superpowers/specs/2026-06-11-wizard-whole-task-final-verification-design.md +0 -89
  142. package/docs/superpowers/specs/2026-06-12-codex-lead-adapter-design.md +0 -358
  143. package/docs/superpowers/specs/2026-06-12-html-plan-approval-design.md +0 -85
  144. package/docs/superpowers/specs/2026-06-12-stage-discipline-rule-design.md +0 -108
  145. package/docs/superpowers/specs/2026-06-13-forbidden-actions-ssot-design.md +0 -134
  146. package/docs/superpowers/specs/2026-06-13-neutral-tmux-lead-adapter-design.md +0 -284
  147. package/docs/superpowers/specs/2026-06-14-host-runtime-auto-execution-design.md +0 -404
  148. package/docs/superpowers/specs/2026-06-17-okstra-error-report-design.md +0 -123
  149. package/docs/superpowers/specs/2026-06-18-subagent-pane-reclaim-design.md +0 -150
  150. package/docs/superpowers/specs/2026-06-19-agent-operating-standard-design.md +0 -120
  151. package/docs/superpowers/specs/2026-06-19-okstra-inspect-recap-facet-design.md +0 -96
  152. package/docs/superpowers/specs/2026-06-20-error-feedback-loop-design.md +0 -171
  153. package/docs/superpowers/specs/2026-06-20-run-index-row-normalization-design.md +0 -112
  154. package/docs/superpowers/specs/2026-06-20-stage-auto-integrate-teardown-design.md +0 -145
  155. package/docs/superpowers/specs/2026-06-21-okstra-container-local-user-test-design.md +0 -125
  156. package/docs/superpowers/specs/2026-06-21-release-handoff-local-checkout-design.md +0 -113
  157. package/docs/superpowers/specs/2026-06-23-implementation-stage-multiselect-chain-design.md +0 -138
  158. package/docs/superpowers/specs/2026-06-23-implementation-step-commit-granularity-design.md +0 -120
  159. package/docs/superpowers/specs/2026-06-24-cross-project-precondition-design.md +0 -129
  160. package/docs/superpowers/specs/2026-06-24-decision-drafts-render-gap-design.md +0 -185
  161. package/docs/superpowers/specs/2026-06-24-manual-user-test-section-design.md +0 -121
  162. package/docs/superpowers/specs/2026-06-24-okstra-container-build-rename-design.md +0 -110
@@ -13,11 +13,9 @@ const SKILLS_MANIFEST_REL = "installed-skills.json";
13
13
  const AGENTS_MANIFEST_REL = "installed-agents.json";
14
14
  const USER_HOME = homedir();
15
15
  const CLAUDE_HOME = join(USER_HOME, ".claude");
16
- const AGENT_HOME = join(USER_HOME, ".agent");
17
- const OMP_AGENT_HOME = join(USER_HOME, ".omp", "agent");
16
+ const AGENTS_HOME = join(USER_HOME, ".agents");
18
17
  const CLAUDE_SKILLS_DIR = join(CLAUDE_HOME, "skills");
19
- const AGENT_SKILLS_DIR = join(AGENT_HOME, "skills");
20
- const OMP_SKILLS_DIR = join(OMP_AGENT_HOME, "skills");
18
+ const AGENTS_SKILLS_DIR = join(AGENTS_HOME, "skills");
21
19
  const CLAUDE_AGENTS_DIR = join(CLAUDE_HOME, "agents");
22
20
 
23
21
  // Source template (relative to runtime root in copy mode, or repo root in link mode).
@@ -82,8 +80,7 @@ Effect (copy mode):
82
80
  ${"$HOME"}/.okstra/prompts <- runtime/prompts (lead contracts + coding-preflight pack)
83
81
  ${"$HOME"}/.okstra/templates/settings.local.json <- runtime/templates/reports/settings.template.json
84
82
  ${"$HOME"}/.claude/skills/<name> <- skills when ${"$HOME"}/.claude exists
85
- ${"$HOME"}/.agent/skills/<name> <- skills when ${"$HOME"}/.agent exists
86
- ${"$HOME"}/.omp/agent/skills/<name> <- skills fallback when Claude/Agent homes are absent
83
+ ${"$HOME"}/.agents/skills/<name> <- skills (created when needed)
87
84
  ${"$HOME"}/.claude/agents/<worker>.md <- worker agents when ${"$HOME"}/.claude exists
88
85
  ${"$HOME"}/.okstra/installed-runtimes.json <- install request/resolution manifest
89
86
  ${"$HOME"}/.okstra/installed-skills.json <- target-aware manifest of installed skills
@@ -96,8 +93,7 @@ Effect (link mode):
96
93
  ${"$HOME"}/.okstra/prompts -> <repo>/prompts
97
94
  ${"$HOME"}/.okstra/templates/settings.local.json -> <repo>/templates/reports/settings.template.json
98
95
  ${"$HOME"}/.claude/skills/<name> -> <repo>/skills/<name> when ${"$HOME"}/.claude exists
99
- ${"$HOME"}/.agent/skills/<name> -> <repo>/skills/<name> when ${"$HOME"}/.agent exists
100
- ${"$HOME"}/.omp/agent/skills/<name> -> <repo>/skills/<name> fallback
96
+ ${"$HOME"}/.agents/skills/<name> -> <repo>/skills/<name> (created when needed)
101
97
  ${"$HOME"}/.claude/agents/<worker>.md -> <repo>/agents/workers/<worker>.md when ${"$HOME"}/.claude exists
102
98
  ${"$HOME"}/.okstra/dev-link <- <repo> path stamp
103
99
  ${"$HOME"}/.okstra/version <- installed package version stamp
@@ -109,10 +105,10 @@ worker wrapper scripts without modifying the user's global settings.
109
105
 
110
106
  Worker agent definitions are installed into ${"$HOME"}/.claude/agents/ only
111
107
  when ${"$HOME"}/.claude exists, so Claude Code's subagent discovery can pick
112
- them up. Codex/OMP skill targets receive skill markdown only.
108
+ them up. Agent skill targets receive skill markdown only.
113
109
 
114
110
  Default auto runtime installation does not require host detection; it still
115
- installs shared runtime files and any agent-home skill targets it finds.
111
+ installs shared runtime files, the Agent skill target, and any Claude home it finds.
116
112
  `;
117
113
 
118
114
  const ENSURE_USAGE = `okstra ensure-installed — idempotent install check
@@ -401,16 +397,11 @@ async function installLinkMode(repoPath, paths, opts) {
401
397
 
402
398
  async function detectSkillTargets() {
403
399
  const targets = [];
404
- const [hasClaude, hasAgent] = await Promise.all([dirExists(CLAUDE_HOME), dirExists(AGENT_HOME)]);
400
+ const hasClaude = await dirExists(CLAUDE_HOME);
405
401
  if (hasClaude) {
406
402
  targets.push({ provider: "claude", home: CLAUDE_HOME, skillsDir: CLAUDE_SKILLS_DIR });
407
403
  }
408
- if (hasAgent) {
409
- targets.push({ provider: "agent", home: AGENT_HOME, skillsDir: AGENT_SKILLS_DIR });
410
- }
411
- if (targets.length === 0 && (await dirExists(OMP_AGENT_HOME))) {
412
- targets.push({ provider: "omp", home: OMP_AGENT_HOME, skillsDir: OMP_SKILLS_DIR });
413
- }
404
+ targets.push({ provider: "agent", home: AGENTS_HOME, skillsDir: AGENTS_SKILLS_DIR });
414
405
  return targets;
415
406
  }
416
407
 
@@ -428,7 +419,6 @@ function installedAssetOverrides(skillTargets, agentNames) {
428
419
  claudeSkills: providers.has("claude"),
429
420
  claudeAgents: agentNames.length > 0,
430
421
  codexSkills: providers.has("codex"),
431
- ompSkills: providers.has("omp"),
432
422
  skillTargets: Array.from(providers).sort(),
433
423
  };
434
424
  }
@@ -682,7 +672,7 @@ async function pruneObsoleteSkills(target, opts) {
682
672
 
683
673
  async function installSkillTargetsCopy(runtimeRoot, targets, opts) {
684
674
  if (targets.length === 0) {
685
- if (!opts.quiet) process.stdout.write(" skills: no Claude, Agent, or OMP agent home found — skipped\n");
675
+ if (!opts.quiet) process.stdout.write(" skills: no skill target found — skipped\n");
686
676
  return [];
687
677
  }
688
678
  return await Promise.all(targets.map((target) => installSkillsCopy(runtimeRoot, target, opts)));
@@ -690,7 +680,7 @@ async function installSkillTargetsCopy(runtimeRoot, targets, opts) {
690
680
 
691
681
  async function installSkillTargetsLink(repoAbs, targets, opts) {
692
682
  if (targets.length === 0) {
693
- if (!opts.quiet) process.stdout.write(" skills: no Claude, Agent, or OMP agent home found — skipped\n");
683
+ if (!opts.quiet) process.stdout.write(" skills: no skill target found — skipped\n");
694
684
  return [];
695
685
  }
696
686
  return await Promise.all(targets.map((target) => installSkillsLink(repoAbs, target, opts)));
@@ -40,16 +40,13 @@ const FALLBACK_AGENT_NAMES = [
40
40
 
41
41
  const USER_HOME = homedir();
42
42
  const CLAUDE_HOME = join(USER_HOME, ".claude");
43
- const AGENT_HOME = join(USER_HOME, ".agent");
44
- const OMP_AGENT_HOME = join(USER_HOME, ".omp", "agent");
43
+ const AGENTS_HOME = join(USER_HOME, ".agents");
45
44
  const CLAUDE_SKILLS_DIR = join(CLAUDE_HOME, "skills");
46
- const AGENT_SKILLS_DIR = join(AGENT_HOME, "skills");
47
- const OMP_SKILLS_DIR = join(OMP_AGENT_HOME, "skills");
45
+ const AGENTS_SKILLS_DIR = join(AGENTS_HOME, "skills");
48
46
  const CLAUDE_AGENTS_DIR = join(CLAUDE_HOME, "agents");
49
47
  const FALLBACK_SKILL_ROOTS = [
50
48
  CLAUDE_SKILLS_DIR,
51
- AGENT_SKILLS_DIR,
52
- OMP_SKILLS_DIR,
49
+ AGENTS_SKILLS_DIR,
53
50
  ];
54
51
  const SKILLS_MANIFEST_REL = "installed-skills.json";
55
52
  const AGENTS_MANIFEST_REL = "installed-agents.json";
@@ -63,8 +60,8 @@ Usage:
63
60
  installed-skills.json, installed-agents.json} AND
64
61
  every skill target recorded in
65
62
  installed-skills.json
66
- (~/.claude/skills, ~/.agent/skills, or
67
- ~/.omp/agent/skills). Claude worker agents are
63
+ (~/.claude/skills or ~/.agents/skills).
64
+ Claude worker agents are
68
65
  removed from ~/.claude/agents when installed.
69
66
  Missing manifests fall back to hard-coded
70
67
  Claude okstra-* / *-worker.md names.
@@ -75,7 +72,7 @@ Usage:
75
72
  (<PROJECT>/.claude/settings.local.json symlink)
76
73
  are NOT touched — remove them manually if needed.
77
74
  okstra uninstall --purge Remove the entire ~/.okstra directory AND
78
- okstra skills in Claude/Agent/OMP homes AND
75
+ okstra skills in Claude/Agent homes AND
79
76
  ~/.claude/agents/<*-worker.md> (DESTRUCTIVE).
80
77
  Requires -y or an interactive confirmation
81
78
  okstra uninstall --dry-run Print the plan without touching disk
@@ -139,7 +136,7 @@ export async function runUninstall(args) {
139
136
  if (opts.purge) {
140
137
  if (!opts.yes && !opts.dryRun) {
141
138
  const ok = await promptConfirm(
142
- `purge entire ${paths.home} AND okstra skills in Claude/Agent/OMP homes? user data will be lost.`,
139
+ `purge entire ${paths.home} AND okstra skills in Claude/Agent homes? user data will be lost.`,
143
140
  );
144
141
  if (!ok) {
145
142
  process.stdout.write("aborted.\n");