okstra 0.95.0 → 0.96.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/kr/architecture.md +16 -11
- package/docs/project-structure-overview.md +3 -0
- package/docs/superpowers/plans/2026-06-19-okstra-inspect-recap-facet.md +647 -0
- package/docs/superpowers/specs/2026-06-19-okstra-inspect-recap-facet-design.md +96 -0
- package/package.json +1 -1
- package/runtime/BUILD.json +2 -2
- package/runtime/prompts/wizard/prompts.ko.json +9 -15
- package/runtime/python/okstra_ctl/paths.py +6 -0
- package/runtime/python/okstra_ctl/recap.py +126 -0
- package/runtime/python/okstra_ctl/task_target.py +13 -2
- package/runtime/python/okstra_ctl/wizard.py +40 -81
- package/runtime/skills/okstra-inspect/SKILL.md +60 -1
- package/runtime/skills/okstra-run/SKILL.md +1 -1
- package/src/cli-registry.mjs +7 -0
- package/src/recap.mjs +27 -0
|
@@ -50,7 +50,7 @@ The wizard tells you *which UI to use* via `kind` (and the optional `multi` flag
|
|
|
50
50
|
- `kind: "done"` → input collection finished; move to Step 5.
|
|
51
51
|
- `kind: "aborted"` → the user picked 중단; the wizard is terminally cancelled. Tell the user on one short line that the run setup was aborted, delete the state file (`rm` with the literal path), and stop this skill — do NOT call `render-args` or `render-bundle` (the wizard rejects `render-args` on an aborted state).
|
|
52
52
|
|
|
53
|
-
The `
|
|
53
|
+
The final `confirm` step is a normal `pick` step with three options — `Proceed` / `Edit` / `중단`(abort) — and is rendered the same way (no special handling). `Edit` rewinds to any earlier step (including `base-ref`); `중단` terminally cancels the wizard. The branch/worktree decision the run will actually use (for `implementation`, the **stage worktree** — not the task-key directory) is folded into the Step 4 confirmation summary block as a `worktree` line, so there is no separate branch-confirm prompt.
|
|
54
54
|
|
|
55
55
|
Never invent additional questions. Never reorder. **Never drop, hide, or merge a `pick` / `pick_group` option** — render every `options[]` entry as its own selectable `AskUserQuestion` choice, including entries that carry a `(default)` / `(recommended)` suffix. Do NOT collapse a multi-option pick into a "recommended + 직접 입력 / Other" shortlist: the wizard's `options[]` array IS the complete, authoritative choice set. Example: the `executor` step always emits `claude` / `codex` / `antigravity` — show all three, never just `claude`. The run-prompt recommendation rule (1–2 추천 + 직접 입력) applies ONLY to prompts this skill authors itself (e.g. the conformance-waiver picker), never to wizard-provided `options[]`. Never use `AskUserQuestion` for `text` prompts — the wizard explicitly chose `text` to avoid the picker-Other re-render lag.
|
|
56
56
|
|
package/src/cli-registry.mjs
CHANGED
|
@@ -110,6 +110,13 @@ export const COMMAND_REGISTRY = [
|
|
|
110
110
|
category: "introspection",
|
|
111
111
|
summary: ["Aggregate okstra-run error logs into a task-level report"],
|
|
112
112
|
},
|
|
113
|
+
{
|
|
114
|
+
name: "recap",
|
|
115
|
+
module: "./recap.mjs",
|
|
116
|
+
export: "run",
|
|
117
|
+
category: "introspection",
|
|
118
|
+
summary: ["Assemble a task's run-to-run phase recap or append a recap log entry"],
|
|
119
|
+
},
|
|
113
120
|
{
|
|
114
121
|
name: "worktree-lookup",
|
|
115
122
|
module: "./worktree-lookup.mjs",
|
package/src/recap.mjs
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { runPythonModule } from "./_python-helper.mjs";
|
|
2
|
+
|
|
3
|
+
const USAGE = `okstra recap — assemble a task's run-to-run phase recap, or append a recap log entry
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
okstra recap assemble <task-root|task-key> [--project-root <dir>] [--cwd <dir>]
|
|
7
|
+
okstra recap record <task-root|task-key> --kind <summary|qa> --mode <artifact|code> \\
|
|
8
|
+
[--question <text>] --answer <text> [--citation <path:line> ...]
|
|
9
|
+
|
|
10
|
+
\`assemble\` is read-only and prints a JSON summary of phase transitions across runs.
|
|
11
|
+
\`record\` appends one line to <task-root>/recap/recap-log.jsonl; it never mutates
|
|
12
|
+
other task artifacts.
|
|
13
|
+
`;
|
|
14
|
+
|
|
15
|
+
export async function run(args) {
|
|
16
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
17
|
+
process.stdout.write(USAGE);
|
|
18
|
+
return 0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const result = await runPythonModule({
|
|
22
|
+
module: "okstra_ctl.recap",
|
|
23
|
+
args,
|
|
24
|
+
stdio: "inherit-stdout",
|
|
25
|
+
});
|
|
26
|
+
return result.code ?? 0;
|
|
27
|
+
}
|