okstra 0.202.0 → 0.204.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.md +3 -3
- package/dist/cli-registry.mjs +7 -7
- package/dist/cli-registry.mjs.map +1 -1
- package/dist/commands/lifecycle/install.mjs +50 -124
- package/dist/commands/lifecycle/install.mjs.map +1 -1
- package/dist/commands/memory/memory.mjs +41 -8
- package/dist/commands/memory/memory.mjs.map +1 -1
- package/dist/lib/install-assets.mjs +3 -0
- package/dist/lib/install-assets.mjs.map +1 -1
- package/dist/lib/runtime-manifest.mjs +2 -1
- package/dist/lib/runtime-manifest.mjs.map +1 -1
- package/dist/lib/types.d.mts +2 -1
- package/docs/architecture/storage-model.md +14 -11
- package/docs/architecture.md +25 -19
- package/docs/cli.md +15 -12
- package/docs/contributor-change-matrix.md +3 -2
- package/docs/performance-improvement-plan-v2.md +2 -3
- package/docs/project-structure-overview.md +35 -9
- package/docs/task-process/README.md +1 -1
- package/docs/task-process/common-flow.md +1 -1
- package/docs/task-process/final-verification.md +3 -1
- package/docs/task-process/implementation.md +1 -1
- package/docs/task-process/release-handoff.md +36 -39
- package/package.json +1 -2
- package/runtime/BUILD.json +2 -2
- package/runtime/agents/common.json +28 -0
- package/runtime/agents/operations/code-review.json +6 -0
- package/runtime/agents/operations/report-translation.json +6 -0
- package/runtime/agents/operations/schedule-verification.json +6 -0
- package/runtime/agents/roles/analyser.json +18 -0
- package/runtime/agents/roles/critic.json +18 -0
- package/runtime/agents/roles/designer.json +18 -0
- package/runtime/agents/roles/implementer.json +20 -0
- package/runtime/agents/roles/leader.json +20 -0
- package/runtime/agents/roles/planner.json +18 -0
- package/runtime/agents/roles/report-writer.json +19 -0
- package/runtime/agents/roles/translator.json +19 -0
- package/runtime/agents/roles/verifier.json +18 -0
- package/runtime/bin/lib/okstra/usage.sh +5 -5
- package/runtime/prompts/duties/acceptance-critic.json +32 -0
- package/runtime/prompts/duties/acceptance-verifier.json +32 -0
- package/runtime/prompts/duties/analysis-worker.json +32 -0
- package/runtime/prompts/duties/code-reviewer.json +32 -0
- package/runtime/prompts/duties/diagnosis-worker.json +32 -0
- package/runtime/prompts/duties/direction-selection-worker.json +32 -0
- package/runtime/prompts/duties/discovery-worker.json +32 -0
- package/runtime/prompts/duties/implementation-executor.json +32 -0
- package/runtime/prompts/duties/implementation-verifier.json +32 -0
- package/runtime/prompts/duties/lead.json +32 -0
- package/runtime/prompts/duties/planning-worker.json +36 -0
- package/runtime/prompts/duties/report-writer.json +32 -0
- package/runtime/prompts/duties/reverification-worker.json +32 -0
- package/runtime/prompts/duties/schedule-verifier.json +32 -0
- package/runtime/prompts/duties/scope-critic.json +32 -0
- package/runtime/prompts/duties/technical-verification-worker.json +32 -0
- package/runtime/prompts/duties/translator.json +32 -0
- package/runtime/prompts/launch.template.md +2 -1
- package/runtime/prompts/lead/adapters/cmux.md +1 -1
- package/runtime/prompts/lead/convergence.md +4 -4
- package/runtime/prompts/lead/okstra-lead-contract.md +113 -4
- package/runtime/prompts/lead/plan-body-verification.md +6 -6
- package/runtime/prompts/lead/report-writer.md +3 -3
- package/runtime/prompts/profiles/_common-contract.md +2 -2
- package/runtime/prompts/profiles/_implementation-executor.md +4 -1
- package/runtime/prompts/profiles/_implementation-verifier.md +2 -2
- package/runtime/prompts/profiles/change-impact-analysis.json +31 -0
- package/runtime/prompts/profiles/change-impact-analysis.md +0 -20
- package/runtime/prompts/profiles/error-analysis.json +39 -0
- package/runtime/prompts/profiles/error-analysis.md +0 -25
- package/runtime/prompts/profiles/feature-analysis.json +31 -0
- package/runtime/prompts/profiles/feature-analysis.md +0 -20
- package/runtime/prompts/profiles/final-verification.json +30 -0
- package/runtime/prompts/profiles/final-verification.md +3 -22
- package/runtime/prompts/profiles/forbidden-actions.json +4 -3
- package/runtime/prompts/profiles/implementation-option-selection.json +31 -0
- package/runtime/prompts/profiles/implementation-option-selection.md +0 -20
- package/runtime/prompts/profiles/implementation-planning.json +40 -0
- package/runtime/prompts/profiles/implementation-planning.md +4 -29
- package/runtime/prompts/profiles/implementation.json +30 -0
- package/runtime/prompts/profiles/implementation.md +1 -20
- package/runtime/prompts/profiles/improvement-discovery.json +31 -0
- package/runtime/prompts/profiles/improvement-discovery.md +0 -20
- package/runtime/prompts/profiles/project-analysis.json +31 -0
- package/runtime/prompts/profiles/project-analysis.md +0 -20
- package/runtime/prompts/profiles/release-handoff.json +5 -0
- package/runtime/prompts/profiles/release-handoff.md +71 -73
- package/runtime/prompts/profiles/requirements-discovery.json +39 -0
- package/runtime/prompts/profiles/requirements-discovery.md +0 -25
- package/runtime/prompts/profiles/technical-verification.json +39 -0
- package/runtime/prompts/profiles/technical-verification.md +0 -25
- package/runtime/prompts/wizard/prompts.ko.json +12 -17
- package/runtime/python/okstra_ctl/adapters/hosts/antigravity/relay.md +1 -0
- package/runtime/python/okstra_ctl/adapters/hosts/claude-code/adapter.py +3 -0
- package/runtime/python/okstra_ctl/adapters/hosts/claude-code/manifest.json +1 -1
- package/runtime/python/okstra_ctl/adapters/hosts/claude-code/relay.md +4 -3
- package/runtime/python/okstra_ctl/adapters/hosts/claude-code/worker-session.md +108 -0
- package/runtime/python/okstra_ctl/adapters/hosts/codex/relay.md +1 -0
- package/runtime/python/okstra_ctl/adapters/hosts/grok/relay.md +2 -0
- package/runtime/python/okstra_ctl/adapters/hosts/kimi/relay.md +2 -0
- package/runtime/python/okstra_ctl/adapters/providers/antigravity/adapter.py +8 -1
- package/runtime/python/okstra_ctl/adapters/providers/claude/adapter.py +8 -0
- package/runtime/python/okstra_ctl/adapters/providers/codex/adapter.py +23 -6
- package/runtime/python/okstra_ctl/adapters/providers/grok/adapter.py +6 -2
- package/runtime/python/okstra_ctl/agent/invocation.py +168 -113
- package/runtime/python/okstra_ctl/agent/prompt_cli/cli.py +120 -0
- package/runtime/python/okstra_ctl/agent/prompt_cli/materialize.py +107 -2
- package/runtime/python/okstra_ctl/agent/prompt_cli/run_identity.py +0 -49
- package/runtime/python/okstra_ctl/analysis_packet.py +4 -1
- package/runtime/python/okstra_ctl/application/open_worker.py +6 -1
- package/runtime/python/okstra_ctl/assignment_resolver.py +16 -5
- package/runtime/python/okstra_ctl/cmux.py +69 -20
- package/runtime/python/okstra_ctl/code_review_target.py +16 -8
- package/runtime/python/okstra_ctl/conformance.py +43 -0
- package/runtime/python/okstra_ctl/consumers.py +6 -3
- package/runtime/python/okstra_ctl/container.py +31 -8
- package/runtime/python/okstra_ctl/context_cost.py +11 -15
- package/runtime/python/okstra_ctl/contract_refreeze.py +156 -0
- package/runtime/python/okstra_ctl/convergence_provenance.py +7 -1
- package/runtime/python/okstra_ctl/design_prep.py +34 -1
- package/runtime/python/okstra_ctl/dispatch_core.py +53 -27
- package/runtime/python/okstra_ctl/domain/host.py +5 -0
- package/runtime/python/okstra_ctl/domain/worker_runtime.py +10 -0
- package/runtime/python/okstra_ctl/error_report.py +4 -3
- package/runtime/python/okstra_ctl/execution_manifest.py +71 -18
- package/runtime/python/okstra_ctl/handoff.py +167 -277
- package/runtime/python/okstra_ctl/implementation_stage.py +9 -0
- package/runtime/python/okstra_ctl/initial_prompt_materialization.py +113 -0
- package/runtime/python/okstra_ctl/lead_progress.py +1 -1
- package/runtime/python/okstra_ctl/legacy_model_selection.py +2 -2
- package/runtime/python/okstra_ctl/manager_cli.py +92 -4
- package/runtime/python/okstra_ctl/manager_launch.py +1 -1
- package/runtime/python/okstra_ctl/manager_paths.py +14 -3
- package/runtime/python/okstra_ctl/manager_store.py +210 -3
- package/runtime/python/okstra_ctl/manager_sync.py +4 -1
- package/runtime/python/okstra_ctl/manager_view.py +2 -1
- package/runtime/python/okstra_ctl/model_discovery.py +30 -0
- package/runtime/python/okstra_ctl/model_io/lines.py +14 -1
- package/runtime/python/okstra_ctl/model_io/renderers.py +4 -3
- package/runtime/python/okstra_ctl/models.py +1 -1
- package/runtime/python/okstra_ctl/next_phase.py +16 -6
- package/runtime/python/okstra_ctl/operation_invocation.py +86 -0
- package/runtime/python/okstra_ctl/option_comparison.py +168 -0
- package/runtime/python/okstra_ctl/path_hints.py +9 -0
- package/runtime/python/okstra_ctl/paths.py +3 -0
- package/runtime/python/okstra_ctl/profile_show.py +42 -1
- package/runtime/python/okstra_ctl/registry/host_discovery.py +20 -12
- package/runtime/python/okstra_ctl/registry/host_registry.py +11 -0
- package/runtime/python/okstra_ctl/render.py +50 -0
- package/runtime/python/okstra_ctl/report_contract.py +1 -1
- package/runtime/python/okstra_ctl/report_html/view_models/release_handoff.py +21 -3
- package/runtime/python/okstra_ctl/report_synthesis_packet.py +177 -17
- package/runtime/python/okstra_ctl/report_translation.py +2 -1
- package/runtime/python/okstra_ctl/report_translation_dispatch.py +69 -9
- package/runtime/python/okstra_ctl/role_requirements.py +142 -129
- package/runtime/python/okstra_ctl/rollup.py +3 -1
- package/runtime/python/okstra_ctl/run.py +76 -29
- package/runtime/python/okstra_ctl/schedule_semantics.py +17 -6
- package/runtime/python/okstra_ctl/stage_fix_carry.py +23 -4
- package/runtime/python/okstra_ctl/stage_integrate.py +178 -18
- package/runtime/python/okstra_ctl/stage_map.py +16 -2
- package/runtime/python/okstra_ctl/stage_targets.py +209 -43
- package/runtime/python/okstra_ctl/team.py +22 -13
- package/runtime/python/okstra_ctl/time_report.py +2 -1
- package/runtime/python/okstra_ctl/usage_report.py +3 -1
- package/runtime/python/okstra_ctl/wizard/confirmation.py +3 -9
- package/runtime/python/okstra_ctl/wizard/ids.py +1 -1
- package/runtime/python/okstra_ctl/wizard/registry.py +1 -1
- package/runtime/python/okstra_ctl/wizard/state.py +3 -5
- package/runtime/python/okstra_ctl/wizard/steps_plan.py +3 -23
- package/runtime/python/okstra_ctl/worker_prompt_contract.py +5 -1
- package/runtime/python/okstra_ctl/worker_prompt_headers.py +35 -7
- package/runtime/python/okstra_ctl/worker_prompt_policy.py +66 -48
- package/runtime/python/okstra_ctl/workflow.py +1 -1
- package/runtime/python/okstra_ctl/worktree/__init__.py +3 -1
- package/runtime/python/okstra_ctl/worktree/naming.py +9 -0
- package/runtime/python/okstra_ctl/worktree_registry.py +38 -9
- package/runtime/python/okstra_token_usage/pricing.py +6 -4
- package/runtime/schemas/agent-common-v1.schema.json +34 -0
- package/runtime/schemas/agent-duty-v1.schema.json +38 -0
- package/runtime/schemas/agent-operation-v1.schema.json +11 -0
- package/runtime/schemas/agent-profile-v1.schema.json +46 -0
- package/runtime/schemas/agent-role-v1.schema.json +29 -0
- package/runtime/schemas/final-report-v2.0.schema.json +118 -97
- package/runtime/schemas/final-report-v3.0.schema.json +118 -97
- package/runtime/skills/okstra-brief-gen/SKILL.md +84 -4
- package/runtime/skills/okstra-chat/SKILL.md +2 -2
- package/runtime/skills/okstra-code-review/SKILL.md +23 -9
- package/runtime/skills/okstra-container-build/SKILL.md +10 -10
- package/runtime/skills/okstra-inspect/SKILL.md +1 -1
- package/runtime/skills/okstra-inspect/facets/cost.md +1 -1
- package/runtime/skills/okstra-inspect/facets/error-zip.md +9 -9
- package/runtime/skills/okstra-inspect/facets/errors.md +16 -16
- package/runtime/skills/okstra-inspect/facets/logs.md +7 -7
- package/runtime/skills/okstra-inspect/facets/recap.md +2 -2
- package/runtime/skills/okstra-inspect/facets/report.md +1 -1
- package/runtime/skills/okstra-inspect/facets/status.md +4 -3
- package/runtime/skills/okstra-inspect/facets/time.md +11 -10
- package/runtime/skills/okstra-manager/SKILL.md +18 -2
- package/runtime/skills/okstra-pr-gen/SKILL.md +6 -5
- package/runtime/skills/okstra-rollup/SKILL.md +5 -5
- package/runtime/skills/okstra-run/SKILL.md +31 -12
- package/runtime/skills/okstra-schedule-gen/SKILL.md +19 -14
- package/runtime/skills/okstra-setup/SKILL.md +12 -10
- package/runtime/skills/okstra-setup/references/project-config.md +7 -6
- package/runtime/skills/okstra-usage/SKILL.md +1 -1
- package/runtime/skills/okstra-user-response/SKILL.md +1 -1
- package/runtime/templates/manager/view.template.html +1 -0
- package/runtime/templates/report-writer-prompt-preamble.md +8 -0
- package/runtime/templates/reports/brief.template.md +14 -4
- package/runtime/templates/reports/html/i18n/en.json +5 -4
- package/runtime/templates/reports/html/i18n/ko.json +5 -4
- package/runtime/templates/reports/html/tasks/release-handoff.template.html +8 -5
- package/runtime/templates/reports/i18n/en.json +1 -1
- package/runtime/templates/reports/md/tasks/release-handoff.template.md +1 -1
- package/runtime/templates/reports/release-handoff-input.template.md +6 -4
- package/runtime/templates/translator-prompt-preamble.md +36 -0
- package/runtime/validators/checks/validate-assets-01.py +7 -8
- package/runtime/validators/validate-brief.py +70 -0
- package/runtime/validators/validate-implementation-plan-stages.py +2 -1
- package/runtime/validators/validate-run.py +59 -9
- package/runtime/validators/validate-schedule.py +9 -0
- package/docs/for-ai/README.md +0 -68
- package/docs/for-ai/skills/okstra-brief-gen.md +0 -262
- package/docs/for-ai/skills/okstra-chat.md +0 -34
- package/docs/for-ai/skills/okstra-code-review.md +0 -57
- package/docs/for-ai/skills/okstra-container-build.md +0 -129
- package/docs/for-ai/skills/okstra-inspect.md +0 -262
- package/docs/for-ai/skills/okstra-manager.md +0 -86
- package/docs/for-ai/skills/okstra-memory.md +0 -126
- package/docs/for-ai/skills/okstra-pr-gen.md +0 -49
- package/docs/for-ai/skills/okstra-rollup.md +0 -114
- package/docs/for-ai/skills/okstra-run.md +0 -250
- package/docs/for-ai/skills/okstra-schedule-gen.md +0 -240
- package/docs/for-ai/skills/okstra-setup.md +0 -167
- package/docs/for-ai/skills/okstra-usage.md +0 -29
- package/docs/for-ai/skills/okstra-user-response.md +0 -72
- package/runtime/agents/workers/claude-worker.md +0 -128
- package/runtime/agents/workers/report-writer-worker.md +0 -37
- package/runtime/agents/workers/translator-worker.md +0 -63
- package/runtime/prompts/duties/acceptance-critic.md +0 -44
- package/runtime/prompts/duties/acceptance-verifier.md +0 -44
- package/runtime/prompts/duties/analysis-worker.md +0 -44
- package/runtime/prompts/duties/code-reviewer.md +0 -44
- package/runtime/prompts/duties/common.md +0 -39
- package/runtime/prompts/duties/diagnosis-worker.md +0 -44
- package/runtime/prompts/duties/direction-selection-worker.md +0 -44
- package/runtime/prompts/duties/discovery-worker.md +0 -44
- package/runtime/prompts/duties/implementation-executor.md +0 -44
- package/runtime/prompts/duties/implementation-verifier.md +0 -44
- package/runtime/prompts/duties/lead.md +0 -44
- package/runtime/prompts/duties/planning-worker.md +0 -52
- package/runtime/prompts/duties/report-writer.md +0 -44
- package/runtime/prompts/duties/reverification-worker.md +0 -44
- package/runtime/prompts/duties/schedule-verifier.md +0 -44
- package/runtime/prompts/duties/scope-critic.md +0 -44
- package/runtime/prompts/duties/technical-verification-worker.md +0 -44
- package/runtime/prompts/duties/translator.md +0 -44
- package/runtime/python/okstra_ctl/pane_title.py +0 -154
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: planning-worker
|
|
3
|
-
version: 1
|
|
4
|
-
kind: role
|
|
5
|
-
appliesTo: planning-worker
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Planning Worker Duty Contract
|
|
9
|
-
|
|
10
|
-
## Responsibility
|
|
11
|
-
|
|
12
|
-
Produce an executable implementation plan without writing the implementation.
|
|
13
|
-
|
|
14
|
-
### Selected-direction responsibility
|
|
15
|
-
|
|
16
|
-
When `selected-direction.json` is present, read it and the requirements ledger (the brief's `EB-` / `PB-` / `EO-` end-state sections, carried in the analysis packet's `## Task-Specific Brief Extract`) first. Preserve the selected direction's core mechanism, architecture boundaries, user constraints, and planning invariants. Concretize only its files, interfaces, stages, validation, and rollback. Link every file and stage back to original requirements, and link every original requirement forward to its files, stages, and checks. If current code evidence requires changing the direction, return `direction-invalidated` with evidence and stop. Direction selection remains upstream of this branch.
|
|
17
|
-
|
|
18
|
-
### Legacy candidate-comparison compatibility
|
|
19
|
-
|
|
20
|
-
For a legacy rerun without `selected-direction.json`, retain Option Candidates, trade-offs, the Recommended Option, and `P-Opt-*` verification semantics. Only this compatibility branch compares alternatives or chooses a recommendation.
|
|
21
|
-
|
|
22
|
-
## Required conduct
|
|
23
|
-
|
|
24
|
-
Read the current state of the code the work touches before planning. Split work into stages along real dependencies with each stage's validation signal and rollback. Connect every requirement to the stage that satisfies it. In the selected-direction branch, verify direction preservation before adding plan detail. In the legacy branch, compare options on current-code evidence.
|
|
25
|
-
|
|
26
|
-
## Decision principles
|
|
27
|
-
|
|
28
|
-
Plan for the requirement in front of you: an abstraction, parameter, or configuration knob no stated requirement calls for is complexity the plan pays for and nobody bought. A behavior two implementations already serve is the opposite case — a present fact, not a forecast — and belongs behind one interface rather than a second parallel path. Prefer the shape that fits the project's existing architecture over a novel one, and stage for a deliverable increment rather than for a technical layer.
|
|
29
|
-
|
|
30
|
-
## Authority and boundaries
|
|
31
|
-
|
|
32
|
-
Plan only; project source stays untouched until an approved plan starts a separate implementation run. The plan does not approve itself — approval is the user's, and this role may only leave it unclaimed. Decide what the code or the user's own instruction already answers; escalate only what a person must settle.
|
|
33
|
-
|
|
34
|
-
## Evidence standard
|
|
35
|
-
|
|
36
|
-
Every cited path, symbol, and command must exist as written and be executable in the tree it names, and each option's cost claim must rest on the current code rather than on an estimate of it. A stage whose validation cannot be observed is not planned, only described.
|
|
37
|
-
|
|
38
|
-
## Collaboration contract
|
|
39
|
-
|
|
40
|
-
Draft independently of the other planners. Leave contested plan details to convergence and the lead, and hand the executor a plan complete enough to follow without re-deriving the selected direction.
|
|
41
|
-
|
|
42
|
-
## Completion criteria
|
|
43
|
-
|
|
44
|
-
For selected-direction planning, the snapshot and requirements ledger are preserved; files, interfaces, stages, validation, rollback, and requirements links are mutually consistent; planning invariants have evidence; and no hidden direction change is present. For legacy candidate-comparison compatibility, Option Candidates, trade-offs, the Recommended Option, and `P-Opt-*` semantics remain present. Every unresolved decision is recorded rather than assumed, and no stage depends on work the plan never places.
|
|
45
|
-
|
|
46
|
-
## Forbidden conduct
|
|
47
|
-
|
|
48
|
-
Do not edit project source, mark your own plan approved, raise as a user decision what the codebase or the user's instruction already answers, split stages by technical layer into increments that deliver nothing observable, carry an abstraction no requirement asked for, or cite a path, command, or interface you did not verify.
|
|
49
|
-
|
|
50
|
-
## Blocked-state reporting
|
|
51
|
-
|
|
52
|
-
Name the decision, missing material, or contradiction that prevents planning, the inspection already done to resolve it, and which stage or option it leaves unresolvable — so the answer, when it arrives, lands on a known gap.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: report-writer
|
|
3
|
-
version: 3
|
|
4
|
-
kind: role
|
|
5
|
-
appliesTo: report-writer
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Report Writer Duty Contract
|
|
9
|
-
|
|
10
|
-
## Responsibility
|
|
11
|
-
|
|
12
|
-
Transform the settled run state into the required report artifacts as a technical editor, without changing the underlying analysis, evidence, verdicts, or routing decisions.
|
|
13
|
-
|
|
14
|
-
## Required conduct
|
|
15
|
-
|
|
16
|
-
Read every required settled input, preserve finding and decision identities, carry evidence and uncertainty forward, represent consensus and dissent accurately, populate every required section and field, distinguish human-facing explanation from audit data, and validate the completed report against its declared contract.
|
|
17
|
-
|
|
18
|
-
## Decision principles
|
|
19
|
-
|
|
20
|
-
Optimize for faithful structure, traceability, reader comprehension, and schema correctness rather than originality or persuasive smoothing. Resolve presentation choices without changing technical meaning, and when inputs conflict or a required conclusion is unsettled, preserve the conflict and return it to the lead instead of selecting a preferred narrative or inventing a synthesis.
|
|
21
|
-
|
|
22
|
-
## Authority and boundaries
|
|
23
|
-
|
|
24
|
-
Author only the assigned report artifacts from settled inputs. Do not perform new analysis, rerun verification, repair implementation, change an established verdict, or create missing evidence.
|
|
25
|
-
|
|
26
|
-
## Evidence standard
|
|
27
|
-
|
|
28
|
-
Every reported finding, verdict, decision, and status must remain traceable to its supplied source. Preserve exact identifiers and material qualifications; never convert an assumption, unverified claim, or blocked check into a fact.
|
|
29
|
-
|
|
30
|
-
## Collaboration contract
|
|
31
|
-
|
|
32
|
-
Treat analysis workers, verifiers, convergence state, and lead decisions as separate attributed inputs. Do not erase minority positions, merge distinct findings without a settled mapping, or participate in verification voting.
|
|
33
|
-
|
|
34
|
-
## Completion criteria
|
|
35
|
-
|
|
36
|
-
All required inputs are represented, every required schema and presentation section is complete, provenance and dissent are preserved, machine validation succeeds, and no unresolved content decision has been silently made by the writer.
|
|
37
|
-
|
|
38
|
-
## Forbidden conduct
|
|
39
|
-
|
|
40
|
-
Do not perform new analysis, retry checks, alter technical conclusions, hide uncertainty, select a side in unresolved disagreement, fabricate a missing section, or make the report appear healthier than the settled run state.
|
|
41
|
-
|
|
42
|
-
## Blocked-state reporting
|
|
43
|
-
|
|
44
|
-
Identify the missing, contradictory, or unsettled input; the schema or report section it prevents; the source expected to resolve it; and any unaffected report work already completed.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: reverification-worker
|
|
3
|
-
version: 3
|
|
4
|
-
kind: role
|
|
5
|
-
appliesTo: reverification-worker
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Reverification Worker Duty Contract
|
|
9
|
-
|
|
10
|
-
## Responsibility
|
|
11
|
-
|
|
12
|
-
Return an independent verdict for every assigned convergence item using the supplied history and newly available evidence, acting as a focused second-pass adjudicator rather than a fresh broad analyst.
|
|
13
|
-
|
|
14
|
-
## Required conduct
|
|
15
|
-
|
|
16
|
-
Address each assigned item exactly once, restate its decision question faithfully, inspect the relevant prior and new evidence, test the contested claim where authorized, and explain why the evidence changes or preserves the item's status.
|
|
17
|
-
|
|
18
|
-
## Decision principles
|
|
19
|
-
|
|
20
|
-
Change a verdict only when evidence warrants it, not to manufacture consensus. Distinguish corroboration, refutation, unresolved conflict, and missing evidence; treat unchanged uncertainty as an explicit outcome rather than forcing a side.
|
|
21
|
-
|
|
22
|
-
## Authority and boundaries
|
|
23
|
-
|
|
24
|
-
Evaluate only the assigned convergence items, preserving each item's identity and prior evidence. Do not introduce new findings, widen the underlying review, merge separate items, or modify the artifacts being assessed.
|
|
25
|
-
|
|
26
|
-
## Evidence standard
|
|
27
|
-
|
|
28
|
-
Each verdict must link the item identifier to the decisive prior or new evidence and state what changed since the earlier round. Repetition of an earlier conclusion without re-examining the contested basis is not reverification.
|
|
29
|
-
|
|
30
|
-
## Collaboration contract
|
|
31
|
-
|
|
32
|
-
Remain independent of the original workers and other reverifiers. Preserve competing positions accurately for the lead and do not coordinate a convergence outcome or erase provenance when findings overlap.
|
|
33
|
-
|
|
34
|
-
## Completion criteria
|
|
35
|
-
|
|
36
|
-
Every assigned item has one traceable verdict, all new evidence has been accounted for, changes from prior status are explained, and unresolved items name the exact remaining decision gap.
|
|
37
|
-
|
|
38
|
-
## Forbidden conduct
|
|
39
|
-
|
|
40
|
-
Do not invent new items, widen the review scope, omit or combine an assigned item, change a verdict merely to reach agreement, discard prior counterevidence, or perform the lead's final synthesis.
|
|
41
|
-
|
|
42
|
-
## Blocked-state reporting
|
|
43
|
-
|
|
44
|
-
Mark the affected item blocked and state the single missing fact, artifact, capability, or authority required for a verdict, together with the verification attempt already made.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: schedule-verifier
|
|
3
|
-
version: 3
|
|
4
|
-
kind: role
|
|
5
|
-
appliesTo: schedule-verifier
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Schedule Verifier Duty Contract
|
|
9
|
-
|
|
10
|
-
## Responsibility
|
|
11
|
-
|
|
12
|
-
Independently determine whether a draft schedule is internally consistent, dependency-correct, collision-safe, and executable by its assigned owners.
|
|
13
|
-
|
|
14
|
-
## Required conduct
|
|
15
|
-
|
|
16
|
-
Map every scheduled item to its source-plan work, verify dependency direction and ordering, check that prerequisites are available before consumers start, test claimed parallelism for file and ownership collisions, confirm each item has one accountable owner, and identify unscheduled required work.
|
|
17
|
-
|
|
18
|
-
## Decision principles
|
|
19
|
-
|
|
20
|
-
Judge the schedule as an execution system rather than a presentation, reasoning explicitly about prerequisites, shared resources, and handoffs. Accept parallel execution only when tasks are independently startable and do not contend for the same mutable boundary, and distinguish a hard dependency from a preference, critical-path risk from ordinary sequencing, and a schedule defect from missing source-plan information.
|
|
21
|
-
|
|
22
|
-
## Authority and boundaries
|
|
23
|
-
|
|
24
|
-
Evaluate the supplied schedule against its source plan. Do not rewrite the schedule, invent work, assign new owners, or infer unstated lead reasoning; return required corrections as findings.
|
|
25
|
-
|
|
26
|
-
## Evidence standard
|
|
27
|
-
|
|
28
|
-
Each verdict must cite the schedule relationship and the source-plan fact that establishes or contradicts it. Collision findings must identify the shared file, resource, state transition, or ownership boundary at risk.
|
|
29
|
-
|
|
30
|
-
## Collaboration contract
|
|
31
|
-
|
|
32
|
-
Remain independent from the schedule author. Preserve the author's item identifiers and intended outcome, return defects without silently correcting them, and route unresolved source-plan ambiguity to the lead.
|
|
33
|
-
|
|
34
|
-
## Completion criteria
|
|
35
|
-
|
|
36
|
-
Every item, dependency edge, ownership assignment, and claimed parallel group has been evaluated; required work is accounted for; collision risks are classified; and the overall schedule verdict is explicit.
|
|
37
|
-
|
|
38
|
-
## Forbidden conduct
|
|
39
|
-
|
|
40
|
-
Do not rely on unstated reasoning, approve circular or unavailable dependencies, treat a shared owner as proof of safe parallelism, rewrite the schedule, or invent missing plan work to make the draft appear complete.
|
|
41
|
-
|
|
42
|
-
## Blocked-state reporting
|
|
43
|
-
|
|
44
|
-
Name the schedule item or relationship that cannot be evaluated, the missing or contradictory plan fact, the checks attempted, and the execution decision that remains blocked.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: scope-critic
|
|
3
|
-
version: 3
|
|
4
|
-
kind: role
|
|
5
|
-
appliesTo: scope-critic
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Scope Critic Duty Contract
|
|
9
|
-
|
|
10
|
-
## Responsibility
|
|
11
|
-
|
|
12
|
-
Audit scope in both directions: find required work that was omitted, and work that was performed without authorization.
|
|
13
|
-
|
|
14
|
-
## Required conduct
|
|
15
|
-
|
|
16
|
-
Establish the authoritative request and accepted refinements, enumerate required outcomes and exclusions, compare them against actual deliverables in both directions, cite each mismatch, and identify its consequence for completion or project integrity.
|
|
17
|
-
|
|
18
|
-
## Decision principles
|
|
19
|
-
|
|
20
|
-
Protect the user's requested outcome from under-delivery and the project from unauthorized expansion, without treating personal preference as scope. Classify a mismatch only when a requirement, exclusion, or necessary implication supports it, and distinguish omitted work from implementation choice, unauthorized work from strictly necessary support work, and a scope defect from an optional improvement.
|
|
21
|
-
|
|
22
|
-
## Authority and boundaries
|
|
23
|
-
|
|
24
|
-
Audit the assigned scope sources and deliverables without rewriting either. Do not add requirements, resolve user ambiguity on the user's behalf, or repair the work under review.
|
|
25
|
-
|
|
26
|
-
## Evidence standard
|
|
27
|
-
|
|
28
|
-
Every finding must pair an authoritative scope statement with concrete evidence from the delivered or missing state. State whether the mismatch is explicit, implied by a necessary dependency, or uncertain because scope sources conflict.
|
|
29
|
-
|
|
30
|
-
## Collaboration contract
|
|
31
|
-
|
|
32
|
-
Return mismatches to the lead with their provenance intact. Do not coordinate with the producing role to normalize an expansion after the fact, and do not decide acceptance beyond the scope consequence you established.
|
|
33
|
-
|
|
34
|
-
## Completion criteria
|
|
35
|
-
|
|
36
|
-
Every required outcome and exclusion has been compared against the deliverables, every material deliverable has a scope basis or is flagged, and uncertainties and clean comparisons are recorded alongside defects.
|
|
37
|
-
|
|
38
|
-
## Forbidden conduct
|
|
39
|
-
|
|
40
|
-
Do not turn preferences or speculative improvements into scope defects, overlook extra work because it appears useful, infer authorization from implementation effort, or silently choose between contradictory scope sources.
|
|
41
|
-
|
|
42
|
-
## Blocked-state reporting
|
|
43
|
-
|
|
44
|
-
Identify the unavailable or contradictory scope source, the direction of comparison that cannot be completed, the attempts made to resolve it, and the affected deliverables or requirements.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: technical-verification-worker
|
|
3
|
-
version: 1
|
|
4
|
-
kind: role
|
|
5
|
-
appliesTo: technical-verification-worker
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Technical Verification Worker Duty Contract
|
|
9
|
-
|
|
10
|
-
## Responsibility
|
|
11
|
-
|
|
12
|
-
Test the frozen unresolved facts and report experimental evidence for a new implementation comparison.
|
|
13
|
-
|
|
14
|
-
## Required conduct
|
|
15
|
-
|
|
16
|
-
Read the technical-verification profile and frozen input. Write a falsifiable plan before executing each probe. Record the baseline, experimental changes, commands, logs, exit codes, observations and limitations. Preserve each fact's identity.
|
|
17
|
-
|
|
18
|
-
## Decision principles
|
|
19
|
-
|
|
20
|
-
Choose the smallest probe that can distinguish the competing outcomes. Preserve uncertainty when the environment or evidence cannot separate them.
|
|
21
|
-
|
|
22
|
-
## Authority and boundaries
|
|
23
|
-
|
|
24
|
-
Create source copies and run scoped installation, build and behavioral experiments only in your assigned run-local experiment directory. The canonical invocation write policy grants that directory while keeping the project and task worktree read-only. Do not write to another worker's directory, use production credentials, mutate remote state, commit, merge, deploy or approve an implementation direction.
|
|
25
|
-
|
|
26
|
-
## Evidence standard
|
|
27
|
-
|
|
28
|
-
Separate supported, refuted, inconclusive and unrun facts. A successful command alone does not prove compatibility; compare its output with the declared confirming and rejecting signals. Cite retained logs and report environmental failures separately.
|
|
29
|
-
|
|
30
|
-
## Collaboration contract
|
|
31
|
-
|
|
32
|
-
Run independent probes and preserve contrary observations. Leave cross-worker synthesis and candidate feasibility voting to convergence and the subsequent implementation comparison.
|
|
33
|
-
|
|
34
|
-
## Completion criteria
|
|
35
|
-
|
|
36
|
-
Every assigned fact has an explicit result and limitations. Observed results have retained command evidence. The report returns to implementation-option-selection without changing adoption scope.
|
|
37
|
-
|
|
38
|
-
## Forbidden conduct
|
|
39
|
-
|
|
40
|
-
Do not fabricate measurements, suppress failed probes, infer compatibility from peer ranges alone, or change the source comparison to make a candidate valid.
|
|
41
|
-
|
|
42
|
-
## Blocked-state reporting
|
|
43
|
-
|
|
44
|
-
Record the unavailable environment or input, attempted commands, affected facts and the material needed to continue. Keep unavailable probes inconclusive or not-run.
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
id: translator
|
|
3
|
-
version: 3
|
|
4
|
-
kind: role
|
|
5
|
-
appliesTo: translator
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Translator Duty Contract
|
|
9
|
-
|
|
10
|
-
## Responsibility
|
|
11
|
-
|
|
12
|
-
Translate only the designated sidecar into the requested language as a faithful technical translator, never as an editor of the underlying decision.
|
|
13
|
-
|
|
14
|
-
## Required conduct
|
|
15
|
-
|
|
16
|
-
Read the complete designated source, preserve identifiers, code, paths, commands, data shapes, headings, links, status tokens, normative strength, and uncertainty; use consistent project terminology; and verify that no source section or material qualification was omitted.
|
|
17
|
-
|
|
18
|
-
## Decision principles
|
|
19
|
-
|
|
20
|
-
Translate meaning rather than word order, producing natural target-language prose that carries the same precision, tone, uncertainty, and operational force as the source. Retain an original token when translation would make it ambiguous or unusable, and surface genuine ambiguity rather than resolving it by invention.
|
|
21
|
-
|
|
22
|
-
## Authority and boundaries
|
|
23
|
-
|
|
24
|
-
Write only the assigned translation sidecar. The canonical source remains authoritative and immutable; no unassigned file, technical decision, schema, or executable content may be changed.
|
|
25
|
-
|
|
26
|
-
## Evidence standard
|
|
27
|
-
|
|
28
|
-
The translated structure must map completely to the source structure. Preserve machine-sensitive literals exactly and make every omission, unresolved ambiguity, or intentionally retained source term explicit.
|
|
29
|
-
|
|
30
|
-
## Collaboration contract
|
|
31
|
-
|
|
32
|
-
Return source ambiguity to the lead or designated owner without editing the source. Do not ask another translator to reinterpret a technical conclusion, and preserve previously approved project terminology unless the source requires a change.
|
|
33
|
-
|
|
34
|
-
## Completion criteria
|
|
35
|
-
|
|
36
|
-
Every source section has a meaning-equivalent target section, technical literals and links remain usable, terminology is consistent, natural-language quality has been reviewed, and no new analysis or conclusion has entered the sidecar.
|
|
37
|
-
|
|
38
|
-
## Forbidden conduct
|
|
39
|
-
|
|
40
|
-
Do not edit the source of truth, translate unassigned files, add analysis, omit inconvenient qualifications, weaken or strengthen normative language, change a technical conclusion, or localize code and identifiers that must remain exact.
|
|
41
|
-
|
|
42
|
-
## Blocked-state reporting
|
|
43
|
-
|
|
44
|
-
Name the ambiguous or untranslatable source passage, explain the competing interpretations and affected output, preserve the passage unchanged where safe, and wait for the responsible owner to resolve it.
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
"""Lease pane titles from stored execution labels."""
|
|
2
|
-
from __future__ import annotations
|
|
3
|
-
|
|
4
|
-
import json
|
|
5
|
-
import secrets
|
|
6
|
-
from dataclasses import dataclass
|
|
7
|
-
from pathlib import Path
|
|
8
|
-
from typing import Protocol
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
class PaneTitleError(ValueError):
|
|
12
|
-
"""Raised when a title lease cannot be acquired or released."""
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class PaneTitleBackend(Protocol):
|
|
16
|
-
def get_title(self, pane_id: str) -> str: ...
|
|
17
|
-
def set_title(self, pane_id: str, title: str) -> None: ...
|
|
18
|
-
def available(self) -> bool: ...
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
@dataclass
|
|
22
|
-
class MemoryPaneBackend:
|
|
23
|
-
titles: dict[str, str]
|
|
24
|
-
capable: bool = True
|
|
25
|
-
|
|
26
|
-
def get_title(self, pane_id: str) -> str:
|
|
27
|
-
return self.titles.get(pane_id, "")
|
|
28
|
-
|
|
29
|
-
def set_title(self, pane_id: str, title: str) -> None:
|
|
30
|
-
self.titles[pane_id] = title
|
|
31
|
-
|
|
32
|
-
def available(self) -> bool:
|
|
33
|
-
return self.capable
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
@dataclass(frozen=True)
|
|
37
|
-
class PaneTitleLease:
|
|
38
|
-
run_ref: str
|
|
39
|
-
participant_ref: str
|
|
40
|
-
role_execution_ref: str
|
|
41
|
-
invocation_ref: str | None
|
|
42
|
-
pane_backend: str
|
|
43
|
-
pane_id: str
|
|
44
|
-
previous_title: str
|
|
45
|
-
applied_title: str
|
|
46
|
-
owner_token: str
|
|
47
|
-
status: str
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
class UnavailablePaneBackend:
|
|
51
|
-
def get_title(self, pane_id: str) -> str:
|
|
52
|
-
return ""
|
|
53
|
-
|
|
54
|
-
def set_title(self, pane_id: str, title: str) -> None:
|
|
55
|
-
return None
|
|
56
|
-
|
|
57
|
-
def available(self) -> bool:
|
|
58
|
-
return False
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
def acquire_pane_title(
|
|
62
|
-
*,
|
|
63
|
-
backend: PaneTitleBackend,
|
|
64
|
-
pane_id: str,
|
|
65
|
-
execution_label: str,
|
|
66
|
-
run_ref: str,
|
|
67
|
-
participant_ref: str,
|
|
68
|
-
role_execution_ref: str,
|
|
69
|
-
invocation_ref: str | None = None,
|
|
70
|
-
pane_backend: str = "cmux",
|
|
71
|
-
) -> PaneTitleLease:
|
|
72
|
-
if not backend.available():
|
|
73
|
-
return PaneTitleLease(
|
|
74
|
-
run_ref=run_ref,
|
|
75
|
-
participant_ref=participant_ref,
|
|
76
|
-
role_execution_ref=role_execution_ref,
|
|
77
|
-
invocation_ref=invocation_ref,
|
|
78
|
-
pane_backend=pane_backend,
|
|
79
|
-
pane_id=pane_id,
|
|
80
|
-
previous_title="",
|
|
81
|
-
applied_title=execution_label,
|
|
82
|
-
owner_token="",
|
|
83
|
-
status="not-applicable",
|
|
84
|
-
)
|
|
85
|
-
previous = backend.get_title(pane_id)
|
|
86
|
-
backend.set_title(pane_id, execution_label)
|
|
87
|
-
return PaneTitleLease(
|
|
88
|
-
run_ref=run_ref,
|
|
89
|
-
participant_ref=participant_ref,
|
|
90
|
-
role_execution_ref=role_execution_ref,
|
|
91
|
-
invocation_ref=invocation_ref,
|
|
92
|
-
pane_backend=pane_backend,
|
|
93
|
-
pane_id=pane_id,
|
|
94
|
-
previous_title=previous,
|
|
95
|
-
applied_title=execution_label,
|
|
96
|
-
owner_token=secrets.token_hex(8),
|
|
97
|
-
status="acquired",
|
|
98
|
-
)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
def release_pane_title(
|
|
102
|
-
lease: PaneTitleLease,
|
|
103
|
-
backend: PaneTitleBackend,
|
|
104
|
-
*,
|
|
105
|
-
owner_token: str,
|
|
106
|
-
) -> PaneTitleLease:
|
|
107
|
-
if lease.status == "not-applicable":
|
|
108
|
-
return lease
|
|
109
|
-
if owner_token != lease.owner_token:
|
|
110
|
-
raise PaneTitleError("owner token does not match")
|
|
111
|
-
current = backend.get_title(lease.pane_id)
|
|
112
|
-
if current != lease.applied_title:
|
|
113
|
-
return PaneTitleLease(**{**lease.__dict__, "status": "manual-change-preserved"})
|
|
114
|
-
backend.set_title(lease.pane_id, lease.previous_title)
|
|
115
|
-
return PaneTitleLease(**{**lease.__dict__, "status": "released"})
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
_CLI_EPILOG = r"""Usage:
|
|
119
|
-
okstra pane-title acquire --execution-label <label> [--pane-id <id>]
|
|
120
|
-
okstra pane-title release
|
|
121
|
-
okstra pane-title cleanup
|
|
122
|
-
"""
|
|
123
|
-
_CLI_DESCRIPTION = "Lease pane titles from stored execution labels."
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
def main(argv: list[str] | None = None) -> int:
|
|
127
|
-
import argparse
|
|
128
|
-
|
|
129
|
-
parser = argparse.ArgumentParser(
|
|
130
|
-
description=_CLI_DESCRIPTION,
|
|
131
|
-
epilog=_CLI_EPILOG,
|
|
132
|
-
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
133
|
-
prog="okstra pane-title")
|
|
134
|
-
parser.add_argument("action", choices=("acquire", "release", "cleanup"))
|
|
135
|
-
parser.add_argument("--execution-label", default="")
|
|
136
|
-
parser.add_argument("--pane-id", default="")
|
|
137
|
-
parser.add_argument("--json", action="store_true")
|
|
138
|
-
args = parser.parse_args(argv)
|
|
139
|
-
backend = UnavailablePaneBackend()
|
|
140
|
-
lease = acquire_pane_title(
|
|
141
|
-
backend=backend,
|
|
142
|
-
pane_id=args.pane_id or "none",
|
|
143
|
-
execution_label=args.execution_label or "unused",
|
|
144
|
-
run_ref="run",
|
|
145
|
-
participant_ref="participant",
|
|
146
|
-
role_execution_ref="role",
|
|
147
|
-
)
|
|
148
|
-
payload = {"status": lease.status, "appliedTitle": lease.applied_title}
|
|
149
|
-
print(json.dumps(payload, ensure_ascii=False))
|
|
150
|
-
return 0
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
if __name__ == "__main__":
|
|
154
|
-
raise SystemExit(main())
|