@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,176 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": "1.0",
|
|
3
|
+
"product": {
|
|
4
|
+
"id": "flow-agents",
|
|
5
|
+
"name": "Flow Agents"
|
|
6
|
+
},
|
|
7
|
+
"recordSources": [
|
|
8
|
+
{
|
|
9
|
+
"id": "flow-agents-workflow-state",
|
|
10
|
+
"label": "Workflow state",
|
|
11
|
+
"root": "product:flow-agents:.flow-agents",
|
|
12
|
+
"files": ["state.json"],
|
|
13
|
+
"attributes": {
|
|
14
|
+
"taskSlug": "task_slug",
|
|
15
|
+
"repo": "repo",
|
|
16
|
+
"project": "project",
|
|
17
|
+
"runtime": "runtime",
|
|
18
|
+
"flow": "flow_id",
|
|
19
|
+
"skill": "skill_id",
|
|
20
|
+
"agent": "agent_id",
|
|
21
|
+
"model": "model",
|
|
22
|
+
"status": "status",
|
|
23
|
+
"phase": "phase",
|
|
24
|
+
"outcome": "outcome",
|
|
25
|
+
"title": "summary",
|
|
26
|
+
"observedAt": "updated_at"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "flow-agents-acceptance",
|
|
31
|
+
"label": "Acceptance criteria",
|
|
32
|
+
"root": "product:flow-agents:.flow-agents",
|
|
33
|
+
"files": ["acceptance.json"],
|
|
34
|
+
"attributes": {
|
|
35
|
+
"taskSlug": "task_slug",
|
|
36
|
+
"repo": "repo",
|
|
37
|
+
"project": "project",
|
|
38
|
+
"flow": "flow_id",
|
|
39
|
+
"skill": "skill_id",
|
|
40
|
+
"status": "status",
|
|
41
|
+
"outcome": "goal_fit.status",
|
|
42
|
+
"title": "summary",
|
|
43
|
+
"observedAt": "updated_at"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "flow-agents-evidence",
|
|
48
|
+
"label": "Verification evidence",
|
|
49
|
+
"root": "product:flow-agents:.flow-agents",
|
|
50
|
+
"files": ["evidence.json"],
|
|
51
|
+
"attributes": {
|
|
52
|
+
"taskSlug": "task_slug",
|
|
53
|
+
"repo": "repo",
|
|
54
|
+
"project": "project",
|
|
55
|
+
"runtime": "runtime",
|
|
56
|
+
"flow": "flow_id",
|
|
57
|
+
"skill": "skill_id",
|
|
58
|
+
"agent": "verifier.agent_id",
|
|
59
|
+
"model": "verifier.model",
|
|
60
|
+
"status": "verdict",
|
|
61
|
+
"outcome": "verdict",
|
|
62
|
+
"title": "summary",
|
|
63
|
+
"observedAt": "updated_at"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": "flow-agents-handoffs",
|
|
68
|
+
"label": "Handoffs",
|
|
69
|
+
"root": "product:flow-agents:.flow-agents",
|
|
70
|
+
"files": ["handoff.json"],
|
|
71
|
+
"attributes": {
|
|
72
|
+
"taskSlug": "task_slug",
|
|
73
|
+
"repo": "repo",
|
|
74
|
+
"project": "project",
|
|
75
|
+
"runtime": "runtime",
|
|
76
|
+
"flow": "flow_id",
|
|
77
|
+
"skill": "skill_id",
|
|
78
|
+
"agent": "agent_id",
|
|
79
|
+
"model": "model",
|
|
80
|
+
"status": "next_action.status",
|
|
81
|
+
"outcome": "status",
|
|
82
|
+
"title": "summary",
|
|
83
|
+
"observedAt": "updated_at"
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "flow-agents-learning",
|
|
88
|
+
"label": "Learning records",
|
|
89
|
+
"root": "product:flow-agents:.flow-agents",
|
|
90
|
+
"files": ["learning.json"],
|
|
91
|
+
"attributes": {
|
|
92
|
+
"taskSlug": "task_slug",
|
|
93
|
+
"repo": "repo",
|
|
94
|
+
"project": "project",
|
|
95
|
+
"flow": "flow_id",
|
|
96
|
+
"skill": "skill_id",
|
|
97
|
+
"status": "status",
|
|
98
|
+
"title": "summary",
|
|
99
|
+
"observedAt": "updated_at"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"facets": [
|
|
104
|
+
{ "id": "skills", "label": "Skills", "attribute": "skill", "limit": 16 },
|
|
105
|
+
{ "id": "tools", "label": "Tools", "attribute": "toolName", "limit": 16 },
|
|
106
|
+
{ "id": "flows", "label": "Flows", "attribute": "flow", "limit": 16 },
|
|
107
|
+
{ "id": "repositories", "label": "Repositories", "attribute": "repo", "limit": 16 },
|
|
108
|
+
{ "id": "projects", "label": "Projects", "attribute": "project", "limit": 16 },
|
|
109
|
+
{ "id": "runtimes", "label": "Runtimes", "attribute": "runtime", "limit": 12 },
|
|
110
|
+
{ "id": "agents", "label": "Agents", "attribute": "agent", "limit": 16 },
|
|
111
|
+
{ "id": "models", "label": "Models", "attribute": "model", "limit": 16 },
|
|
112
|
+
{ "id": "statuses", "label": "Statuses", "attribute": "status", "limit": 12 },
|
|
113
|
+
{ "id": "outcomes", "label": "Outcomes", "attribute": "outcome", "limit": 12 }
|
|
114
|
+
],
|
|
115
|
+
"flows": [
|
|
116
|
+
{
|
|
117
|
+
"id": "builder.shape",
|
|
118
|
+
"label": "Builder shape",
|
|
119
|
+
"match": { "attribute": "flow", "includes": "builder.shape" },
|
|
120
|
+
"titleAttribute": "title",
|
|
121
|
+
"detailAttributes": {
|
|
122
|
+
"Project": "project",
|
|
123
|
+
"Repository": "repo",
|
|
124
|
+
"Task": "taskSlug",
|
|
125
|
+
"Status": "status",
|
|
126
|
+
"Outcome": "outcome",
|
|
127
|
+
"Phase": "phase",
|
|
128
|
+
"Skill": "skill",
|
|
129
|
+
"Agent": "agent",
|
|
130
|
+
"Model": "model",
|
|
131
|
+
"Observed": "observedAt"
|
|
132
|
+
},
|
|
133
|
+
"limit": 10
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "builder.build",
|
|
137
|
+
"label": "Builder build",
|
|
138
|
+
"match": { "attribute": "flow", "includes": "builder.build" },
|
|
139
|
+
"titleAttribute": "title",
|
|
140
|
+
"detailAttributes": {
|
|
141
|
+
"Project": "project",
|
|
142
|
+
"Repository": "repo",
|
|
143
|
+
"Task": "taskSlug",
|
|
144
|
+
"Status": "status",
|
|
145
|
+
"Outcome": "outcome",
|
|
146
|
+
"Phase": "phase",
|
|
147
|
+
"Skill": "skill",
|
|
148
|
+
"Agent": "agent",
|
|
149
|
+
"Model": "model",
|
|
150
|
+
"Observed": "observedAt"
|
|
151
|
+
},
|
|
152
|
+
"limit": 10
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"id": "delivery",
|
|
156
|
+
"label": "Delivery workflows",
|
|
157
|
+
"match": { "attribute": "skill", "includes": "deliver" },
|
|
158
|
+
"titleAttribute": "title",
|
|
159
|
+
"limit": 10
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "verification",
|
|
163
|
+
"label": "Verification workflows",
|
|
164
|
+
"match": { "attribute": "skill", "includes": "verify-work" },
|
|
165
|
+
"titleAttribute": "title",
|
|
166
|
+
"limit": 10
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"id": "review",
|
|
170
|
+
"label": "Review workflows",
|
|
171
|
+
"match": { "attribute": "skill", "includes": "review-work" },
|
|
172
|
+
"titleAttribute": "title",
|
|
173
|
+
"limit": 10
|
|
174
|
+
}
|
|
175
|
+
]
|
|
176
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Base Agent Rules
|
|
2
|
+
|
|
3
|
+
The following are rules that ALL agents should follow, regardless of specialty. These apply across all projects!
|
|
4
|
+
|
|
5
|
+
## Guidance
|
|
6
|
+
- If useful in the future, consider adding a note to the agents memory file (AGENTS.md) for the given project. If the content is repeatable debugging steps, consider detailing the approach in separate documentation (ie docs/<approach>.md) and linking to it with a description from the memory file (ie. AGENTS.md)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## Guardrails
|
|
10
|
+
- NEVER guess at syntax or APIs — look it up or research it using available tools or specialized agents (ListAgents).
|
|
11
|
+
- ALWAYS assume your training data is outdated. Confirm your knowledge with available tools (ie. web) to ensure information is up-to-date.
|
|
12
|
+
- NEVER take destructive git actions without checking history (ie. `git diff` -- if available) first OR ensuring files are recoverable from source control in their current state -- use minimal roll backs via source control or ensure files are fully in context for immediate recovery if no source control is available
|
|
13
|
+
- NEVER remove code just to make things compile UNLESS part of a larger TODO plan that will bring it back - if you cannot complete a task as described surface that to the user
|
|
14
|
+
- NEVER "fallback" to a simpler implementation just to keep moving forward. ALWAYS check with the user before recommending "simpler" solutions because of repeated issues caused in trying to accomplish the task at hand
|
|
15
|
+
- ALWAYS cleanup any temporary files or configurations created for debugging purposes.
|
|
16
|
+
- ALWAYS check with user before committing IF there are any doubts about what should or should not be considered safe in the STAGED changes in source control
|
|
17
|
+
- ALWAYS plan a given task for completeness as well as prioritized for parallelization. If tasks can be independently executed, run them in parallel
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Code Review Standards
|
|
2
|
+
|
|
3
|
+
Standards for ALL agents to follow when reviewing or writing code.
|
|
4
|
+
|
|
5
|
+
## Review Checklist
|
|
6
|
+
|
|
7
|
+
- [ ] Readable, well-named variables/functions
|
|
8
|
+
- [ ] Functions < 50 lines
|
|
9
|
+
- [ ] Files < 800 lines
|
|
10
|
+
- [ ] Nesting < 4 levels
|
|
11
|
+
- [ ] Errors handled at every level — never silently swallowed
|
|
12
|
+
- [ ] No hardcoded secrets or credentials
|
|
13
|
+
- [ ] No debug statements (`console.log`, `debugger`, `print`)
|
|
14
|
+
- [ ] Tests exist for new/changed logic
|
|
15
|
+
- [ ] Coverage >= 80%
|
|
16
|
+
|
|
17
|
+
## Severity Levels
|
|
18
|
+
|
|
19
|
+
| Severity | Scope | Action |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| CRITICAL | Security vulnerabilities, data loss, auth bypass | BLOCK — must fix before merge |
|
|
22
|
+
| HIGH | Bugs, broken logic, missing error handling | WARN — should fix before merge |
|
|
23
|
+
| MEDIUM | Maintainability, duplication, unclear naming | INFO — fix when practical |
|
|
24
|
+
| LOW | Style, formatting, minor conventions | NOTE — optional |
|
|
25
|
+
|
|
26
|
+
## Mandatory Review Triggers
|
|
27
|
+
|
|
28
|
+
- After writing or modifying code
|
|
29
|
+
- Before commits to shared branches
|
|
30
|
+
- Security-sensitive changes (auth, payments, user data)
|
|
31
|
+
- Architectural changes (new services, schema changes, API contracts)
|
|
32
|
+
|
|
33
|
+
## Security Review Triggers
|
|
34
|
+
|
|
35
|
+
Review with extra scrutiny when changes touch:
|
|
36
|
+
- Authentication / authorization logic
|
|
37
|
+
- User input handling or validation
|
|
38
|
+
- Database queries (especially dynamic/constructed)
|
|
39
|
+
- File system operations
|
|
40
|
+
- External API calls or webhook handlers
|
|
41
|
+
- Cryptographic operations
|
|
42
|
+
- Payment or billing code
|
|
43
|
+
|
|
44
|
+
## Common Issues to Catch
|
|
45
|
+
|
|
46
|
+
### Security
|
|
47
|
+
- Hardcoded credentials or API keys
|
|
48
|
+
- SQL injection (unsanitized input in queries)
|
|
49
|
+
- XSS (unescaped user content in HTML)
|
|
50
|
+
- Path traversal (unsanitized file paths)
|
|
51
|
+
- CSRF (missing token validation on state-changing requests)
|
|
52
|
+
|
|
53
|
+
### Code Quality
|
|
54
|
+
- Functions or files exceeding size limits
|
|
55
|
+
- Deep nesting (> 4 levels) — extract helper functions
|
|
56
|
+
- Missing error handling or silent catch blocks
|
|
57
|
+
- Direct mutation of shared state — use immutable patterns
|
|
58
|
+
|
|
59
|
+
### Performance
|
|
60
|
+
- N+1 queries — batch or join instead
|
|
61
|
+
- Missing pagination on list endpoints
|
|
62
|
+
- Unbounded queries (no LIMIT, no max results)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Coding Standards
|
|
2
|
+
|
|
3
|
+
Standards for ALL agents to follow when writing code.
|
|
4
|
+
|
|
5
|
+
## Immutability
|
|
6
|
+
|
|
7
|
+
Always create new objects — never mutate existing ones.
|
|
8
|
+
- Prevents side effects and hidden state bugs
|
|
9
|
+
- Safe for concurrent access without locks
|
|
10
|
+
- Use spread operators, `Object.freeze`, or immutable data structures
|
|
11
|
+
|
|
12
|
+
## File Organization
|
|
13
|
+
|
|
14
|
+
- Many small files > few large files
|
|
15
|
+
- Typical file: 200–400 lines. Hard max: 800 lines
|
|
16
|
+
- Organize by feature/domain, not by type (e.g., `auth/` not `controllers/`)
|
|
17
|
+
- One export per file when practical — colocate related helpers
|
|
18
|
+
|
|
19
|
+
## Error Handling
|
|
20
|
+
|
|
21
|
+
- Handle errors at every level — never silently swallow
|
|
22
|
+
- UI: user-friendly messages, no stack traces
|
|
23
|
+
- Server-side: detailed context (what failed, input state, upstream cause)
|
|
24
|
+
- Fail fast on unrecoverable errors — don't limp along with bad state
|
|
25
|
+
- Always clean up resources (connections, file handles) in finally blocks
|
|
26
|
+
|
|
27
|
+
## Input Validation
|
|
28
|
+
|
|
29
|
+
- Validate at system boundaries (API endpoints, CLI args, file reads, external data)
|
|
30
|
+
- Use schema-based validation where available (Zod, JSON Schema, etc.)
|
|
31
|
+
- Fail fast with clear error messages — include what was wrong and what's expected
|
|
32
|
+
- Never trust external data — validate type, range, format, and length
|
|
33
|
+
|
|
34
|
+
## Code Quality Checklist
|
|
35
|
+
|
|
36
|
+
- [ ] Readable, well-named (variables, functions, files)
|
|
37
|
+
- [ ] Functions < 50 lines
|
|
38
|
+
- [ ] Files < 800 lines
|
|
39
|
+
- [ ] Nesting < 4 levels deep
|
|
40
|
+
- [ ] Errors handled properly at every level
|
|
41
|
+
- [ ] No hardcoded values (secrets, URLs, magic numbers)
|
|
42
|
+
- [ ] Immutable patterns used — no direct mutation of shared state
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Orchestrator Agents
|
|
2
|
+
|
|
3
|
+
You are an orchestrator agent designed for tasks that require a human-in-the-loop.
|
|
4
|
+
|
|
5
|
+
ALWAYS keep strict adherence to the following.
|
|
6
|
+
|
|
7
|
+
## Guidelines
|
|
8
|
+
- Be honest about your limitations rather than producing mediocre results.
|
|
9
|
+
- IF the user asks about functionality that you don't have access to, list the available subagents to see if we can delegate the request. NEVER assume you have access to a subagent without first looking at your available subagents.
|
|
10
|
+
- ALWAYS be thorough! Remember, you are the brains of the operation
|
|
11
|
+
- When opportunities arise to parallelize instructions to a subagent make a plan.
|
|
12
|
+
- Don't immediately give up until multiple avenues have been explored and let the user know what you tried and why, including any relevant citations
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Subagent Guidelines
|
|
2
|
+
|
|
3
|
+
You are a subagent — a specialist invoked by an orchestrator to complete a focused task. Follow these rules strictly.
|
|
4
|
+
|
|
5
|
+
## No Guessing
|
|
6
|
+
- NEVER fabricate, assume, or infer information you don't have
|
|
7
|
+
- If your tools return no results, say so — do not fill gaps with speculation
|
|
8
|
+
- If the orchestrator's request is ambiguous or missing critical details, push back immediately with a clear description of what you need before proceeding
|
|
9
|
+
|
|
10
|
+
## Insufficient Context Handoff
|
|
11
|
+
When the orchestrator has not provided enough detail to complete the task:
|
|
12
|
+
1. Do NOT attempt a partial or best-effort answer
|
|
13
|
+
2. Respond with exactly what is missing and why you need it
|
|
14
|
+
3. If the missing context is something the orchestrator should already have, say so directly
|
|
15
|
+
|
|
16
|
+
Example: "I cannot complete this request — I need the account name and time period to search. Please provide these and re-delegate."
|
|
17
|
+
|
|
18
|
+
## Out-of-Scope Requests
|
|
19
|
+
If the request falls outside your area of expertise:
|
|
20
|
+
1. State clearly that the request is outside your scope
|
|
21
|
+
2. Suggest which type of agent would be better suited (if you know)
|
|
22
|
+
3. Do NOT attempt the work anyway
|
|
23
|
+
|
|
24
|
+
## Response Quality
|
|
25
|
+
- Be concise and factual
|
|
26
|
+
- Include dates and sources when available
|
|
27
|
+
- Structure responses so the orchestrator can act on them immediately
|
|
28
|
+
- If results are partial, clearly label what was found vs what was not
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Workflow Artifact Contract
|
|
2
|
+
|
|
3
|
+
Workflow artifacts are the durable handoff surface between orchestrators, workers, verifiers, hooks, evals, and future sessions.
|
|
4
|
+
|
|
5
|
+
## Artifact Root
|
|
6
|
+
|
|
7
|
+
Use the task artifact root defined by the active distribution's bundle instructions. This source repo has a historical default task root, but distributions may substitute their own root during export.
|
|
8
|
+
|
|
9
|
+
Do not hard-code a different root inside a skill or agent when the distribution has already defined one.
|
|
10
|
+
|
|
11
|
+
In this source tree, `.flow-agents/<slug>/` is the local runtime/session state root by default. Exported agent bundles may map the runtime root to a distribution-specific path through their bundle instructions; treat those paths as local runtime roots, not durable product documentation.
|
|
12
|
+
|
|
13
|
+
The artifact root is local working memory unless a workflow explicitly promotes or publishes it:
|
|
14
|
+
|
|
15
|
+
- Keep active plans, handoffs, sidecars, temporary evidence, verifier notes, and parallel-worker progress in the runtime root.
|
|
16
|
+
- When in-progress planning must be reviewable across people or sessions, promote the durable summary, decisions, and evidence pointers into docs, source, schemas, or provider records.
|
|
17
|
+
- Archive completed local records under `<artifact-root>/<slug>/archive/<date>/` when they are useful for audit or recovery but should not remain the active session.
|
|
18
|
+
- Promote stable decisions, usage guidance, release notes, and accepted architecture changes into durable docs such as `docs/`, ADRs, changelogs, or provider-backed descriptions/comments.
|
|
19
|
+
- Publish provider records only through the provider adapter or explicit publish-change step. Provider records may link back to local artifacts, but they do not make local runtime files durable by themselves.
|
|
20
|
+
- Do not commit local workflow runtime roots such as `.flow-agents/<slug>/` as durable policy unless a repository-specific contract explicitly says that artifact is promoted.
|
|
21
|
+
- Do not commit local workflow runtime roots such as `.flow-agents/<slug>/`; final acceptance must promote durable content before merge.
|
|
22
|
+
|
|
23
|
+
## Required Artifact Types
|
|
24
|
+
|
|
25
|
+
### Structured Sidecars
|
|
26
|
+
|
|
27
|
+
Markdown artifacts remain the human-readable handoff surface. JSON sidecars are the machine-readable recovery and gate surface. When a workflow creates or updates the corresponding information, write the sidecar beside the Markdown artifacts in `.flow-agents/<slug>/`.
|
|
28
|
+
|
|
29
|
+
Draft sidecars:
|
|
30
|
+
|
|
31
|
+
- `state.json` follows `schemas/workflow-state.schema.json`
|
|
32
|
+
- `acceptance.json` follows `schemas/workflow-acceptance.schema.json`
|
|
33
|
+
- `evidence.json` follows `schemas/workflow-evidence.schema.json`
|
|
34
|
+
- `handoff.json` follows `schemas/workflow-handoff.schema.json`
|
|
35
|
+
- `critique.json` follows `schemas/workflow-critique.schema.json`
|
|
36
|
+
- `release.json` follows `schemas/workflow-release.schema.json`
|
|
37
|
+
- `learning.json` follows `schemas/workflow-learning.schema.json`
|
|
38
|
+
|
|
39
|
+
Sidecar rules:
|
|
40
|
+
|
|
41
|
+
- Keep `schema_version` at `1.0` until the schema changes incompatibly.
|
|
42
|
+
- Keep `task_slug` stable across all sidecars for a workflow.
|
|
43
|
+
- Prefer `npm run workflow:sidecar --` for creating and updating sidecars. If a harness cannot run the writer, produce equivalent JSON and validate it with `npm run workflow:validate-artifacts --`.
|
|
44
|
+
- Use `npm run workflow:sidecar -- ensure-session` when available to create or select the current `.flow-agents/<slug>/` session artifact before substantial work starts.
|
|
45
|
+
- Update `state.json` at phase transitions.
|
|
46
|
+
- Create or update `acceptance.json` when planning defines or changes acceptance criteria.
|
|
47
|
+
- Create or update `evidence.json` when verification or evidence-gate records proof.
|
|
48
|
+
- Create or update `handoff.json` when work pauses, blocks, delegates, or hands off to a future session.
|
|
49
|
+
- Use `npm run workflow:sidecar -- advance-state` when available to keep `state.json` and `handoff.json` synchronized during phase transitions.
|
|
50
|
+
- Runtime `state.json` and `handoff.json` writes from the sidecar writer must pass through the transition guard. Flow owns transition semantics; Flow Agents enforces runtime sidecar transitions through an interim Flow Definition-compatible adapter until Flow core provides the authoritative validator.
|
|
51
|
+
- Rejected runtime transitions must fail closed before mutating `state.json` or `handoff.json` and should append diagnostics to `transition-diagnostics.jsonl` beside the workflow sidecars. Route-back attempt counts, when applicable, belong in `transition-attempts.json` rather than `state.json`.
|
|
52
|
+
- Create or update the configured critique artifact/sink when a reviewer, critique subagent, or human review pass evaluates the workflow; locally this is materialized as `critique.json`.
|
|
53
|
+
- Create or update `release.json` when release-readiness records a merge, release, deploy, hold, or rollback decision.
|
|
54
|
+
- Create or update `learning.json` when a learning review turns completed work, repeated friction, or accepted critique into system improvements.
|
|
55
|
+
- Do not let sidecars silently contradict the Markdown artifact. If they disagree, the sidecar is the machine-readable gate input and the Markdown summary should be corrected.
|
|
56
|
+
- Record `NOT_VERIFIED` in sidecars as `not_verified`; do not omit uncertain checks.
|
|
57
|
+
- For substantial work, critique findings must be `fixed`, `accepted`, `deferred`, or `false_positive` before marking critique `pass`; open findings block a pass.
|
|
58
|
+
- Treat sidecars as authoritative gate inputs. Temporary verifier-local mismatch notes are observations only; before terminal delivery, the orchestrator must update or reconcile `acceptance.json`, `evidence.json`, `release.json`, and the final Markdown summary so stale mismatch notes are superseded by final evidence or release validation.
|
|
59
|
+
|
|
60
|
+
Evidence reference rules:
|
|
61
|
+
|
|
62
|
+
- `acceptance.criteria[].evidence_refs`, `evidence.checks[].artifact_refs`, and `evidence.external_evidence[].ref` use structured evidence reference objects. Legacy bare strings are not part of the schema contract.
|
|
63
|
+
- Every evidence reference has `kind`; allowed kinds are `source`, `command`, `artifact`, `provider`, and `external`.
|
|
64
|
+
- Source evidence references identify the code or documentation that supports an implementation-behavior claim and include `file`, `line_start`, `line_end`, and `excerpt`. Include `url` when a provider permalink is known.
|
|
65
|
+
- Provider source URLs should be immutable GitHub blob URLs pinned to a commit SHA, for example `https://github.com/<owner>/<repo>/blob/<commit-sha>/<path>#L12-L24`. Do not use branch-relative blob URLs for final provider, PR, issue, closure, or release comments.
|
|
66
|
+
- Before a commit/provider permalink exists, local `file` plus line fields and `excerpt` are acceptable temporary evidence. Evidence Gate should treat those refs as publish-change inputs and prefer upgrading them to immutable provider URLs before release or closure.
|
|
67
|
+
- Command and test proof may use `kind: "command"` with `excerpt`, `summary`, or `url` for the relevant log/artifact. Behavior acceptance claims should cite both command/test proof and source evidence unless source evidence is not applicable.
|
|
68
|
+
- If source evidence is not applicable, record the reason as a gap, `not_verified`, or accepted gap rather than replacing source evidence with broad prose.
|
|
69
|
+
|
|
70
|
+
Provider, PR, issue, closure, and final acceptance comments that claim implementation behavior must include an `Acceptance Evidence` table:
|
|
71
|
+
|
|
72
|
+
| AC id | Status | Command/Test Evidence | Source Evidence / Permalinks | Gaps |
|
|
73
|
+
| --- | --- | --- | --- | --- |
|
|
74
|
+
|
|
75
|
+
Each row maps one acceptance criterion id to its status, concrete command/test evidence, source refs or immutable provider permalinks, and any `NOT_VERIFIED` or accepted gaps. A prose-only summary is not enough for clean closure when behavior is claimed.
|
|
76
|
+
|
|
77
|
+
Canonical vocabulary:
|
|
78
|
+
|
|
79
|
+
`state.phase` is the canonical lifecycle vocabulary for machine-readable workflow state. It does not include review as a phase; review-work is represented by the required critique artifact/sink for the workflow, with `critique.json` as the current local sidecar materialization.
|
|
80
|
+
|
|
81
|
+
| Field | Values |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| `state.status` | `new`, `planning`, `planned`, `in_progress`, `blocked`, `verifying`, `verified`, `needs_decision`, `not_verified`, `failed`, `delivered`, `accepted`, `archived` |
|
|
84
|
+
| `state.phase` | `idea`, `backlog`, `pickup`, `planning`, `execution`, `verification`, `goal_fit`, `evidence`, `release`, `learning`, `done` |
|
|
85
|
+
| `next_action.status` | `continue`, `needs_user`, `blocked`, `done` |
|
|
86
|
+
| `acceptance.criteria[].status` | `pending`, `pass`, `fail`, `not_verified`, `accepted_gap` |
|
|
87
|
+
| `acceptance.goal_fit.status` | `pending`, `pass`, `fail`, `not_verified`, `accepted_gap` |
|
|
88
|
+
| `evidence.verdict` | `pass`, `partial`, `fail`, `not_verified` |
|
|
89
|
+
| `evidence.checks[].status` | `pass`, `fail`, `not_verified`, `skip` |
|
|
90
|
+
| `critique.status` | `pending`, `pass`, `fail`, `not_required` |
|
|
91
|
+
| `critique.critiques[].verdict` | `pass`, `comment`, `fail`, `not_verified` |
|
|
92
|
+
| `critique.critiques[].findings[].severity` | `critical`, `high`, `medium`, `low`, `info` |
|
|
93
|
+
| `critique.critiques[].findings[].status` | `open`, `accepted`, `fixed`, `deferred`, `false_positive` |
|
|
94
|
+
| `learning.status` | `pending`, `learned`, `followup_required`, `blocked` |
|
|
95
|
+
| `learning.records[].outcome` | `success`, `failure`, `mixed`, `unknown` |
|
|
96
|
+
| `learning.records[].routing[].target` | `rule`, `skill`, `power`, `agent`, `eval`, `doc`, `backlog`, `knowledge`, `none` |
|
|
97
|
+
| `release.decision` | `merge`, `release`, `deploy`, `hold`, `rollback_required` |
|
|
98
|
+
| `release.gates[].status` | `pass`, `hold`, `not_required`, `not_verified` |
|
|
99
|
+
| `release.rollback_plan.status` | `ready`, `not_required`, `missing` |
|
|
100
|
+
|
|
101
|
+
Sidecar ownership by phase:
|
|
102
|
+
|
|
103
|
+
- Planning owns initial `state.json`, `acceptance.json`, and `handoff.json`.
|
|
104
|
+
- Execution updates progress in the Markdown session artifact and uses `advance-state` when available to update `state.json` or `handoff.json` when work blocks, pauses, or changes phase.
|
|
105
|
+
- Verification owns `evidence.json` check details and criterion status updates in `acceptance.json`.
|
|
106
|
+
- Critique reviewers own the configured critique artifact/sink findings and resolution state; locally this is materialized as `critique.json`.
|
|
107
|
+
- Release reviewers own `release.json` gate decisions and operational readiness records.
|
|
108
|
+
- Learning reviewers own `learning.json` routing into durable improvements.
|
|
109
|
+
- Evidence Gate owns final evidence assessment, residual gaps, and next-step handoff updates.
|
|
110
|
+
- Release Readiness owns release/final-acceptance state after evidence passes.
|
|
111
|
+
|
|
112
|
+
Final-state reconciliation:
|
|
113
|
+
|
|
114
|
+
- Verifiers may report that local Markdown and sidecars disagree when they inspect a workflow before orchestration has finished.
|
|
115
|
+
- The terminal delivery state must be based on the final sidecars plus final orchestrator evidence, not on an earlier verifier-local warning.
|
|
116
|
+
- If the final sidecars still disagree with the Markdown artifact, the workflow cannot be treated as a clean pass.
|
|
117
|
+
- If the orchestrator updates the sidecars and records final validation, the final summary should name the reconciled sidecars and supersede earlier mismatch notes instead of carrying both as equal truth.
|
|
118
|
+
|
|
119
|
+
### Session
|
|
120
|
+
|
|
121
|
+
The session artifact is the recovery point for the overall workflow.
|
|
122
|
+
|
|
123
|
+
Required fields or sections:
|
|
124
|
+
- title
|
|
125
|
+
- branch
|
|
126
|
+
- worktree
|
|
127
|
+
- created
|
|
128
|
+
- status
|
|
129
|
+
- type
|
|
130
|
+
- iteration when the workflow can loop
|
|
131
|
+
- plan reference
|
|
132
|
+
- execution progress
|
|
133
|
+
- verification report
|
|
134
|
+
- goal fit status when delivery is involved
|
|
135
|
+
- final acceptance status when merge, release, or durable documentation is involved
|
|
136
|
+
|
|
137
|
+
### Plan
|
|
138
|
+
|
|
139
|
+
The plan artifact is the source of truth for implementation.
|
|
140
|
+
|
|
141
|
+
Required frontmatter:
|
|
142
|
+
```yaml
|
|
143
|
+
---
|
|
144
|
+
role: plan
|
|
145
|
+
parent: <session basename>
|
|
146
|
+
created: <ISO date>
|
|
147
|
+
---
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Required sections:
|
|
151
|
+
- `## Plan`
|
|
152
|
+
- `## Definition Of Done`
|
|
153
|
+
- implementation waves
|
|
154
|
+
|
|
155
|
+
### Review Or Verification
|
|
156
|
+
|
|
157
|
+
Review and verification artifacts are report-only evidence. They must not contain fixes applied by the reviewer or verifier.
|
|
158
|
+
|
|
159
|
+
Review artifacts feed the configured critique artifact/sink, locally materialized as `critique.json`, and describe code, security, architecture, standards, or maintainability findings. Verification artifacts feed `evidence.json` and describe build/test/runtime proof mapped to acceptance criteria. Do not collapse critique findings and evidence checks into one gate unless a legacy workflow has no separate review stage.
|
|
160
|
+
|
|
161
|
+
Required frontmatter:
|
|
162
|
+
```yaml
|
|
163
|
+
---
|
|
164
|
+
role: review
|
|
165
|
+
parent: <session basename>
|
|
166
|
+
created: <ISO date>
|
|
167
|
+
verdict: PASS | PARTIAL | FAIL | NOT_VERIFIED
|
|
168
|
+
---
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Required sections:
|
|
172
|
+
- commands or checks run
|
|
173
|
+
- evidence mapped to acceptance criteria
|
|
174
|
+
- failures or gaps
|
|
175
|
+
- verdict
|
|
176
|
+
|
|
177
|
+
## Continuity Rules
|
|
178
|
+
|
|
179
|
+
- Update the session artifact at each phase transition.
|
|
180
|
+
- Preserve links from session to plan, review, verification, final docs, and archived artifacts.
|
|
181
|
+
- Record `NOT_VERIFIED` explicitly. Do not convert it to PASS or hide it in a summary.
|
|
182
|
+
- Treat artifacts as working memory until final acceptance; promote durable decisions and usage notes to long-lived docs after merge or acceptance.
|