okstra 0.34.0 → 0.36.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/README.kr.md +26 -16
- package/README.md +26 -16
- package/docs/kr/architecture.md +59 -45
- package/docs/kr/cli.md +61 -18
- package/docs/pr-template-usage.md +65 -0
- package/docs/project-structure-overview.md +358 -354
- package/docs/superpowers/plans/2026-05-12-ticket-id-in-reports.md +1 -1
- package/docs/superpowers/plans/2026-05-14-convergence-queue-pruning.md +1 -1
- package/docs/superpowers/plans/2026-05-17-dual-format-final-report.md +1 -1
- package/docs/superpowers/plans/2026-05-20-final-report-language.md +1501 -0
- package/docs/superpowers/plans/2026-05-20-implementation-planning-multi-stage.md +1267 -0
- package/docs/superpowers/plans/2026-05-20-okstra-run-prompt-sot-b1.md +1007 -0
- package/docs/superpowers/plans/2026-05-20-wizard-messages-json-sot.md +720 -0
- package/docs/superpowers/plans/2026-05-20-wizard-prompt-json-sot-a1.md +681 -0
- package/docs/superpowers/plans/2026-05-21-improvement-discovery-task-type.md +1691 -0
- package/docs/superpowers/specs/2026-05-20-final-report-language-design.md +383 -0
- package/docs/superpowers/specs/2026-05-20-implementation-planning-multi-stage-design.md +320 -0
- package/docs/superpowers/specs/2026-05-20-okstra-run-prompt-sot-design.md +299 -0
- package/docs/superpowers/specs/2026-05-21-improvement-discovery-task-type-design.md +335 -0
- package/docs/task-process/README.md +74 -0
- package/docs/task-process/common-flow.md +166 -0
- package/docs/task-process/error-analysis.md +101 -0
- package/docs/task-process/final-verification.md +167 -0
- package/docs/task-process/implementation-planning.md +128 -0
- package/docs/task-process/implementation.md +149 -0
- package/docs/task-process/release-handoff.md +206 -0
- package/docs/task-process/requirements-discovery.md +115 -0
- package/package.json +1 -1
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/SKILL.md +29 -13
- package/runtime/agents/workers/claude-worker.md +26 -0
- package/runtime/agents/workers/codex-worker.md +27 -1
- package/runtime/agents/workers/gemini-worker.md +27 -1
- package/runtime/agents/workers/report-writer-worker.md +8 -1
- package/runtime/bin/okstra-central.sh +6 -6
- package/runtime/bin/okstra-codex-exec.sh +49 -28
- package/runtime/bin/okstra-gemini-exec.sh +39 -21
- package/runtime/bin/okstra-render-final-report.py +13 -2
- package/runtime/bin/okstra-wrapper-status.py +155 -0
- package/runtime/bin/okstra.sh +2 -2
- package/runtime/prompts/profiles/_common-contract.md +11 -6
- package/runtime/prompts/profiles/error-analysis.md +3 -7
- package/runtime/prompts/profiles/implementation-planning.md +22 -21
- package/runtime/prompts/profiles/implementation.md +28 -11
- package/runtime/prompts/profiles/improvement-discovery.md +42 -0
- package/runtime/prompts/profiles/kr/_common-contract.md +92 -0
- package/runtime/prompts/profiles/kr/error-analysis.md +36 -0
- package/runtime/prompts/profiles/kr/final-verification.md +48 -0
- package/runtime/prompts/profiles/kr/implementation-planning.md +90 -0
- package/runtime/prompts/profiles/kr/implementation.md +144 -0
- package/runtime/prompts/profiles/kr/improvement-discovery.md +42 -0
- package/runtime/prompts/profiles/kr/release-handoff.md +104 -0
- package/runtime/prompts/profiles/kr/requirements-discovery.md +42 -0
- package/runtime/prompts/profiles/release-handoff.md +1 -1
- package/runtime/prompts/profiles/requirements-discovery.md +8 -12
- package/runtime/prompts/wizard/prompts.ko.json +230 -0
- package/runtime/python/lib/okstra/cli.sh +2 -49
- package/runtime/python/lib/okstra/globals.sh +21 -21
- package/runtime/python/lib/okstra/interactive.sh +7 -7
- package/runtime/python/okstra_ctl/clarification_items.py +3 -9
- package/runtime/python/okstra_ctl/consumers.py +53 -0
- package/runtime/python/okstra_ctl/final_report_schema.py +0 -7
- package/runtime/python/okstra_ctl/i18n.py +73 -0
- package/runtime/python/okstra_ctl/improvement_lenses.py +44 -0
- package/runtime/python/okstra_ctl/index.py +1 -1
- package/runtime/python/okstra_ctl/paths.py +23 -20
- package/runtime/python/okstra_ctl/render.py +147 -202
- package/runtime/python/okstra_ctl/render_final_report.py +53 -10
- package/runtime/python/okstra_ctl/run.py +292 -107
- package/runtime/python/okstra_ctl/run_context.py +22 -0
- package/runtime/python/okstra_ctl/seeding.py +186 -0
- package/runtime/python/okstra_ctl/wizard.py +348 -127
- package/runtime/python/okstra_ctl/workflow.py +21 -2
- package/runtime/python/okstra_ctl/worktree.py +54 -1
- package/runtime/python/okstra_project/resolver.py +4 -3
- package/runtime/python/okstra_token_usage/report.py +2 -2
- package/runtime/schemas/final-report-v1.0.schema.json +22 -16
- package/runtime/skills/okstra-brief/SKILL.md +124 -31
- package/runtime/skills/okstra-convergence/SKILL.md +2 -3
- package/runtime/skills/okstra-report-writer/SKILL.md +35 -15
- package/runtime/skills/okstra-run/SKILL.md +5 -4
- package/runtime/skills/okstra-schedule/SKILL.md +4 -4
- package/runtime/skills/okstra-setup/SKILL.md +27 -0
- package/runtime/skills/okstra-team-contract/SKILL.md +1 -1
- package/runtime/templates/okstra.CLAUDE.md +104 -0
- package/runtime/templates/reports/final-report.template.md +93 -98
- package/runtime/templates/reports/i18n/en.json +135 -0
- package/runtime/templates/reports/i18n/ko.json +135 -0
- package/runtime/templates/reports/implementation-planning-input.template.md +18 -0
- package/runtime/templates/reports/improvement-discovery-input.template.md +78 -0
- package/runtime/templates/reports/task-brief.template.md +2 -2
- package/runtime/validators/lib/fixtures.sh +30 -0
- package/runtime/validators/lib/runners.sh +1 -1
- package/runtime/validators/validate-implementation-plan-stages.py +211 -0
- package/runtime/validators/validate-run.py +121 -26
- package/runtime/validators/validate-workflow.sh +2 -2
- package/runtime/validators/validate_improvement_report.py +275 -0
- package/src/config.mjs +18 -0
- package/src/install.mjs +41 -14
- package/src/setup.mjs +133 -1
- package/src/uninstall.mjs +21 -1
|
@@ -87,7 +87,7 @@ def record_start(home: Path, *, project_id: str, project_root: str,
|
|
|
87
87
|
"leadModel": lead_model,
|
|
88
88
|
"validation": "not-run",
|
|
89
89
|
"finalReportRel": final_report_rel,
|
|
90
|
-
#
|
|
90
|
+
# FINAL_STATUS_PATH 의 카운터(RUN_STATUS_SEQ) 는 RUN_MANIFESTS_SEQ
|
|
91
91
|
# 와 별개로 advance 한다(render-only/실패 prep 은 manifest 만 증가).
|
|
92
92
|
# 따라서 status 파일을 추적할 때는 manifest seq 를 추정해 glob 으로
|
|
93
93
|
# 찾지 말고 run 시작 시점의 정식 경로를 row 에 박아 두고 사용한다.
|
|
@@ -4,8 +4,8 @@ Inputs: project root, identity (project-id/task-group/task-id), task-type,
|
|
|
4
4
|
workspace root, optional run-seq override.
|
|
5
5
|
|
|
6
6
|
Output: dict with every path value the bash render-context used to expose as
|
|
7
|
-
environment variables (TASK_ROOT, RUN_DIR, RUN_MANIFESTS_DIR,
|
|
8
|
-
|
|
7
|
+
environment variables (TASK_ROOT, RUN_DIR, RUN_MANIFESTS_DIR, RUN_MANIFEST_PATH,
|
|
8
|
+
FINAL_REPORT_PATH, ...). 호출자가 이 dict 를 그대로 인자로 사용하거나
|
|
9
9
|
`write_run_context()` 로 디스크에 박는다.
|
|
10
10
|
|
|
11
11
|
이 모듈은 read-only 한 path 계산만 담당한다. 디렉터리 생성, 파일 쓰기,
|
|
@@ -104,6 +104,7 @@ def compute_run_paths(
|
|
|
104
104
|
run_sessions = run_dir / "sessions"
|
|
105
105
|
run_logs = run_dir / "logs"
|
|
106
106
|
worker_results = run_dir / "worker-results"
|
|
107
|
+
run_carry = run_dir / "carry"
|
|
107
108
|
|
|
108
109
|
if run_seq_override is not None:
|
|
109
110
|
seq_int = int(run_seq_override)
|
|
@@ -158,7 +159,7 @@ def compute_run_paths(
|
|
|
158
159
|
"TASK_GROUP": task_group,
|
|
159
160
|
"TASK_ID": task_id,
|
|
160
161
|
"TASK_KEY": f"{project_id}:{task_group}:{task_id}",
|
|
161
|
-
"
|
|
162
|
+
"TASK_TYPE": task_type,
|
|
162
163
|
"TASK_GROUP_SEGMENT": task_group_segment,
|
|
163
164
|
"TASK_ID_SEGMENT": task_id_segment,
|
|
164
165
|
"TASK_TYPE_SEGMENT": task_type_segment,
|
|
@@ -166,12 +167,12 @@ def compute_run_paths(
|
|
|
166
167
|
"OKSTRA_TASKS_ROOT": str(tasks_root),
|
|
167
168
|
"OKSTRA_DISCOVERY_DIR": str(discovery_dir),
|
|
168
169
|
"TASK_ROOT": str(task_root),
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
170
|
+
"TASK_MANIFEST_PATH": str(task_manifest),
|
|
171
|
+
"TASK_INDEX_PATH": str(task_index),
|
|
172
|
+
"INSTRUCTION_SET_PATH": str(instruction_set),
|
|
172
173
|
"RUNS_DIR": str(runs_dir),
|
|
173
174
|
"HISTORY_DIR": str(history_dir),
|
|
174
|
-
"
|
|
175
|
+
"TIMELINE_PATH": str(timeline_file),
|
|
175
176
|
"RUN_DIR": str(run_dir),
|
|
176
177
|
"RUN_MANIFESTS_DIR": str(run_manifests),
|
|
177
178
|
"RUN_STATE_DIR": str(run_state),
|
|
@@ -180,31 +181,32 @@ def compute_run_paths(
|
|
|
180
181
|
"RUN_STATUS_DIR": str(run_status),
|
|
181
182
|
"RUN_SESSIONS_DIR": str(run_sessions),
|
|
182
183
|
"RUN_LOGS_DIR": str(run_logs),
|
|
183
|
-
"
|
|
184
|
-
"
|
|
184
|
+
"WORKER_RESULTS_PATH": str(worker_results),
|
|
185
|
+
"RUN_CARRY_PATH": str(run_carry),
|
|
186
|
+
"RUN_MANIFEST_PATH": str(run_manifest_file),
|
|
185
187
|
"RUN_PROMPT_SNAPSHOT_FILE": str(run_prompt_snapshot),
|
|
186
188
|
"CLAUDE_WORKER_PROMPT_FILE": str(claude_worker_prompt),
|
|
187
189
|
"CODEX_WORKER_PROMPT_FILE": str(codex_worker_prompt),
|
|
188
190
|
"GEMINI_WORKER_PROMPT_FILE": str(gemini_worker_prompt),
|
|
189
191
|
"REPORT_WRITER_WORKER_PROMPT_FILE": str(report_writer_worker_prompt),
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"
|
|
192
|
+
"FINAL_REPORT_PATH": str(final_report),
|
|
193
|
+
"FINAL_STATUS_PATH": str(final_status),
|
|
194
|
+
"TEAM_STATE_PATH": str(team_state),
|
|
195
|
+
"FINAL_REPORT_TEMPLATE_PATH": str(final_report_template),
|
|
194
196
|
"REFERENCE_EXPECTATIONS_FILE": str(reference_expectations),
|
|
195
|
-
"
|
|
197
|
+
"CLAUDE_RESUME_COMMAND_PATH": str(claude_resume_command),
|
|
196
198
|
"OKSTRA_LATEST_TASK_FILE": str(latest_task_file),
|
|
197
199
|
"OKSTRA_TASK_CATALOG_FILE": str(task_catalog_file),
|
|
198
200
|
"CLAUDE_WORKER_RESULT_FILE": str(claude_worker_result),
|
|
199
201
|
"CODEX_WORKER_RESULT_FILE": str(codex_worker_result),
|
|
200
202
|
"GEMINI_WORKER_RESULT_FILE": str(gemini_worker_result),
|
|
201
203
|
"REPORT_WRITER_WORKER_RESULT_FILE": str(report_writer_worker_result),
|
|
202
|
-
"
|
|
203
|
-
"
|
|
204
|
-
"
|
|
205
|
-
"
|
|
206
|
-
"
|
|
207
|
-
"
|
|
204
|
+
"RUN_ERRORS_LOG_PATH": str(run_errors_log),
|
|
205
|
+
"CLAUDE_WORKER_ERRORS_SIDECAR_PATH": str(claude_worker_errors_sidecar),
|
|
206
|
+
"CODEX_WORKER_ERRORS_SIDECAR_PATH": str(codex_worker_errors_sidecar),
|
|
207
|
+
"GEMINI_WORKER_ERRORS_SIDECAR_PATH": str(gemini_worker_errors_sidecar),
|
|
208
|
+
"REPORT_WRITER_WORKER_ERRORS_SIDECAR_PATH": str(report_writer_worker_errors_sidecar),
|
|
209
|
+
"RUN_VALIDATOR_PATH": str(run_validator_script),
|
|
208
210
|
"RUN_MANIFEST_FILENAME": run_manifest_file.name,
|
|
209
211
|
"RUN_PROMPT_SNAPSHOT_FILENAME": run_prompt_snapshot.name,
|
|
210
212
|
"FINAL_REPORT_FILENAME": final_report.name,
|
|
@@ -248,6 +250,7 @@ def compute_run_paths(
|
|
|
248
250
|
("FINAL_STATUS_RELATIVE_PATH", final_status),
|
|
249
251
|
("TEAM_STATE_RELATIVE_PATH", team_state),
|
|
250
252
|
("WORKER_RESULTS_RELATIVE_PATH", worker_results),
|
|
253
|
+
("RUN_CARRY_RELATIVE_PATH", run_carry),
|
|
251
254
|
("FINAL_REPORT_TEMPLATE_RELATIVE_PATH", final_report_template),
|
|
252
255
|
("REFERENCE_EXPECTATIONS_RELATIVE_PATH", reference_expectations),
|
|
253
256
|
("CLAUDE_RESUME_COMMAND_RELATIVE_PATH", claude_resume_command),
|