okstra 0.201.3 → 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/lifecycle/setup.mjs +15 -0
- package/dist/commands/lifecycle/setup.mjs.map +1 -1
- package/dist/commands/memory/memory.mjs +41 -8
- package/dist/commands/memory/memory.mjs.map +1 -1
- package/dist/lib/citation-guidance.d.mts +21 -0
- package/dist/lib/citation-guidance.mjs +79 -0
- package/dist/lib/citation-guidance.mjs.map +1 -0
- 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 +17 -10
- package/docs/architecture.md +26 -20
- package/docs/cli.md +16 -13
- package/docs/contributor-change-matrix.md +3 -2
- package/docs/performance-improvement-plan-v2.md +2 -3
- package/docs/project-structure-overview.md +38 -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 +3 -2
- 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 +115 -6
- 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 +3 -3
- 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 +6 -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_critic_prompt.py +4 -6
- package/runtime/python/okstra_ctl/convergence_provenance.py +81 -18
- 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/execution_mutation_audit.py +21 -21
- 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 +175 -14
- package/runtime/python/okstra_ctl/manager_launch.py +41 -19
- package/runtime/python/okstra_ctl/manager_paths.py +22 -3
- package/runtime/python/okstra_ctl/manager_split.py +474 -0
- package/runtime/python/okstra_ctl/manager_store.py +331 -21
- package/runtime/python/okstra_ctl/manager_sync.py +37 -16
- package/runtime/python/okstra_ctl/manager_view.py +217 -0
- 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/plan_items_cli.py +6 -1
- package/runtime/python/okstra_ctl/profile_show.py +42 -1
- package/runtime/python/okstra_ctl/qa_commands.py +15 -0
- 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_finalize.py +13 -6
- package/runtime/python/okstra_ctl/report_html/view_models/final_verification.py +2 -21
- package/runtime/python/okstra_ctl/report_html/view_models/release_handoff.py +21 -3
- package/runtime/python/okstra_ctl/report_html/visualizations.py +0 -5
- 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/verification_target.py +13 -2
- 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 +70 -5
- 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 +32 -13
- package/runtime/skills/okstra-schedule-gen/SKILL.md +19 -14
- package/runtime/skills/okstra-setup/SKILL.md +21 -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 +109 -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 +7 -4
- package/runtime/templates/reports/html/i18n/ko.json +7 -4
- package/runtime/templates/reports/html/tasks/final-verification.template.html +2 -2
- 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 +77 -2
- 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 -69
- 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 -158
- 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
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"schemaVersion",
|
|
5
|
+
"id",
|
|
6
|
+
"roleId",
|
|
7
|
+
"responsibilities",
|
|
8
|
+
"requiredConduct",
|
|
9
|
+
"decisionPrinciples",
|
|
10
|
+
"authorityAndBoundaries",
|
|
11
|
+
"evidenceStandards",
|
|
12
|
+
"collaborationContract",
|
|
13
|
+
"completionCriteria",
|
|
14
|
+
"prohibitions",
|
|
15
|
+
"blockedStateReporting"
|
|
16
|
+
],
|
|
17
|
+
"properties": {
|
|
18
|
+
"schemaVersion": { "const": "1.0" },
|
|
19
|
+
"id": { "type": "string", "minLength": 1 },
|
|
20
|
+
"roleId": { "type": "string", "minLength": 1 },
|
|
21
|
+
"responsibilities": { "$ref": "#/$defs/stringList" },
|
|
22
|
+
"requiredConduct": { "$ref": "#/$defs/stringList" },
|
|
23
|
+
"decisionPrinciples": { "$ref": "#/$defs/stringList" },
|
|
24
|
+
"authorityAndBoundaries": { "$ref": "#/$defs/stringList" },
|
|
25
|
+
"evidenceStandards": { "$ref": "#/$defs/stringList" },
|
|
26
|
+
"collaborationContract": { "$ref": "#/$defs/stringList" },
|
|
27
|
+
"completionCriteria": { "$ref": "#/$defs/stringList" },
|
|
28
|
+
"prohibitions": { "$ref": "#/$defs/stringList" },
|
|
29
|
+
"blockedStateReporting": { "$ref": "#/$defs/stringList" }
|
|
30
|
+
},
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"$defs": {
|
|
33
|
+
"stringList": {
|
|
34
|
+
"type": "array",
|
|
35
|
+
"items": { "type": "string", "minLength": 1 }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"required": ["schemaVersion", "id", "dutyId", "count"],
|
|
4
|
+
"properties": {
|
|
5
|
+
"schemaVersion": { "const": "1.0" },
|
|
6
|
+
"id": { "type": "string", "minLength": 1 },
|
|
7
|
+
"dutyId": { "type": "string", "minLength": 1 },
|
|
8
|
+
"count": { "type": "integer", "minimum": 1 }
|
|
9
|
+
},
|
|
10
|
+
"additionalProperties": false
|
|
11
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"required": ["schemaVersion", "id", "roles"],
|
|
4
|
+
"properties": {
|
|
5
|
+
"schemaVersion": { "const": "1.0" },
|
|
6
|
+
"id": { "type": "string", "minLength": 1 },
|
|
7
|
+
"roles": {
|
|
8
|
+
"type": "array",
|
|
9
|
+
"items": {
|
|
10
|
+
"oneOf": [
|
|
11
|
+
{
|
|
12
|
+
"type": "object",
|
|
13
|
+
"required": ["mode", "roleId", "dutyId", "min", "recommended", "max"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"mode": { "const": "static" },
|
|
16
|
+
"roleId": { "type": "string", "minLength": 1 },
|
|
17
|
+
"dutyId": { "type": "string", "minLength": 1 },
|
|
18
|
+
"min": { "type": "integer", "minimum": 0 },
|
|
19
|
+
"recommended": { "type": "integer", "minimum": 0 },
|
|
20
|
+
"max": { "type": "integer", "minimum": 0 }
|
|
21
|
+
},
|
|
22
|
+
"additionalProperties": false
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "object",
|
|
26
|
+
"required": ["mode", "roleId", "dutyId", "sourceRoleIds", "activation"],
|
|
27
|
+
"properties": {
|
|
28
|
+
"mode": { "const": "dynamic" },
|
|
29
|
+
"roleId": { "type": "string", "minLength": 1 },
|
|
30
|
+
"dutyId": { "type": "string", "minLength": 1 },
|
|
31
|
+
"sourceRoleIds": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"minItems": 1,
|
|
34
|
+
"uniqueItems": true,
|
|
35
|
+
"items": { "type": "string", "minLength": 1 }
|
|
36
|
+
},
|
|
37
|
+
"activation": { "const": "per-selected-source" }
|
|
38
|
+
},
|
|
39
|
+
"additionalProperties": false
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"additionalProperties": false
|
|
46
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "object",
|
|
3
|
+
"required": [
|
|
4
|
+
"schemaVersion",
|
|
5
|
+
"id",
|
|
6
|
+
"legacyAliases",
|
|
7
|
+
"identity",
|
|
8
|
+
"responsibilities",
|
|
9
|
+
"requiredCapabilities",
|
|
10
|
+
"prohibitions"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"schemaVersion": { "const": "1.0" },
|
|
14
|
+
"id": { "type": "string", "minLength": 1 },
|
|
15
|
+
"legacyAliases": { "$ref": "#/$defs/stringList" },
|
|
16
|
+
"identity": { "type": "string", "minLength": 1 },
|
|
17
|
+
"responsibilities": { "$ref": "#/$defs/stringList" },
|
|
18
|
+
"requiredCapabilities": { "$ref": "#/$defs/stringList" },
|
|
19
|
+
"prohibitions": { "$ref": "#/$defs/stringList" }
|
|
20
|
+
},
|
|
21
|
+
"additionalProperties": false,
|
|
22
|
+
"$defs": {
|
|
23
|
+
"stringList": {
|
|
24
|
+
"type": "array",
|
|
25
|
+
"items": { "type": "string", "minLength": 1 },
|
|
26
|
+
"uniqueItems": true
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -905,110 +905,103 @@
|
|
|
905
905
|
"description": "RENDER_IF taskType == release-handoff. §5.6 deliverables.",
|
|
906
906
|
"required": [
|
|
907
907
|
"handoffScope",
|
|
908
|
+
"sourceVerificationReports",
|
|
908
909
|
"featureBranchState",
|
|
909
910
|
"userSelections",
|
|
910
911
|
"localCheckoutOutcome",
|
|
911
912
|
"executedCommands",
|
|
912
913
|
"commitList",
|
|
913
914
|
"mergeConflictProbe",
|
|
914
|
-
"
|
|
915
|
+
"pullRequestOutcomes",
|
|
915
916
|
"routingRecommendation",
|
|
916
917
|
"userNarrative"
|
|
917
918
|
],
|
|
918
919
|
"additionalProperties": false,
|
|
919
|
-
"allOf": [
|
|
920
|
-
{
|
|
921
|
-
"if": {
|
|
922
|
-
"properties": {
|
|
923
|
-
"handoffScope": {
|
|
924
|
-
"properties": {
|
|
925
|
-
"mode": {
|
|
926
|
-
"const": "stage-group"
|
|
927
|
-
}
|
|
928
|
-
},
|
|
929
|
-
"required": [
|
|
930
|
-
"mode"
|
|
931
|
-
]
|
|
932
|
-
}
|
|
933
|
-
},
|
|
934
|
-
"required": [
|
|
935
|
-
"handoffScope"
|
|
936
|
-
]
|
|
937
|
-
},
|
|
938
|
-
"then": {
|
|
939
|
-
"required": [
|
|
940
|
-
"sourceVerificationReports"
|
|
941
|
-
]
|
|
942
|
-
},
|
|
943
|
-
"else": {
|
|
944
|
-
"required": [
|
|
945
|
-
"sourceVerificationReport"
|
|
946
|
-
]
|
|
947
|
-
}
|
|
948
|
-
}
|
|
949
|
-
],
|
|
950
920
|
"properties": {
|
|
951
921
|
"handoffScope": {
|
|
952
922
|
"type": "object",
|
|
953
923
|
"required": [
|
|
954
|
-
"
|
|
924
|
+
"stages",
|
|
925
|
+
"releaseBase"
|
|
955
926
|
],
|
|
956
927
|
"additionalProperties": false,
|
|
957
|
-
"description": "
|
|
928
|
+
"description": "What this handoff delivered. One stage is one PR, so the stage list is the PR list, and `stagePlan` is the only place a reader learns which branch each PR sat on — and therefore in what order the stack must be merged.",
|
|
958
929
|
"properties": {
|
|
959
|
-
"mode": {
|
|
960
|
-
"enum": [
|
|
961
|
-
"whole-task",
|
|
962
|
-
"stage-group"
|
|
963
|
-
]
|
|
964
|
-
},
|
|
965
930
|
"stages": {
|
|
966
931
|
"type": "array",
|
|
932
|
+
"minItems": 1,
|
|
967
933
|
"items": {
|
|
968
934
|
"type": "integer",
|
|
969
935
|
"minimum": 1
|
|
970
936
|
}
|
|
971
937
|
},
|
|
972
|
-
"
|
|
973
|
-
"type": "string"
|
|
938
|
+
"releaseBase": {
|
|
939
|
+
"type": "string",
|
|
940
|
+
"minLength": 1,
|
|
941
|
+
"description": "The base branch the user picked for the run. A stage that sits on another stage does NOT target it — see stagePlan[].baseBranch."
|
|
974
942
|
},
|
|
975
|
-
"
|
|
943
|
+
"stagePlan": {
|
|
976
944
|
"type": "array",
|
|
977
|
-
"description": "
|
|
945
|
+
"description": "`okstra handoff pr-plan` output, one row per stage. Without it the merge order of a stacked PR set cannot be reconstructed once the branches move.",
|
|
978
946
|
"items": {
|
|
979
|
-
"type": "
|
|
980
|
-
"
|
|
947
|
+
"type": "object",
|
|
948
|
+
"required": [
|
|
949
|
+
"stage",
|
|
950
|
+
"headBranch",
|
|
951
|
+
"baseKind",
|
|
952
|
+
"baseBranch"
|
|
953
|
+
],
|
|
954
|
+
"additionalProperties": false,
|
|
955
|
+
"properties": {
|
|
956
|
+
"stage": {
|
|
957
|
+
"type": "integer",
|
|
958
|
+
"minimum": 1
|
|
959
|
+
},
|
|
960
|
+
"headBranch": {
|
|
961
|
+
"type": "string",
|
|
962
|
+
"minLength": 1
|
|
963
|
+
},
|
|
964
|
+
"headCommit": {
|
|
965
|
+
"type": "string"
|
|
966
|
+
},
|
|
967
|
+
"baseKind": {
|
|
968
|
+
"enum": [
|
|
969
|
+
"release-base",
|
|
970
|
+
"stage",
|
|
971
|
+
"merge-base"
|
|
972
|
+
]
|
|
973
|
+
},
|
|
974
|
+
"baseBranch": {
|
|
975
|
+
"type": "string",
|
|
976
|
+
"minLength": 1
|
|
977
|
+
},
|
|
978
|
+
"baseCommit": {
|
|
979
|
+
"type": "string"
|
|
980
|
+
},
|
|
981
|
+
"baseStages": {
|
|
982
|
+
"type": "array",
|
|
983
|
+
"description": "The predecessor stages this row's base carries. Empty for a release-base row.",
|
|
984
|
+
"items": {
|
|
985
|
+
"type": "integer",
|
|
986
|
+
"minimum": 1
|
|
987
|
+
}
|
|
988
|
+
},
|
|
989
|
+
"baseMergeCommits": {
|
|
990
|
+
"type": "array",
|
|
991
|
+
"description": "Merge commits pr-plan created on a merge-base branch. The only commits release-handoff is allowed to produce.",
|
|
992
|
+
"items": {
|
|
993
|
+
"type": "string",
|
|
994
|
+
"minLength": 7
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
}
|
|
981
998
|
}
|
|
982
|
-
},
|
|
983
|
-
"dependencyClosureVerdict": {
|
|
984
|
-
"type": "string",
|
|
985
|
-
"minLength": 1,
|
|
986
|
-
"description": "Whether the selected stages are closed under their dependencies, and on what basis. A stage-group PR that ships a stage without its predecessor is the failure this records."
|
|
987
|
-
}
|
|
988
|
-
}
|
|
989
|
-
},
|
|
990
|
-
"sourceVerificationReport": {
|
|
991
|
-
"type": "object",
|
|
992
|
-
"description": "whole-task mode: the one final-verification report this handoff ships. Required unless handoffScope.mode is stage-group.",
|
|
993
|
-
"required": [
|
|
994
|
-
"path",
|
|
995
|
-
"verdictTokenQuote"
|
|
996
|
-
],
|
|
997
|
-
"additionalProperties": false,
|
|
998
|
-
"properties": {
|
|
999
|
-
"path": {
|
|
1000
|
-
"type": "string",
|
|
1001
|
-
"minLength": 1
|
|
1002
|
-
},
|
|
1003
|
-
"verdictTokenQuote": {
|
|
1004
|
-
"type": "string",
|
|
1005
|
-
"minLength": 1
|
|
1006
999
|
}
|
|
1007
1000
|
}
|
|
1008
1001
|
},
|
|
1009
1002
|
"sourceVerificationReports": {
|
|
1010
1003
|
"type": "array",
|
|
1011
|
-
"description": "
|
|
1004
|
+
"description": "One row per selected stage. Each stage ships its own PR under its own verdict, so a single report path cannot say which stage a verdict belongs to.",
|
|
1012
1005
|
"minItems": 1,
|
|
1013
1006
|
"items": {
|
|
1014
1007
|
"type": "object",
|
|
@@ -1048,6 +1041,11 @@
|
|
|
1048
1041
|
"checked-out"
|
|
1049
1042
|
]
|
|
1050
1043
|
},
|
|
1044
|
+
"stage": {
|
|
1045
|
+
"type": "integer",
|
|
1046
|
+
"minimum": 1,
|
|
1047
|
+
"description": "The stage whose branch was checked out. Checkout is per stage, so a branch name without it leaves the reader matching branch suffixes by hand."
|
|
1048
|
+
},
|
|
1051
1049
|
"branch": {
|
|
1052
1050
|
"type": "string"
|
|
1053
1051
|
},
|
|
@@ -1173,6 +1171,14 @@
|
|
|
1173
1171
|
"userChoice": {
|
|
1174
1172
|
"type": "string"
|
|
1175
1173
|
},
|
|
1174
|
+
"conflictingStages": {
|
|
1175
|
+
"type": "array",
|
|
1176
|
+
"description": "The stages whose head did not merge cleanly into their own PR base. The probe runs per stage, so a bare path list cannot say which PR is affected.",
|
|
1177
|
+
"items": {
|
|
1178
|
+
"type": "integer",
|
|
1179
|
+
"minimum": 1
|
|
1180
|
+
}
|
|
1181
|
+
},
|
|
1176
1182
|
"conflictingPaths": {
|
|
1177
1183
|
"type": "array",
|
|
1178
1184
|
"items": {
|
|
@@ -1181,32 +1187,41 @@
|
|
|
1181
1187
|
}
|
|
1182
1188
|
}
|
|
1183
1189
|
},
|
|
1184
|
-
"
|
|
1185
|
-
"type": "
|
|
1186
|
-
"
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
"
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
"
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1190
|
+
"pullRequestOutcomes": {
|
|
1191
|
+
"type": "array",
|
|
1192
|
+
"description": "One row per selected stage — one stage is one PR. A single outcome object cannot say which stage was created, reused or skipped.",
|
|
1193
|
+
"items": {
|
|
1194
|
+
"type": "object",
|
|
1195
|
+
"additionalProperties": false,
|
|
1196
|
+
"required": [
|
|
1197
|
+
"stage",
|
|
1198
|
+
"kind"
|
|
1199
|
+
],
|
|
1200
|
+
"properties": {
|
|
1201
|
+
"stage": {
|
|
1202
|
+
"type": "integer",
|
|
1203
|
+
"minimum": 1
|
|
1204
|
+
},
|
|
1205
|
+
"kind": {
|
|
1206
|
+
"enum": [
|
|
1207
|
+
"no-action",
|
|
1208
|
+
"created",
|
|
1209
|
+
"reused",
|
|
1210
|
+
"skipped"
|
|
1211
|
+
]
|
|
1212
|
+
},
|
|
1213
|
+
"url": {
|
|
1214
|
+
"type": "string"
|
|
1215
|
+
},
|
|
1216
|
+
"title": {
|
|
1217
|
+
"type": "string"
|
|
1218
|
+
},
|
|
1219
|
+
"baseBranch": {
|
|
1220
|
+
"type": "string"
|
|
1221
|
+
},
|
|
1222
|
+
"reason": {
|
|
1223
|
+
"type": "string"
|
|
1224
|
+
}
|
|
1210
1225
|
}
|
|
1211
1226
|
}
|
|
1212
1227
|
},
|
|
@@ -1582,6 +1597,7 @@
|
|
|
1582
1597
|
"enum": [
|
|
1583
1598
|
"release-handoff",
|
|
1584
1599
|
"release-handoff(stage-group)",
|
|
1600
|
+
"final-verification",
|
|
1585
1601
|
"error-analysis",
|
|
1586
1602
|
"implementation-option-selection",
|
|
1587
1603
|
"implementation-planning",
|
|
@@ -9687,6 +9703,11 @@
|
|
|
9687
9703
|
],
|
|
9688
9704
|
"additionalProperties": false,
|
|
9689
9705
|
"properties": {
|
|
9706
|
+
"stage": {
|
|
9707
|
+
"type": "integer",
|
|
9708
|
+
"minimum": 1,
|
|
9709
|
+
"description": "Which stage's PR carries this commit. One stage is one PR, so a flat commit list across several stages cannot be attributed without it."
|
|
9710
|
+
},
|
|
9690
9711
|
"shortSha": {
|
|
9691
9712
|
"type": "string",
|
|
9692
9713
|
"minLength": 7
|