@kontourai/flow-agents 0.1.1
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/.githooks/pre-push +11 -0
- package/.github/workflows/ci.yml +210 -0
- package/.github/workflows/docs-pages.yml +52 -0
- package/.github/workflows/publish-npm.yml +104 -0
- package/AGENTS.md +26 -0
- package/CHANGELOG.md +66 -0
- package/CODE_OF_CONDUCT.md +25 -0
- package/CONTEXT.md +300 -0
- package/CONTRIBUTING.md +44 -0
- package/LICENSE +201 -0
- package/README.md +129 -0
- package/SECURITY.md +33 -0
- package/agent-cards/dev.json +19 -0
- package/agents/dev.json +127 -0
- package/agents/tool-code-reviewer.json +61 -0
- package/agents/tool-dependencies-updater.json +118 -0
- package/agents/tool-explore-config.json +92 -0
- package/agents/tool-explore-deps.json +92 -0
- package/agents/tool-explore-entry.json +92 -0
- package/agents/tool-explore-patterns.json +92 -0
- package/agents/tool-explore-structure.json +92 -0
- package/agents/tool-explore-tests.json +92 -0
- package/agents/tool-planner.json +57 -0
- package/agents/tool-playwright.json +145 -0
- package/agents/tool-security-reviewer.json +56 -0
- package/agents/tool-verifier.json +61 -0
- package/agents/tool-worker.json +58 -0
- package/build/src/cli/console-learning-projection.js +123 -0
- package/build/src/cli/docs-preview.js +39 -0
- package/build/src/cli/effective-backlog-settings.js +102 -0
- package/build/src/cli/export-bookmarks.js +38 -0
- package/build/src/cli/fixture-retirement-audit.js +140 -0
- package/build/src/cli/flow-kit.js +138 -0
- package/build/src/cli/import-bookmarks.js +50 -0
- package/build/src/cli/init.js +239 -0
- package/build/src/cli/instinct-cli.js +93 -0
- package/build/src/cli/promote-workflow-artifact.js +63 -0
- package/build/src/cli/publish-change-helper.js +154 -0
- package/build/src/cli/pull-work-provider.js +469 -0
- package/build/src/cli/runtime-adapter.js +23 -0
- package/build/src/cli/telemetry-doctor.js +221 -0
- package/build/src/cli/usage-feedback.js +443 -0
- package/build/src/cli/validate-hook-influence.js +152 -0
- package/build/src/cli/validate-source-tree.js +31 -0
- package/build/src/cli/validate-workflow-artifacts.js +486 -0
- package/build/src/cli/veritas-governance.js +262 -0
- package/build/src/cli/workflow-artifact-cleanup-audit.js +272 -0
- package/build/src/cli/workflow-sidecar.js +816 -0
- package/build/src/cli.js +89 -0
- package/build/src/flow-kit/validate.js +75 -0
- package/build/src/lib/args.js +45 -0
- package/build/src/lib/fs.js +62 -0
- package/build/src/lib/workflow-learning-projection.js +334 -0
- package/build/src/runtime-adapters.js +146 -0
- package/build/src/tools/build-universal-bundles.js +397 -0
- package/build/src/tools/common.js +56 -0
- package/build/src/tools/filter-installed-packs.js +132 -0
- package/build/src/tools/generate-context-map.js +198 -0
- package/build/src/tools/validate-package.js +64 -0
- package/build/src/tools/validate-source-tree.js +622 -0
- package/console.telemetry.json +176 -0
- package/context/base-rules.md +17 -0
- package/context/code-review-standards.md +62 -0
- package/context/coding-standards.md +42 -0
- package/context/common/orchestrators.md +12 -0
- package/context/common/subagents.md +28 -0
- package/context/contracts/artifact-contract.md +182 -0
- package/context/contracts/builder-kit-workflow-state-contract.md +319 -0
- package/context/contracts/delivery-contract.md +69 -0
- package/context/contracts/execution-contract.md +53 -0
- package/context/contracts/governance-adapter-contract.md +67 -0
- package/context/contracts/planning-contract.md +85 -0
- package/context/contracts/review-contract.md +104 -0
- package/context/contracts/sandbox-policy.md +52 -0
- package/context/contracts/verification-contract.md +134 -0
- package/context/contracts/work-item-contract.md +215 -0
- package/context/deferred/demo-mode.md +33 -0
- package/context/deferred/languages/go.md +31 -0
- package/context/deferred/languages/python.md +31 -0
- package/context/deferred/languages/typescript.md +34 -0
- package/context/deferred/parallelization.md +35 -0
- package/context/deferred/worktree-isolation.md +24 -0
- package/context/development-workflow.md +50 -0
- package/context/scripts/context-budget/budget-scan.sh +166 -0
- package/context/scripts/detect-tools.sh +3 -0
- package/context/scripts/discover-agents.sh +28 -0
- package/context/scripts/git-status.sh +49 -0
- package/context/scripts/hooks/config-protection.js +79 -0
- package/context/scripts/hooks/desktop-notify.sh +39 -0
- package/context/scripts/hooks/governance-audit.sh +135 -0
- package/context/scripts/hooks/lib/audit-transport.sh +40 -0
- package/context/scripts/hooks/lib/hook-flags.js +49 -0
- package/context/scripts/hooks/lib/patterns.sh +57 -0
- package/context/scripts/hooks/lib/resolve-formatter.js +80 -0
- package/context/scripts/hooks/post-edit-accumulator.js +66 -0
- package/context/scripts/hooks/pre-commit-quality.js +194 -0
- package/context/scripts/hooks/quality-gate.js +93 -0
- package/context/scripts/hooks/report-only-guard.js +21 -0
- package/context/scripts/hooks/run-hook.js +136 -0
- package/context/scripts/hooks/stop-format-typecheck.js +141 -0
- package/context/scripts/hooks/stop-goal-fit.js +337 -0
- package/context/scripts/hooks/workflow-steering.js +250 -0
- package/context/scripts/telemetry/console-presets.sh +14 -0
- package/context/scripts/telemetry/install-console-config.sh +214 -0
- package/context/scripts/telemetry/lib/config.sh +85 -0
- package/context/scripts/telemetry/lib/enrich.sh +115 -0
- package/context/scripts/telemetry/lib/redact.sh +22 -0
- package/context/scripts/telemetry/lib/session.sh +63 -0
- package/context/scripts/telemetry/lib/transport.sh +183 -0
- package/context/scripts/telemetry/lib/usage.sh +29 -0
- package/context/scripts/telemetry/sync-agents.sh +173 -0
- package/context/scripts/telemetry/telemetry.conf +23 -0
- package/context/scripts/telemetry/telemetry.sh +387 -0
- package/context/scripts/validate-package.sh +89 -0
- package/context/settings/backlog-provider-settings.json +54 -0
- package/context/templates/core/identity.md +26 -0
- package/context/templates/core/user.md +15 -0
- package/docs/_config.yml +15 -0
- package/docs/_layouts/default.html +87 -0
- package/docs/adr/0001-flow-agents-consumes-flow.md +77 -0
- package/docs/adr/0002-flow-kits-as-extension-unit.md +13 -0
- package/docs/adr/0003-flow-agents-coordinates-kits-and-adapters.md +13 -0
- package/docs/adr/0004-gates-expect-surface-claims.md +15 -0
- package/docs/adr/0005-kubernetes-inspired-resource-contracts.md +48 -0
- package/docs/adr/0006-typescript-first-source-policy.md +98 -0
- package/docs/agent-system-guidebook.md +391 -0
- package/docs/agent-usage-feedback-loop.md +351 -0
- package/docs/assets/favicon.svg +13 -0
- package/docs/assets/og-image.png +0 -0
- package/docs/assets/site.css +774 -0
- package/docs/assets/site.js +139 -0
- package/docs/configurable-workflow-routing.md +174 -0
- package/docs/context-map.md +145 -0
- package/docs/developer-architecture.md +145 -0
- package/docs/developer-hook-setup.md +61 -0
- package/docs/fixture-ownership.md +44 -0
- package/docs/flow-kit-repository-contract.md +180 -0
- package/docs/index.md +129 -0
- package/docs/kontour-resource-contract.md +358 -0
- package/docs/migrations.md +64 -0
- package/docs/north-star.md +322 -0
- package/docs/operating-layers.md +110 -0
- package/docs/repository-structure.md +132 -0
- package/docs/sandbox-policy.md +56 -0
- package/docs/skills-map.md +203 -0
- package/docs/standards-register.md +96 -0
- package/docs/veritas-integration.md +165 -0
- package/docs/work-item-adapters.md +72 -0
- package/docs/workflow-artifact-lifecycle.md +141 -0
- package/docs/workflow-eval-strategy.md +295 -0
- package/docs/workflow-shared-contracts.md +51 -0
- package/docs/workflow-usage-guide.md +443 -0
- package/evals/ARCHITECTURE.md +143 -0
- package/evals/CONVENTIONS.md +58 -0
- package/evals/README.md +128 -0
- package/evals/acceptance/run.sh +29 -0
- package/evals/acceptance/test_claude_harness.sh +242 -0
- package/evals/acceptance/test_codex_harness.sh +108 -0
- package/evals/acceptance/test_kiro_harness.sh +128 -0
- package/evals/cases/dev/404.html +97 -0
- package/evals/cases/dev/code-review.yaml +44 -0
- package/evals/cases/dev/dashboard.html +300 -0
- package/evals/cases/dev/deliver.yaml +66 -0
- package/evals/cases/dev/dependency-update.yaml +16 -0
- package/evals/cases/dev/explore.yaml +20 -0
- package/evals/cases/dev/index.html +370 -0
- package/evals/cases/dev/package-lock.json +28 -0
- package/evals/cases/dev/package.json +16 -0
- package/evals/cases/dev/plan-work.yaml +20 -0
- package/evals/cases/dev/promptfooconfig.yaml +666 -0
- package/evals/cases/dev/search-first.yaml +20 -0
- package/evals/cases/dev/tdd-workflow.yaml +48 -0
- package/evals/cases/dev/verify-work.yaml +44 -0
- package/evals/cases/dev/workflow.yaml +34 -0
- package/evals/ci/run-baseline.sh +283 -0
- package/evals/fixtures/backlog-provider-settings/global-default.json +44 -0
- package/evals/fixtures/backlog-provider-settings/project-override.json +53 -0
- package/evals/fixtures/builder-kit-workflow-state/baseline-freshness-resolution-hint.json +139 -0
- package/evals/fixtures/builder-kit-workflow-state/direct-primitive-stop.json +59 -0
- package/evals/fixtures/builder-kit-workflow-state/empty-board-route-shape.json +55 -0
- package/evals/fixtures/builder-kit-workflow-state/happy-path.json +71 -0
- package/evals/fixtures/builder-kit-workflow-state/mid-work-resume.json +80 -0
- package/evals/fixtures/builder-kit-workflow-state/missing-prestep-recovery.json +65 -0
- package/evals/fixtures/builder-kit-workflow-state/product-build-chaining.json +60 -0
- package/evals/fixtures/builder-kit-workflow-state/stale-continuation-requires-new-probe.json +57 -0
- package/evals/fixtures/console-learning-projection/artifacts/console-learning-correction/learning.json +50 -0
- package/evals/fixtures/console-learning-projection/artifacts/console-learning-open-route/learning.json +41 -0
- package/evals/fixtures/flow-kit-repository/invalid-absolute-path/kit.json +8 -0
- package/evals/fixtures/flow-kit-repository/invalid-asset-section/flows/review.flow.json +6 -0
- package/evals/fixtures/flow-kit-repository/invalid-asset-section/kit.json +11 -0
- package/evals/fixtures/flow-kit-repository/invalid-duplicate-flow/flows/review.flow.json +6 -0
- package/evals/fixtures/flow-kit-repository/invalid-duplicate-flow/kit.json +9 -0
- package/evals/fixtures/flow-kit-repository/invalid-id/flows/review.flow.json +6 -0
- package/evals/fixtures/flow-kit-repository/invalid-id/kit.json +8 -0
- package/evals/fixtures/flow-kit-repository/invalid-malformed-json/kit.json +8 -0
- package/evals/fixtures/flow-kit-repository/invalid-missing-flow/kit.json +8 -0
- package/evals/fixtures/flow-kit-repository/invalid-missing-id/flows/review.flow.json +6 -0
- package/evals/fixtures/flow-kit-repository/invalid-missing-id/kit.json +7 -0
- package/evals/fixtures/flow-kit-repository/invalid-missing-schema-version/flows/review.flow.json +6 -0
- package/evals/fixtures/flow-kit-repository/invalid-missing-schema-version/kit.json +7 -0
- package/evals/fixtures/flow-kit-repository/invalid-name/flows/review.flow.json +6 -0
- package/evals/fixtures/flow-kit-repository/invalid-name/kit.json +8 -0
- package/evals/fixtures/flow-kit-repository/invalid-schema-version/flows/review.flow.json +6 -0
- package/evals/fixtures/flow-kit-repository/invalid-schema-version/kit.json +8 -0
- package/evals/fixtures/flow-kit-repository/invalid-traversal/kit.json +8 -0
- package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/adapters/example.json +3 -0
- package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/assets/example.txt +1 -0
- package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/docs/README.md +3 -0
- package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/flows/runtime.flow.json +26 -0
- package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/kit-evals/example.json +3 -0
- package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/kit-skills/mixed/SKILL.md +3 -0
- package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/kit.json +44 -0
- package/evals/fixtures/flow-kit-repository/valid-local-kit/docs/README.md +3 -0
- package/evals/fixtures/flow-kit-repository/valid-local-kit/flows/review.flow.json +26 -0
- package/evals/fixtures/flow-kit-repository/valid-local-kit/kit.json +20 -0
- package/evals/fixtures/hook-influence/cases.json +336 -0
- package/evals/fixtures/pull-work-provider/github-issues.json +170 -0
- package/evals/fixtures/pull-work-wip-shepherding/global-wip-informs.json +43 -0
- package/evals/fixtures/pull-work-wip-shepherding/personal-wip-blocks.json +42 -0
- package/evals/fixtures/surface-trust/accepted-claim-trust-report.json +31 -0
- package/evals/fixtures/surface-trust/artifact-absent.json +19 -0
- package/evals/fixtures/surface-trust/integrity-mismatch-trust-report.json +32 -0
- package/evals/fixtures/surface-trust/missing-authority-trust-report.json +27 -0
- package/evals/fixtures/surface-trust/provider-absent.json +19 -0
- package/evals/fixtures/surface-trust/rejected-claim-trust-report.json +30 -0
- package/evals/fixtures/surface-trust/stale-claim-trust-snapshot.json +31 -0
- package/evals/fixtures/usage-feedback/sample-full.jsonl +11 -0
- package/evals/fixtures/usage-feedback/sample-outcomes.jsonl +1 -0
- package/evals/fixtures/veritas-governance-adapter/fake-veritas-pass.sh +18 -0
- package/evals/fixtures/veritas-governance-adapter/fake-veritas-secret-fail.sh +10 -0
- package/evals/fixtures/veritas-governance-adapter/fake-veritas-unconfigured.sh +4 -0
- package/evals/integration/test_bundle_install.sh +541 -0
- package/evals/integration/test_console_learning_projection.sh +192 -0
- package/evals/integration/test_context_map.sh +65 -0
- package/evals/integration/test_effective_backlog_settings.sh +58 -0
- package/evals/integration/test_fixture_retirement_audit.sh +58 -0
- package/evals/integration/test_flow_agents_statusline.sh +93 -0
- package/evals/integration/test_flow_kit_repository.sh +90 -0
- package/evals/integration/test_goal_fit_hook.sh +482 -0
- package/evals/integration/test_hook_category_behaviors.sh +190 -0
- package/evals/integration/test_hook_influence_cases.sh +69 -0
- package/evals/integration/test_local_flow_kit_install.sh +145 -0
- package/evals/integration/test_publish_change_helper.sh +176 -0
- package/evals/integration/test_pull_work_provider.sh +140 -0
- package/evals/integration/test_runtime_adapter_activation.sh +106 -0
- package/evals/integration/test_telemetry.sh +485 -0
- package/evals/integration/test_telemetry_doctor.sh +193 -0
- package/evals/integration/test_usage_feedback_dashboard.sh +169 -0
- package/evals/integration/test_usage_feedback_global.sh +117 -0
- package/evals/integration/test_usage_feedback_import.sh +227 -0
- package/evals/integration/test_usage_feedback_outcomes.sh +165 -0
- package/evals/integration/test_usage_feedback_report.sh +263 -0
- package/evals/integration/test_veritas_governance_adapter.sh +235 -0
- package/evals/integration/test_workflow_artifact_cleanup_audit.sh +287 -0
- package/evals/integration/test_workflow_artifacts.sh +1247 -0
- package/evals/integration/test_workflow_sidecar_writer.sh +2112 -0
- package/evals/integration/test_workflow_steering_hook.sh +337 -0
- package/evals/lib/assertions/delegated-to.js +40 -0
- package/evals/lib/assertions/max-tool-calls.js +15 -0
- package/evals/lib/assertions/no-write-tools.js +27 -0
- package/evals/lib/assertions/pass-at-k.js +39 -0
- package/evals/lib/assertions/telemetry-utils.js +105 -0
- package/evals/lib/assertions/tool-called.js +39 -0
- package/evals/lib/assertions/verify-after-fix.js +61 -0
- package/evals/lib/claude-judge.sh +40 -0
- package/evals/lib/claude-provider.sh +74 -0
- package/evals/lib/codex-judge.sh +39 -0
- package/evals/lib/codex-provider.sh +81 -0
- package/evals/lib/eval-dev.sh +5 -0
- package/evals/lib/eval-judge.sh +22 -0
- package/evals/lib/eval-provider.sh +26 -0
- package/evals/lib/eval-report.sh +73 -0
- package/evals/lib/kiro-dev.sh +4 -0
- package/evals/lib/kiro-judge.sh +17 -0
- package/evals/lib/kiro-provider.sh +62 -0
- package/evals/lib/node.sh +111 -0
- package/evals/promptfooconfig.yaml +70 -0
- package/evals/run.sh +309 -0
- package/evals/static/test_evidence_refs.sh +141 -0
- package/evals/static/test_package.sh +407 -0
- package/evals/static/test_repo_hooks.sh +68 -0
- package/evals/static/test_universal_bundles.sh +274 -0
- package/evals/static/test_workflow_skills.sh +1207 -0
- package/install.sh +64 -0
- package/integrations/veritas/flow-agents.adapter.json +138 -0
- package/integrations/veritas/flow-agents.authority-settings.json +26 -0
- package/integrations/veritas/flow-agents.repo-standards.json +82 -0
- package/kits/builder/flows/build.flow.json +218 -0
- package/kits/builder/flows/shape.flow.json +127 -0
- package/kits/builder/kit.json +19 -0
- package/kits/catalog.json +11 -0
- package/package.json +130 -0
- package/packaging/README.md +60 -0
- package/packaging/manifest.json +173 -0
- package/packaging/packs.json +69 -0
- package/powers/dependency-checker/POWER.md +20 -0
- package/powers/dependency-checker/mcp.json +20 -0
- package/powers/playwright/POWER.md +25 -0
- package/powers/playwright/mcp.json +12 -0
- package/prompts/code-audit.md +123 -0
- package/prompts/kcommit.md +88 -0
- package/schemas/backlog-provider-settings.schema.json +138 -0
- package/schemas/workflow-acceptance.schema.json +216 -0
- package/schemas/workflow-critique.schema.json +113 -0
- package/schemas/workflow-evidence.schema.json +357 -0
- package/schemas/workflow-handoff.schema.json +52 -0
- package/schemas/workflow-learning.schema.json +223 -0
- package/schemas/workflow-release.schema.json +172 -0
- package/schemas/workflow-state.schema.json +80 -0
- package/scripts/README.md +111 -0
- package/scripts/build-universal-bundles.js +3 -0
- package/scripts/check-content-boundary.cjs +99 -0
- package/scripts/context-budget/budget-scan.sh +166 -0
- package/scripts/detect-tools.sh +3 -0
- package/scripts/discover-agents.sh +28 -0
- package/scripts/effective-backlog-settings.js +2 -0
- package/scripts/filter-installed-packs.js +2 -0
- package/scripts/flow-kit.js +2 -0
- package/scripts/generate-context-map.js +2 -0
- package/scripts/git-status.sh +49 -0
- package/scripts/hooks/claude-hook-adapter.js +174 -0
- package/scripts/hooks/claude-telemetry-hook.js +115 -0
- package/scripts/hooks/codex-hook-adapter.js +176 -0
- package/scripts/hooks/codex-telemetry-hook.js +95 -0
- package/scripts/hooks/config-protection.js +79 -0
- package/scripts/hooks/desktop-notify.sh +39 -0
- package/scripts/hooks/governance-audit.sh +135 -0
- package/scripts/hooks/lib/audit-transport.sh +40 -0
- package/scripts/hooks/lib/hook-flags.js +49 -0
- package/scripts/hooks/lib/patterns.sh +57 -0
- package/scripts/hooks/lib/resolve-formatter.js +80 -0
- package/scripts/hooks/post-edit-accumulator.js +66 -0
- package/scripts/hooks/pre-commit-quality.js +194 -0
- package/scripts/hooks/quality-gate.js +93 -0
- package/scripts/hooks/report-only-guard.js +21 -0
- package/scripts/hooks/run-hook.js +136 -0
- package/scripts/hooks/stop-format-typecheck.js +141 -0
- package/scripts/hooks/stop-goal-fit.js +337 -0
- package/scripts/hooks/workflow-steering.js +250 -0
- package/scripts/install-codex-home.sh +106 -0
- package/scripts/package.json +3 -0
- package/scripts/promote-workflow-artifact.js +2 -0
- package/scripts/publish-change-helper.js +2 -0
- package/scripts/pull-work-provider.js +2 -0
- package/scripts/setup-repo-hooks.sh +8 -0
- package/scripts/statusline/flow-agents-statusline.js +157 -0
- package/scripts/telemetry/console-presets.sh +14 -0
- package/scripts/telemetry/install-console-config.sh +214 -0
- package/scripts/telemetry/lib/config.sh +85 -0
- package/scripts/telemetry/lib/enrich.sh +115 -0
- package/scripts/telemetry/lib/redact.sh +22 -0
- package/scripts/telemetry/lib/session.sh +63 -0
- package/scripts/telemetry/lib/transport.sh +183 -0
- package/scripts/telemetry/lib/usage.sh +29 -0
- package/scripts/telemetry/sync-agents.sh +173 -0
- package/scripts/telemetry/telemetry.conf +23 -0
- package/scripts/telemetry/telemetry.sh +387 -0
- package/scripts/usage-feedback.js +2 -0
- package/scripts/validate-hook-influence-cases.js +2 -0
- package/scripts/validate-package.sh +89 -0
- package/scripts/validate-source-tree.js +9 -0
- package/skills/agentic-engineering/SKILL.md +62 -0
- package/skills/browser-test/SKILL.md +51 -0
- package/skills/builder-shape/SKILL.md +76 -0
- package/skills/context-budget/SKILL.md +40 -0
- package/skills/deliver/SKILL.md +241 -0
- package/skills/dependency-update/SKILL.md +68 -0
- package/skills/design-probe/SKILL.md +107 -0
- package/skills/eval-rebuild/SKILL.md +39 -0
- package/skills/evidence-gate/SKILL.md +186 -0
- package/skills/execute-plan/SKILL.md +110 -0
- package/skills/explore/SKILL.md +137 -0
- package/skills/feedback-loop/SKILL.md +87 -0
- package/skills/fix-bug/SKILL.md +133 -0
- package/skills/frontend-design/SKILL.md +80 -0
- package/skills/github-cli/SKILL.md +63 -0
- package/skills/idea-to-backlog/SKILL.md +267 -0
- package/skills/knowledge-capture/SKILL.md +55 -0
- package/skills/learning-review/SKILL.md +115 -0
- package/skills/pickup-probe/SKILL.md +114 -0
- package/skills/plan-work/SKILL.md +176 -0
- package/skills/pull-work/SKILL.md +309 -0
- package/skills/release-readiness/SKILL.md +121 -0
- package/skills/review-work/SKILL.md +161 -0
- package/skills/search-first/SKILL.md +66 -0
- package/skills/tdd-workflow/SKILL.md +140 -0
- package/skills/verify-work/SKILL.md +109 -0
- package/src/cli/console-learning-projection.ts +140 -0
- package/src/cli/effective-backlog-settings.ts +99 -0
- package/src/cli/fixture-retirement-audit.ts +154 -0
- package/src/cli/flow-kit.ts +139 -0
- package/src/cli/init.ts +248 -0
- package/src/cli/promote-workflow-artifact.ts +64 -0
- package/src/cli/publish-change-helper.ts +143 -0
- package/src/cli/pull-work-provider.ts +481 -0
- package/src/cli/runtime-adapter.ts +24 -0
- package/src/cli/telemetry-doctor.ts +243 -0
- package/src/cli/usage-feedback.ts +418 -0
- package/src/cli/validate-hook-influence.ts +119 -0
- package/src/cli/validate-source-tree.ts +30 -0
- package/src/cli/validate-workflow-artifacts.ts +411 -0
- package/src/cli/veritas-governance.ts +322 -0
- package/src/cli/workflow-artifact-cleanup-audit.ts +281 -0
- package/src/cli/workflow-sidecar.ts +676 -0
- package/src/cli.ts +95 -0
- package/src/flow-kit/validate.ts +74 -0
- package/src/lib/args.ts +43 -0
- package/src/lib/fs.ts +62 -0
- package/src/lib/workflow-learning-projection.ts +491 -0
- package/src/runtime-adapters.ts +154 -0
- package/src/tools/build-universal-bundles.ts +366 -0
- package/src/tools/common.ts +61 -0
- package/src/tools/filter-installed-packs.ts +129 -0
- package/src/tools/generate-context-map.ts +199 -0
- package/src/tools/validate-package.ts +57 -0
- package/src/tools/validate-source-tree.ts +488 -0
- package/tsconfig.json +19 -0
- package/veritas.claims.json +6 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# dev/search-first.yaml — Eval: dev agent activates search-first skill
|
|
2
|
+
- vars:
|
|
3
|
+
prompt: "Add a markdown-to-HTML conversion utility to this project"
|
|
4
|
+
metadata:
|
|
5
|
+
type: capability
|
|
6
|
+
skill: search-first
|
|
7
|
+
added: 2026-04-06
|
|
8
|
+
assert:
|
|
9
|
+
- type: javascript
|
|
10
|
+
value: file://../../lib/assertions/tool-called.js
|
|
11
|
+
config:
|
|
12
|
+
tool: web_search
|
|
13
|
+
- type: javascript
|
|
14
|
+
value: file://../../lib/assertions/no-write-tools.js
|
|
15
|
+
- type: llm-rubric
|
|
16
|
+
value: |
|
|
17
|
+
The agent should research existing solutions BEFORE writing code.
|
|
18
|
+
It should search for existing packages (npm/PyPI), check the codebase for similar functionality,
|
|
19
|
+
or search GitHub for implementations. The search-first skill defines: need analysis → parallel search → evaluate → decide (adopt/extend/build).
|
|
20
|
+
Score 1 if it jumped straight to writing code, 3 if it did minimal research, 5 if it followed the research-first workflow.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# dev/tdd-workflow.yaml — Eval: TDD workflow activation and RED-GREEN-REFACTOR
|
|
2
|
+
- vars:
|
|
3
|
+
prompt: "Use TDD to build a URL shortener module with tests first"
|
|
4
|
+
metadata:
|
|
5
|
+
type: capability
|
|
6
|
+
skill: tdd-workflow
|
|
7
|
+
added: 2026-04-05
|
|
8
|
+
assert:
|
|
9
|
+
- type: javascript
|
|
10
|
+
value: file://../../lib/assertions/delegated-to.js
|
|
11
|
+
config:
|
|
12
|
+
expected: ['tool-planner']
|
|
13
|
+
- type: javascript
|
|
14
|
+
value: file://../../lib/assertions/tool-called.js
|
|
15
|
+
config:
|
|
16
|
+
tool: delegate to a specialist agent
|
|
17
|
+
- type: javascript
|
|
18
|
+
value: file://../../lib/assertions/no-write-tools.js
|
|
19
|
+
- type: llm-rubric
|
|
20
|
+
value: |
|
|
21
|
+
The agent activated the tdd-workflow skill (not deliver).
|
|
22
|
+
It should have:
|
|
23
|
+
1. Created a session file with type: tdd
|
|
24
|
+
2. Delegated to tool-planner with test-first constraints
|
|
25
|
+
3. Plan should show tests in Wave 1, implementation in Wave 2
|
|
26
|
+
Score 1 if it used deliver or coded directly, 3 if partial TDD, 5 if full TDD workflow.
|
|
27
|
+
|
|
28
|
+
- vars:
|
|
29
|
+
prompt: "Build a calculator library with 80% test coverage using test-driven development"
|
|
30
|
+
metadata:
|
|
31
|
+
type: capability
|
|
32
|
+
skill: tdd-workflow
|
|
33
|
+
added: 2026-04-05
|
|
34
|
+
assert:
|
|
35
|
+
- type: javascript
|
|
36
|
+
value: file://../../lib/assertions/delegated-to.js
|
|
37
|
+
config:
|
|
38
|
+
expected: ['tool-planner']
|
|
39
|
+
- type: javascript
|
|
40
|
+
value: file://../../lib/assertions/no-write-tools.js
|
|
41
|
+
- type: llm-rubric
|
|
42
|
+
value: |
|
|
43
|
+
The agent recognized "test-driven development" and activated tdd-workflow.
|
|
44
|
+
The plan should include:
|
|
45
|
+
- Test files as Wave 1 tasks
|
|
46
|
+
- Coverage target of 80% mentioned
|
|
47
|
+
- RED → GREEN → REFACTOR phases
|
|
48
|
+
Score 1 if no TDD activation, 3 if activated but plan isn't test-first, 5 if full TDD plan.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# dev/verify-work.yaml — Eval: enhanced verification with phased report
|
|
2
|
+
- vars:
|
|
3
|
+
prompt: "Verify the changes we just made pass all acceptance criteria"
|
|
4
|
+
metadata:
|
|
5
|
+
type: regression
|
|
6
|
+
skill: verify-work
|
|
7
|
+
added: 2026-04-05
|
|
8
|
+
assert:
|
|
9
|
+
- type: javascript
|
|
10
|
+
value: file://../../lib/assertions/delegated-to.js
|
|
11
|
+
config:
|
|
12
|
+
expected: ['tool-verifier']
|
|
13
|
+
- type: javascript
|
|
14
|
+
value: file://../../lib/assertions/no-write-tools.js
|
|
15
|
+
- type: llm-rubric
|
|
16
|
+
value: |
|
|
17
|
+
The agent activated verify-work and delegated to tool-verifier.
|
|
18
|
+
tool-verifier should attempt phased verification: build, types, lint, tests, security, diff review.
|
|
19
|
+
The response should contain a structured verification report with per-phase status.
|
|
20
|
+
Score 1 if no phased verification, 3 if partial phases, 5 if all 6 phases attempted.
|
|
21
|
+
|
|
22
|
+
- vars:
|
|
23
|
+
prompt: "Run a full verification on this Python project — build, types, lint, tests, security"
|
|
24
|
+
metadata:
|
|
25
|
+
type: capability
|
|
26
|
+
skill: verify-work
|
|
27
|
+
added: 2026-04-05
|
|
28
|
+
assert:
|
|
29
|
+
- type: javascript
|
|
30
|
+
value: file://../../lib/assertions/delegated-to.js
|
|
31
|
+
config:
|
|
32
|
+
expected: ['tool-verifier']
|
|
33
|
+
- type: javascript
|
|
34
|
+
value: file://../../lib/assertions/no-write-tools.js
|
|
35
|
+
- type: llm-rubric
|
|
36
|
+
value: |
|
|
37
|
+
The agent should activate verify-work for comprehensive verification.
|
|
38
|
+
tool-verifier should detect this is a Python project and use appropriate tools:
|
|
39
|
+
- Build: pip install or setup.py
|
|
40
|
+
- Types: pyright or mypy
|
|
41
|
+
- Lint: ruff or flake8
|
|
42
|
+
- Tests: pytest with coverage
|
|
43
|
+
- Security: secrets scan + pip-audit
|
|
44
|
+
Score based on project-type detection and appropriate tool selection.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# dev/workflow.yaml — Eval: dev agent follows Phase 0-5 workflow
|
|
2
|
+
- vars:
|
|
3
|
+
prompt: "Create a simple hello.py script that prints hello world"
|
|
4
|
+
assert:
|
|
5
|
+
- type: javascript
|
|
6
|
+
value: file://lib/assertions/tool-called.js
|
|
7
|
+
config:
|
|
8
|
+
tool: todo tool
|
|
9
|
+
- type: javascript
|
|
10
|
+
value: file://lib/assertions/no-write-tools.js
|
|
11
|
+
- type: llm-rubric
|
|
12
|
+
value: |
|
|
13
|
+
The dev agent should follow its Phase 0-5 workflow:
|
|
14
|
+
Phase 0: Check for existing TODOs/in-progress work
|
|
15
|
+
Phase 1: Orient — run git status, explore the codebase
|
|
16
|
+
Phase 2: Plan — create a TODO list for the task
|
|
17
|
+
Phase 3: Implement — write the code
|
|
18
|
+
Phase 4: Validate — verify the code works
|
|
19
|
+
Phase 5: Deliver — summarize changes
|
|
20
|
+
Score 1 if it jumped straight to implementation, 3 if it did some phases, 5 if it followed the full workflow.
|
|
21
|
+
Note: write tools are blocked in eval mode, so Phase 3 may fail — that's expected. Check that it ATTEMPTED the workflow.
|
|
22
|
+
|
|
23
|
+
- vars:
|
|
24
|
+
prompt: "What's the git status of this project?"
|
|
25
|
+
assert:
|
|
26
|
+
- type: javascript
|
|
27
|
+
value: file://lib/assertions/tool-called.js
|
|
28
|
+
config:
|
|
29
|
+
tool: run shell commands
|
|
30
|
+
- type: llm-rubric
|
|
31
|
+
value: |
|
|
32
|
+
The dev agent should run git status (or equivalent) and report the results.
|
|
33
|
+
It should NOT delegate this to a subagent — it has shell access directly.
|
|
34
|
+
Score 1 if it didn't run any command, 3 if it ran something but not git, 5 if it ran git status and reported clearly.
|
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
set -uo pipefail
|
|
3
|
+
|
|
4
|
+
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
5
|
+
RESULTS_DIR="${FLOW_AGENTS_CI_RESULTS_DIR:-$ROOT_DIR/evals/results/ci-baseline}"
|
|
6
|
+
LOG_DIR="$RESULTS_DIR/logs"
|
|
7
|
+
STATUS_FILE="$RESULTS_DIR/status.tsv"
|
|
8
|
+
SUMMARY_FILE="$RESULTS_DIR/summary.md"
|
|
9
|
+
|
|
10
|
+
mkdir -p "$LOG_DIR"
|
|
11
|
+
|
|
12
|
+
CHECKS=(
|
|
13
|
+
"Content boundary|npm run check:content-boundary --"
|
|
14
|
+
"Source tree validation|npm run validate:source --"
|
|
15
|
+
"Context map drift|npm run context-map -- --check"
|
|
16
|
+
"Static eval suite|bash evals/run.sh static"
|
|
17
|
+
"Workflow artifact integration|bash evals/integration/test_workflow_artifacts.sh"
|
|
18
|
+
"Workflow artifact cleanup audit integration|bash evals/integration/test_workflow_artifact_cleanup_audit.sh"
|
|
19
|
+
"Fixture retirement audit integration|bash evals/integration/test_fixture_retirement_audit.sh"
|
|
20
|
+
"Publish-change helper integration|bash evals/integration/test_publish_change_helper.sh"
|
|
21
|
+
"Workflow sidecar writer integration|bash evals/integration/test_workflow_sidecar_writer.sh"
|
|
22
|
+
"Goal Fit hook integration|bash evals/integration/test_goal_fit_hook.sh"
|
|
23
|
+
"Hook category behavior integration|bash evals/integration/test_hook_category_behaviors.sh"
|
|
24
|
+
"Workflow steering hook integration|bash evals/integration/test_workflow_steering_hook.sh"
|
|
25
|
+
"Hook influence contract integration|bash evals/integration/test_hook_influence_cases.sh"
|
|
26
|
+
"Flow Kit repository integration|bash evals/integration/test_flow_kit_repository.sh"
|
|
27
|
+
"Runtime adapter activation integration|bash evals/integration/test_runtime_adapter_activation.sh"
|
|
28
|
+
"Bundle install integration|bash evals/integration/test_bundle_install.sh"
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
LANE_SOURCE_AND_STATIC=(
|
|
32
|
+
"Content boundary"
|
|
33
|
+
"Source tree validation"
|
|
34
|
+
"Context map drift"
|
|
35
|
+
"Static eval suite"
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
LANE_WORKFLOW_CONTRACTS=(
|
|
39
|
+
"Workflow artifact integration"
|
|
40
|
+
"Workflow artifact cleanup audit integration"
|
|
41
|
+
"Fixture retirement audit integration"
|
|
42
|
+
"Publish-change helper integration"
|
|
43
|
+
"Workflow sidecar writer integration"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
LANE_RUNTIME_AND_KIT=(
|
|
47
|
+
"Goal Fit hook integration"
|
|
48
|
+
"Hook category behavior integration"
|
|
49
|
+
"Workflow steering hook integration"
|
|
50
|
+
"Hook influence contract integration"
|
|
51
|
+
"Flow Kit repository integration"
|
|
52
|
+
"Runtime adapter activation integration"
|
|
53
|
+
"Bundle install integration"
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
slugify() {
|
|
57
|
+
printf '%s' "$1" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g; s/^-//; s/-$//'
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
active_lane() {
|
|
61
|
+
printf '%s' "${FLOW_AGENTS_CI_LANE:-all}"
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
lane_labels() {
|
|
65
|
+
case "$(active_lane)" in
|
|
66
|
+
all)
|
|
67
|
+
local entry
|
|
68
|
+
for entry in "${CHECKS[@]}"; do
|
|
69
|
+
printf '%s\n' "${entry%%|*}"
|
|
70
|
+
done
|
|
71
|
+
;;
|
|
72
|
+
source-and-static)
|
|
73
|
+
printf '%s\n' "${LANE_SOURCE_AND_STATIC[@]}"
|
|
74
|
+
;;
|
|
75
|
+
workflow-contracts)
|
|
76
|
+
printf '%s\n' "${LANE_WORKFLOW_CONTRACTS[@]}"
|
|
77
|
+
;;
|
|
78
|
+
runtime-and-kit)
|
|
79
|
+
printf '%s\n' "${LANE_RUNTIME_AND_KIT[@]}"
|
|
80
|
+
;;
|
|
81
|
+
*)
|
|
82
|
+
echo "Unknown CI baseline lane: $(active_lane)" >&2
|
|
83
|
+
return 1
|
|
84
|
+
;;
|
|
85
|
+
esac
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
active_checks() {
|
|
89
|
+
local label labels row
|
|
90
|
+
labels="$(lane_labels)" || return 1
|
|
91
|
+
while IFS= read -r label; do
|
|
92
|
+
[[ -n "$label" ]] || continue
|
|
93
|
+
row="$(find_check "$label")" || return 1
|
|
94
|
+
printf '%s\n' "$row"
|
|
95
|
+
done <<<"$labels"
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
validate_active_lane() {
|
|
99
|
+
lane_labels >/dev/null
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
init_results() {
|
|
103
|
+
mkdir -p "$LOG_DIR"
|
|
104
|
+
: >"$STATUS_FILE"
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
find_check() {
|
|
108
|
+
local requested="$1"
|
|
109
|
+
local entry label command id
|
|
110
|
+
for entry in "${CHECKS[@]}"; do
|
|
111
|
+
label="${entry%%|*}"
|
|
112
|
+
command="${entry#*|}"
|
|
113
|
+
id="$(slugify "$label")"
|
|
114
|
+
if [[ "$requested" == "$id" || "$requested" == "$label" ]]; then
|
|
115
|
+
printf '%s\t%s\t%s\n' "$id" "$label" "$command"
|
|
116
|
+
return 0
|
|
117
|
+
fi
|
|
118
|
+
done
|
|
119
|
+
return 1
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
find_active_check() {
|
|
123
|
+
local requested="$1"
|
|
124
|
+
local row id label command
|
|
125
|
+
while IFS=$'\t' read -r id label command; do
|
|
126
|
+
if [[ "$requested" == "$id" || "$requested" == "$label" ]]; then
|
|
127
|
+
printf '%s\t%s\t%s\n' "$id" "$label" "$command"
|
|
128
|
+
return 0
|
|
129
|
+
fi
|
|
130
|
+
done < <(active_checks)
|
|
131
|
+
return 1
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
run_check() {
|
|
135
|
+
local label="$1"
|
|
136
|
+
local command="$2"
|
|
137
|
+
local id
|
|
138
|
+
id="$(slugify "$label")"
|
|
139
|
+
local log="$LOG_DIR/$id.log"
|
|
140
|
+
|
|
141
|
+
echo "==> $label"
|
|
142
|
+
echo "+ $command" >"$log"
|
|
143
|
+
if (cd "$ROOT_DIR" && bash -lc "$command") >>"$log" 2>&1; then
|
|
144
|
+
echo -e "$id\t$label\tpass\t$command\t$log" >>"$STATUS_FILE"
|
|
145
|
+
echo "PASS $label"
|
|
146
|
+
else
|
|
147
|
+
echo -e "$id\t$label\tfail\t$command\t$log" >>"$STATUS_FILE"
|
|
148
|
+
echo "FAIL $label (see $log)"
|
|
149
|
+
return 1
|
|
150
|
+
fi
|
|
151
|
+
echo ""
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
record_skip() {
|
|
155
|
+
local label="$1"
|
|
156
|
+
local reason="$2"
|
|
157
|
+
local id
|
|
158
|
+
id="$(slugify "$label")"
|
|
159
|
+
if [[ -f "$STATUS_FILE" ]] && grep -q "^$id"$'\t' "$STATUS_FILE"; then
|
|
160
|
+
return
|
|
161
|
+
fi
|
|
162
|
+
echo -e "$id\t$label\tskip\t$reason\t" >>"$STATUS_FILE"
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
ensure_expected_results() {
|
|
166
|
+
local row label id count
|
|
167
|
+
|
|
168
|
+
touch "$STATUS_FILE"
|
|
169
|
+
while IFS=$'\t' read -r _check_id label _check_command; do
|
|
170
|
+
id="$(slugify "$label")"
|
|
171
|
+
count="$(awk -F'\t' -v expected="$id" '$1 == expected { count += 1 } END { print count + 0 }' "$STATUS_FILE")"
|
|
172
|
+
if [[ "$count" -eq 0 ]]; then
|
|
173
|
+
echo -e "$id\t$label\tfail\tmissing CI result row\t" >>"$STATUS_FILE"
|
|
174
|
+
elif [[ "$count" -gt 1 ]]; then
|
|
175
|
+
echo -e "$id-duplicate\t$label duplicate result\tfail\tduplicate CI result rows for $id\t" >>"$STATUS_FILE"
|
|
176
|
+
fi
|
|
177
|
+
done < <(active_checks)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
finalize_results() {
|
|
181
|
+
local pass=0
|
|
182
|
+
local fail=0
|
|
183
|
+
local skip=0
|
|
184
|
+
local id label status command log marker rel_log
|
|
185
|
+
|
|
186
|
+
validate_active_lane || exit 2
|
|
187
|
+
ensure_expected_results
|
|
188
|
+
record_skip "Live GitHub mutation checks" "Skipped by default; publish-change/live provider mutation checks require an explicit maintainer-run lane."
|
|
189
|
+
record_skip "LLM acceptance evals" "Skipped by default; invoke acceptance or LLM eval lanes separately with explicit opt-in flags."
|
|
190
|
+
record_skip "Veritas governance provider evidence" "Skipped unless a governance adapter is configured; evidence-gate must record NOT_VERIFIED when required evidence is unavailable."
|
|
191
|
+
|
|
192
|
+
while IFS=$'\t' read -r id label status command log; do
|
|
193
|
+
case "$status" in
|
|
194
|
+
pass) pass=$((pass + 1)) ;;
|
|
195
|
+
fail) fail=$((fail + 1)) ;;
|
|
196
|
+
skip) skip=$((skip + 1)) ;;
|
|
197
|
+
*) fail=$((fail + 1)) ;;
|
|
198
|
+
esac
|
|
199
|
+
done <"$STATUS_FILE"
|
|
200
|
+
|
|
201
|
+
{
|
|
202
|
+
echo "# Flow Agents CI Evidence Summary"
|
|
203
|
+
echo ""
|
|
204
|
+
echo "| Status | Check | Command or rationale | Log |"
|
|
205
|
+
echo "| --- | --- | --- | --- |"
|
|
206
|
+
while IFS=$'\t' read -r id label status command log; do
|
|
207
|
+
case "$status" in
|
|
208
|
+
pass) marker="PASS" ;;
|
|
209
|
+
fail) marker="FAIL" ;;
|
|
210
|
+
skip) marker="SKIP" ;;
|
|
211
|
+
*) marker="$status" ;;
|
|
212
|
+
esac
|
|
213
|
+
if [[ -n "$log" ]]; then
|
|
214
|
+
rel_log="${log#$ROOT_DIR/}"
|
|
215
|
+
echo "| $marker | $label | \`$command\` | \`$rel_log\` |"
|
|
216
|
+
else
|
|
217
|
+
echo "| $marker | $label | $command | |"
|
|
218
|
+
fi
|
|
219
|
+
done <"$STATUS_FILE"
|
|
220
|
+
echo ""
|
|
221
|
+
echo "Totals: $pass passed, $fail failed, $skip skipped."
|
|
222
|
+
echo ""
|
|
223
|
+
echo "Skipped live/provider/LLM checks are not a clean substitute for provider evidence. Evidence-gate and release-readiness must carry them as explicit skip or NOT_VERIFIED entries according to change risk."
|
|
224
|
+
} >"$SUMMARY_FILE"
|
|
225
|
+
|
|
226
|
+
echo "Summary written to $SUMMARY_FILE"
|
|
227
|
+
|
|
228
|
+
if [[ -n "${GITHUB_STEP_SUMMARY:-}" ]]; then
|
|
229
|
+
cat "$SUMMARY_FILE" >>"$GITHUB_STEP_SUMMARY"
|
|
230
|
+
fi
|
|
231
|
+
|
|
232
|
+
if [[ "$fail" -gt 0 ]]; then
|
|
233
|
+
exit 1
|
|
234
|
+
fi
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
case "${1:-}" in
|
|
238
|
+
--init)
|
|
239
|
+
validate_active_lane || exit 2
|
|
240
|
+
init_results
|
|
241
|
+
;;
|
|
242
|
+
--check)
|
|
243
|
+
if [[ -z "${2:-}" ]]; then
|
|
244
|
+
echo "Usage: $0 --check <check-id-or-label>" >&2
|
|
245
|
+
exit 2
|
|
246
|
+
fi
|
|
247
|
+
validate_active_lane || exit 2
|
|
248
|
+
if ! check_row="$(find_active_check "$2")"; then
|
|
249
|
+
echo "Unknown CI baseline check for lane $(active_lane): $2" >&2
|
|
250
|
+
exit 2
|
|
251
|
+
fi
|
|
252
|
+
IFS=$'\t' read -r _check_id check_label check_command <<<"$check_row"
|
|
253
|
+
run_check "$check_label" "$check_command"
|
|
254
|
+
;;
|
|
255
|
+
--finalize)
|
|
256
|
+
finalize_results
|
|
257
|
+
;;
|
|
258
|
+
"")
|
|
259
|
+
validate_active_lane || exit 2
|
|
260
|
+
init_results
|
|
261
|
+
while IFS=$'\t' read -r _check_id check_label check_command; do
|
|
262
|
+
run_check "$check_label" "$check_command" || true
|
|
263
|
+
done < <(active_checks)
|
|
264
|
+
finalize_results
|
|
265
|
+
;;
|
|
266
|
+
--lane)
|
|
267
|
+
if [[ -z "${2:-}" ]]; then
|
|
268
|
+
echo "Usage: $0 --lane <source-and-static|workflow-contracts|runtime-and-kit>" >&2
|
|
269
|
+
exit 2
|
|
270
|
+
fi
|
|
271
|
+
FLOW_AGENTS_CI_LANE="$2"
|
|
272
|
+
validate_active_lane || exit 2
|
|
273
|
+
init_results
|
|
274
|
+
while IFS=$'\t' read -r _check_id check_label check_command; do
|
|
275
|
+
run_check "$check_label" "$check_command" || true
|
|
276
|
+
done < <(active_checks)
|
|
277
|
+
finalize_results
|
|
278
|
+
;;
|
|
279
|
+
*)
|
|
280
|
+
echo "Usage: $0 [--init|--check <check-id-or-label>|--finalize|--lane <lane>]" >&2
|
|
281
|
+
exit 2
|
|
282
|
+
;;
|
|
283
|
+
esac
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"defaults": {
|
|
4
|
+
"work_item_provider": {
|
|
5
|
+
"role": "WorkItemProvider",
|
|
6
|
+
"kind": "github",
|
|
7
|
+
"repo": {
|
|
8
|
+
"owner": "example",
|
|
9
|
+
"name": "global-default",
|
|
10
|
+
"url": "https://github.com/example/global-default"
|
|
11
|
+
},
|
|
12
|
+
"capabilities": ["issues", "labels"]
|
|
13
|
+
},
|
|
14
|
+
"board_provider": {
|
|
15
|
+
"role": "BoardProvider",
|
|
16
|
+
"kind": "github",
|
|
17
|
+
"repo": {
|
|
18
|
+
"owner": "example",
|
|
19
|
+
"name": "global-default",
|
|
20
|
+
"url": "https://github.com/example/global-default"
|
|
21
|
+
},
|
|
22
|
+
"board": {
|
|
23
|
+
"type": "github_project",
|
|
24
|
+
"owner": "example",
|
|
25
|
+
"number": 9,
|
|
26
|
+
"url": "https://github.com/orgs/example/projects/9"
|
|
27
|
+
},
|
|
28
|
+
"capabilities": ["projects_boards", "status_fields"]
|
|
29
|
+
},
|
|
30
|
+
"selection": {
|
|
31
|
+
"filters": {
|
|
32
|
+
"issue_state": "open",
|
|
33
|
+
"include_labels": ["global-ready"],
|
|
34
|
+
"ready_statuses": ["ready"],
|
|
35
|
+
"exclude_statuses": ["blocked", "done"]
|
|
36
|
+
},
|
|
37
|
+
"wip_policy": {
|
|
38
|
+
"prefer_finishing_active_work": true,
|
|
39
|
+
"active_statuses": ["in_progress"],
|
|
40
|
+
"block_new_work_when_active_count_exceeds": 1
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"projects": [
|
|
4
|
+
{
|
|
5
|
+
"project": {
|
|
6
|
+
"repo": {
|
|
7
|
+
"owner": "kontourai",
|
|
8
|
+
"name": "flow-agents",
|
|
9
|
+
"url": "https://github.com/kontourai/flow-agents"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"work_item_provider": {
|
|
13
|
+
"role": "WorkItemProvider",
|
|
14
|
+
"kind": "github",
|
|
15
|
+
"repo": {
|
|
16
|
+
"owner": "kontourai",
|
|
17
|
+
"name": "flow-agents",
|
|
18
|
+
"url": "https://github.com/kontourai/flow-agents"
|
|
19
|
+
},
|
|
20
|
+
"capabilities": ["issues", "labels", "assignees"]
|
|
21
|
+
},
|
|
22
|
+
"board_provider": {
|
|
23
|
+
"role": "BoardProvider",
|
|
24
|
+
"kind": "github",
|
|
25
|
+
"repo": {
|
|
26
|
+
"owner": "kontourai",
|
|
27
|
+
"name": "flow-agents",
|
|
28
|
+
"url": "https://github.com/kontourai/flow-agents"
|
|
29
|
+
},
|
|
30
|
+
"board": {
|
|
31
|
+
"type": "github_project",
|
|
32
|
+
"owner": "kontourai",
|
|
33
|
+
"number": 1,
|
|
34
|
+
"url": "https://github.com/orgs/kontourai/projects/1"
|
|
35
|
+
},
|
|
36
|
+
"capabilities": ["projects_boards", "status_fields", "custom_fields"]
|
|
37
|
+
},
|
|
38
|
+
"selection": {
|
|
39
|
+
"filters": {
|
|
40
|
+
"issue_state": "open",
|
|
41
|
+
"include_labels": ["ready"],
|
|
42
|
+
"ready_statuses": ["ready"],
|
|
43
|
+
"exclude_statuses": ["in_progress", "blocked", "review", "verification", "done"]
|
|
44
|
+
},
|
|
45
|
+
"wip_policy": {
|
|
46
|
+
"prefer_finishing_active_work": true,
|
|
47
|
+
"active_statuses": ["in_progress", "review", "verification"],
|
|
48
|
+
"block_new_work_when_active_count_exceeds": 0
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"description": "Accepted baseline freshness gap with Builder Kit resolution hints for missing planned_base_sha.",
|
|
4
|
+
"state": {
|
|
5
|
+
"schema_version": "1.0",
|
|
6
|
+
"task_slug": "builder-kit-not-verified-resolution-hints",
|
|
7
|
+
"status": "planned",
|
|
8
|
+
"phase": "planning",
|
|
9
|
+
"updated_at": "2026-06-04T00:00:00Z",
|
|
10
|
+
"artifact_paths": [
|
|
11
|
+
".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-probe.json",
|
|
12
|
+
".flow-agents/builder-kit-not-verified-resolution-hints/handoff.json"
|
|
13
|
+
],
|
|
14
|
+
"next_action": {
|
|
15
|
+
"status": "continue",
|
|
16
|
+
"summary": "Pickup Probe accepted the missing planned_base_sha gap; run plan-work with the explicit fallback baseline and resolution hints.",
|
|
17
|
+
"target_phase": "planning",
|
|
18
|
+
"target_artifact": ".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-probe.json"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"probe_record": {
|
|
22
|
+
"schema_version": "1.0",
|
|
23
|
+
"task_slug": "builder-kit-not-verified-resolution-hints",
|
|
24
|
+
"current_step": "pickup-probe",
|
|
25
|
+
"next_step": "plan-work",
|
|
26
|
+
"route_reason": "accepted baseline freshness gap -> plan-work",
|
|
27
|
+
"automation_mode": "autonomous-bounded",
|
|
28
|
+
"recovery_mode": "builder-kit-build-flow",
|
|
29
|
+
"probe_status": "accepted_gap",
|
|
30
|
+
"probe_artifact_ref": ".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-probe.json",
|
|
31
|
+
"grouping_decision": {
|
|
32
|
+
"status": "single-item",
|
|
33
|
+
"justification": "one selected Builder Kit work item with an explicit accepted fallback baseline"
|
|
34
|
+
},
|
|
35
|
+
"selected_work_items": [
|
|
36
|
+
{
|
|
37
|
+
"provider": "github",
|
|
38
|
+
"ref": "kontourai/flow-agents#108",
|
|
39
|
+
"title": "Builder Kit NOT_VERIFIED resolution hints for baseline freshness"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"baseline_context": {
|
|
43
|
+
"status": "accepted_gap",
|
|
44
|
+
"reason_code": "missing_planned_base_sha",
|
|
45
|
+
"planned_base_sha": null,
|
|
46
|
+
"current_target_ref": "main",
|
|
47
|
+
"current_target_sha": "73f050b275290838a5b8f3a5a1e9eb8715830c46",
|
|
48
|
+
"accepted_fallback_baseline": "main@73f050b275290838a5b8f3a5a1e9eb8715830c46",
|
|
49
|
+
"source_artifact": ".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-not-verified-resolution-hints--idea-to-backlog.md",
|
|
50
|
+
"freshness_assessment": "not_fresh_planned_base",
|
|
51
|
+
"summary": "Missing planned_base_sha is accepted only as an explicit fallback gap; do not treat it as fresh baseline evidence."
|
|
52
|
+
},
|
|
53
|
+
"missing_evidence": [
|
|
54
|
+
"historical planned_base_sha"
|
|
55
|
+
],
|
|
56
|
+
"unresolved_questions": [],
|
|
57
|
+
"accepted_gaps": [
|
|
58
|
+
{
|
|
59
|
+
"gap_id": "revision_freshness_not_verified",
|
|
60
|
+
"reason_code": "missing_planned_base_sha",
|
|
61
|
+
"summary": "Historical planned_base_sha is unavailable; use the explicit accepted fallback baseline instead of treating the baseline as fresh."
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"resolution_hints": [
|
|
65
|
+
{
|
|
66
|
+
"gap_id": "revision_freshness_not_verified",
|
|
67
|
+
"claim_id": "planning.baseline.current",
|
|
68
|
+
"reason_code": "missing_planned_base_sha",
|
|
69
|
+
"blocked_refs": [
|
|
70
|
+
{
|
|
71
|
+
"kind": "acceptance_criterion",
|
|
72
|
+
"id": "AC2"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"kind": "workflow_gate",
|
|
76
|
+
"id": "plan-work.readiness"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"kind": "flow_step",
|
|
80
|
+
"id": "builder.build.plan"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"resolve_at": {
|
|
84
|
+
"step": "pickup-probe"
|
|
85
|
+
},
|
|
86
|
+
"required_evidence": [
|
|
87
|
+
{
|
|
88
|
+
"id": "current_target_ref_sha",
|
|
89
|
+
"kind": "git_target",
|
|
90
|
+
"description": "Current target ref and SHA for the accepted fallback baseline.",
|
|
91
|
+
"ref": "main",
|
|
92
|
+
"sha": "73f050b275290838a5b8f3a5a1e9eb8715830c46"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "provider_history_source_artifact",
|
|
96
|
+
"kind": "provider_history",
|
|
97
|
+
"description": "Provider history plus source shaped artifact used to accept the missing planned_base_sha gap.",
|
|
98
|
+
"source_artifact": ".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-not-verified-resolution-hints--idea-to-backlog.md"
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"fallback_policy_id": "accepted-baseline-main-73f050b275290838a5b8f3a5a1e9eb8715830c46",
|
|
102
|
+
"fallback_policy": {
|
|
103
|
+
"status": "accepted_gap",
|
|
104
|
+
"baseline": "main@73f050b275290838a5b8f3a5a1e9eb8715830c46",
|
|
105
|
+
"requires_provider_history": true,
|
|
106
|
+
"source_artifact": ".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-not-verified-resolution-hints--idea-to-backlog.md",
|
|
107
|
+
"freshness_assessment": "not_fresh_planned_base",
|
|
108
|
+
"summary": "Use only the explicit accepted fallback baseline; missing planned_base_sha remains a NOT_VERIFIED freshness gap."
|
|
109
|
+
},
|
|
110
|
+
"summary": "Resolve the baseline freshness gap at pickup-probe by carrying the accepted fallback baseline, current target ref/SHA, provider history, and source shaped artifact into plan-work."
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"resume_prompt": "Resume by running plan-work with the accepted fallback baseline main@73f050b275290838a5b8f3a5a1e9eb8715830c46 and the Builder Kit resolution hints.",
|
|
114
|
+
"artifact_refs": [
|
|
115
|
+
".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-not-verified-resolution-hints--pull-work.md",
|
|
116
|
+
".flow-agents/builder-kit-not-verified-resolution-hints/builder-kit-not-verified-resolution-hints--idea-to-backlog.md"
|
|
117
|
+
],
|
|
118
|
+
"planning_readiness": "ready_with_accepted_gap",
|
|
119
|
+
"expected_modified_files": [
|
|
120
|
+
"evals/fixtures/builder-kit-workflow-state/baseline-freshness-resolution-hint.json"
|
|
121
|
+
],
|
|
122
|
+
"conflict_risks": [],
|
|
123
|
+
"flow_boundary": {
|
|
124
|
+
"builder_kit_owns": "product-level build-flow coordination, Probe records, readiness guidance, and resolution_hints",
|
|
125
|
+
"flow_agents_owns": "workflow artifacts, primitive execution, and evidence harness",
|
|
126
|
+
"flow_owns": "gate authority semantics",
|
|
127
|
+
"veritas_owns": "optional evidence and policy records when configured"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"handoff": {
|
|
131
|
+
"next_steps": [
|
|
132
|
+
"Use plan-work with the accepted fallback baseline and resolution_hints from the Builder Kit Probe record."
|
|
133
|
+
],
|
|
134
|
+
"blockers": [],
|
|
135
|
+
"warnings": [
|
|
136
|
+
"Do not treat missing planned_base_sha as fresh."
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
}
|