@kontourai/flow-agents 4.0.0 → 4.2.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/.github/workflows/ci.yml +8 -0
- package/CHANGELOG.md +34 -0
- package/CONTEXT.md +5 -0
- package/agents/tool-security-reviewer.json +1 -1
- package/build/src/cli/init.js +35 -3
- package/build/src/cli/kit.js +95 -2
- package/build/src/cli/pull-work-provider.js +7 -1
- package/build/src/cli/validate-workflow-artifacts.js +53 -0
- package/build/src/cli/workflow.js +5 -1
- package/build/src/flow-kit/provision.d.ts +23 -0
- package/build/src/flow-kit/provision.js +99 -0
- package/build/src/flow-kit/validate.d.ts +52 -0
- package/build/src/flow-kit/validate.js +214 -9
- package/build/src/runtime-adapters.js +1 -1
- package/context/contracts/execution-contract.md +30 -1
- package/context/contracts/review-contract.md +4 -0
- package/context/contracts/trigger-guards.md +73 -0
- package/context/scripts/telemetry/lib/config.sh +29 -0
- package/context/settings/backlog-provider-settings.json +1 -1
- package/context/settings/workspace-backlog-provider-settings.example.json +1 -1
- package/dist/base/build/package.json +1 -1
- package/dist/base/build/src/cli/init.js +35 -3
- package/dist/base/build/src/cli/kit.js +95 -2
- package/dist/base/build/src/cli/pull-work-provider.js +7 -1
- package/dist/base/build/src/cli/validate-workflow-artifacts.js +53 -0
- package/dist/base/build/src/cli/workflow.js +5 -1
- package/dist/base/build/src/flow-kit/provision.d.ts +23 -0
- package/dist/base/build/src/flow-kit/provision.js +99 -0
- package/dist/base/build/src/flow-kit/validate.d.ts +52 -0
- package/dist/base/build/src/flow-kit/validate.js +214 -9
- package/dist/base/build/src/runtime-adapters.js +1 -1
- package/dist/base/context/contracts/execution-contract.md +30 -1
- package/dist/base/context/contracts/review-contract.md +4 -0
- package/dist/base/context/contracts/trigger-guards.md +73 -0
- package/dist/base/context/scripts/telemetry/lib/config.sh +29 -0
- package/dist/base/context/settings/backlog-provider-settings.json +1 -1
- package/dist/base/context/settings/workspace-backlog-provider-settings.example.json +1 -1
- package/dist/base/docs/adr/0023-kit-provisioning.md +47 -0
- package/dist/base/docs/adr/index.md +1 -0
- package/dist/base/docs/architecture-engine-and-kits.md +17 -0
- package/dist/base/docs/context-map.md +3 -0
- package/dist/base/docs/decisions/backlog-readiness-source.md +89 -0
- package/dist/base/docs/decisions/index.md +1 -0
- package/dist/base/docs/developer-architecture.md +3 -3
- package/dist/base/docs/flow-kit-repository-contract.md +34 -3
- package/dist/base/docs/kit-authoring-guide.md +1 -1
- package/dist/base/docs/veritas-integration.md +12 -0
- package/dist/base/evals/ci/run-baseline.sh +4 -0
- package/dist/base/evals/integration/test_kit_provisioning.sh +112 -0
- package/dist/base/evals/integration/test_liveness_console_relay.sh +91 -1
- package/dist/base/evals/integration/test_liveness_heartbeat.sh +66 -0
- package/dist/base/evals/integration/test_pull_work_provider.sh +18 -0
- package/dist/base/evals/integration/test_veritas_governance_kit.sh +256 -0
- package/dist/base/evals/integration/test_workflow_artifacts.sh +257 -0
- package/dist/base/evals/static/test_package.sh +6 -0
- package/dist/base/evals/static/test_workflow_skills.sh +16 -0
- package/dist/base/install.sh +1 -1
- package/dist/base/kits/builder/flows/publish-learn.flow.json +9 -1
- package/dist/base/kits/builder/skills/execute-plan/SKILL.md +4 -3
- package/dist/base/kits/builder/skills/pull-work/SKILL.md +12 -0
- package/dist/base/kits/builder/skills/review-work/SKILL.md +11 -0
- package/dist/base/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
- package/dist/base/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
- package/dist/base/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
- package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
- package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
- package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
- package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
- package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
- package/dist/base/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
- package/dist/base/kits/veritas-governance/docs/README.md +141 -10
- package/dist/base/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
- package/dist/base/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
- package/dist/base/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
- package/dist/base/kits/veritas-governance/kit.json +65 -0
- package/dist/base/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
- package/dist/base/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
- package/dist/base/schemas/backlog-provider-settings.schema.json +1 -1
- package/dist/base/schemas/workflow-waves.schema.json +347 -0
- package/dist/base/scripts/check-layer-boundary.mjs +98 -0
- package/dist/base/scripts/hooks/claude-telemetry-hook.js +6 -0
- package/dist/base/scripts/hooks/lib/liveness-heartbeat.js +42 -1
- package/dist/base/scripts/hooks/lib/liveness-write.js +109 -9
- package/dist/base/scripts/liveness/relay.sh +23 -11
- package/dist/base/scripts/telemetry/lib/config.sh +29 -0
- package/dist/catalog.json +2 -0
- package/dist/claude-code/.claude/agents/tool-security-reviewer.md +2 -1
- package/dist/claude-code/.claude/skills/consult-standards/SKILL.md +73 -0
- package/dist/claude-code/.claude/skills/execute-plan/SKILL.md +4 -3
- package/dist/claude-code/.claude/skills/pull-work/SKILL.md +12 -0
- package/dist/claude-code/.claude/skills/review-work/SKILL.md +11 -0
- package/dist/claude-code/.claude/skills/standards-authoring/SKILL.md +87 -0
- package/dist/claude-code/build/package.json +1 -1
- package/dist/claude-code/build/src/cli/init.js +35 -3
- package/dist/claude-code/build/src/cli/kit.js +95 -2
- package/dist/claude-code/build/src/cli/pull-work-provider.js +7 -1
- package/dist/claude-code/build/src/cli/validate-workflow-artifacts.js +53 -0
- package/dist/claude-code/build/src/cli/workflow.js +5 -1
- package/dist/claude-code/build/src/flow-kit/provision.d.ts +23 -0
- package/dist/claude-code/build/src/flow-kit/provision.js +99 -0
- package/dist/claude-code/build/src/flow-kit/validate.d.ts +52 -0
- package/dist/claude-code/build/src/flow-kit/validate.js +214 -9
- package/dist/claude-code/build/src/runtime-adapters.js +1 -1
- package/dist/claude-code/context/contracts/execution-contract.md +30 -1
- package/dist/claude-code/context/contracts/review-contract.md +4 -0
- package/dist/claude-code/context/contracts/trigger-guards.md +73 -0
- package/dist/claude-code/context/scripts/telemetry/lib/config.sh +29 -0
- package/dist/claude-code/context/settings/backlog-provider-settings.json +1 -1
- package/dist/claude-code/context/settings/workspace-backlog-provider-settings.example.json +1 -1
- package/dist/claude-code/docs/adr/0023-kit-provisioning.md +47 -0
- package/dist/claude-code/docs/adr/index.md +1 -0
- package/dist/claude-code/docs/architecture-engine-and-kits.md +17 -0
- package/dist/claude-code/docs/context-map.md +3 -0
- package/dist/claude-code/docs/decisions/backlog-readiness-source.md +89 -0
- package/dist/claude-code/docs/decisions/index.md +1 -0
- package/dist/claude-code/docs/developer-architecture.md +3 -3
- package/dist/claude-code/docs/flow-kit-repository-contract.md +34 -3
- package/dist/claude-code/docs/kit-authoring-guide.md +1 -1
- package/dist/claude-code/docs/veritas-integration.md +12 -0
- package/dist/claude-code/evals/ci/run-baseline.sh +4 -0
- package/dist/claude-code/evals/integration/test_kit_provisioning.sh +112 -0
- package/dist/claude-code/evals/integration/test_liveness_console_relay.sh +91 -1
- package/dist/claude-code/evals/integration/test_liveness_heartbeat.sh +66 -0
- package/dist/claude-code/evals/integration/test_pull_work_provider.sh +18 -0
- package/dist/claude-code/evals/integration/test_veritas_governance_kit.sh +256 -0
- package/dist/claude-code/evals/integration/test_workflow_artifacts.sh +257 -0
- package/dist/claude-code/evals/static/test_package.sh +6 -0
- package/dist/claude-code/evals/static/test_workflow_skills.sh +16 -0
- package/dist/claude-code/install.sh +1 -1
- package/dist/claude-code/kits/builder/flows/publish-learn.flow.json +9 -1
- package/dist/claude-code/kits/builder/skills/execute-plan/SKILL.md +4 -3
- package/dist/claude-code/kits/builder/skills/pull-work/SKILL.md +12 -0
- package/dist/claude-code/kits/builder/skills/review-work/SKILL.md +11 -0
- package/dist/claude-code/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
- package/dist/claude-code/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
- package/dist/claude-code/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
- package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
- package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
- package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
- package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
- package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
- package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
- package/dist/claude-code/kits/veritas-governance/docs/README.md +141 -10
- package/dist/claude-code/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
- package/dist/claude-code/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
- package/dist/claude-code/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
- package/dist/claude-code/kits/veritas-governance/kit.json +65 -0
- package/dist/claude-code/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
- package/dist/claude-code/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
- package/dist/claude-code/schemas/backlog-provider-settings.schema.json +1 -1
- package/dist/claude-code/schemas/workflow-waves.schema.json +347 -0
- package/dist/claude-code/scripts/check-layer-boundary.mjs +98 -0
- package/dist/claude-code/scripts/hooks/claude-telemetry-hook.js +6 -0
- package/dist/claude-code/scripts/hooks/lib/liveness-heartbeat.js +42 -1
- package/dist/claude-code/scripts/hooks/lib/liveness-write.js +109 -9
- package/dist/claude-code/scripts/liveness/relay.sh +23 -11
- package/dist/claude-code/scripts/telemetry/lib/config.sh +29 -0
- package/dist/codex/.agents/skills/builder-shape/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/consult-standards/SKILL.md +73 -0
- package/dist/codex/.agents/skills/deliver/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/design-probe/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/execute-plan/SKILL.md +4 -3
- package/dist/codex/.agents/skills/execute-plan/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/fix-bug/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/idea-to-backlog/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/plan-work/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/pull-work/SKILL.md +12 -0
- package/dist/codex/.agents/skills/pull-work/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/review-work/SKILL.md +11 -0
- package/dist/codex/.agents/skills/review-work/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/standards-authoring/SKILL.md +87 -0
- package/dist/codex/.agents/skills/tdd-workflow/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.agents/skills/verify-work/context/contracts/execution-contract.md +30 -1
- package/dist/codex/.codex/agents/tool-security-reviewer.toml +1 -1
- package/dist/codex/build/package.json +1 -1
- package/dist/codex/build/src/cli/init.js +35 -3
- package/dist/codex/build/src/cli/kit.js +95 -2
- package/dist/codex/build/src/cli/pull-work-provider.js +7 -1
- package/dist/codex/build/src/cli/validate-workflow-artifacts.js +53 -0
- package/dist/codex/build/src/cli/workflow.js +5 -1
- package/dist/codex/build/src/flow-kit/provision.d.ts +23 -0
- package/dist/codex/build/src/flow-kit/provision.js +99 -0
- package/dist/codex/build/src/flow-kit/validate.d.ts +52 -0
- package/dist/codex/build/src/flow-kit/validate.js +214 -9
- package/dist/codex/build/src/runtime-adapters.js +1 -1
- package/dist/codex/context/contracts/execution-contract.md +30 -1
- package/dist/codex/context/contracts/review-contract.md +4 -0
- package/dist/codex/context/contracts/trigger-guards.md +73 -0
- package/dist/codex/context/scripts/telemetry/lib/config.sh +29 -0
- package/dist/codex/context/settings/backlog-provider-settings.json +1 -1
- package/dist/codex/context/settings/workspace-backlog-provider-settings.example.json +1 -1
- package/dist/codex/docs/adr/0023-kit-provisioning.md +47 -0
- package/dist/codex/docs/adr/index.md +1 -0
- package/dist/codex/docs/architecture-engine-and-kits.md +17 -0
- package/dist/codex/docs/context-map.md +3 -0
- package/dist/codex/docs/decisions/backlog-readiness-source.md +89 -0
- package/dist/codex/docs/decisions/index.md +1 -0
- package/dist/codex/docs/developer-architecture.md +3 -3
- package/dist/codex/docs/flow-kit-repository-contract.md +34 -3
- package/dist/codex/docs/kit-authoring-guide.md +1 -1
- package/dist/codex/docs/veritas-integration.md +12 -0
- package/dist/codex/evals/ci/run-baseline.sh +4 -0
- package/dist/codex/evals/integration/test_kit_provisioning.sh +112 -0
- package/dist/codex/evals/integration/test_liveness_console_relay.sh +91 -1
- package/dist/codex/evals/integration/test_liveness_heartbeat.sh +66 -0
- package/dist/codex/evals/integration/test_pull_work_provider.sh +18 -0
- package/dist/codex/evals/integration/test_veritas_governance_kit.sh +256 -0
- package/dist/codex/evals/integration/test_workflow_artifacts.sh +257 -0
- package/dist/codex/evals/static/test_package.sh +6 -0
- package/dist/codex/evals/static/test_workflow_skills.sh +16 -0
- package/dist/codex/install.sh +1 -1
- package/dist/codex/kits/builder/flows/publish-learn.flow.json +9 -1
- package/dist/codex/kits/builder/skills/execute-plan/SKILL.md +4 -3
- package/dist/codex/kits/builder/skills/pull-work/SKILL.md +12 -0
- package/dist/codex/kits/builder/skills/review-work/SKILL.md +11 -0
- package/dist/codex/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
- package/dist/codex/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
- package/dist/codex/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
- package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
- package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
- package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
- package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
- package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
- package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
- package/dist/codex/kits/veritas-governance/docs/README.md +141 -10
- package/dist/codex/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
- package/dist/codex/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
- package/dist/codex/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
- package/dist/codex/kits/veritas-governance/kit.json +65 -0
- package/dist/codex/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
- package/dist/codex/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
- package/dist/codex/schemas/backlog-provider-settings.schema.json +1 -1
- package/dist/codex/schemas/workflow-waves.schema.json +347 -0
- package/dist/codex/scripts/check-layer-boundary.mjs +98 -0
- package/dist/codex/scripts/hooks/claude-telemetry-hook.js +6 -0
- package/dist/codex/scripts/hooks/lib/liveness-heartbeat.js +42 -1
- package/dist/codex/scripts/hooks/lib/liveness-write.js +109 -9
- package/dist/codex/scripts/liveness/relay.sh +23 -11
- package/dist/codex/scripts/telemetry/lib/config.sh +29 -0
- package/dist/kiro/agents/tool-security-reviewer.json +1 -1
- package/dist/kiro/build/package.json +1 -1
- package/dist/kiro/build/src/cli/init.js +35 -3
- package/dist/kiro/build/src/cli/kit.js +95 -2
- package/dist/kiro/build/src/cli/pull-work-provider.js +7 -1
- package/dist/kiro/build/src/cli/validate-workflow-artifacts.js +53 -0
- package/dist/kiro/build/src/cli/workflow.js +5 -1
- package/dist/kiro/build/src/flow-kit/provision.d.ts +23 -0
- package/dist/kiro/build/src/flow-kit/provision.js +99 -0
- package/dist/kiro/build/src/flow-kit/validate.d.ts +52 -0
- package/dist/kiro/build/src/flow-kit/validate.js +214 -9
- package/dist/kiro/build/src/runtime-adapters.js +1 -1
- package/dist/kiro/context/contracts/execution-contract.md +30 -1
- package/dist/kiro/context/contracts/review-contract.md +4 -0
- package/dist/kiro/context/contracts/trigger-guards.md +73 -0
- package/dist/kiro/context/scripts/telemetry/lib/config.sh +29 -0
- package/dist/kiro/context/settings/backlog-provider-settings.json +1 -1
- package/dist/kiro/context/settings/workspace-backlog-provider-settings.example.json +1 -1
- package/dist/kiro/docs/adr/0023-kit-provisioning.md +47 -0
- package/dist/kiro/docs/adr/index.md +1 -0
- package/dist/kiro/docs/architecture-engine-and-kits.md +17 -0
- package/dist/kiro/docs/context-map.md +3 -0
- package/dist/kiro/docs/decisions/backlog-readiness-source.md +89 -0
- package/dist/kiro/docs/decisions/index.md +1 -0
- package/dist/kiro/docs/developer-architecture.md +3 -3
- package/dist/kiro/docs/flow-kit-repository-contract.md +34 -3
- package/dist/kiro/docs/kit-authoring-guide.md +1 -1
- package/dist/kiro/docs/veritas-integration.md +12 -0
- package/dist/kiro/evals/ci/run-baseline.sh +4 -0
- package/dist/kiro/evals/integration/test_kit_provisioning.sh +112 -0
- package/dist/kiro/evals/integration/test_liveness_console_relay.sh +91 -1
- package/dist/kiro/evals/integration/test_liveness_heartbeat.sh +66 -0
- package/dist/kiro/evals/integration/test_pull_work_provider.sh +18 -0
- package/dist/kiro/evals/integration/test_veritas_governance_kit.sh +256 -0
- package/dist/kiro/evals/integration/test_workflow_artifacts.sh +257 -0
- package/dist/kiro/evals/static/test_package.sh +6 -0
- package/dist/kiro/evals/static/test_workflow_skills.sh +16 -0
- package/dist/kiro/install.sh +1 -1
- package/dist/kiro/kits/builder/flows/publish-learn.flow.json +9 -1
- package/dist/kiro/kits/builder/skills/execute-plan/SKILL.md +4 -3
- package/dist/kiro/kits/builder/skills/pull-work/SKILL.md +12 -0
- package/dist/kiro/kits/builder/skills/review-work/SKILL.md +11 -0
- package/dist/kiro/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
- package/dist/kiro/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
- package/dist/kiro/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
- package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
- package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
- package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
- package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
- package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
- package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
- package/dist/kiro/kits/veritas-governance/docs/README.md +141 -10
- package/dist/kiro/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
- package/dist/kiro/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
- package/dist/kiro/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
- package/dist/kiro/kits/veritas-governance/kit.json +65 -0
- package/dist/kiro/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
- package/dist/kiro/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
- package/dist/kiro/schemas/backlog-provider-settings.schema.json +1 -1
- package/dist/kiro/schemas/workflow-waves.schema.json +347 -0
- package/dist/kiro/scripts/check-layer-boundary.mjs +98 -0
- package/dist/kiro/scripts/hooks/claude-telemetry-hook.js +6 -0
- package/dist/kiro/scripts/hooks/lib/liveness-heartbeat.js +42 -1
- package/dist/kiro/scripts/hooks/lib/liveness-write.js +109 -9
- package/dist/kiro/scripts/liveness/relay.sh +23 -11
- package/dist/kiro/scripts/telemetry/lib/config.sh +29 -0
- package/dist/opencode/.opencode/agents/tool-security-reviewer.md +2 -1
- package/dist/opencode/.opencode/skills/consult-standards/SKILL.md +73 -0
- package/dist/opencode/.opencode/skills/execute-plan/SKILL.md +4 -3
- package/dist/opencode/.opencode/skills/pull-work/SKILL.md +12 -0
- package/dist/opencode/.opencode/skills/review-work/SKILL.md +11 -0
- package/dist/opencode/.opencode/skills/standards-authoring/SKILL.md +87 -0
- package/dist/opencode/build/package.json +1 -1
- package/dist/opencode/build/src/cli/init.js +35 -3
- package/dist/opencode/build/src/cli/kit.js +95 -2
- package/dist/opencode/build/src/cli/pull-work-provider.js +7 -1
- package/dist/opencode/build/src/cli/validate-workflow-artifacts.js +53 -0
- package/dist/opencode/build/src/cli/workflow.js +5 -1
- package/dist/opencode/build/src/flow-kit/provision.d.ts +23 -0
- package/dist/opencode/build/src/flow-kit/provision.js +99 -0
- package/dist/opencode/build/src/flow-kit/validate.d.ts +52 -0
- package/dist/opencode/build/src/flow-kit/validate.js +214 -9
- package/dist/opencode/build/src/runtime-adapters.js +1 -1
- package/dist/opencode/context/contracts/execution-contract.md +30 -1
- package/dist/opencode/context/contracts/review-contract.md +4 -0
- package/dist/opencode/context/contracts/trigger-guards.md +73 -0
- package/dist/opencode/context/scripts/telemetry/lib/config.sh +29 -0
- package/dist/opencode/context/settings/backlog-provider-settings.json +1 -1
- package/dist/opencode/context/settings/workspace-backlog-provider-settings.example.json +1 -1
- package/dist/opencode/docs/adr/0023-kit-provisioning.md +47 -0
- package/dist/opencode/docs/adr/index.md +1 -0
- package/dist/opencode/docs/architecture-engine-and-kits.md +17 -0
- package/dist/opencode/docs/context-map.md +3 -0
- package/dist/opencode/docs/decisions/backlog-readiness-source.md +89 -0
- package/dist/opencode/docs/decisions/index.md +1 -0
- package/dist/opencode/docs/developer-architecture.md +3 -3
- package/dist/opencode/docs/flow-kit-repository-contract.md +34 -3
- package/dist/opencode/docs/kit-authoring-guide.md +1 -1
- package/dist/opencode/docs/veritas-integration.md +12 -0
- package/dist/opencode/evals/ci/run-baseline.sh +4 -0
- package/dist/opencode/evals/integration/test_kit_provisioning.sh +112 -0
- package/dist/opencode/evals/integration/test_liveness_console_relay.sh +91 -1
- package/dist/opencode/evals/integration/test_liveness_heartbeat.sh +66 -0
- package/dist/opencode/evals/integration/test_pull_work_provider.sh +18 -0
- package/dist/opencode/evals/integration/test_veritas_governance_kit.sh +256 -0
- package/dist/opencode/evals/integration/test_workflow_artifacts.sh +257 -0
- package/dist/opencode/evals/static/test_package.sh +6 -0
- package/dist/opencode/evals/static/test_workflow_skills.sh +16 -0
- package/dist/opencode/install.sh +1 -1
- package/dist/opencode/kits/builder/flows/publish-learn.flow.json +9 -1
- package/dist/opencode/kits/builder/skills/execute-plan/SKILL.md +4 -3
- package/dist/opencode/kits/builder/skills/pull-work/SKILL.md +12 -0
- package/dist/opencode/kits/builder/skills/review-work/SKILL.md +11 -0
- package/dist/opencode/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
- package/dist/opencode/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
- package/dist/opencode/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
- package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
- package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
- package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
- package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
- package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
- package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
- package/dist/opencode/kits/veritas-governance/docs/README.md +141 -10
- package/dist/opencode/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
- package/dist/opencode/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
- package/dist/opencode/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
- package/dist/opencode/kits/veritas-governance/kit.json +65 -0
- package/dist/opencode/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
- package/dist/opencode/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
- package/dist/opencode/schemas/backlog-provider-settings.schema.json +1 -1
- package/dist/opencode/schemas/workflow-waves.schema.json +347 -0
- package/dist/opencode/scripts/check-layer-boundary.mjs +98 -0
- package/dist/opencode/scripts/hooks/claude-telemetry-hook.js +6 -0
- package/dist/opencode/scripts/hooks/lib/liveness-heartbeat.js +42 -1
- package/dist/opencode/scripts/hooks/lib/liveness-write.js +109 -9
- package/dist/opencode/scripts/liveness/relay.sh +23 -11
- package/dist/opencode/scripts/telemetry/lib/config.sh +29 -0
- package/dist/pi/.pi/skills/consult-standards/SKILL.md +73 -0
- package/dist/pi/.pi/skills/execute-plan/SKILL.md +4 -3
- package/dist/pi/.pi/skills/pull-work/SKILL.md +12 -0
- package/dist/pi/.pi/skills/review-work/SKILL.md +11 -0
- package/dist/pi/.pi/skills/standards-authoring/SKILL.md +87 -0
- package/dist/pi/build/package.json +1 -1
- package/dist/pi/build/src/cli/init.js +35 -3
- package/dist/pi/build/src/cli/kit.js +95 -2
- package/dist/pi/build/src/cli/pull-work-provider.js +7 -1
- package/dist/pi/build/src/cli/validate-workflow-artifacts.js +53 -0
- package/dist/pi/build/src/cli/workflow.js +5 -1
- package/dist/pi/build/src/flow-kit/provision.d.ts +23 -0
- package/dist/pi/build/src/flow-kit/provision.js +99 -0
- package/dist/pi/build/src/flow-kit/validate.d.ts +52 -0
- package/dist/pi/build/src/flow-kit/validate.js +214 -9
- package/dist/pi/build/src/runtime-adapters.js +1 -1
- package/dist/pi/context/contracts/execution-contract.md +30 -1
- package/dist/pi/context/contracts/review-contract.md +4 -0
- package/dist/pi/context/contracts/trigger-guards.md +73 -0
- package/dist/pi/context/scripts/telemetry/lib/config.sh +29 -0
- package/dist/pi/context/settings/backlog-provider-settings.json +1 -1
- package/dist/pi/context/settings/workspace-backlog-provider-settings.example.json +1 -1
- package/dist/pi/docs/adr/0023-kit-provisioning.md +47 -0
- package/dist/pi/docs/adr/index.md +1 -0
- package/dist/pi/docs/architecture-engine-and-kits.md +17 -0
- package/dist/pi/docs/context-map.md +3 -0
- package/dist/pi/docs/decisions/backlog-readiness-source.md +89 -0
- package/dist/pi/docs/decisions/index.md +1 -0
- package/dist/pi/docs/developer-architecture.md +3 -3
- package/dist/pi/docs/flow-kit-repository-contract.md +34 -3
- package/dist/pi/docs/kit-authoring-guide.md +1 -1
- package/dist/pi/docs/veritas-integration.md +12 -0
- package/dist/pi/evals/ci/run-baseline.sh +4 -0
- package/dist/pi/evals/integration/test_kit_provisioning.sh +112 -0
- package/dist/pi/evals/integration/test_liveness_console_relay.sh +91 -1
- package/dist/pi/evals/integration/test_liveness_heartbeat.sh +66 -0
- package/dist/pi/evals/integration/test_pull_work_provider.sh +18 -0
- package/dist/pi/evals/integration/test_veritas_governance_kit.sh +256 -0
- package/dist/pi/evals/integration/test_workflow_artifacts.sh +257 -0
- package/dist/pi/evals/static/test_package.sh +6 -0
- package/dist/pi/evals/static/test_workflow_skills.sh +16 -0
- package/dist/pi/install.sh +1 -1
- package/dist/pi/kits/builder/flows/publish-learn.flow.json +9 -1
- package/dist/pi/kits/builder/skills/execute-plan/SKILL.md +4 -3
- package/dist/pi/kits/builder/skills/pull-work/SKILL.md +12 -0
- package/dist/pi/kits/builder/skills/review-work/SKILL.md +11 -0
- package/dist/pi/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
- package/dist/pi/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
- package/dist/pi/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
- package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
- package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
- package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
- package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
- package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
- package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
- package/dist/pi/kits/veritas-governance/docs/README.md +141 -10
- package/dist/pi/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
- package/dist/pi/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
- package/dist/pi/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
- package/dist/pi/kits/veritas-governance/kit.json +65 -0
- package/dist/pi/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
- package/dist/pi/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
- package/dist/pi/schemas/backlog-provider-settings.schema.json +1 -1
- package/dist/pi/schemas/workflow-waves.schema.json +347 -0
- package/dist/pi/scripts/check-layer-boundary.mjs +98 -0
- package/dist/pi/scripts/hooks/claude-telemetry-hook.js +6 -0
- package/dist/pi/scripts/hooks/lib/liveness-heartbeat.js +42 -1
- package/dist/pi/scripts/hooks/lib/liveness-write.js +109 -9
- package/dist/pi/scripts/liveness/relay.sh +23 -11
- package/dist/pi/scripts/telemetry/lib/config.sh +29 -0
- package/docs/adr/0023-kit-provisioning.md +47 -0
- package/docs/adr/index.md +1 -0
- package/docs/architecture-engine-and-kits.md +17 -0
- package/docs/context-map.md +3 -0
- package/docs/decisions/backlog-readiness-source.md +89 -0
- package/docs/decisions/index.md +1 -0
- package/docs/developer-architecture.md +3 -3
- package/docs/flow-kit-repository-contract.md +34 -3
- package/docs/kit-authoring-guide.md +1 -1
- package/docs/veritas-integration.md +12 -0
- package/evals/ci/run-baseline.sh +4 -0
- package/evals/integration/test_kit_provisioning.sh +112 -0
- package/evals/integration/test_liveness_console_relay.sh +91 -1
- package/evals/integration/test_liveness_heartbeat.sh +66 -0
- package/evals/integration/test_pull_work_provider.sh +18 -0
- package/evals/integration/test_veritas_governance_kit.sh +256 -0
- package/evals/integration/test_workflow_artifacts.sh +257 -0
- package/evals/static/test_package.sh +6 -0
- package/evals/static/test_workflow_skills.sh +16 -0
- package/kits/builder/flows/publish-learn.flow.json +9 -1
- package/kits/builder/skills/execute-plan/SKILL.md +4 -3
- package/kits/builder/skills/pull-work/SKILL.md +12 -0
- package/kits/builder/skills/review-work/SKILL.md +11 -0
- package/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
- package/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
- package/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
- package/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
- package/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
- package/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
- package/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
- package/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
- package/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
- package/kits/veritas-governance/docs/README.md +141 -10
- package/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
- package/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
- package/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
- package/kits/veritas-governance/kit.json +65 -0
- package/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
- package/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
- package/package.json +2 -1
- package/schemas/backlog-provider-settings.schema.json +1 -1
- package/schemas/workflow-waves.schema.json +347 -0
- package/scripts/check-layer-boundary.mjs +98 -0
- package/scripts/hooks/claude-telemetry-hook.js +6 -0
- package/scripts/hooks/lib/liveness-heartbeat.js +42 -1
- package/scripts/hooks/lib/liveness-write.js +109 -9
- package/scripts/liveness/relay.sh +23 -11
- package/scripts/telemetry/lib/config.sh +29 -0
- package/src/cli/builder-flow-runtime.test.mjs +86 -0
- package/src/cli/flow-resolver-composition.test.mjs +20 -1
- package/src/cli/init.ts +31 -3
- package/src/cli/kit-metadata-security.test.mjs +163 -1
- package/src/cli/kit-provisioning.test.mjs +122 -0
- package/src/cli/kit.ts +83 -2
- package/src/cli/pull-work-provider.ts +7 -1
- package/src/cli/validate-waves.test.mjs +134 -0
- package/src/cli/validate-workflow-artifacts.ts +47 -0
- package/src/cli/workflow.ts +7 -1
- package/src/flow-kit/provision.ts +118 -0
- package/src/flow-kit/validate.ts +233 -10
- package/src/runtime-adapters.ts +1 -1
|
@@ -7,26 +7,36 @@
|
|
|
7
7
|
# never forked). The Console side ingests this record type and projects the fleet view + runs the
|
|
8
8
|
# janitor (console repo #125); this script is only the flow-agents EMIT half.
|
|
9
9
|
#
|
|
10
|
-
# STRICTLY OPTIONAL and local-first (ADR 0012 §5): a no-op unless
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
# is
|
|
10
|
+
# STRICTLY OPTIONAL and local-first (ADR 0012 §5): a no-op unless the liveness relay is enabled AND a
|
|
11
|
+
# console endpoint is configured. Enablement is conf-driven (#567, parity with economics #469): an
|
|
12
|
+
# operator sets `console_liveness_relay=1` in the console conf (or it defaults on once a console url
|
|
13
|
+
# resolves) — NOT an env var. config.sh (sourced below) is the authoritative, trust-gated decision
|
|
14
|
+
# and also supplies the endpoint/token/tenant from the conf. Best-effort throughout — it must NEVER
|
|
15
|
+
# block, slow, or fail the local liveness write that already happened before this was invoked. Every
|
|
16
|
+
# failure path is a quiet `exit 0`.
|
|
14
17
|
#
|
|
15
18
|
# Invoked (fully detached, best-effort) from scripts/hooks/lib/liveness-write.js after the durable
|
|
16
19
|
# local append. Usage: relay.sh '<liveness-event-json>'
|
|
17
20
|
set -uo pipefail
|
|
18
21
|
|
|
19
|
-
# Opt-in gate — off by default.
|
|
20
|
-
case "${FLOW_AGENTS_CONSOLE_LIVENESS_RELAY:-}" in
|
|
21
|
-
1 | true | TRUE | yes | on) ;;
|
|
22
|
-
*) exit 0 ;;
|
|
23
|
-
esac
|
|
24
|
-
|
|
25
22
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit 0
|
|
26
23
|
|
|
27
24
|
# transport.sh sources ${TELEMETRY_DIR}/lib/redact.sh at load — point it at the telemetry lib dir,
|
|
28
25
|
# then reuse the SAME console POST core the telemetry mirror uses.
|
|
29
26
|
export TELEMETRY_DIR="${TELEMETRY_DIR:-$SCRIPT_DIR/../telemetry}"
|
|
27
|
+
|
|
28
|
+
# Source config.sh FIRST (best-effort, like economics-record.sh) so the conf resolves enablement
|
|
29
|
+
# (FLOW_AGENTS_CONSOLE_LIVENESS_RELAY) and the endpoint/token/tenant — trust-gated for default-path
|
|
30
|
+
# confs. This is what makes conf-only operation work with NO env var set.
|
|
31
|
+
# shellcheck source=/dev/null
|
|
32
|
+
[[ -f "$TELEMETRY_DIR/lib/config.sh" ]] && source "$TELEMETRY_DIR/lib/config.sh" 2>/dev/null || true
|
|
33
|
+
|
|
34
|
+
# Opt-in gate — off by default, now honoring the conf-derived value config.sh just resolved.
|
|
35
|
+
case "${FLOW_AGENTS_CONSOLE_LIVENESS_RELAY:-}" in
|
|
36
|
+
1 | true | TRUE | yes | on) ;;
|
|
37
|
+
*) exit 0 ;;
|
|
38
|
+
esac
|
|
39
|
+
|
|
30
40
|
[[ -f "$TELEMETRY_DIR/lib/transport.sh" ]] || exit 0
|
|
31
41
|
# shellcheck source=/dev/null
|
|
32
42
|
source "$TELEMETRY_DIR/lib/transport.sh" 2>/dev/null || exit 0
|
|
@@ -73,7 +83,9 @@ record="$(printf '%s' "$event_json" | jq -c '{
|
|
|
73
83
|
ttlSeconds: (.ttlSeconds // null),
|
|
74
84
|
host: (.host // null),
|
|
75
85
|
branch: (.branch // null),
|
|
76
|
-
artifact_dir: (.artifact_dir // .artifactDir // null)
|
|
86
|
+
artifact_dir: (.artifact_dir // .artifactDir // null),
|
|
87
|
+
source: (.source // null),
|
|
88
|
+
activity: (.activity // null)
|
|
77
89
|
}' 2>/dev/null)" || exit 0
|
|
78
90
|
[[ -z "$record" || "$record" == "null" ]] && exit 0
|
|
79
91
|
|
|
@@ -109,6 +109,13 @@ FLOW_AGENTS_CONSOLE_ECONOMICS_ENDPOINT_URL="${FLOW_AGENTS_CONSOLE_ECONOMICS_ENDP
|
|
|
109
109
|
# Set (non-empty) only when the config file carries an explicit console_economics_relay key —
|
|
110
110
|
# distinguishes "operator said 0/1" from "key absent" for the default-on rule below.
|
|
111
111
|
console_economics_relay_raw=""
|
|
112
|
+
# Liveness relay (#567): same conf-driven, opt-out-not-silent-off shape as economics (#469) so an
|
|
113
|
+
# operator enables the hosted liveness mirror via console_liveness_relay=1 in the conf, NOT an env
|
|
114
|
+
# var/.profile. A caller-pre-set env var is the starting point; the config key overrides it; absent
|
|
115
|
+
# any key the default-on rule below turns it on once a console telemetry sink resolves.
|
|
116
|
+
FLOW_AGENTS_CONSOLE_LIVENESS_RELAY="${FLOW_AGENTS_CONSOLE_LIVENESS_RELAY:-}"
|
|
117
|
+
FLOW_AGENTS_CONSOLE_LIVENESS_ENDPOINT_URL="${FLOW_AGENTS_CONSOLE_LIVENESS_ENDPOINT_URL:-}"
|
|
118
|
+
console_liveness_relay_raw=""
|
|
112
119
|
# Pricing registry source (consumed by lib/pricing.sh). Explicit file/URL win;
|
|
113
120
|
# otherwise lib/pricing.sh uses the bundled pricing.json offline.
|
|
114
121
|
TELEMETRY_PRICING_FILE="${TELEMETRY_PRICING_FILE:-${FLOW_AGENTS_PRICING_FILE:-}}"
|
|
@@ -164,6 +171,17 @@ if [[ -f "$TELEMETRY_CONFIG_FILE" ]]; then
|
|
|
164
171
|
esac
|
|
165
172
|
;;
|
|
166
173
|
console_economics_endpoint_url) FLOW_AGENTS_CONSOLE_ECONOMICS_ENDPOINT_URL="$value" ;;
|
|
174
|
+
console_liveness_relay)
|
|
175
|
+
case "$(echo "$value" | tr '[:upper:]' '[:lower:]')" in
|
|
176
|
+
1|true|yes|on) console_liveness_relay_raw="1" ;;
|
|
177
|
+
0|false|no|off) console_liveness_relay_raw="0" ;;
|
|
178
|
+
*)
|
|
179
|
+
printf 'warning: config.sh: unrecognized console_liveness_relay value %q; treating as off\n' "$value" >&2
|
|
180
|
+
console_liveness_relay_raw="$value"
|
|
181
|
+
;;
|
|
182
|
+
esac
|
|
183
|
+
;;
|
|
184
|
+
console_liveness_endpoint_url) FLOW_AGENTS_CONSOLE_LIVENESS_ENDPOINT_URL="$value" ;;
|
|
167
185
|
console_pricing_url) TELEMETRY_PRICING_URL="$value" ;;
|
|
168
186
|
pricing_url) TELEMETRY_PRICING_URL="$value" ;;
|
|
169
187
|
pricing_file) TELEMETRY_PRICING_FILE="$value" ;;
|
|
@@ -186,6 +204,17 @@ elif [[ -z "$FLOW_AGENTS_CONSOLE_ECONOMICS_RELAY" \
|
|
|
186
204
|
FLOW_AGENTS_CONSOLE_ECONOMICS_RELAY=1
|
|
187
205
|
fi
|
|
188
206
|
|
|
207
|
+
# Liveness relay default-on rule (#567), identical shape to economics above: an explicit
|
|
208
|
+
# console_liveness_relay config key always wins; otherwise, once a console telemetry sink resolves,
|
|
209
|
+
# the relay defaults ON unless a caller already pre-set FLOW_AGENTS_CONSOLE_LIVENESS_RELAY in the
|
|
210
|
+
# environment. relay.sh's own opt-in gate reads this exact variable.
|
|
211
|
+
if [[ -n "$console_liveness_relay_raw" ]]; then
|
|
212
|
+
FLOW_AGENTS_CONSOLE_LIVENESS_RELAY="$console_liveness_relay_raw"
|
|
213
|
+
elif [[ -z "$FLOW_AGENTS_CONSOLE_LIVENESS_RELAY" \
|
|
214
|
+
&& ( -n "${CONSOLE_TELEMETRY_URL:-}" || -n "${CONSOLE_TELEMETRY_ENDPOINT_URL:-}" ) ]]; then
|
|
215
|
+
FLOW_AGENTS_CONSOLE_LIVENESS_RELAY=1
|
|
216
|
+
fi
|
|
217
|
+
|
|
189
218
|
# Pricing URL is explicit-only (env or config). Do not derive the console
|
|
190
219
|
# pricing endpoint by default; the bundled registry is the reliable offline floor.
|
|
191
220
|
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "consult-standards"
|
|
3
|
+
description: "Get just-in-time Veritas governance guidance for a file or work area before editing it: run `veritas explain --file <path>` (or `--work-area <id>`) to see the governance excerpt, the Repo Standards rules that apply, their do/don't/examples, and the latest recorded surface status — then edit within those rules. Use before changing a governed repo's files, or when you want to know what standards apply to a path. Pull-based guidance; it does not block (the PreToolUse hook is the enforcement gate)."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Consult Standards
|
|
7
|
+
|
|
8
|
+
Before you edit a file in a Veritas-governed repo, ask Veritas what applies to it. `veritas
|
|
9
|
+
explain` projects the repo's governance excerpt + the Repo Standards rules matching that file (or
|
|
10
|
+
work area) + their latest surface status into one just-in-time briefing — so you edit *within* the
|
|
11
|
+
rules instead of discovering a violation only when the PreToolUse hook blocks the write.
|
|
12
|
+
|
|
13
|
+
**This skill wraps the `veritas` CLI. It reimplements no rule evaluation** — `veritas explain`
|
|
14
|
+
does the matching and projection; the skill only tells you when and how to ask.
|
|
15
|
+
|
|
16
|
+
## When to use this
|
|
17
|
+
|
|
18
|
+
- **Before editing** a file in a repo that has a `.veritas/` governance config — especially a
|
|
19
|
+
file under a governed work area, or one you haven't touched before.
|
|
20
|
+
- **When you want to know what standards apply** to a path or area without reading every rule in
|
|
21
|
+
`.veritas/repo-standards/` yourself.
|
|
22
|
+
- Not a gate: this is **pull-based** guidance you invoke. Enforcement is separate and automatic —
|
|
23
|
+
the Veritas PreToolUse hook (engine-side; installed via the kit's governance hooks) evaluates
|
|
24
|
+
and can *block* a non-conforming write whether or not you consulted first. Consulting first
|
|
25
|
+
means you shape the edit to pass, rather than getting blocked and retrying.
|
|
26
|
+
|
|
27
|
+
## How to consult
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# For a specific file you're about to change:
|
|
31
|
+
veritas explain --file src/path/to/file.ts
|
|
32
|
+
|
|
33
|
+
# For a whole work area (a Repo Map graph node id):
|
|
34
|
+
veritas explain --work-area <work-area-id>
|
|
35
|
+
|
|
36
|
+
# Or pass a bare selector (auto-classified as a rule id, a file path if it contains '/', or a work-area token):
|
|
37
|
+
veritas explain src/path/to/file.ts
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
`veritas explain` prints a **`Veritas JIT Context`** briefing:
|
|
41
|
+
|
|
42
|
+
- **`Governance:`** — the leading lines of `.veritas/GOVERNANCE.md` (the repo's terse governance rules).
|
|
43
|
+
- One block per **matching rule**: `Rule` / `Kind` / `Enforcement Level` (`Require` / `Guide` / …) /
|
|
44
|
+
`Summary` / `Do` / `Do not` / `Good` / `Bad` / `Context`.
|
|
45
|
+
- **`Surface status:`** — the latest recorded status for that rule from the evidence artifacts
|
|
46
|
+
(e.g. `verified`), plus any `Surface fault:` transparency-gap lines.
|
|
47
|
+
|
|
48
|
+
Read the matching rules, honor their `Do`/`Do not`, and keep the change inside the work area's
|
|
49
|
+
guidance. `No matching requirement found.` means no additional Repo Standard applies to that path
|
|
50
|
+
— proceed normally, it is not an error.
|
|
51
|
+
|
|
52
|
+
## Source of truth
|
|
53
|
+
|
|
54
|
+
`veritas explain` is a *projection* of the repo's own governance config. When you want the raw
|
|
55
|
+
standards rather than the filtered view, read them directly — they are the source `explain` reads:
|
|
56
|
+
|
|
57
|
+
- `.veritas/GOVERNANCE.md` — the terse agent-facing governance rules.
|
|
58
|
+
- `.veritas/repo-standards/*.json` — the Repo Standards (each rule's `summary` / `mustDo` /
|
|
59
|
+
`mustNotDo` / `exampleGood` / `exampleBad` / `contextLinks`).
|
|
60
|
+
- `.veritas/repo-map.json` — the work-area graph `--work-area` selects against.
|
|
61
|
+
|
|
62
|
+
## Contract
|
|
63
|
+
|
|
64
|
+
- **Read-only advisory.** This skill runs `veritas explain`, which reads config and evidence and
|
|
65
|
+
writes nothing. It never gates, never blocks, never attaches evidence, and has no pass/fail
|
|
66
|
+
verdict — it surfaces guidance, full stop. Enforcement stays the PreToolUse hook (engine-side).
|
|
67
|
+
- **No MCP server.** Just-in-time guidance here is agent-invoked CLI (`veritas explain`), not a
|
|
68
|
+
standing MCP service. Per the flow-agents MCP posture (ADR 0011), MCP never carries the gate and
|
|
69
|
+
enforcement stays hooks; this skill is the deliberate agent-pull replacement for a guidance
|
|
70
|
+
server, not a new server.
|
|
71
|
+
- **Wraps the engine; reimplements nothing.** All rule matching, governance projection, and
|
|
72
|
+
surface-status lookup live in `@kontourai/veritas` (`veritas explain` / `src/explain.mjs`). The
|
|
73
|
+
skill adds no evaluation logic.
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -11,7 +11,7 @@ Implement an approved plan while preserving scope, traceability, and recovery co
|
|
|
11
11
|
|
|
12
12
|
- **Role:** canonical Builder build-step producer and standalone execution primitive.
|
|
13
13
|
- **Binding:** `builder.build` step `execute`.
|
|
14
|
-
- **Produces:** the active session execution report (`<slug>--deliver.md`), `state.json`, and `implementation-scope` for an active matching run.
|
|
14
|
+
- **Produces:** the active session execution report (`<slug>--deliver.md`), `state.json`, the wave manifest (`waves.json`) for delegated waves, and `implementation-scope` for an active matching run.
|
|
15
15
|
- **Standalone no-run behavior:** execute the supplied plan and return execution evidence. Do not start a Builder run, record Builder evidence, or imply that an inactive Builder flow advanced.
|
|
16
16
|
|
|
17
17
|
## Model Routing
|
|
@@ -33,8 +33,8 @@ Use `RepositoryAdapter` for repository, target revision, worktree, and changed-f
|
|
|
33
33
|
|
|
34
34
|
1. Read the plan. Return it to `plan-work` when it lacks a Definition Of Done, stable acceptance criteria, task mapping, sandbox boundary, or usable execution scope.
|
|
35
35
|
2. Before delegation, compare the current target revision with the plan's base through `RepositoryAdapter`. Re-ground the plan when changed scope intersects its assumptions; record missing confirmation as `NOT_VERIFIED` rather than treating it as fresh.
|
|
36
|
-
3.
|
|
37
|
-
4. Run safe independent tasks concurrently and dependent tasks in order. Between waves, collect
|
|
36
|
+
3. Before dispatching a wave that delegates work, declare it in the session's wave manifest (`waves.json`, schema `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one `expected_workers` entry per worker, so the expected worker count (M) exists before any result arrives. Then give each worker its bounded task, owned files, relevant acceptance IDs, required evidence, sandbox/worktree constraints, rollback conditions, and plan reference.
|
|
37
|
+
4. Run safe independent tasks concurrently and dependent tasks in order. Between waves, reconcile results against the wave manifest — never collect from memory or prose. Every declared worker must land exactly one terminal status record (`completed`, `failed`, or `blocked`). Record each declared worker that has no terminal record as `not_reported` — never silently absorb a missing worker — then record the wave's `reconciliation` with an explicit "N of M reported" summary naming the `not_reported` workers (for example "2 of 3 reported; worker-3 not_reported"). Treat the wave as complete only when N equals M; an incomplete wave is visible data that routes to re-dispatch, a blocker, or an explicit accepted gap. After reconciliation, resolve conflicts and update the execution record with completed work, remaining work, changed files, and supported acceptance criteria.
|
|
38
38
|
5. For UI tasks, include the applicable frontend design guidance in the worker instruction.
|
|
39
39
|
6. When implementation completes, record scope integrity: changed files, accepted deviations, task-to-criterion traceability, evidence, and outstanding gaps. Hand off to report-only review and verification; do not treat implementation as verification.
|
|
40
40
|
7. Reconcile the execution report and `state.json` with the active session artifact directory.
|
|
@@ -49,6 +49,7 @@ The execution record must identify:
|
|
|
49
49
|
- each completed task and its supported `AC*` identifiers
|
|
50
50
|
- changed files and any scope deviation with approval or route-back reason
|
|
51
51
|
- worker evidence, conflicts, rollback notes, remaining work, and next action
|
|
52
|
+
- per-wave reconciliation against the manifest: "N of M reported" and any `not_reported` workers with their recovery route
|
|
52
53
|
- current revision comparison and re-grounding decision
|
|
53
54
|
|
|
54
55
|
## Active Builder Evidence
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -32,6 +32,18 @@ Select ready backlog work and prepare a bounded handoff without implementing it.
|
|
|
32
32
|
|
|
33
33
|
An optional GitHub adapter may implement these interfaces. Do not require GitHub issue numbers, labels, Projects, pull requests, `gh`, or provider-native dependency APIs.
|
|
34
34
|
|
|
35
|
+
### Readiness Source Integrity
|
|
36
|
+
|
|
37
|
+
A configured `BoardProvider` is the canonical Backlog Readiness Source
|
|
38
|
+
(`docs/decisions/backlog-readiness-source.md`). When the configured board
|
|
39
|
+
yields zero ready items or cannot be read, record the provider warning
|
|
40
|
+
(`zero_ready_items`, or the read failure) in the pull-work artifact and route
|
|
41
|
+
to triage/intake for an explicit readiness decision. Never silently
|
|
42
|
+
substitute `WorkItemProvider` issue-level listing for board-driven selection:
|
|
43
|
+
a deliberate issue-listing pass must carry the `board_provider_bypassed`
|
|
44
|
+
warning it received into the artifact, with the reason the board was
|
|
45
|
+
bypassed.
|
|
46
|
+
|
|
35
47
|
## Model Routing
|
|
36
48
|
|
|
37
49
|
For board scans, WIP assessment, dependency joins, and selection bookkeeping, resolve `delegate-mechanical` from `.datum/config.json`. If unavailable, inherit the session model and record the fallback.
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|
|
@@ -58,6 +58,17 @@ fallback or escalation in the critique artifact.
|
|
|
58
58
|
security-policy changes.
|
|
59
59
|
- `tool-dependencies-updater` for dependency-manifest, lockfile, or dependency-tooling changes.
|
|
60
60
|
- A configured domain or policy reviewer when the repository requires one.
|
|
61
|
+
|
|
62
|
+
When review fans out to delegated reviewer lanes, declare the fan-out in the
|
|
63
|
+
session's wave manifest (`waves.json`, schema
|
|
64
|
+
`schemas/workflow-waves.schema.json`, step `review`) with one
|
|
65
|
+
`expected_workers` entry per reviewer lane before dispatch. Reconcile against
|
|
66
|
+
that manifest at collection — "N of M reported" — instead of collecting from
|
|
67
|
+
memory: every declared reviewer lands exactly one terminal status record;
|
|
68
|
+
record a reviewer that never reports as `not_reported` in the manifest —
|
|
69
|
+
never silently absorb it — and carry that lane into the critique as
|
|
70
|
+
`not_verified` with the missing report named. A missing reviewer is never a
|
|
71
|
+
clean lane.
|
|
61
72
|
3. Use repository-provided scanners and checks when applicable. Do not install
|
|
62
73
|
a scanner, silently substitute a different one, or mark an unavailable
|
|
63
74
|
required lane clean; record the lane as `NOT_VERIFIED` with the missing
|
|
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
|
|
|
42
42
|
- Independent tasks with no shared files can run in the same wave.
|
|
43
43
|
- Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
|
|
44
44
|
- Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
|
|
45
|
-
- After each wave,
|
|
45
|
+
- After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
|
|
46
|
+
|
|
47
|
+
## Wave Manifest And Reconciliation
|
|
48
|
+
|
|
49
|
+
Fan-out collection is machine-checkable, not prose. A reduce step that silently
|
|
50
|
+
drops a worker's stream is worse than one that errors.
|
|
51
|
+
|
|
52
|
+
- **Declare before dispatch.** Before dispatching a wave that delegates work,
|
|
53
|
+
declare it in the session's `waves.json` sidecar (schema:
|
|
54
|
+
`schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
|
|
55
|
+
`expected_workers` entry per worker. The expected count (M) must exist before
|
|
56
|
+
any result arrives.
|
|
57
|
+
- **One terminal record per worker.** Each worker lands exactly one terminal
|
|
58
|
+
status record: `completed`, `failed`, or `blocked`. Duplicate records and
|
|
59
|
+
undeclared reporters are validation errors.
|
|
60
|
+
- **Reconcile at wave close.** The orchestrator's collect step is
|
|
61
|
+
reconcile-against-manifest: record every declared worker that has no terminal
|
|
62
|
+
record as `not_reported` — never silently absorb a missing worker — then
|
|
63
|
+
record the wave's `reconciliation` with `expected_count` M, `reported_count`
|
|
64
|
+
N, and an explicit "N of M reported" summary naming the `not_reported`
|
|
65
|
+
workers (for example "2 of 3 reported; worker-3 not_reported").
|
|
66
|
+
- **Incomplete is visible, never silent.** A wave is `complete` only when N
|
|
67
|
+
equals M. An incomplete wave stays visible data and routes to re-dispatch, a
|
|
68
|
+
blocker report, or an explicit accepted gap; it must never be treated as
|
|
69
|
+
complete because the missing worker was forgotten.
|
|
70
|
+
- **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
|
|
71
|
+
the shape and the cross-record arithmetic (counts, exactly-one-record,
|
|
72
|
+
undeclared reporters, impossible `complete` claims) as data-level validation.
|
|
73
|
+
Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
|
|
74
|
+
the hook correctness issues (#453/#450/#494) are resolved.
|
|
46
75
|
|
|
47
76
|
## Delegation: Model Routing
|
|
48
77
|
|