okstra 0.141.3 → 0.143.0
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/architecture.md +11 -2
- package/docs/cli.md +15 -0
- package/docs/for-ai/skills/okstra-setup.md +8 -0
- package/docs/project-structure-overview.md +6 -0
- package/docs/task-process/error-analysis.md +9 -4
- package/package.json +1 -1
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/workers/report-writer-worker.md +4 -2
- package/runtime/prompts/coding-preflight/architectures/hexagonal.md +3 -3
- package/runtime/prompts/coding-preflight/overview.md +1 -1
- package/runtime/prompts/lead/adapters/claude-code.md +2 -2
- package/runtime/prompts/lead/context-loader.md +2 -2
- package/runtime/prompts/lead/convergence.md +5 -2
- package/runtime/prompts/lead/okstra-lead-contract.md +1 -1
- package/runtime/prompts/lead/plan-body-verification.md +20 -9
- package/runtime/prompts/lead/report-writer.md +4 -3
- package/runtime/prompts/profiles/_coding-conventions-preflight.md +1 -0
- package/runtime/prompts/profiles/_common-contract.md +3 -1
- package/runtime/prompts/profiles/_implementation-deliverable.md +3 -3
- package/runtime/prompts/profiles/_implementation-diff-review.md +1 -1
- package/runtime/prompts/profiles/_implementation-verifier.md +2 -1
- package/runtime/prompts/profiles/error-analysis.md +5 -1
- package/runtime/prompts/profiles/forbidden-actions.json +0 -1
- package/runtime/prompts/profiles/implementation-planning.md +7 -2
- package/runtime/prompts/profiles/requirements-discovery.md +7 -0
- package/runtime/python/okstra_ctl/analysis_packet.py +28 -3
- package/runtime/python/okstra_ctl/brief_frontmatter.py +56 -0
- package/runtime/python/okstra_ctl/clarification_items.py +99 -5
- package/runtime/python/okstra_ctl/convergence_engine.py +66 -15
- package/runtime/python/okstra_ctl/paths.py +34 -7
- package/runtime/python/okstra_ctl/phase_cleanup.py +235 -0
- package/runtime/python/okstra_ctl/plan_items.py +38 -0
- package/runtime/python/okstra_ctl/run.py +81 -33
- package/runtime/python/okstra_ctl/schema_excerpt.py +5 -3
- package/runtime/python/okstra_ctl/wizard.py +18 -44
- package/runtime/python/okstra_ctl/worker_heartbeat.py +15 -5
- package/runtime/python/okstra_ctl/workflow.py +1 -1
- package/runtime/python/okstra_project/resolver.py +25 -0
- package/runtime/schemas/final-report-v1.0.schema.json +162 -4
- package/runtime/skills/okstra-run/SKILL.md +3 -1
- package/runtime/skills/okstra-setup/SKILL.md +3 -0
- package/runtime/skills/okstra-setup/references/project-config.md +47 -0
- package/runtime/templates/reports/final-report.template.md +51 -0
- package/runtime/templates/reports/i18n/en.json +32 -3
- package/runtime/templates/reports/i18n/ko.json +32 -3
- package/runtime/templates/reports/implementation-input.template.md +1 -2
- package/runtime/templates/reports/task-brief.template.md +1 -1
- package/runtime/validators/validate-brief.py +5 -1
- package/runtime/validators/validate-run.py +430 -48
- package/src/cli-registry.mjs +10 -0
- package/src/commands/execute/phase-cleanup.mjs +38 -0
package/src/cli-registry.mjs
CHANGED
|
@@ -101,6 +101,16 @@ export const COMMAND_REGISTRY = [
|
|
|
101
101
|
category: "admin",
|
|
102
102
|
summary: ["stage 들을 task 브랜치에 통합 머지하고 stage worktree 를 정리"],
|
|
103
103
|
},
|
|
104
|
+
{
|
|
105
|
+
name: "phase-cleanup",
|
|
106
|
+
module: "./commands/execute/phase-cleanup.mjs",
|
|
107
|
+
export: "run",
|
|
108
|
+
category: "admin",
|
|
109
|
+
summary: [
|
|
110
|
+
"Reclaim the prior phase/batch's completed panes and list dismissible",
|
|
111
|
+
"teammates for the lead to shut down (tmux-aware)",
|
|
112
|
+
],
|
|
113
|
+
},
|
|
104
114
|
{
|
|
105
115
|
name: "paths",
|
|
106
116
|
module: "./commands/lifecycle/paths.mjs",
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { runPythonModule } from "../../lib/python-helper.mjs";
|
|
2
|
+
|
|
3
|
+
const USAGE = `okstra phase-cleanup — reclaim the prior phase/batch's completed panes and teammates
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
okstra phase-cleanup --project-root <dir> [--task-key <k>] [--run-dir <dir>]
|
|
7
|
+
[--fallback-team <label>] [--json]
|
|
8
|
+
|
|
9
|
+
--task-key project-id:task-group:task-id — finds the newest completed run
|
|
10
|
+
across phases, including staged (implementation / final-
|
|
11
|
+
verification) stage-N runs.
|
|
12
|
+
--run-dir explicit prior run dir (wins over --task-key).
|
|
13
|
+
--fallback-team
|
|
14
|
+
the live team label (session-<lead-session-prefix>) so teammate
|
|
15
|
+
reconcile still finds the roster after a session-id re-issue
|
|
16
|
+
(resume/compaction); omit and it resolves the current live
|
|
17
|
+
session only.
|
|
18
|
+
|
|
19
|
+
Reclaims only completed tmux panes (lead pane and in-flight workers are preserved),
|
|
20
|
+
and prints the dismissible-teammate names for the lead to shut down. In a non-tmux
|
|
21
|
+
session no panes exist, so it skips pane reclaim and only reconciles teammates.
|
|
22
|
+
A cleanup failure never blocks the next phase (the worker returns 0); a malformed
|
|
23
|
+
invocation still exits non-zero.
|
|
24
|
+
`;
|
|
25
|
+
|
|
26
|
+
export async function run(args) {
|
|
27
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
28
|
+
process.stdout.write(USAGE);
|
|
29
|
+
return 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const result = await runPythonModule({
|
|
33
|
+
module: "okstra_ctl.phase_cleanup",
|
|
34
|
+
args,
|
|
35
|
+
stdio: "inherit-stdout",
|
|
36
|
+
});
|
|
37
|
+
return result.code;
|
|
38
|
+
}
|