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.
Files changed (51) hide show
  1. package/docs/architecture.md +11 -2
  2. package/docs/cli.md +15 -0
  3. package/docs/for-ai/skills/okstra-setup.md +8 -0
  4. package/docs/project-structure-overview.md +6 -0
  5. package/docs/task-process/error-analysis.md +9 -4
  6. package/package.json +1 -1
  7. package/runtime/BUILD.json +2 -2
  8. package/runtime/agents/workers/report-writer-worker.md +4 -2
  9. package/runtime/prompts/coding-preflight/architectures/hexagonal.md +3 -3
  10. package/runtime/prompts/coding-preflight/overview.md +1 -1
  11. package/runtime/prompts/lead/adapters/claude-code.md +2 -2
  12. package/runtime/prompts/lead/context-loader.md +2 -2
  13. package/runtime/prompts/lead/convergence.md +5 -2
  14. package/runtime/prompts/lead/okstra-lead-contract.md +1 -1
  15. package/runtime/prompts/lead/plan-body-verification.md +20 -9
  16. package/runtime/prompts/lead/report-writer.md +4 -3
  17. package/runtime/prompts/profiles/_coding-conventions-preflight.md +1 -0
  18. package/runtime/prompts/profiles/_common-contract.md +3 -1
  19. package/runtime/prompts/profiles/_implementation-deliverable.md +3 -3
  20. package/runtime/prompts/profiles/_implementation-diff-review.md +1 -1
  21. package/runtime/prompts/profiles/_implementation-verifier.md +2 -1
  22. package/runtime/prompts/profiles/error-analysis.md +5 -1
  23. package/runtime/prompts/profiles/forbidden-actions.json +0 -1
  24. package/runtime/prompts/profiles/implementation-planning.md +7 -2
  25. package/runtime/prompts/profiles/requirements-discovery.md +7 -0
  26. package/runtime/python/okstra_ctl/analysis_packet.py +28 -3
  27. package/runtime/python/okstra_ctl/brief_frontmatter.py +56 -0
  28. package/runtime/python/okstra_ctl/clarification_items.py +99 -5
  29. package/runtime/python/okstra_ctl/convergence_engine.py +66 -15
  30. package/runtime/python/okstra_ctl/paths.py +34 -7
  31. package/runtime/python/okstra_ctl/phase_cleanup.py +235 -0
  32. package/runtime/python/okstra_ctl/plan_items.py +38 -0
  33. package/runtime/python/okstra_ctl/run.py +81 -33
  34. package/runtime/python/okstra_ctl/schema_excerpt.py +5 -3
  35. package/runtime/python/okstra_ctl/wizard.py +18 -44
  36. package/runtime/python/okstra_ctl/worker_heartbeat.py +15 -5
  37. package/runtime/python/okstra_ctl/workflow.py +1 -1
  38. package/runtime/python/okstra_project/resolver.py +25 -0
  39. package/runtime/schemas/final-report-v1.0.schema.json +162 -4
  40. package/runtime/skills/okstra-run/SKILL.md +3 -1
  41. package/runtime/skills/okstra-setup/SKILL.md +3 -0
  42. package/runtime/skills/okstra-setup/references/project-config.md +47 -0
  43. package/runtime/templates/reports/final-report.template.md +51 -0
  44. package/runtime/templates/reports/i18n/en.json +32 -3
  45. package/runtime/templates/reports/i18n/ko.json +32 -3
  46. package/runtime/templates/reports/implementation-input.template.md +1 -2
  47. package/runtime/templates/reports/task-brief.template.md +1 -1
  48. package/runtime/validators/validate-brief.py +5 -1
  49. package/runtime/validators/validate-run.py +430 -48
  50. package/src/cli-registry.mjs +10 -0
  51. package/src/commands/execute/phase-cleanup.mjs +38 -0
@@ -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
+ }