@tea-agent/loop-agent 0.1.0-fe-test.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +114 -0
- package/CHANGELOG.md +2283 -0
- package/README.md +177 -0
- package/bin/agent-worker.js +22 -0
- package/bin/loop-agent.js +57 -0
- package/dist/adapters/aimax.js +91 -0
- package/dist/adapters/context.js +32 -0
- package/dist/adapters/index.js +29 -0
- package/dist/adapters/loop-agent.js +192 -0
- package/dist/adapters/types.js +1 -0
- package/dist/application/context-usage/skill-resolution-stats.js +263 -0
- package/dist/application/dag/args.js +486 -0
- package/dist/application/dag/generate-task-dag.js +408 -0
- package/dist/application/dag/report-dag.js +14 -0
- package/dist/application/dag/run-dag.js +109 -0
- package/dist/application/dag/validate-dag.js +166 -0
- package/dist/application/evaluation/alias.js +184 -0
- package/dist/application/evaluation/budget.js +192 -0
- package/dist/application/evaluation/campaign-hash.js +47 -0
- package/dist/application/evaluation/campaign-matrix.js +372 -0
- package/dist/application/evaluation/campaign-scorecard.js +135 -0
- package/dist/application/evaluation/campaign.js +370 -0
- package/dist/application/evaluation/candidate-hash.js +75 -0
- package/dist/application/evaluation/candidate.js +69 -0
- package/dist/application/evaluation/corpus-hash.js +38 -0
- package/dist/application/evaluation/corpus.js +56 -0
- package/dist/application/evaluation/experiment.js +294 -0
- package/dist/application/evaluation/ignition.js +198 -0
- package/dist/application/evaluation/integrity-audit.js +162 -0
- package/dist/application/evaluation/outer-loop.js +132 -0
- package/dist/application/evaluation/pi-cell-executor.js +39 -0
- package/dist/application/evaluation/private-verifier.js +46 -0
- package/dist/application/evaluation/promotion-policy.js +151 -0
- package/dist/application/evaluation/proposer.js +98 -0
- package/dist/application/evaluation/replay.js +289 -0
- package/dist/application/evaluation/types.js +652 -0
- package/dist/application/loop/run-action.js +19 -0
- package/dist/application/task-lifecycle/advance.js +1204 -0
- package/dist/application/task-lifecycle/gates.js +130 -0
- package/dist/application/task-lifecycle/index.js +7 -0
- package/dist/application/task-lifecycle/observe.js +424 -0
- package/dist/application/task-lifecycle/plan-transitions.js +251 -0
- package/dist/application/task-lifecycle/recommendations.js +180 -0
- package/dist/application/task-lifecycle/record.js +73 -0
- package/dist/application/task-lifecycle/types.js +1 -0
- package/dist/build-stamp.json +6 -0
- package/dist/cli/catalog.js +24 -0
- package/dist/cli/command-definitions.js +659 -0
- package/dist/cli/help.js +56 -0
- package/dist/cli/index.js +5 -0
- package/dist/cli/program.js +647 -0
- package/dist/cli/router.js +13 -0
- package/dist/cli/update/init-surface-notifier.js +167 -0
- package/dist/cli/update/notifier.js +117 -0
- package/dist/cli/update/npm-client.js +151 -0
- package/dist/cli/update/policy.js +92 -0
- package/dist/cli/update/runtime-activity.js +29 -0
- package/dist/cli/update/state.js +68 -0
- package/dist/cli-governance/active-residue-check.js +38 -0
- package/dist/cli.js +57 -0
- package/dist/commands/client-recovery.js +1373 -0
- package/dist/commands/closeout.js +13 -0
- package/dist/commands/coverage-audit.js +14 -0
- package/dist/commands/coverage-report.js +50 -0
- package/dist/commands/cursor-prompt.js +182 -0
- package/dist/commands/dag-approve.js +142 -0
- package/dist/commands/dag-final-verification.js +76 -0
- package/dist/commands/dag-init-hybrid.js +57 -0
- package/dist/commands/dag-reconcile-run.js +5 -0
- package/dist/commands/dag-reconcile-tasks.js +51 -0
- package/dist/commands/dag-reject.js +91 -0
- package/dist/commands/dag-report.js +76 -0
- package/dist/commands/dag-request-interrupt.js +20 -0
- package/dist/commands/dag-rerun-task.js +19 -0
- package/dist/commands/dag-rerun.js +111 -0
- package/dist/commands/dag-resume.js +35 -0
- package/dist/commands/dag-run-task.js +12 -0
- package/dist/commands/dag-validate.js +20 -0
- package/dist/commands/dag-workflow-compile.js +91 -0
- package/dist/commands/dag-workflow-plan.js +130 -0
- package/dist/commands/dag-workflow-validate.js +66 -0
- package/dist/commands/delegate.js +130 -0
- package/dist/commands/docs-archive.js +5 -0
- package/dist/commands/docs-audit.js +6 -0
- package/dist/commands/doctor.js +283 -0
- package/dist/commands/eval.js +1398 -0
- package/dist/commands/examples.js +90 -0
- package/dist/commands/goal.js +92 -0
- package/dist/commands/handoff-check.js +5 -0
- package/dist/commands/harvest.js +44 -0
- package/dist/commands/import-prd.js +81 -0
- package/dist/commands/init-upgrade.js +3085 -0
- package/dist/commands/init.js +3630 -0
- package/dist/commands/inspect.js +11 -0
- package/dist/commands/instructions.js +223 -0
- package/dist/commands/knowledge.js +162 -0
- package/dist/commands/loop-benchmark.js +72 -0
- package/dist/commands/loop.js +251 -0
- package/dist/commands/new-task.js +5 -0
- package/dist/commands/operator.js +44 -0
- package/dist/commands/pi-prompt.js +174 -0
- package/dist/commands/pi-reuse-benchmark.js +153 -0
- package/dist/commands/plan-list.js +5 -0
- package/dist/commands/plan.js +50 -0
- package/dist/commands/promote-run.js +29 -0
- package/dist/commands/reference-index.js +16 -0
- package/dist/commands/run-dag-progress.js +123 -0
- package/dist/commands/run-dag.js +22 -0
- package/dist/commands/spine.js +38 -0
- package/dist/commands/stats.js +113 -0
- package/dist/commands/status.js +57 -0
- package/dist/commands/study-init.js +192 -0
- package/dist/commands/task-advance.js +366 -0
- package/dist/commands/task-contract.js +269 -0
- package/dist/commands/task-source-prepare.js +479 -0
- package/dist/commands/task-status.js +133 -0
- package/dist/commands/workflow.js +259 -0
- package/dist/commands/worktree-create.js +31 -0
- package/dist/commands/worktree-list.js +5 -0
- package/dist/commands/worktree-remove.js +26 -0
- package/dist/executors/config-core.js +5 -0
- package/dist/executors/config.js +2 -0
- package/dist/executors/dag-pi-executor.js +1277 -0
- package/dist/executors/dag-static-executor.js +42 -0
- package/dist/executors/dag.js +3 -0
- package/dist/executors/index.js +6 -0
- package/dist/executors/model-routing.js +71 -0
- package/dist/executors/pi-defaults.js +9 -0
- package/dist/executors/pi-event-serializer.js +65 -0
- package/dist/executors/pi-executor.js +981 -0
- package/dist/executors/pi-playwright-cli-tool.js +1006 -0
- package/dist/executors/pi-prompt-transport.js +198 -0
- package/dist/executors/pi-reuse-benchmark.js +316 -0
- package/dist/executors/pi-runtime-reuse.js +29 -0
- package/dist/executors/pi-sdk-executor.js +722 -0
- package/dist/executors/pi-sdk.js +1 -0
- package/dist/executors/pi-writer-tool-policy.js +266 -0
- package/dist/executors/pi.js +3 -0
- package/dist/executors/playwright-cli-launcher.js +63 -0
- package/dist/executors/process-tree.js +33 -0
- package/dist/executors/shell-executor.js +3055 -0
- package/dist/executors/shell-presets.js +99 -0
- package/dist/executors/shell-verification.js +262 -0
- package/dist/executors/shell-write-guard.js +543 -0
- package/dist/executors/shell.js +3 -0
- package/dist/executors/static.js +1 -0
- package/dist/governance/checks.js +437 -0
- package/dist/governance/document-index-closure.js +164 -0
- package/dist/governance/exec-plans.js +549 -0
- package/dist/governance/harness.js +9 -0
- package/dist/governance/index.js +3 -0
- package/dist/governance/manifest-types.js +254 -0
- package/dist/governance/manifest.js +2 -0
- package/dist/governance/path-guard.js +69 -0
- package/dist/governance/path-guards.js +2 -0
- package/dist/governance/profiles.js +3 -0
- package/dist/governance/requirement-coverage.js +425 -0
- package/dist/governance/skill-safety.js +135 -0
- package/dist/governance/spine-audit.js +155 -0
- package/dist/infrastructure/evaluation/alias-store.js +199 -0
- package/dist/infrastructure/evaluation/campaign-store.js +154 -0
- package/dist/infrastructure/evaluation/candidate-store.js +439 -0
- package/dist/infrastructure/evaluation/corpus-store.js +181 -0
- package/dist/infrastructure/evaluation/experiment-store.js +124 -0
- package/dist/infrastructure/evaluation/ignition-store.js +82 -0
- package/dist/infrastructure/evaluation/private-verifier-store.js +145 -0
- package/dist/infrastructure/evaluation/proposer-store.js +78 -0
- package/dist/infrastructure/evaluation/store.js +40 -0
- package/dist/infrastructure/harness/active-residue-policy.js +73 -0
- package/dist/infrastructure/harness/artifact-store.js +72 -0
- package/dist/infrastructure/harness/atomic-write.js +50 -0
- package/dist/infrastructure/harness/completed-facts-guard.js +40 -0
- package/dist/infrastructure/harness/loop-action-store.js +20 -0
- package/dist/infrastructure/harness/loop-store.js +41 -0
- package/dist/infrastructure/harness/one-shot-run-store.js +94 -0
- package/dist/infrastructure/harness/task-store.js +108 -0
- package/dist/records/closeout.js +2 -0
- package/dist/records/harvest.js +215 -0
- package/dist/records/index.js +3 -0
- package/dist/records/one-shot-runs.js +386 -0
- package/dist/records/promotion.js +200 -0
- package/dist/shared/artifacts-core.js +107 -0
- package/dist/shared/artifacts.js +2 -0
- package/dist/shared/context-files.js +32 -0
- package/dist/shared/context.js +2 -0
- package/dist/shared/copy-dir.js +17 -0
- package/dist/shared/git-progress.js +172 -0
- package/dist/shared/index.js +5 -0
- package/dist/shared/logger.js +17 -0
- package/dist/shared/one-shot-prompt-args.js +98 -0
- package/dist/shared/openspec-spec.js +125 -0
- package/dist/shared/operator/capabilities.js +2659 -0
- package/dist/shared/operator/command-lifecycle.js +94 -0
- package/dist/shared/operator/envelope.js +59 -0
- package/dist/shared/operator/index.js +5 -0
- package/dist/shared/operator/registry.js +38 -0
- package/dist/shared/operator/types.js +5 -0
- package/dist/shared/output-truncation.js +37 -0
- package/dist/shared/package-metadata.js +530 -0
- package/dist/shared/path-refs.js +31 -0
- package/dist/shared/pi-retry-settings.js +23 -0
- package/dist/shared/playwright-cli-command-policy.js +41 -0
- package/dist/shared/preview.js +39 -0
- package/dist/shared/prompts.js +26 -0
- package/dist/shared/reference-context.js +264 -0
- package/dist/shared/resilient-git.js +133 -0
- package/dist/shared/runtime-activity.js +6 -0
- package/dist/shared/timeout-policy.js +24 -0
- package/dist/shared/timeout.js +1 -0
- package/dist/shared/types.js +5 -0
- package/dist/sidecars/cursor-prompt/executor.js +428 -0
- package/dist/sidecars/cursor-prompt/index.js +3 -0
- package/dist/sidecars/cursor-prompt/stream.js +121 -0
- package/dist/task/config-types.js +235 -0
- package/dist/task/config.js +2 -0
- package/dist/task/contract/adopt.js +166 -0
- package/dist/task/contract/apply.js +326 -0
- package/dist/task/contract/canonicalize.js +60 -0
- package/dist/task/contract/constants.js +30 -0
- package/dist/task/contract/diff.js +177 -0
- package/dist/task/contract/hash.js +42 -0
- package/dist/task/contract/import-revision.js +96 -0
- package/dist/task/contract/index.js +17 -0
- package/dist/task/contract/journal.js +155 -0
- package/dist/task/contract/lock.js +153 -0
- package/dist/task/contract/observe.js +296 -0
- package/dist/task/contract/paths.js +19 -0
- package/dist/task/contract/project.js +185 -0
- package/dist/task/contract/recover.js +312 -0
- package/dist/task/contract/request-ledger.js +37 -0
- package/dist/task/contract/schema.js +153 -0
- package/dist/task/contract/transaction.js +160 -0
- package/dist/task/contract/types.js +1 -0
- package/dist/task/contract/validate-draft.js +106 -0
- package/dist/task/dag-source-paths.js +50 -0
- package/dist/task/delegate.js +208 -0
- package/dist/task/frontend-preflight.js +131 -0
- package/dist/task/frontend-project-capability.js +570 -0
- package/dist/task/goal-audit.js +51 -0
- package/dist/task/goal-policy.js +8 -0
- package/dist/task/goal.js +3 -0
- package/dist/task/ids.js +1 -0
- package/dist/task/index.js +12 -0
- package/dist/task/lifecycle.js +1 -0
- package/dist/task/operator/capabilities.js +6 -0
- package/dist/task/operator/envelope.js +2 -0
- package/dist/task/operator/index.js +5 -0
- package/dist/task/operator/registry.js +2 -0
- package/dist/task/operator/types.js +1 -0
- package/dist/task/paths.js +1 -0
- package/dist/task/read-model.js +140 -0
- package/dist/task/runtime.js +708 -0
- package/dist/task/source-prepare/artifact-meta.js +137 -0
- package/dist/task/source-prepare/build-draft.js +232 -0
- package/dist/task/source-prepare/completeness.js +248 -0
- package/dist/task/source-prepare/index.js +10 -0
- package/dist/task/source-prepare/parse-intent.js +496 -0
- package/dist/task/source-prepare/path-policy.js +197 -0
- package/dist/task/source-prepare/placeholder-paths.js +77 -0
- package/dist/task/source-prepare/prepare.js +920 -0
- package/dist/task/source-prepare/reference-integrity.js +290 -0
- package/dist/task/source-prepare/semantic-intake.js +717 -0
- package/dist/task/source-prepare/types.js +7 -0
- package/dist/task/source-references.js +228 -0
- package/dist/task/source-state.js +1 -0
- package/dist/task/state.js +41 -0
- package/dist/task/subagent-guidance.js +1 -0
- package/dist/task/task-demand-routing.js +443 -0
- package/dist/task/workflow-state-types.js +92 -0
- package/dist/task/worktree-cleanup.js +140 -0
- package/dist/task/worktree.js +388 -0
- package/dist/verification/maven/cache.js +142 -0
- package/dist/verification/maven/index.js +120 -0
- package/dist/verification/maven/plan-commands.js +421 -0
- package/dist/verification/maven/pom-static.js +136 -0
- package/dist/verification/maven/scope-resolve.js +153 -0
- package/dist/verification/maven/stale.js +130 -0
- package/dist/verification/maven/types.js +23 -0
- package/dist/verification/maven/workspace-graph.js +322 -0
- package/dist/worker/cli.js +957 -0
- package/dist/worker/closeout/apply.js +73 -0
- package/dist/worker/closeout/preview.js +30 -0
- package/dist/worker/console/app-data.js +316 -0
- package/dist/worker/console/chat/artifact-card.js +30 -0
- package/dist/worker/console/chat/assistant-content.js +121 -0
- package/dist/worker/console/chat/chat-event-store.js +981 -0
- package/dist/worker/console/chat/chat-ui-policy.js +25 -0
- package/dist/worker/console/chat/compaction-errors.js +64 -0
- package/dist/worker/console/chat/composer-draft-store.js +45 -0
- package/dist/worker/console/chat/context-panel.js +54 -0
- package/dist/worker/console/chat/contract-apply-receipt-store.js +174 -0
- package/dist/worker/console/chat/explore-tools.js +299 -0
- package/dist/worker/console/chat/human-gate-card.js +45 -0
- package/dist/worker/console/chat/interview-adapter.js +149 -0
- package/dist/worker/console/chat/mcp-inventory.js +221 -0
- package/dist/worker/console/chat/model-resolver.js +215 -0
- package/dist/worker/console/chat/operation-card.js +92 -0
- package/dist/worker/console/chat/pi-console-config.js +376 -0
- package/dist/worker/console/chat/pi-runtime.js +2446 -0
- package/dist/worker/console/chat/repo-browser.js +140 -0
- package/dist/worker/console/chat/repo-walk.js +125 -0
- package/dist/worker/console/chat/resource-loader.js +59 -0
- package/dist/worker/console/chat/resource-preferences-store.js +152 -0
- package/dist/worker/console/chat/routes.js +3137 -0
- package/dist/worker/console/chat/runtime-context.js +102 -0
- package/dist/worker/console/chat/runtime-selection.js +96 -0
- package/dist/worker/console/chat/semantic-activity.js +489 -0
- package/dist/worker/console/chat/session-store.js +484 -0
- package/dist/worker/console/chat/shortcuts.js +217 -0
- package/dist/worker/console/chat/tool-adapter.js +131 -0
- package/dist/worker/console/chat/tool-preview.js +247 -0
- package/dist/worker/console/chat/tools.js +212 -0
- package/dist/worker/console/chat/turn-execution-registry.js +82 -0
- package/dist/worker/console/chat/turn-process.js +346 -0
- package/dist/worker/console/chat/usage.js +165 -0
- package/dist/worker/console/chat/workspace-landing.js +103 -0
- package/dist/worker/console/dag-confirmation.js +347 -0
- package/dist/worker/console/dag-execution-receipt.js +393 -0
- package/dist/worker/console/doctor.js +230 -0
- package/dist/worker/console/draft-store.js +158 -0
- package/dist/worker/console/harness-pi-model-matrix.js +137 -0
- package/dist/worker/console/human-gate-token.js +130 -0
- package/dist/worker/console/index.js +17 -0
- package/dist/worker/console/inspect-split.js +82 -0
- package/dist/worker/console/interview/assessment.js +67 -0
- package/dist/worker/console/interview/grill-me.js +277 -0
- package/dist/worker/console/interview/session.js +100 -0
- package/dist/worker/console/interview/tools.js +109 -0
- package/dist/worker/console/loopback.js +16 -0
- package/dist/worker/console/mutation-gate-receipt-store.js +184 -0
- package/dist/worker/console/night-aux-ticker.js +146 -0
- package/dist/worker/console/observe-health-match.js +179 -0
- package/dist/worker/console/observe-link.js +42 -0
- package/dist/worker/console/open-browser.js +134 -0
- package/dist/worker/console/operation-run-facts.js +190 -0
- package/dist/worker/console/operation-runner.js +353 -0
- package/dist/worker/console/operation-sse.js +184 -0
- package/dist/worker/console/operation-store.js +169 -0
- package/dist/worker/console/operation-wait.js +355 -0
- package/dist/worker/console/operator-actions.js +3768 -0
- package/dist/worker/console/operator-selection.js +105 -0
- package/dist/worker/console/operator-surface-health.js +24 -0
- package/dist/worker/console/operator-user-error.js +45 -0
- package/dist/worker/console/pi-readiness.js +288 -0
- package/dist/worker/console/prd-identity.js +102 -0
- package/dist/worker/console/prd-intake-bridge.js +441 -0
- package/dist/worker/console/prd-reference-discovery.js +124 -0
- package/dist/worker/console/recovery-cta.js +320 -0
- package/dist/worker/console/recovery-error-copy.js +198 -0
- package/dist/worker/console/recovery-selection.js +107 -0
- package/dist/worker/console/repo-fingerprint.js +35 -0
- package/dist/worker/console/resolve-dag-run-for-task.js +115 -0
- package/dist/worker/console/resource-loader.js +95 -0
- package/dist/worker/console/routes.js +475 -0
- package/dist/worker/console/security.js +170 -0
- package/dist/worker/console/server.js +357 -0
- package/dist/worker/console/sibling-controller.js +33 -0
- package/dist/worker/console/static/assets/abnfDiagram-N423BO3Z-BmOEx0gA.js +1 -0
- package/dist/worker/console/static/assets/arc-BGiVVe8b.js +1 -0
- package/dist/worker/console/static/assets/architectureDiagram-T3A2C74G-nDdu4rgJ.js +36 -0
- package/dist/worker/console/static/assets/blockDiagram-VBNYF7ZC-Bb5u0BWf.js +132 -0
- package/dist/worker/console/static/assets/c4Diagram-5PPSVZJV-BlhC0j94.js +10 -0
- package/dist/worker/console/static/assets/channel-Tl-FkUqr.js +1 -0
- package/dist/worker/console/static/assets/chunk-2GRJ4B5K-Ai8_qQXI.js +1 -0
- package/dist/worker/console/static/assets/chunk-2Q5K7J3B-B9gyCjqX.js +1 -0
- package/dist/worker/console/static/assets/chunk-5RXB4S5H-Bzbj3zGH.js +231 -0
- package/dist/worker/console/static/assets/chunk-5VM5RSS4-BT415PvT.js +15 -0
- package/dist/worker/console/static/assets/chunk-6Q2QTUOP-D_A5_5QL.js +88 -0
- package/dist/worker/console/static/assets/chunk-GF5L2VYU-srJkaP3f.js +206 -0
- package/dist/worker/console/static/assets/chunk-JWPE2WC7-UYGvEP4l.js +1 -0
- package/dist/worker/console/static/assets/chunk-KBJHAD2P-B8luBrrz.js +1 -0
- package/dist/worker/console/static/assets/chunk-RYQCIY6F-DN7wXZSq.js +1 -0
- package/dist/worker/console/static/assets/chunk-XXDRQBXY-DXKyMuKS.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BaehtRk4.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BaehtRk4.js +1 -0
- package/dist/worker/console/static/assets/cose-bilkent-JH36ORCC-dqvoynXj.js +1 -0
- package/dist/worker/console/static/assets/cynefin-VYW2F7L2--PcyL34A.js +166 -0
- package/dist/worker/console/static/assets/cynefinDiagram-MW4NZA55-DvWs_hTY.js +62 -0
- package/dist/worker/console/static/assets/cytoscape.esm-yzknjiTM.js +321 -0
- package/dist/worker/console/static/assets/dagre-VZM6K2ZE-DxeIxbyO.js +4 -0
- package/dist/worker/console/static/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/worker/console/static/assets/diagram-7IWD3JNH-DPCG61Of.js +30 -0
- package/dist/worker/console/static/assets/diagram-B4RE2ZJO-CmuU50-U.js +3 -0
- package/dist/worker/console/static/assets/diagram-LBJQPF4R-B61XLD_v.js +24 -0
- package/dist/worker/console/static/assets/diagram-Q27KOJAE-BB7HTRRY.js +24 -0
- package/dist/worker/console/static/assets/diagram-UB23O5K3-DvkboAIp.js +41 -0
- package/dist/worker/console/static/assets/ebnfDiagram-BXEA7PRR-BdJ_y1fL.js +1 -0
- package/dist/worker/console/static/assets/erDiagram-JOGREHBK-9bUBZTRi.js +85 -0
- package/dist/worker/console/static/assets/flowDiagram-UKHOOZJN-Dw4L4RBa.js +156 -0
- package/dist/worker/console/static/assets/ganttDiagram-PKOTCBZU-Jr82N_QP.js +292 -0
- package/dist/worker/console/static/assets/gitGraphDiagram-DS77QQ5N-DAz9wFLr.js +106 -0
- package/dist/worker/console/static/assets/graph-DOmOIIwC.js +1 -0
- package/dist/worker/console/static/assets/index-B7Y-0g3J.css +1 -0
- package/dist/worker/console/static/assets/index-DkCrqaYg.js +325 -0
- package/dist/worker/console/static/assets/infoDiagram-6WML65LV-CBB5Np7y.js +2 -0
- package/dist/worker/console/static/assets/init-Gi6I4Gst.js +1 -0
- package/dist/worker/console/static/assets/ishikawaDiagram-WSZJBQD7-D8IOp94y.js +70 -0
- package/dist/worker/console/static/assets/journeyDiagram-NVQOT4AX-Dgd3AHGG.js +139 -0
- package/dist/worker/console/static/assets/kanban-definition-27J2QSJJ-BmYOxLE9.js +89 -0
- package/dist/worker/console/static/assets/layout-D-LzfAck.js +1 -0
- package/dist/worker/console/static/assets/linear-DfYTEF6J.js +1 -0
- package/dist/worker/console/static/assets/map-DxJ2ADlA.js +1 -0
- package/dist/worker/console/static/assets/mermaid.core-BjuFPRqa.js +308 -0
- package/dist/worker/console/static/assets/mindmap-definition-FAOFIHXS-CLyUViGd.js +96 -0
- package/dist/worker/console/static/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/worker/console/static/assets/pegDiagram-VL7TDLO6-BvX2Di4-.js +1 -0
- package/dist/worker/console/static/assets/pieDiagram-7S7Q4E2Y-BFj0_OLv.js +39 -0
- package/dist/worker/console/static/assets/quadrantDiagram-CIZ2JOQS-BIUrD_hx.js +7 -0
- package/dist/worker/console/static/assets/railroadDiagram-AXF67PYL-CHBB48fj.js +1 -0
- package/dist/worker/console/static/assets/requirementDiagram-LRYGKXZP-sJrYw2Sf.js +84 -0
- package/dist/worker/console/static/assets/sankeyDiagram-W5VNT64P-BzHH6fPR.js +40 -0
- package/dist/worker/console/static/assets/sequenceDiagram-SI44F4Z6-7QCnelCt.js +162 -0
- package/dist/worker/console/static/assets/sizeCapture-X5ZJPWSS-sDYSxn72.js +1 -0
- package/dist/worker/console/static/assets/stateDiagram-OKZ733FA-XpiUdwzm.js +1 -0
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-eEhq2A8Y.js +1 -0
- package/dist/worker/console/static/assets/swimlanes-SLNWSIFB-DvqgNPzD.js +2 -0
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-la8AC7fo.js +8 -0
- package/dist/worker/console/static/assets/timeline-definition-Z64GVDOM-2TyOYNx0.js +120 -0
- package/dist/worker/console/static/assets/vennDiagram-T6HMQDX7-B-nM6wM2.js +34 -0
- package/dist/worker/console/static/assets/wardleyDiagram-T6FBY63Y-B86wPdbr.js +78 -0
- package/dist/worker/console/static/assets/xychartDiagram-ELKLHX3M-Dr1C4AQz.js +7 -0
- package/dist/worker/console/static/favicon.svg +37 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_AMS-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Caligraphic-Bold.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Caligraphic-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Fraktur-Bold.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Fraktur-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Main-Bold.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Main-BoldItalic.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Main-Italic.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Main-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Math-BoldItalic.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Math-Italic.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_SansSerif-Bold.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_SansSerif-Italic.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_SansSerif-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Script-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Size1-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Size2-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Size3-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Size4-Regular.woff2 +0 -0
- package/dist/worker/console/static/fonts/katex/KaTeX_Typewriter-Regular.woff2 +0 -0
- package/dist/worker/console/static/index.html +15 -0
- package/dist/worker/console/static-src/app/console-types.js +184 -0
- package/dist/worker/console/static-src/app/useConsoleShell.js +101 -0
- package/dist/worker/console/static-src/app/useOperatorActions.js +324 -0
- package/dist/worker/console/static-src/app/usePrdImport.js +172 -0
- package/dist/worker/console/static-src/app/useRecoveryActions.js +289 -0
- package/dist/worker/console/static-src/app/useRecoveryConsole.js +425 -0
- package/dist/worker/console/static-src/app/useTaskWizard.js +296 -0
- package/dist/worker/console/static-src/chat-markdown-security.js +38 -0
- package/dist/worker/console/static-src/chat-view-types.js +2 -0
- package/dist/worker/console/static-src/night/night-types.js +24 -0
- package/dist/worker/console/static-src/night/useNightBoard.js +94 -0
- package/dist/worker/console/static-src/night/useNightWizard.js +171 -0
- package/dist/worker/console/static-src/night-prepare-result.js +118 -0
- package/dist/worker/console/static-src/operator-chat/activity-journey.js +125 -0
- package/dist/worker/console/static-src/operator-chat/activity-rail-presentation.js +73 -0
- package/dist/worker/console/static-src/operator-chat/activity-references.js +20 -0
- package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +420 -0
- package/dist/worker/console/static-src/operator-chat/format.js +71 -0
- package/dist/worker/console/static-src/operator-chat/landing-density.js +23 -0
- package/dist/worker/console/static-src/operator-chat/mutation-gate.js +45 -0
- package/dist/worker/console/static-src/operator-chat/refs.js +86 -0
- package/dist/worker/console/static-src/operator-chat/resource-auto-invocation.js +91 -0
- package/dist/worker/console/static-src/operator-chat/resource-diagnostics.js +204 -0
- package/dist/worker/console/static-src/operator-chat/runtime-snapshot-store.js +257 -0
- package/dist/worker/console/static-src/operator-chat/session-title-watcher.js +128 -0
- package/dist/worker/console/static-src/operator-chat/sidebar-split.js +90 -0
- package/dist/worker/console/static-src/operator-chat/slash-palette-layout.js +24 -0
- package/dist/worker/console/static-src/operator-chat/slash-palette-nav.js +141 -0
- package/dist/worker/console/static-src/operator-chat/spatial-overlay.js +38 -0
- package/dist/worker/console/static-src/operator-chat/tools-catalog.js +77 -0
- package/dist/worker/console/static-src/operator-chat/turn-stream-controller.js +690 -0
- package/dist/worker/console/static-src/operator-chat/turn-submission.js +158 -0
- package/dist/worker/console/static-src/operator-chat/types.js +1 -0
- package/dist/worker/console/static-src/operator-chat/useActivityRailTransition.js +59 -0
- package/dist/worker/console/static-src/operator-chat/useChatSessions.js +495 -0
- package/dist/worker/console/static-src/operator-chat/useChatStream.js +780 -0
- package/dist/worker/console/static-src/operator-chat/useChatThread.js +280 -0
- package/dist/worker/console/static-src/operator-chat/useComposer.js +257 -0
- package/dist/worker/console/static-src/operator-chat/useInterview.js +108 -0
- package/dist/worker/console/static-src/operator-chat/useOverlayFocus.js +84 -0
- package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +148 -0
- package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +358 -0
- package/dist/worker/console/static-src/operator-chat/useRuntimeSnapshot.js +196 -0
- package/dist/worker/console/static-src/operator-chat/useWorkspaceLayout.js +58 -0
- package/dist/worker/console/static-src/operator-chat/workspace-layout-mode.js +35 -0
- package/dist/worker/console/static-src/prd-file-import.js +218 -0
- package/dist/worker/console/vite.config.js +27 -0
- package/dist/worker/console/workflow-kinds.js +46 -0
- package/dist/worker/delivery/final-verification.js +302 -0
- package/dist/worker/delivery/git-transaction.js +497 -0
- package/dist/worker/delivery/package.js +537 -0
- package/dist/worker/delivery/verification-bundle.js +544 -0
- package/dist/worker/feature/acceptance-policy.js +227 -0
- package/dist/worker/feature/advance.js +301 -0
- package/dist/worker/feature/decision-loader.js +99 -0
- package/dist/worker/feature/discover.js +14 -0
- package/dist/worker/feature/doctor.js +223 -0
- package/dist/worker/feature/fullstack-validate.js +337 -0
- package/dist/worker/feature/next-action.js +140 -0
- package/dist/worker/feature/profile-schema.js +47 -0
- package/dist/worker/feature/ready-plan-projection.js +82 -0
- package/dist/worker/feature/reducer.js +137 -0
- package/dist/worker/feature/review.js +678 -0
- package/dist/worker/feature/run.js +390 -0
- package/dist/worker/feature/scaffold.js +812 -0
- package/dist/worker/feature/types.js +1 -0
- package/dist/worker/follow-up/approve.js +273 -0
- package/dist/worker/follow-up/factory.js +234 -0
- package/dist/worker/follow-up/paths.js +25 -0
- package/dist/worker/follow-up/policy.js +26 -0
- package/dist/worker/follow-up/schema.js +93 -0
- package/dist/worker/follow-up/store.js +96 -0
- package/dist/worker/loop-agent/command-result.js +1 -0
- package/dist/worker/loop-agent/controller-protocol.js +143 -0
- package/dist/worker/loop-agent/loop-agent-client.js +489 -0
- package/dist/worker/loop-agent/parse-json.js +14 -0
- package/dist/worker/materialize/harness-task-lifecycle-probe.js +126 -0
- package/dist/worker/materialize/harness-task-lineage.js +220 -0
- package/dist/worker/materialize/harness-task-materializer.js +648 -0
- package/dist/worker/metrics/projector.js +139 -0
- package/dist/worker/observability/dag-execution-trajectory.js +591 -0
- package/dist/worker/observability/event-history.js +216 -0
- package/dist/worker/observability/event-store.js +83 -0
- package/dist/worker/observability/events.js +79 -0
- package/dist/worker/observability/interrupt-eligibility.js +264 -0
- package/dist/worker/observability/progress-composite.js +34 -0
- package/dist/worker/observability/read-model.js +2499 -0
- package/dist/worker/observability/snapshot-store.js +43 -0
- package/dist/worker/observability/types.js +1 -0
- package/dist/worker/observe/dag-node-execution-output.js +180 -0
- package/dist/worker/observe/dag-run-artifacts.js +90 -0
- package/dist/worker/observe/health.js +58 -0
- package/dist/worker/observe/night-jobs.js +104 -0
- package/dist/worker/observe/node-input.js +441 -0
- package/dist/worker/observe/paths.js +174 -0
- package/dist/worker/observe/routes.js +1077 -0
- package/dist/worker/observe/server.js +117 -0
- package/dist/worker/observe/spec-evidence.js +398 -0
- package/dist/worker/observe/static/api.js +117 -0
- package/dist/worker/observe/static/app.js +169 -0
- package/dist/worker/observe/static/constants.js +182 -0
- package/dist/worker/observe/static/copy.js +67 -0
- package/dist/worker/observe/static/custom-select.js +567 -0
- package/dist/worker/observe/static/dag-edge-routing.js +368 -0
- package/dist/worker/observe/static/dag-helpers.js +161 -0
- package/dist/worker/observe/static/dag-history-labels.js +95 -0
- package/dist/worker/observe/static/dag-layout.d.ts +36 -0
- package/dist/worker/observe/static/dag-layout.js +163 -0
- package/dist/worker/observe/static/dag-model.js +145 -0
- package/dist/worker/observe/static/dom.js +220 -0
- package/dist/worker/observe/static/favicon.svg +37 -0
- package/dist/worker/observe/static/format-pool.d.ts +71 -0
- package/dist/worker/observe/static/format-pool.js +153 -0
- package/dist/worker/observe/static/format.js +347 -0
- package/dist/worker/observe/static/index.html +409 -0
- package/dist/worker/observe/static/kpi.js +78 -0
- package/dist/worker/observe/static/markdown-render.js +124 -0
- package/dist/worker/observe/static/operator-chrome.css +517 -0
- package/dist/worker/observe/static/operator-chrome.d.ts +83 -0
- package/dist/worker/observe/static/operator-chrome.js +623 -0
- package/dist/worker/observe/static/relations.js +133 -0
- package/dist/worker/observe/static/router.js +156 -0
- package/dist/worker/observe/static/run-processing.js +148 -0
- package/dist/worker/observe/static/shell-chrome.js +65 -0
- package/dist/worker/observe/static/state.js +496 -0
- package/dist/worker/observe/static/styles.css +3567 -0
- package/dist/worker/observe/static/views/batch.js +227 -0
- package/dist/worker/observe/static/views/dag-graph.js +508 -0
- package/dist/worker/observe/static/views/dag-inspector.js +1722 -0
- package/dist/worker/observe/static/views/dag-trajectory.js +313 -0
- package/dist/worker/observe/static/views/dag.js +483 -0
- package/dist/worker/observe/static/views/dags.js +877 -0
- package/dist/worker/observe/static/views/dashboard.js +747 -0
- package/dist/worker/observe/static/views/failures.js +143 -0
- package/dist/worker/observe/static/views/feature.js +492 -0
- package/dist/worker/observe/static/views/night.js +201 -0
- package/dist/worker/observe/static/views/pool.js +708 -0
- package/dist/worker/observe/static/views/run.js +453 -0
- package/dist/worker/observe/static/views/session-timeline.js +771 -0
- package/dist/worker/observe/static/views/shell.js +7 -0
- package/dist/worker/observe/static/views/task.js +315 -0
- package/dist/worker/observe/static/views/timeline.js +163 -0
- package/dist/worker/outcomes/adapters.js +153 -0
- package/dist/worker/outcomes/declared-artifacts.js +103 -0
- package/dist/worker/outcomes/evidence-tokens.js +29 -0
- package/dist/worker/outcomes/gate.js +40 -0
- package/dist/worker/outcomes/projector.js +227 -0
- package/dist/worker/outcomes/registry.js +1 -0
- package/dist/worker/outcomes/store.js +131 -0
- package/dist/worker/outcomes/types.js +79 -0
- package/dist/worker/pool/attempt-identity.js +41 -0
- package/dist/worker/pool/attempt-lease.js +184 -0
- package/dist/worker/pool/attempt-transition.js +210 -0
- package/dist/worker/pool/begin-attempt-with-lease.js +26 -0
- package/dist/worker/pool/begin-attempt.js +35 -0
- package/dist/worker/pool/doctor.js +165 -0
- package/dist/worker/pool/failure-routing.js +182 -0
- package/dist/worker/pool/migrate-state.js +303 -0
- package/dist/worker/pool/reconcile.js +285 -0
- package/dist/worker/pool/recovery-decision.js +163 -0
- package/dist/worker/pool/run-owner-store.js +126 -0
- package/dist/worker/pool/run-store.js +360 -0
- package/dist/worker/pool/runtime-reconcile-inventory.js +127 -0
- package/dist/worker/pool/state-projection.js +57 -0
- package/dist/worker/pool/types.js +17 -0
- package/dist/worker/pool/validation.js +144 -0
- package/dist/worker/preflight.js +157 -0
- package/dist/worker/profile-mapping.js +76 -0
- package/dist/worker/progress-reporter.js +63 -0
- package/dist/worker/report/morning-report.js +155 -0
- package/dist/worker/repos/repo-resolver.js +23 -0
- package/dist/worker/run-task/execute-prepared-task.js +178 -0
- package/dist/worker/run-task/run-task.js +912 -0
- package/dist/worker/runner/run-ready.js +561 -0
- package/dist/worker/runner/single-task-attempt.js +176 -0
- package/dist/worker/scheduler/admission.js +547 -0
- package/dist/worker/scheduler/auto-followup.js +99 -0
- package/dist/worker/scheduler/cli.js +644 -0
- package/dist/worker/scheduler/clock-install/darwin-launchd.js +238 -0
- package/dist/worker/scheduler/clock-install/linux-systemd-user.js +224 -0
- package/dist/worker/scheduler/clock-install/types.js +1 -0
- package/dist/worker/scheduler/clock-install/win32-schtasks.js +227 -0
- package/dist/worker/scheduler/clock-install.js +284 -0
- package/dist/worker/scheduler/clock.js +420 -0
- package/dist/worker/scheduler/dispatcher.js +503 -0
- package/dist/worker/scheduler/doctor.js +431 -0
- package/dist/worker/scheduler/evidence.js +170 -0
- package/dist/worker/scheduler/git-base.js +90 -0
- package/dist/worker/scheduler/index.js +25 -0
- package/dist/worker/scheduler/lease.js +114 -0
- package/dist/worker/scheduler/lifecycle.js +348 -0
- package/dist/worker/scheduler/lock.js +80 -0
- package/dist/worker/scheduler/morning-window.js +191 -0
- package/dist/worker/scheduler/night-git-finalizer.js +114 -0
- package/dist/worker/scheduler/night-harvest.js +412 -0
- package/dist/worker/scheduler/paths.js +92 -0
- package/dist/worker/scheduler/prepared-attempt-recovery.js +471 -0
- package/dist/worker/scheduler/recovery.js +277 -0
- package/dist/worker/scheduler/reservation.js +146 -0
- package/dist/worker/scheduler/retry.js +199 -0
- package/dist/worker/scheduler/scheduler-loop.js +272 -0
- package/dist/worker/scheduler/store.js +275 -0
- package/dist/worker/scheduler/traceability.js +54 -0
- package/dist/worker/scheduler/trigger.js +258 -0
- package/dist/worker/scheduler/types.js +369 -0
- package/dist/worker/scheduler/workspace-adapter.js +128 -0
- package/dist/worker/task-graph/acceptance-schema.js +40 -0
- package/dist/worker/task-graph/ready-planner.js +267 -0
- package/dist/worker/task-graph/ready-queue.js +23 -0
- package/dist/worker/task-graph/task-graph-schema.js +59 -0
- package/dist/worker/task-graph/types.js +1 -0
- package/dist/worker/task-graph/validate.js +293 -0
- package/dist/worker/task-spec/complexity-mapping.js +8 -0
- package/dist/worker/task-spec/schema.js +125 -0
- package/dist/worker/task-spec/types.js +1 -0
- package/dist/worker/task-spec/validate.js +391 -0
- package/dist/worker/task-spec/workflow-routing.js +149 -0
- package/dist/workflows/dag/authoring.js +8 -0
- package/dist/workflows/dag/authority-surface.js +138 -0
- package/dist/workflows/dag/backend-test-analysis-contract.js +507 -0
- package/dist/workflows/dag/backend-test-case-coverage-analysis.js +1985 -0
- package/dist/workflows/dag/backend-test-case-manifest.js +638 -0
- package/dist/workflows/dag/backend-test-classification-contract.js +38 -0
- package/dist/workflows/dag/backend-test-contract-envelope.js +205 -0
- package/dist/workflows/dag/backend-test-coverage-contract.js +202 -0
- package/dist/workflows/dag/backend-test-execution-contract.js +715 -0
- package/dist/workflows/dag/backend-test-gap-fill.js +205 -0
- package/dist/workflows/dag/backend-test-intake-context.js +178 -0
- package/dist/workflows/dag/backend-test-layout.js +133 -0
- package/dist/workflows/dag/backend-test-markdown-workflow.js +1984 -0
- package/dist/workflows/dag/backend-test-module-stem.js +26 -0
- package/dist/workflows/dag/backend-test-pytest-collection.js +859 -0
- package/dist/workflows/dag/backend-test-result-contract.js +1030 -0
- package/dist/workflows/dag/backend-test-scenario-param.js +1670 -0
- package/dist/workflows/dag/backend-test-scenario-partitions.js +249 -0
- package/dist/workflows/dag/backend-test-semantic-review-contract.js +36 -0
- package/dist/workflows/dag/backend-test-stability-contract.js +57 -0
- package/dist/workflows/dag/backend-test-writer-completeness.js +1058 -0
- package/dist/workflows/dag/budget-enforcement.js +67 -0
- package/dist/workflows/dag/canvas-observer.js +474 -0
- package/dist/workflows/dag/context-policy.js +137 -0
- package/dist/workflows/dag/contract-output-registry.js +14 -0
- package/dist/workflows/dag/contract-validator-registrations.js +10 -0
- package/dist/workflows/dag/controller-identity.js +104 -0
- package/dist/workflows/dag/convergence/controller.js +596 -0
- package/dist/workflows/dag/decision-envelope.js +557 -0
- package/dist/workflows/dag/decision-evidence.js +153 -0
- package/dist/workflows/dag/decision-gates.js +1 -0
- package/dist/workflows/dag/dynamic-runtime/condition.js +48 -0
- package/dist/workflows/dag/dynamic-runtime/loop-until.js +161 -0
- package/dist/workflows/dag/dynamic-runtime/map.js +435 -0
- package/dist/workflows/dag/dynamic-runtime/reduction.js +72 -0
- package/dist/workflows/dag/dynamic-runtime/shared.js +203 -0
- package/dist/workflows/dag/event-observer.js +132 -0
- package/dist/workflows/dag/executor-registry.js +23 -0
- package/dist/workflows/dag/facts.js +4 -0
- package/dist/workflows/dag/failure-category.js +118 -0
- package/dist/workflows/dag/failure-routing.js +105 -0
- package/dist/workflows/dag/final-verification.js +180 -0
- package/dist/workflows/dag/frontend-implementation-contract.js +1911 -0
- package/dist/workflows/dag/frontend-lint-baseline.js +474 -0
- package/dist/workflows/dag/frontend-plan-render.js +90 -0
- package/dist/workflows/dag/frontend-prewrite-gate.js +1011 -0
- package/dist/workflows/dag/frontend-project-capability.js +1 -0
- package/dist/workflows/dag/frontend-recovery-plan.js +73 -0
- package/dist/workflows/dag/frontend-recovery-root-manifest.js +123 -0
- package/dist/workflows/dag/frontend-recovery-run.js +539 -0
- package/dist/workflows/dag/frontend-repair.js +541 -0
- package/dist/workflows/dag/frontend-review-context.js +116 -0
- package/dist/workflows/dag/frontend-risk.js +161 -0
- package/dist/workflows/dag/frontend-test-case-checklist.js +343 -0
- package/dist/workflows/dag/frontend-test-case-manifest.js +104 -0
- package/dist/workflows/dag/frontend-test-case-quality.js +105 -0
- package/dist/workflows/dag/frontend-test-html-report.js +174 -0
- package/dist/workflows/dag/frontend-test-l5-report.js +177 -0
- package/dist/workflows/dag/frontend-test-result-contract.js +487 -0
- package/dist/workflows/dag/frontend-verification-trace.js +275 -0
- package/dist/workflows/dag/frontend-worktree-diff.js +201 -0
- package/dist/workflows/dag/frontend-writer-recovery.js +106 -0
- package/dist/workflows/dag/frontend-writer-rollback.js +821 -0
- package/dist/workflows/dag/governance-constants.js +5 -0
- package/dist/workflows/dag/governance-profile.js +413 -0
- package/dist/workflows/dag/index.js +6 -0
- package/dist/workflows/dag/init-hybrid.js +7345 -0
- package/dist/workflows/dag/interrupt-request.js +559 -0
- package/dist/workflows/dag/knowledge-curator.js +165 -0
- package/dist/workflows/dag/l5-report-metrics.js +33 -0
- package/dist/workflows/dag/lifecycle.js +855 -0
- package/dist/workflows/dag/liveness-policy.js +251 -0
- package/dist/workflows/dag/node-execution.js +1081 -0
- package/dist/workflows/dag/observer-compose.js +52 -0
- package/dist/workflows/dag/output-protocol.js +356 -0
- package/dist/workflows/dag/project-governance-context.js +514 -0
- package/dist/workflows/dag/prompt-source.js +88 -0
- package/dist/workflows/dag/prompt.js +348 -0
- package/dist/workflows/dag/reconcile-run.js +145 -0
- package/dist/workflows/dag/reconcile-tasks.js +404 -0
- package/dist/workflows/dag/recovery-recommendation.js +329 -0
- package/dist/workflows/dag/repair-artifact.js +363 -0
- package/dist/workflows/dag/report.js +1229 -0
- package/dist/workflows/dag/rerun-plan.js +614 -0
- package/dist/workflows/dag/rerun-run.js +556 -0
- package/dist/workflows/dag/rerun-task.js +370 -0
- package/dist/workflows/dag/retry-policy.js +263 -0
- package/dist/workflows/dag/run-store.js +41 -0
- package/dist/workflows/dag/runner.js +1069 -0
- package/dist/workflows/dag/runtime-contract.js +87 -0
- package/dist/workflows/dag/runtime.js +5 -0
- package/dist/workflows/dag/scheduler.js +497 -0
- package/dist/workflows/dag/sdd-embedded.js +128 -0
- package/dist/workflows/dag/skill-instructions.js +478 -0
- package/dist/workflows/dag/skill-snapshot.js +553 -0
- package/dist/workflows/dag/skills.js +41 -0
- package/dist/workflows/dag/spec.js +3 -0
- package/dist/workflows/dag/task-contract-binding.js +138 -0
- package/dist/workflows/dag/task-demand-routing.js +1 -0
- package/dist/workflows/dag/topo.js +30 -0
- package/dist/workflows/dag/types.js +1145 -0
- package/dist/workflows/dag/upstream-artifacts.js +98 -0
- package/dist/workflows/dag/validate.js +998 -0
- package/dist/workflows/dag/workspace-checkpoint.js +186 -0
- package/dist/workflows/dynamic/artifacts.js +65 -0
- package/dist/workflows/dynamic/compile.js +371 -0
- package/dist/workflows/dynamic/compileTypes.js +1 -0
- package/dist/workflows/dynamic/errors.js +5 -0
- package/dist/workflows/dynamic/index.js +7 -0
- package/dist/workflows/dynamic/profiles.js +156 -0
- package/dist/workflows/dynamic/spec.js +115 -0
- package/dist/workflows/dynamic/validate.js +275 -0
- package/dist/workflows/loop/actions/dag-action.js +129 -0
- package/dist/workflows/loop/actions/pi-review.js +267 -0
- package/dist/workflows/loop/actions/shared.js +157 -0
- package/dist/workflows/loop/actions/shell-verify.js +82 -0
- package/dist/workflows/loop/actions/types.js +1 -0
- package/dist/workflows/loop/actions/workflow-action.js +255 -0
- package/dist/workflows/loop/actions.js +160 -0
- package/dist/workflows/loop/benchmark.js +510 -0
- package/dist/workflows/loop/closeout.js +135 -0
- package/dist/workflows/loop/context.js +47 -0
- package/dist/workflows/loop/events.js +26 -0
- package/dist/workflows/loop/hash.js +32 -0
- package/dist/workflows/loop/index.js +8 -0
- package/dist/workflows/loop/paths.js +17 -0
- package/dist/workflows/loop/policy/auto-policy.js +112 -0
- package/dist/workflows/loop/policy/path-patterns.js +13 -0
- package/dist/workflows/loop/rounds.js +81 -0
- package/dist/workflows/loop/signals.js +52 -0
- package/dist/workflows/loop/state.js +116 -0
- package/dist/workflows/loop/templates.js +54 -0
- package/dist/workflows/loop/types.js +28 -0
- package/docs/README.md +82 -0
- package/docs/architecture/README.md +35 -0
- package/docs/architecture/dag-execution.md +165 -0
- package/docs/architecture/evolution.md +108 -0
- package/docs/architecture/facts-and-state.md +74 -0
- package/docs/architecture/runtime-boundaries.md +226 -0
- package/docs/architecture/system-overview.md +100 -0
- package/docs/architecture/worker-and-feature.md +122 -0
- package/docs/governance/README.md +18 -0
- package/docs/governance/harness-methodology-debugging.md +177 -0
- package/docs/governance/harness-methodology-tdd.md +130 -0
- package/docs/governance/harness-methodology-verification.md +27 -0
- package/docs/init-surface.manifest.json +358 -0
- package/docs/operations/README.md +15 -0
- package/docs/operations/local-development-environment.md +77 -0
- package/docs/skills/README.md +7 -0
- package/docs/skills/vetted-skill-registry.md +49 -0
- package/docs/templates/README.md +67 -0
- package/docs/templates/adr.md +60 -0
- package/docs/templates/agent-dag-authority-surface-audit.prompt.md +94 -0
- package/docs/templates/agent-dag-decision-envelope.schema.json +213 -0
- package/docs/templates/agent-dag-decision-gate-dogfood-report.md +117 -0
- package/docs/templates/agent-dag-decision-gate.prompt.md +246 -0
- package/docs/templates/agent-dag-process-supervisor.prompt.md +98 -0
- package/docs/templates/agent-dag-report.schema.json +473 -0
- package/docs/templates/agent-dag-review-verdict.prompt.md +68 -0
- package/docs/templates/agent-dag.base.json +190 -0
- package/docs/templates/agent-dag.final-verification.json +185 -0
- package/docs/templates/agent-dag.schema.json +590 -0
- package/docs/templates/agent-dag.supervised-implementation.json +640 -0
- package/docs/templates/agent-worker-production-readiness-checklist.md +47 -0
- package/docs/templates/backend-test-analysis.schema.json +37 -0
- package/docs/templates/backend-test-case-manifest.schema.json +223 -0
- package/docs/templates/backend-test-dag.classify.prompt.md +75 -0
- package/docs/templates/backend-test-dag.generate-pytest.prompt.md +41 -0
- package/docs/templates/backend-test-dag.json +671 -0
- package/docs/templates/backend-test-dag.retrospect.prompt.md +165 -0
- package/docs/templates/backend-test-dag.review-cases.prompt.md +36 -0
- package/docs/templates/backend-test-execution.schema.json +138 -0
- package/docs/templates/backend-test-result.schema.json +99 -0
- package/docs/templates/branch-merge-report.md +115 -0
- package/docs/templates/evaluation/agents-map-slim-v1.candidate.json +9 -0
- package/docs/templates/evaluation/agents-map-slim-v1.md +87 -0
- package/docs/templates/evaluation/agents-map-verbose-v0.candidate.json +9 -0
- package/docs/templates/evaluation/agents-map-verbose-v0.md +153 -0
- package/docs/templates/evaluation/campaign-budget-v1.json +12 -0
- package/docs/templates/evaluation/campaign-dogfood-v0.json +24 -0
- package/docs/templates/evaluation/campaign-evidence-v1.json +44 -0
- package/docs/templates/evaluation/context-policy-baseline-v1.json +17 -0
- package/docs/templates/evaluation/context-policy-role-specialized-v1.json +28 -0
- package/docs/templates/evaluation/corpus-dogfood-v0.manifest.json +118 -0
- package/docs/templates/evaluation/matrix-dag-dry-run-v1.json +21 -0
- package/docs/templates/evaluation/matrix-fixture-v1.json +10 -0
- package/docs/templates/evaluation/private-verifier-dogfood-v0.json +16 -0
- package/docs/templates/exec-plan.md +66 -0
- package/docs/templates/feature-spec.md +53 -0
- package/docs/templates/frontend-design-contract.md +68 -0
- package/docs/templates/frontend-eval/fixtures/failures/01-type-build-error.md +17 -0
- package/docs/templates/frontend-eval/fixtures/failures/02-unit-component-test-fail.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/03-fixture-schema-drift.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/04-missing-loading-empty-error-state.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/05-forbidden-write-writeset-expansion.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/06-unapproved-dependency-add.md +16 -0
- package/docs/templates/frontend-eval/fixtures/failures/07-mock-production-on.md +21 -0
- package/docs/templates/frontend-eval/fixtures/functional/01-simple-component-style.md +29 -0
- package/docs/templates/frontend-eval/fixtures/functional/02-form-validation.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/03-list-detail-page.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/04-api-mock.md +29 -0
- package/docs/templates/frontend-eval/fixtures/functional/05-permission-auth-gated-ui.md +27 -0
- package/docs/templates/frontend-eval/fixtures/functional/06-ssr-server-client-boundary.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/07-shared-public-component-api.md +28 -0
- package/docs/templates/frontend-eval/fixtures/functional/08-pure-local-no-remote.md +27 -0
- package/docs/templates/frontend-eval/metrics.md +138 -0
- package/docs/templates/frontend-eval/smoke-targets.md +53 -0
- package/docs/templates/frontend-implementation-contract.schema.json +35 -0
- package/docs/templates/frontend-task-constraints.md +62 -0
- package/docs/templates/frontend-task-requirement.md +104 -0
- package/docs/templates/frontend-test-case-checklist.md +44 -0
- package/docs/templates/frontend-test-case.example.md +143 -0
- package/docs/templates/frontend-test-dag.generate-cases.prompt.md +63 -0
- package/docs/templates/frontend-test-dag.json +409 -0
- package/docs/templates/frontend-test-dag.retrieve-context.prompt.md +21 -0
- package/docs/templates/frontend-test-dag.retrospect.prompt.md +5 -0
- package/docs/templates/frontend-test-dag.review-cases.prompt.md +5 -0
- package/docs/templates/frontend-test-dag.review-execution.prompt.md +3 -0
- package/docs/templates/frontend-test-standard-scenarios.v1.json +159 -0
- package/docs/templates/harness.schema.json +351 -0
- package/docs/templates/hybrid-dag.json +188 -0
- package/docs/templates/init-evolution-review.md +35 -0
- package/docs/templates/init-managed-agents.md +157 -0
- package/docs/templates/interactive-ui-round2-experiment.md +66 -0
- package/docs/templates/knowledge-graph-bootstrap-dag.json +118 -0
- package/docs/templates/knowledge-sync-dag.json +178 -0
- package/docs/templates/knowledge-sync-draft.schema.json +71 -0
- package/docs/templates/product-line/AGENTS.md +9 -0
- package/docs/templates/product-line/README.md +42 -0
- package/docs/templates/product-line/acceptance.yaml +23 -0
- package/docs/templates/product-line/closeout.yaml +9 -0
- package/docs/templates/product-line/design.md +13 -0
- package/docs/templates/product-line/feature-scaffold-batch.example.yaml +31 -0
- package/docs/templates/product-line/feature.yaml +11 -0
- package/docs/templates/product-line/links.md +10 -0
- package/docs/templates/product-line/requirement.md +17 -0
- package/docs/templates/product-line/scaffold-samples/README.md +36 -0
- package/docs/templates/product-line/scaffold-samples/backend-only/acceptance.yaml +16 -0
- package/docs/templates/product-line/scaffold-samples/backend-only/design.md +14 -0
- package/docs/templates/product-line/scaffold-samples/backend-only/feature.yaml +14 -0
- package/docs/templates/product-line/scaffold-samples/backend-only/requirement.md +6 -0
- package/docs/templates/product-line/scaffold-samples/backend-only/tasks/BE-IMPL-001.yaml +83 -0
- package/docs/templates/product-line/scaffold-samples/backend-only/tasks/task-graph.yaml +14 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/acceptance.yaml +18 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/design.md +18 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/feature.yaml +14 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/requirement.md +6 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/BE-IMPL-001.yaml +84 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/CONTRACT-001.yaml +84 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/FE-IMPL-001.yaml +86 -0
- package/docs/templates/product-line/scaffold-samples/fe-with-api/tasks/task-graph.yaml +40 -0
- package/docs/templates/product-line/scaffold-samples/frontend-only/acceptance.yaml +16 -0
- package/docs/templates/product-line/scaffold-samples/frontend-only/design.md +14 -0
- package/docs/templates/product-line/scaffold-samples/frontend-only/feature.yaml +14 -0
- package/docs/templates/product-line/scaffold-samples/frontend-only/requirement.md +6 -0
- package/docs/templates/product-line/scaffold-samples/frontend-only/tasks/FE-IMPL-001.yaml +85 -0
- package/docs/templates/product-line/scaffold-samples/frontend-only/tasks/task-graph.yaml +14 -0
- package/docs/templates/product-line/task-graph.yaml +23 -0
- package/docs/templates/product-line/task.yaml +68 -0
- package/docs/templates/product-line/test-plan.md +7 -0
- package/docs/templates/production-readiness-checklist.md +57 -0
- package/docs/templates/progress-log.md +27 -0
- package/docs/templates/project-start-checklist.md +9 -0
- package/docs/templates/qa-report.md +48 -0
- package/docs/templates/sprint-contract.md +29 -0
- package/docs/templates/worker-dogfood-evidence.md +80 -0
- package/docs/templates/worker-dogfood-setup.md +68 -0
- package/examples/decision-gate-agent-dag.json +177 -0
- package/examples/example-dag.json +46 -0
- package/examples/hybrid-loop-agent-dag.json +189 -0
- package/examples/l5-report-coms-process-definition.html +322 -0
- package/examples/l5-report-demo.html +79 -0
- package/harness.json +90 -0
- package/package.json +98 -0
- package/scripts/kb-bootstrap-init-skeleton.sh +241 -0
- package/scripts/kb-graph-incremental-prepare.mjs +386 -0
- package/scripts/kb-graph-materialize.mjs +105 -0
- package/scripts/kb-graph-promote.mjs +164 -0
- package/scripts/kb-query.mjs +554 -0
- package/skills/agent-worker/SKILL.md +48 -0
- package/skills/agent-worker/references/agent-worker-operator.md +159 -0
- package/skills/ai-engineering-context/SKILL.md +48 -0
- package/skills/analyze-product-dependencies/SKILL.md +108 -0
- package/skills/analyze-product-dependencies/references/api-documentation-schema.md +35 -0
- package/skills/analyze-product-dependencies/references/dependency-analysis-schema.md +38 -0
- package/skills/analyze-product-dependencies/references/example.md +76 -0
- package/skills/analyze-product-dependencies/references/forward-test-cases.md +110 -0
- package/skills/analyze-product-dependencies/references/input-contract.md +34 -0
- package/skills/analyze-product-dependencies/references/kb-integration.md +64 -0
- package/skills/analyze-product-dependencies/references/scouting-rules.md +76 -0
- package/skills/analyze-product-dependencies/scripts/test-validators.mjs +460 -0
- package/skills/analyze-product-dependencies/scripts/validate-api-documentation.mjs +194 -0
- package/skills/analyze-product-dependencies/scripts/validate-dependency-analysis.mjs +200 -0
- package/skills/analyze-product-dependencies/scripts/validate-product-requirement-input.mjs +90 -0
- package/skills/analyze-product-dependencies/scripts/validation-helpers.mjs +138 -0
- package/skills/analyze-product-requirements/SKILL.md +145 -0
- package/skills/analyze-product-requirements/references/acceptance-criteria.md +87 -0
- package/skills/analyze-product-requirements/references/clarification-and-knowledge.md +70 -0
- package/skills/analyze-product-requirements/references/example.md +104 -0
- package/skills/analyze-product-requirements/references/forward-test-cases.md +144 -0
- package/skills/analyze-product-requirements/references/kb-integration.md +56 -0
- package/skills/analyze-product-requirements/references/product-analysis-schema.md +41 -0
- package/skills/analyze-product-requirements/references/product-requirement-schema.md +42 -0
- package/skills/analyze-product-requirements/references/requirement-clarification-schema.md +66 -0
- package/skills/analyze-product-requirements/scripts/compute-source-identity.mjs +35 -0
- package/skills/analyze-product-requirements/scripts/test-validators.mjs +501 -0
- package/skills/analyze-product-requirements/scripts/validate-product-analysis.mjs +100 -0
- package/skills/analyze-product-requirements/scripts/validate-product-requirement.mjs +109 -0
- package/skills/analyze-product-requirements/scripts/validate-requirement-clarification.mjs +109 -0
- package/skills/analyze-product-requirements/scripts/validation-helpers.mjs +175 -0
- package/skills/browser-tools/SKILL.md +196 -0
- package/skills/browser-tools/browser-content.js +103 -0
- package/skills/browser-tools/browser-cookies.js +35 -0
- package/skills/browser-tools/browser-eval.js +53 -0
- package/skills/browser-tools/browser-hn-scraper.js +108 -0
- package/skills/browser-tools/browser-nav.js +44 -0
- package/skills/browser-tools/browser-pick.js +162 -0
- package/skills/browser-tools/browser-screenshot.js +34 -0
- package/skills/browser-tools/browser-start.js +86 -0
- package/skills/browser-tools/package-lock.json +2556 -0
- package/skills/browser-tools/package.json +19 -0
- package/skills/code-review-core/SKILL.md +20 -0
- package/skills/codebase-scout/SKILL.md +19 -0
- package/skills/frontend-bounded-implement/SKILL.md +53 -0
- package/skills/frontend-design-review/SKILL.md +79 -0
- package/skills/frontend-design-review/references/review-checklist.md +43 -0
- package/skills/frontend-implementation/SKILL.md +52 -0
- package/skills/frontend-implementation/references/code-standards.md +33 -0
- package/skills/frontend-implementation/references/design-spec.md +56 -0
- package/skills/frontend-implementation/references/node-contracts.md +31 -0
- package/skills/frontend-review/SKILL.md +55 -0
- package/skills/frontend-review/references/review-findings.md +50 -0
- package/skills/frontend-verification/SKILL.md +61 -0
- package/skills/frontend-verification/references/verification-checklist.md +48 -0
- package/skills/grill-me/SKILL.md +10 -0
- package/skills/grill-with-docs/SKILL.md +80 -0
- package/skills/grill-with-docs/adr-format.md +58 -0
- package/skills/grill-with-docs/context-format.md +52 -0
- package/skills/init-capability-evolution/SKILL.md +70 -0
- package/skills/local-jacoco-coverage/SKILL.md +281 -0
- package/skills/local-jacoco-coverage/references/requirement-to-source-mapping.md +85 -0
- package/skills/local-jacoco-coverage/references/runtime-alignment.md +106 -0
- package/skills/local-jacoco-coverage/scripts/run-coverage-analysis.sh +148 -0
- package/skills/local-jacoco-coverage/scripts/start-jacoco-agent.sh +110 -0
- package/skills/loop-agent/SKILL.md +68 -0
- package/skills/loop-agent/references/README.md +67 -0
- package/skills/loop-agent/references/command-reference.md +645 -0
- package/skills/loop-agent/references/docs-converge.md +126 -0
- package/skills/loop-agent/references/harness-policy.md +289 -0
- package/skills/loop-agent/references/hybrid-dag.md +245 -0
- package/skills/loop-agent/references/learned/README.md +21 -0
- package/skills/loop-agent/references/long-running-loop.md +57 -0
- package/skills/loop-agent/references/model-routing.md +45 -0
- package/skills/loop-agent/references/multi-worktree.md +54 -0
- package/skills/loop-agent/references/one-shot-runs.md +84 -0
- package/skills/loop-agent/references/orchestrator-and-interventions.md +175 -0
- package/skills/loop-agent/references/pi-prompt.md +23 -0
- package/skills/loop-agent/references/pi-subagent-assisted-mode.md +84 -0
- package/skills/loop-agent/references/post-implementation-and-patterns.md +54 -0
- package/skills/loop-agent/references/source-and-plan-practice.md +169 -0
- package/skills/loop-agent/references/task-workflow.md +104 -0
- package/skills/loop-agent/references/verification-and-failure-handling.md +148 -0
- package/skills/playwright-cli/SKILL.md +93 -0
- package/skills/playwright-cli/references/element-attributes.md +23 -0
- package/skills/playwright-cli/references/playwright-tests.md +39 -0
- package/skills/playwright-cli/references/request-mocking.md +87 -0
- package/skills/playwright-cli/references/running-code.md +241 -0
- package/skills/playwright-cli/references/session-management.md +225 -0
- package/skills/playwright-cli/references/storage-state.md +275 -0
- package/skills/playwright-cli/references/test-generation.md +433 -0
- package/skills/playwright-cli/references/tracing.md +5 -0
- package/skills/playwright-cli/references/video-recording.md +5 -0
- package/skills/playwright-cli-case-generator/SKILL.md +108 -0
- package/skills/requesting-code-review/SKILL.md +101 -0
- package/skills/requesting-code-review/code-reviewer.md +168 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/SKILL.md +312 -0
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/find-polluter.sh +63 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/test-driven-development/SKILL.md +27 -0
- package/skills/using-git-worktrees/SKILL.md +215 -0
- package/skills/verification-before-completion/SKILL.md +154 -0
- package/skills/webapp-testing/SKILL.md +19 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
# Agent Worker Operator Reference
|
|
2
|
+
|
|
3
|
+
`agent-worker` 是 Feature Packet、TaskSpec、Task Pool 与 self-hosting release-train 操作的 outer-loop adapter。它不是 DAG executor。
|
|
4
|
+
|
|
5
|
+
## Compatibility / Operator Assist
|
|
6
|
+
|
|
7
|
+
主会话使用本 reference 时是 **operator**,不是 implementer:
|
|
8
|
+
|
|
9
|
+
| 允许 | 禁止 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| `agent-worker` / `loop-agent` CLI | 宿主 Edit/Write 直接改业务实现 |
|
|
12
|
+
| 只读 doctor / observe / report / status | Worker 或 DAG 失败后「救火改文件」 |
|
|
13
|
+
| 冻结 controller identity、选 Ready、retry/reconcile | 跳过 published controller 手写实现收尾 |
|
|
14
|
+
| human gate 记录 | 用聊天完成声明代替 shell / harness 证据 |
|
|
15
|
+
|
|
16
|
+
实现写入只通过 Worker spawn 的已发布 `loop-agent` DAG。skills 不能替代 writeSet 或 controller identity。
|
|
17
|
+
|
|
18
|
+
## Routing Boundary
|
|
19
|
+
|
|
20
|
+
当工作单元是 Feature lifecycle、一组 TaskSpecs、Ready queue、Worker batch 或 candidate takeover 时,选 `agent-worker`。当工作单元是单次受治理 DAG run、node implementation、DAG diagnosis 或 DAG runtime repair 时,选 `loop-agent` CLI。
|
|
21
|
+
|
|
22
|
+
Leaf DAG nodes 不得递归启动 `agent-worker`。Worker 负责 DAG 之外的 selection 与 lifecycle state;loop-agent 负责 DAG 内的 execution facts。主会话不得绕过二者直接实现。
|
|
23
|
+
|
|
24
|
+
## Responsibilities
|
|
25
|
+
|
|
26
|
+
- 在选工前校验 Feature Packet 与 TaskSpec 关系。
|
|
27
|
+
- 从 Task Pool facts 选择 Ready 工作,定义 batch scope,并选择 recovery actions。
|
|
28
|
+
- 在可写执行前解析并冻结 controller launch identity。
|
|
29
|
+
- 用 pinned controller identity 启动 loop-agent 命令。
|
|
30
|
+
- 收集 canonical run records、reports、closeout drafts 与 failure handoff evidence。
|
|
31
|
+
|
|
32
|
+
## Feature and Task Pool Flow
|
|
33
|
+
|
|
34
|
+
0. **新建 Packet(确定性脚手架,无模型)** — 包内自洽说明见下节 *Feature Packet Scaffold*;不依赖 website 文档站。
|
|
35
|
+
|
|
36
|
+
1. 阅读 Feature Packet,校验其 TaskSpecs 与 dependency graph。
|
|
37
|
+
2. 从持久化的 Task Pool state 推导下一步动作;不要从 chat history 重建 lifecycle state。canonical state 键是 `{ featureId, taskId }`(路径 `.harness/task-pool/states/<featureId>/<taskId>.json`)。
|
|
38
|
+
3. 对可写 batch 只冻结一次 controller,并将其 identity 传播到下游 evidence。
|
|
39
|
+
4. 将每个选中的 TaskSpec **经 CLI** 委托给 loop-agent,使用其结构化的 allowed / forbidden paths;主会话不代替 writer。
|
|
40
|
+
5. 根据 canonical run facts 刷新 Feature review、reports 与 Task Pool state。
|
|
41
|
+
6. 重试 Failed task(CLI only;禁止主会话手改实现):
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
agent-worker task retry <task-id> --feature-id <feature-id> --repo <repo> --reason <reason>
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
跨 Feature 同名 Task 时省略 `--feature-id` 必须 fail-closed。
|
|
48
|
+
7. 诊断 / 迁移 legacy 扁平 state:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
agent-worker pool doctor --repo <repo> --json
|
|
52
|
+
agent-worker pool migrate-state --repo <repo> # dry-run
|
|
53
|
+
agent-worker pool migrate-state --repo <repo> --apply --owner <owner> --reason <reason>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
doctor 只读;migrate 默认零写入,apply 失败全回滚且不改 JSONL。
|
|
57
|
+
8. Inspect(原 Observe)只读:仅推荐 `agent-worker console` 的 `/inspect/#/...`;`observe snapshot` 仍可用。`observe serve` 已下线(REMOVED / exit 2)。canonical Task 路由为 `/api/features/:featureId/tasks/:taskId` 与 `#/feature/:featureId/task/:taskId`。8790 `/api/health` 为 `OperatorSurfaceHealthV1`。
|
|
58
|
+
9. Official Console:`agent-worker console|doctor`(默认 loopback;可 `--host 0.0.0.0` / `--debug` / `--no-open`)。Recovery CTA 为 report/doctor/decision/resume/reconcile/regenerate/打开检视;无 Cancel、无主 CTA「直接改代码」。主会话 Compatibility Assist 不得替代 Console/CLI 执法。
|
|
59
|
+
|
|
60
|
+
## Feature Packet Scaffold
|
|
61
|
+
|
|
62
|
+
确定性入口:一个纯 BE/FE 需求 → 一个 `features/F-YYYY-NNN/` Packet → Task Pool 串行掘进。主会话只跑 CLI,不手写 TaskGraph。
|
|
63
|
+
|
|
64
|
+
### 边界(v1)
|
|
65
|
+
|
|
66
|
+
| 做 | 不做 |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| 模板 + 槽位确定性生成 | 一键 LLM 生成完整合同 |
|
|
69
|
+
| `profile: generic` 短图 | 默认 `fullstack-v1` / 复制 `F-2026-005` 全图 |
|
|
70
|
+
| 显式 `--verify-command` | 猜测项目测试命令 |
|
|
71
|
+
| 一需求一 Feature 目录 | 跨 Feature 自动 depends / 并行 Pool |
|
|
72
|
+
| 写盘前同源 `task validate-feature` | 读/写 `.harness/**` 或构造 `LoopAgentClient` |
|
|
73
|
+
|
|
74
|
+
### 三模板
|
|
75
|
+
|
|
76
|
+
| 模板 | 最小图 |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| `backend-only` | `BE-IMPL-001`(需 ≥1 `--be-path`) |
|
|
79
|
+
| `frontend-only` | `FE-IMPL-001`(需 ≥1 `--fe-path`) |
|
|
80
|
+
| `fe-with-api` | `CONTRACT-001` → `BE-IMPL-001` + `FE-IMPL-001`(consumers 仅实现节点;两端 path 都要) |
|
|
81
|
+
|
|
82
|
+
v1 **不**生成 `BE-TEST` / `FE-TEST` / `FINAL-VERIFY`。`feature_id` 强制 `F-YYYY-NNN`(≥3 位序号)。输出固定 `<repo>/features/<feature-id>`;无 `--force` / `--out`;已存在目录(含空目录)一律拒绝。
|
|
83
|
+
|
|
84
|
+
### 日常命令
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
# 可选 dry-run:完整 parse/render/validate,零写入
|
|
88
|
+
agent-worker feature scaffold --repo <repo> --template backend-only \
|
|
89
|
+
--feature-id F-2026-010 --title "..." \
|
|
90
|
+
--be-path services/example/** \
|
|
91
|
+
--verify-command "npm run typecheck" --verify-command "npm test" \
|
|
92
|
+
--dry-run --json
|
|
93
|
+
|
|
94
|
+
agent-worker feature scaffold --repo <repo> --template frontend-only \
|
|
95
|
+
--feature-id F-2026-011 --title "..." \
|
|
96
|
+
--fe-path apps/web/src/settings/** \
|
|
97
|
+
--verify-command "npm test" --json
|
|
98
|
+
|
|
99
|
+
agent-worker feature scaffold --repo <repo> --template fe-with-api \
|
|
100
|
+
--feature-id F-2026-012 --title "..." \
|
|
101
|
+
--be-path services/api/** --fe-path apps/web/src/api/** \
|
|
102
|
+
[--contract-path docs/contracts/F-2026-012/api.md] \
|
|
103
|
+
--verify-command "npm test" --json
|
|
104
|
+
|
|
105
|
+
# 机器门禁 → 只读决策 → 串行掘进(固定 published controller)
|
|
106
|
+
agent-worker task validate-feature features/F-2026-010
|
|
107
|
+
agent-worker feature review --feature-dir features/F-2026-010 --repo <repo> --json
|
|
108
|
+
agent-worker feature run --feature-dir features/F-2026-010 --repo <repo> \
|
|
109
|
+
--loop-agent-bin <published> \
|
|
110
|
+
--expected-controller-version <version> \
|
|
111
|
+
--expected-controller-fingerprint sha256:<hex> \
|
|
112
|
+
--git-mode checkpoint --limit 1 --json
|
|
113
|
+
|
|
114
|
+
# Failed 只走官方恢复
|
|
115
|
+
agent-worker task retry <taskId> --feature-id F-2026-010 --repo <repo> --reason "..."
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Batch
|
|
119
|
+
|
|
120
|
+
```text
|
|
121
|
+
agent-worker feature scaffold --repo <repo> --batch <yaml-or-json> [--dry-run] [--json]
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
- 与单条 flags 互斥;每条必须显式 `feature_id` / `title` / `template` / `verify_commands`。
|
|
125
|
+
- 任一非法、冲突、目标已存在或写盘失败 → **整批零写入**(已提交目录回滚)。
|
|
126
|
+
- 示例形状(包内模板若存在):`docs/templates/product-line/feature-scaffold-batch.example.yaml`。
|
|
127
|
+
- 三模板生成快照(只读、防漂移,非 live Feature):`docs/templates/product-line/scaffold-samples/{backend-only,frontend-only,fe-with-api}/`。
|
|
128
|
+
|
|
129
|
+
### 多需求策略
|
|
130
|
+
|
|
131
|
+
1. 一个需求条目 → 一个 Feature 目录。
|
|
132
|
+
2. 多个 FE/BE 需求:batch scaffold 后 **串行** `feature run --limit 1`(先完 F-010 再 F-011)。
|
|
133
|
+
3. 后端可独立交付时:先 `backend-only`,再 `frontend-only`(跨 Feature 依赖只写文档,不做自动 depends_on)。
|
|
134
|
+
4. 同 Feature 内 BE+FE 原子交付用 `fe-with-api`。
|
|
135
|
+
|
|
136
|
+
### 内容与完成定义
|
|
137
|
+
|
|
138
|
+
- scaffold 只给骨架;`requirement.md` / AC 文案由人或后续「只填槽、不改 graph」skill 填充。
|
|
139
|
+
- v1 完成 = Packet 可 scaffold 且 Pool 可掘进到图内 Task **Done**;`verify-final` / Delivery / Closeout 为 v1.5(ADR 0007),非 scaffold 必经。
|
|
140
|
+
- 已知恢复限制:mid-run `SIGKILL` 可能导致 Pool `Running` 且 `runs.jsonl` 缺失时 reconcile 失败(FC-B);勿对 worker 随意 SIGKILL;Failed 后用 `task retry`。
|
|
141
|
+
|
|
142
|
+
## Versioned Self-Hosting
|
|
143
|
+
|
|
144
|
+
- Published version N 是整个 maintenance batch 的 controller;不要在任务中途切换。
|
|
145
|
+
- Candidate N+1 在 takeover verification 前先构建并安装到 isolated slot。
|
|
146
|
+
- Candidate 命令使用绝对 package entry identities,绝不使用新解析的 global PATH 命令。
|
|
147
|
+
- Controller identity 与 DAG skill snapshot 应对不同漂移风险:前者钉住 runtime/package content,后者钉住单次 run 的 resolved instructions。
|
|
148
|
+
- 失败的 canary 或 Worker run 仍是不可变 evidence。将 retries 与后续工作链接到它,而不是覆盖失败记录。
|
|
149
|
+
|
|
150
|
+
## Non Responsibilities
|
|
151
|
+
|
|
152
|
+
- 不要在此实现 node scheduling、write-set enforcement 或 model prompts。
|
|
153
|
+
- 不要在本 skill 中维护一份独立的精确 CLI flags 列表;以 CLI help 与 `../../loop-agent/references/command-reference.md` 为准。
|
|
154
|
+
- 不要把本 skill 路由为 DAG nodes 的默认 role skill。
|
|
155
|
+
- 不要把主会话定位成 Worker/DAG 失败后的实现后备通道。
|
|
156
|
+
|
|
157
|
+
## Candidate Canary Boundary
|
|
158
|
+
|
|
159
|
+
Deterministic candidate canary 将 candidate package 安装到 isolated temporary slot,通过该 slot 内的绝对 Node script paths 调用 package bins,避免 model calls,并输出 machine-readable evidence,覆盖 package-root containment、entry hashes、checks 与 verdict。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-engineering-context
|
|
3
|
+
description: 当 AI coding agent 启动 loop-agent 工作、准备 DAG 或 Loop context、委派 role-specific 节点,或决定 requirements、facts、evidence、handoff notes 应落何处时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AI Engineering Context
|
|
7
|
+
|
|
8
|
+
Context 是工程 artifact,不是 chat 残留。须显式保留 requirements、role 边界、write authority、evidence 与 handoff facts。
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
在启动 task、DAG、workflow 或 Loop round;准备 role prompt;委派给 Cursor/Pi/shell/static executor;或处理 stale plan、冲突 requirements、缺失 evidence 时使用。
|
|
13
|
+
|
|
14
|
+
不要用于 private platform paths、personal memory、Google Drive 规则,或替代 task skills。
|
|
15
|
+
|
|
16
|
+
## Context Priority
|
|
17
|
+
|
|
18
|
+
按以下顺序优先采信 facts:最新 user instruction;task source/contract;DAG/Loop artifacts;ai_workspace/loop-agent/plans/ADRs;code/tests;chat history 仅作 hint。
|
|
19
|
+
|
|
20
|
+
若 sources 冲突,停止并点明冲突。
|
|
21
|
+
|
|
22
|
+
## Role Boundaries
|
|
23
|
+
|
|
24
|
+
- Planner:contract、DAG shape、write boundary、verification plan;不做 implementation edits。
|
|
25
|
+
- Scout:code/test/doc/artifact facts;不写 repo。
|
|
26
|
+
- Implementer:在 writeSet 内做 bounded changes;不扩大 scope 或宣称完成。
|
|
27
|
+
- Reviewer:bugs、regressions、missing tests、risk;除非被指派,否则不重写。
|
|
28
|
+
- Verifier:command evidence、reproduction、failure category;model judgment 不是 proof。
|
|
29
|
+
- Supervisor:gates、escalation、repair scope;不绕过 write-guard 或 human-gate。
|
|
30
|
+
- Closeout:evidence、risks、next steps;不隐藏 failures。
|
|
31
|
+
|
|
32
|
+
## Prompt Contract
|
|
33
|
+
|
|
34
|
+
每个 delegated node prompt 应包含:objective、task id、role、executor、allowed paths、forbidden paths、writeSet、upstream artifact refs、concise excerpts、output contract、expected evidence、non-goals、stop conditions。
|
|
35
|
+
|
|
36
|
+
read-only node 只能在 node output 返回 findings。不得在 repo 中创建 scratch files。
|
|
37
|
+
|
|
38
|
+
## Persistence Rules
|
|
39
|
+
|
|
40
|
+
Requirements 与 constraints 写入 task `source/`。Execution state 与 node artifacts 写入 `.harness/`。Durable plans、reports、decisions 写入 `ai_workspace/loop-agent/`。可复用 process guidance 写入 `.agents/skills/`。Chat 仅 transient。
|
|
41
|
+
|
|
42
|
+
## Failure Handling
|
|
43
|
+
|
|
44
|
+
- Missing context:运行 scout 或读取 durable source。
|
|
45
|
+
- Ambiguous requirement:implementation 前更新 contract。
|
|
46
|
+
- Verification failure:改 code 前先 diagnose cause。
|
|
47
|
+
- Missing skill instructions:视为 context defect;不要假设 hidden behavior。
|
|
48
|
+
- Missing fresh verification:不要 close out。
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: analyze-product-dependencies
|
|
3
|
+
description: 面向采用 Product Requirement V4、Web/Remote 接口分类和统一 HTTP 200 响应包络的组织内部项目,先根据选中需求故事强制检索项目知识库,再探索代码库,按 frontend、backend 或 both 范围将故事、验收标准及 API 型后端故事映射到真实文件、路由、组件、服务、数据、权限与证据;API 场景从同一规范中间模型生成纯 HTTP 契约文档,或用 api-only 模式单独更新 API 文档。用于代码影响分析、依赖分析、API 文档或需求到代码映射;也适用于“这个需求要改哪些文件”“帮我生成接口文档”“需求对应到哪段代码”“评估下这个需求的开发影响”这类请求。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Analyze Product Dependencies
|
|
7
|
+
|
|
8
|
+
IRON LAW:`product-requirement.md` 是唯一需求事实源。不得从原始需求、Product Analysis、Clarification 或聊天重新解释需求,不得修改代码或上游产物。
|
|
9
|
+
|
|
10
|
+
## 运行环境与外部能力
|
|
11
|
+
|
|
12
|
+
- 必需:可读写当前项目文件,并能运行 Node.js `.mjs` 校验器。
|
|
13
|
+
- 前置第三方 skill:`kb-design-assist`,用于根据选中需求故事检索项目知识库中的设计系统、业务规范、API 规范和其他项目约定。
|
|
14
|
+
- 可选能力:隔离的只读代码侦察 agent。
|
|
15
|
+
- 缺少隔离代码侦察 agent 时执行对应 fallback;`kb-design-assist` 为 `unavailable` 时必须先让用户选择“修复后重试”或“跳过知识库”,不得直接 fallback,也不得伪造知识库结果、代码证据或 agent 结果。
|
|
16
|
+
- 调用第三方 skill 时使用当前宿主提供的原生 skill 加载机制,不假定具体命令或工具名称。
|
|
17
|
+
|
|
18
|
+
## 输入与产物
|
|
19
|
+
|
|
20
|
+
- 必填:complete `product-requirement.md` 的实际路径和可读取代码仓库路径。Product Requirement 必须位于 `<project-root>/docs/product-analysis/<requirement-id>/`。
|
|
21
|
+
- 可选:`target=frontend|backend|both` 或 `--target frontend|backend|both`;两种写法等价,默认继承上游 scope。
|
|
22
|
+
- 可选:`mode=full|api-only` 或 `--mode full|api-only`;两种写法等价,默认 `full`。`full` 生成依赖分析并按需生成 API 文档;`api-only` 只生成 `api-documentation.md`,不创建或修改 `dependency-analysis.md`。
|
|
23
|
+
- 可选:frontend/both 可传 `api_documentation=<任意可读 Markdown API 文档路径>` 或 `--api-doc <path>`。外部文档只读,前端产物只记录实际引用的 Method+Path。
|
|
24
|
+
- 输出写回 Product Requirement 所在目录。`api-only` 仅适用于 `backend|both` 且至少一个选中后端故事以 API 触发。用户显式要求刷新依赖/API 产物时,视为授权原子更新本 skill 在本次运行创建的文件;覆盖既有 complete 产物、非本 skill 创建的文件或来源无法确认的文件前先确认。
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
- [ ] Step 0:输入门禁 ⛔ BLOCKING
|
|
29
|
+
- [ ] 将 `target=<value>` 和 `--target <value>` 归一化为唯一 target;缺省时继承上游 scope,非法值或冲突的多个值必须停止。显式 target 必须是上游 `analysis_scope` 的子集,只分析选中故事,不改写上游产物。
|
|
30
|
+
- [ ] 将 `mode=<value>` 和 `--mode <value>` 归一化为唯一 mode;缺省时为 `full`,非法值或冲突值必须停止。`api-only + frontend` 或没有 API 型后端故事时必须停止,不得生成空 API 文档。
|
|
31
|
+
- [ ] 读取 `references/input-contract.md`,向输入校验器传入已归一化 target。输入必须是上游交付的 complete 产物(不得依赖 `--allow-pending`);V2 + API 触发故事必须先升级为 V4。
|
|
32
|
+
- [ ] 从 Product Requirement 继承 `requirement_id` 和输出目录;项目根由固定目录结构推导。`requirement-missing` 且无法从用户显式 `requirement_id`/输出路径恢复时:`full` 不写产物,只在会话报告;能恢复 ID 时才写 blocked Dependency。
|
|
33
|
+
- [ ] 在代码侦察前明确回显“分析范围:frontend | backend | both”;新增产物的 `analysis_scope` 必须等于该归一化 target,后续不得自动扩大范围。
|
|
34
|
+
- [ ] `full` 门禁失败且可确定输出位置时只生成 blocked Dependency Analysis,不伪造 API 或代码落点;`api-only` 门禁失败时不写任何产物,只报告阻断原因和恢复条件。
|
|
35
|
+
- [ ] Step 1:完整代码侦察 ⚠️ REQUIRED
|
|
36
|
+
- [ ] 从选中故事、同 ID 输出规范和 AC 提取业务词、领域对象、状态/边界、权限、接口形态与技术约定,形成仅覆盖当前分析范围的知识库检索计划;不得先探索代码库再反推检索词。
|
|
37
|
+
- [ ] 首先读取 `references/kb-integration.md` 和 `references/scouting-rules.md`,并按前者的状态机、用户确认门禁和降级边界真实调用 `kb-design-assist`。每次分析都必须执行,不得因故事简单或未显式提到项目规范而跳过。
|
|
38
|
+
- [ ] 知识库状态为 `executed-hit` 或 `executed-no-match`,或 `unavailable` 后用户明确确认跳过,才允许预扫描项目资料并探索代码库;其余情况保持阻断。
|
|
39
|
+
- [ ] 知识库门禁通过后、常规代码侦察前,依次预扫描 `<project-root>/ai_workspace/project-how-to`、`code-specification`、`project-business`:先枚举文件,再读取入口文档及与选中故事直接相关的内容;缺失目录记录 `not-found` 并继续。
|
|
40
|
+
- [ ] 按 scouting rules 的只读代码侦察 agent 委派、confirmed/inferred/unknown 分级、双证据要求与前后端必查项执行;当前宿主不支持隔离 agent 时由当前 agent 执行同等范围的定向搜索。当前会话只保留精简规范证据、代码证据、冲突和未定位项。知识库证据不得替代真实代码落点。
|
|
41
|
+
- [ ] `full` 逐个读取选中故事及其同 ID 输出规范和 AC,再定位入口、调用链、状态、类型、数据、权限、错误、日志和测试;`frontend` 不分析 `BE-US-*`,`backend` 不分析 `FE-US-*`。`api-only` 只侦察生成 HTTP 契约所需的路由惯例、共享 DTO/Schema、统一响应/错误、分页、时间与标识符规范,不做影响文件清单和非 API 依赖分析。
|
|
42
|
+
- [ ] unknown 不在本 skill 内发起产品澄清:目标行为已明确但代码落点/复用点未知时记入对应故事风险或跨故事未定位项;缺失 API 业务语义、权限、核心规则、安全边界或验收所需产品决策时阻断并返回上游需求 skill,不得自行补齐。
|
|
43
|
+
- [ ] Step 2:判断 API 适用性 ⚠️ REQUIRED
|
|
44
|
+
- [ ] 只要一个选中的 `BE-US-*` 触发方式为 `API(Web)`、`API(Remote)` 或 `API(Web + Remote)`,就必须生成 API 文档。Web 与 Remote 使用同一 HTTP 契约;Web + Remote 必须建模为两个独立接口,路径以知识库、项目资料与仓库规范为准。
|
|
45
|
+
- [ ] 笼统的 `触发方式:API` 视为接口范围未确认,阻断并返回上游需求 skill。
|
|
46
|
+
- [ ] target 为 `frontend` 时不读取或分析后端故事,也不新生成 API 文档;Dependency 仍保留 API 实现映射章节。传入外部 API 文档时,只登记被选中前端故事实际依赖且可在文档中核验的 Method+Path,不记录 API ID、Operation ID、文档路径或完整契约;外部文档中的无关接口不参与孤立检查。未传入或未定位时写带原因的不适用。
|
|
47
|
+
- [ ] 定时任务、事件、消息、数据迁移或纯内部调用且不形成 HTTP 契约时,不生成空 API 文档。
|
|
48
|
+
- [ ] 无 API 时 API 实现映射明确写不适用。
|
|
49
|
+
- [ ] Step 3:建立规范 API 中间模型(仅 API 场景)⚠️ REQUIRED when applicable
|
|
50
|
+
- [ ] 仅当选中范围内存在 API 型后端故事,或 `mode=api-only` 时执行本步;`frontend`、非 API 场景或已判定不适用时跳过,不建立中间模型。
|
|
51
|
+
- [ ] 读取 `references/api-documentation-schema.md`,按契约建模与渲染。
|
|
52
|
+
- [ ] 用同一次代码侦察建立不落盘的规范中间模型(最小字段:API ID、Operation ID、Method+Path、变更类型、请求/响应字段、错误码、分页是否适用);`full` 的 API Documentation 与 Dependency Analysis 的 API 映射均从该模型渲染;`api-only` 只渲染 API Documentation。
|
|
53
|
+
- [ ] 所有成功与失败响应的 HTTP 状态码统一为 `200`,只通过响应体顶层 `code` 区分结果;成功与失败 `code` 必须不同。定义字段/错误码前,先通过 `kb-design-assist` 检索当前有效的 DTO/Response、统一响应和错误码规范,再核验仓库共享 DTO、响应类型和全局错误枚举;命中则复用,不在 API 文档输出搜索过程、知识库证据或“复用检查”。
|
|
54
|
+
- [ ] 分页允许值以 Product Requirement 为准;上游确实未说明时按“有效知识库分页规范 > 仓库通用分页定义 > 默认集合 `10`、`20`、`50`、`100`”补齐。参数必填性与默认值沿用 Product Requirement;PR 未规定时优先采用有效知识库规范并由仓库定义核验。
|
|
55
|
+
- [ ] 产品需求优先于现状;业务语义缺失时阻断,不由本 skill 发明产品决策。
|
|
56
|
+
- [ ] API 文档只保留 HTTP 契约;不得包含故事/AC 追溯、认证、权限、业务规则与实现逻辑。只有实际分页时才生成“分页约定”。
|
|
57
|
+
- [ ] Step 4:生成产物 ⚠️ REQUIRED
|
|
58
|
+
- [ ] `full` 读取 `references/dependency-analysis-schema.md`;`api-only` 不读取或生成 Dependency Analysis。
|
|
59
|
+
- [ ] `full` 的 API 场景先写 `api-documentation.md`,再写 `dependency-analysis.md`;`api-only` 只写 `api-documentation.md`,不得创建、覆盖或追加 `dependency-analysis.md`。
|
|
60
|
+
- [ ] 按 target 生成对应故事覆盖与依赖详情;三种范围都保留 API 实现映射章节。
|
|
61
|
+
- [ ] `影响文件` 是每个故事独立完整的权威清单(故事内 `F1`/`F2` + `add|modify|reuse` 或中文同义 `新增|修改|复用`);不得建立全局文件索引。
|
|
62
|
+
- [ ] 前端详情必须覆盖 Product Requirement 的目标页面路由。传入外部 API 文档且依赖 HTTP 时只写 Method+Path;否则按 schema 写“`不适用;…`”模板。
|
|
63
|
+
- [ ] 故事局部风险与文末跨故事风险不得重复;API 实现映射只保留 API ID、Operation ID、方法路径和代码入口(现有路径或拟新增路径,禁止「未定位」占位)。
|
|
64
|
+
- [ ] 所有新增产物与 Product Requirement 使用相同 `requirement_id`;V4 frontmatter 不记录可由目录或运行参数推导的来源路径。
|
|
65
|
+
- [ ] Step 5:验证并交付 ⛔ BLOCKING
|
|
66
|
+
- [ ] Product Requirement 输入校验必须通过。
|
|
67
|
+
- [ ] 向所有适用校验器传入归一化 target。`full` 的 API 场景运行输入、API 和 Dependency 三个校验器;非 API 场景运行输入和 Dependency;`api-only` 只运行输入和 API。
|
|
68
|
+
- [ ] 当前产物校验通过即可交付。`test-validators.mjs` 仅在修改输出契约、schema、validator、artifact version、示例、forward-test contract,或发布/安装/回归验证时运行。
|
|
69
|
+
|
|
70
|
+
完整示例按需读取 `references/example.md`;维护或 forward-test 时读取 `references/forward-test-cases.md`。不要为了执行校验而阅读脚本,直接运行。
|
|
71
|
+
|
|
72
|
+
## Anti-Patterns
|
|
73
|
+
|
|
74
|
+
- 从聊天、Product Analysis 或 Clarification 重新解释需求。
|
|
75
|
+
- 修改代码或上游 `product-requirement.md`。
|
|
76
|
+
- 消费带 `--allow-pending` 的未交付产物,或对 V2 + API 故事直接生成 API 文档。
|
|
77
|
+
- 在 API 文档写入故事/AC、认证、权限、业务规则或“复用检查”。
|
|
78
|
+
- 在 API 文档写入 `kb-design-assist` 调用过程、`KB-EVIDENCE-*`、知识库路径、命中日志或规范复用证据。
|
|
79
|
+
- Product Requirement 已给出分页允许值时,用知识库规范、默认 `10/20/50/100` 或仓库惯例覆盖。
|
|
80
|
+
- 建立全局文件索引,或把完整 API 契约/JSON 示例复制进 Dependency Analysis。
|
|
81
|
+
- `api-only` 模式下创建或修改 `dependency-analysis.md`。
|
|
82
|
+
- 自行补齐缺失的产品决策而不返回上游需求 skill。
|
|
83
|
+
- `kb-design-assist` 为 `unavailable` 时,未让用户选择修复或跳过就继续代码库降级或生成 complete 产物。
|
|
84
|
+
- 跳过需求驱动的知识库检索、先探索代码库,或用“故事不涉及项目规范”记录未执行状态。
|
|
85
|
+
|
|
86
|
+
## 交付前自检
|
|
87
|
+
|
|
88
|
+
声明完成前逐项确认,任一不满足不得交付:
|
|
89
|
+
|
|
90
|
+
- [ ] 新增 V4 产物与 Product Requirement 同目录、同 `requirement_id`,且 frontmatter 不含可推导的来源、项目根或仓库路径。
|
|
91
|
+
- [ ] 所有产物 `analysis_scope` 等于归一化 target,未自动扩大范围。
|
|
92
|
+
- [ ] 按场景运行对应校验器:`full` API 场景跑「输入 + API + Dependency」,`full` 非 API 场景跑「输入 + Dependency」,`api-only` 只跑「输入 + API」。
|
|
93
|
+
- [ ] 所有适用校验命令返回 exit 0;任一非 0 都不算完成。
|
|
94
|
+
|
|
95
|
+
## Validation
|
|
96
|
+
|
|
97
|
+
把 `<skill-root>` 解析为本 `SKILL.md` 所在目录,全部参数使用绝对路径:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
node <skill-root>/scripts/validate-product-requirement-input.mjs <product-requirement.md> --target <frontend|backend|both>
|
|
101
|
+
node <skill-root>/scripts/validate-api-documentation.mjs <product-requirement.md> <api-documentation.md> --target <backend|both>
|
|
102
|
+
node <skill-root>/scripts/validate-dependency-analysis.mjs <product-requirement.md> <dependency-analysis.md> [api-documentation.md] [--api-doc <external-api.md>] --target <frontend|backend|both>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
`api-only` 只运行前两条适用命令;不得调用 Dependency 校验器。
|
|
106
|
+
非 API 场景省略 API 校验器和 Dependency 校验命令的第三个参数。
|
|
107
|
+
缺少 Product Requirement 的 blocked 场景使用 `none` 作为 Dependency 校验命令的第一个参数。
|
|
108
|
+
维护或发布时额外运行 `node <skill-root>/scripts/test-validators.mjs`。
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Swagger 风格 Markdown API 文档 V4 契约
|
|
2
|
+
|
|
3
|
+
文件名固定为 `api-documentation.md`。它采用 Swagger 的信息组织方式,但不是 OpenAPI YAML。
|
|
4
|
+
|
|
5
|
+
```yaml
|
|
6
|
+
---
|
|
7
|
+
artifact_version: "4.0"
|
|
8
|
+
artifact_type: api-documentation
|
|
9
|
+
requirement_id: <与 Product Requirement 一致>
|
|
10
|
+
api_status: complete
|
|
11
|
+
analysis_scope: backend | both
|
|
12
|
+
---
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Frontmatter 只允许以上五个字段,不得增加来源、项目根、仓库路径或其他运行时字段。
|
|
16
|
+
|
|
17
|
+
固定章节:通用约定、API 索引、API 详情、数据模型、错误码。API Documentation 是完整 HTTP 契约事实源,但不承担故事或 AC 追溯。不得包含 `BE-US-*`、`AC-BE-*`、用户故事列、AC 列、认证方式、权限要求、业务规则、业务逻辑、处理逻辑和实现逻辑。
|
|
18
|
+
|
|
19
|
+
职责边界:产品权限与业务规则留在 Product Requirement;HTTP 契约留在本文件;代码落点与权限实现映射留在 Dependency Analysis。三份产物不得互相复制对方职责内容。
|
|
20
|
+
|
|
21
|
+
通用约定固定包含 Base URL、成功响应结构、公共错误响应结构、时间和标识符规范;公共错误响应结构必须包含合法 JSON 示例,且示例包含顶层 `code`。所有成功与失败响应的 HTTP 状态码统一为 `200`,客户端只根据响应体顶层 `code` 判断结果,不得使用 `4xx/5xx` 表达业务失败。只有至少一个接口实际分页时才包含分页约定。非分页文档不得生成空分页章节或“不分页”占位。不输出 `kb-design-assist` 调用过程、`KB-EVIDENCE-*`、知识库/代码搜索过程、命中证据或“复用检查”章节。
|
|
22
|
+
|
|
23
|
+
每个接口标题使用 `### API-001 名称`,随后写 Swagger 风格方法路径。固定子章节:基本信息、成功响应、错误响应。非认证请求头、Path 参数、Query 参数、Request Body 按适用性生成;URL 有模板参数时必须生成 Path 参数。字段层面只写名称、类型、必填/可空、格式、枚举、契约约束和语义,不写计算、转换、查询或分支逻辑。
|
|
24
|
+
|
|
25
|
+
基本信息只包含 Operation ID、变更类型和幂等性,不重复 API ID。API 索引只包含 API ID、Method + Path、Operation ID、变更类型。索引与 API 详情必须严格双向一一对应:不得有缺失索引的详情、缺失详情的索引行、重复 API ID 或重复 Operation ID;同一 API 的 Method+Path、Operation ID 和变更类型必须完全一致。
|
|
26
|
+
|
|
27
|
+
成功响应明确写 `HTTP:200` 并包含合法 JSON 示例;错误响应至少列出一个 HTTP `200` 的错误 code 和合法 JSON 示例。成功与错误 JSON 均包含顶层 `code`,且成功 code 与错误 code 必须不同;错误示例的 `code` 必须出现在错误响应表中。变更类型使用新增、修改、复用。
|
|
28
|
+
|
|
29
|
+
分页接口在 Query 参数中定义每页条数参数(`pageSize` / `page_size` / `limit`)。仅 cursor、或 Query 字段名碰巧含 `page` 但无条数参数的接口,不算本契约要求的分页接口,不得据此强制生成分页约定或 page-size 行。允许值以 Product Requirement 为准:上游已给出集合时原样列出;上游确实未说明时依次使用当前有效知识库分页规范、仓库通用分页定义和默认集合 `10 | 20 | 50 | 100`。参数名和必填性优先复用 Product Requirement;PR 未规定时先采用有效知识库规范并由仓库现有约定核验。本 skill 不强制该参数为可选。只有 Product Requirement、有效知识库规范或仓库通用分页定义明确时才写默认值,不再生成 `<100`、`=100`、`>100` 分页场景。Validator 必须核对:存在 `pageSize`、`page_size` 或 `limit` Query 参数时恰好有一个“分页约定”,参数行包含数值允许集合且与分页约定一致;Product Requirement 明确允许集合时还必须与其一致;不存在这些参数时禁止“分页约定”。参数来源优先级和默认值来源继续由生成流程与 forward-test 核对。
|
|
30
|
+
|
|
31
|
+
无对应内容时省略空的 Header、Path、Query 或 Request Body 子章节。Schema 字段只在“数据模型”完整定义一次,接口详情引用 Schema。“数据模型”只定义实际使用的 Schema 和字段;“错误码”只说明 code 和可观测的触发条件,HTTP 状态统一为 `200`。字段、Response、错误码、时间与标识符等技术约定在 Product Requirement 未规定时,优先采用 `kb-design-assist` 返回的当前有效规范,再核验仓库共享定义。两个章节均不新增“复用检查”,不输出知识库或代码搜索过程,不展开业务判定或实现逻辑。
|
|
32
|
+
|
|
33
|
+
`mode=api-only` 与 `mode=full` 使用完全相同的 API 契约和校验规则。`api-only` 只生成本文件,不创建、覆盖或追加 `dependency-analysis.md`。
|
|
34
|
+
|
|
35
|
+
`API(Web)` 与 `API(Remote)` 使用同一契约。`API(Web + Remote)` 必须为两条实际接口分别建模,例如项目规范确定的 `GET /order/list` 与 `GET /remote/order/list`;不得把 `/remote` 当作固定前缀,Method+Path 必须来自有效规范或仓库惯例。
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Dependency Analysis V4 输出契约
|
|
2
|
+
|
|
3
|
+
```yaml
|
|
4
|
+
---
|
|
5
|
+
artifact_version: "4.0"
|
|
6
|
+
artifact_type: dependency-analysis
|
|
7
|
+
requirement_id: <与 Product Requirement 一致>
|
|
8
|
+
analysis_scope: frontend | backend | both
|
|
9
|
+
analysis_status: complete | blocked
|
|
10
|
+
blocked_on: none | <原因列表>
|
|
11
|
+
---
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Frontmatter 只允许以上六个字段,不得增加来源、项目根、仓库路径或其他运行时字段。
|
|
15
|
+
|
|
16
|
+
Complete 固定章节:输入与代码基线、用户故事覆盖矩阵、按 scope 的依赖详情、API 实现映射、跨故事共享依赖、跨故事风险与未定位项。覆盖矩阵承担全局追溯,不生成独立分析范围、全局文件索引或追溯汇总。“输入与代码基线”记录知识检索状态 `executed-hit | executed-no-match | unavailable`;每次分析都必须真实执行知识检索,不允许未执行状态。若 complete 产物最终仍记录 `unavailable`,必须同时记录 `- 用户处置:已确认跳过知识库`;命中有效规范时可列必要的 `KB-EVIDENCE-*` 摘要。
|
|
17
|
+
|
|
18
|
+
前端详情字段:验收标准、API 文档引用、影响文件、页面/路由、组件、状态、API client/类型、状态与边界落点、定位证据、风险、置信度。
|
|
19
|
+
|
|
20
|
+
后端详情字段:验收标准、API 文档引用、影响文件、路由/入口、Controller/Handler、Service/领域逻辑、DTO/Schema、数据依赖、权限依赖、错误/日志/审计、测试落点、定位证据、风险、置信度。
|
|
21
|
+
|
|
22
|
+
职责边界:Product Requirement 承载产品权限/业务规则;API Documentation 只承载 HTTP 契约;本文件把权限与规则映射到代码落点(如“权限依赖”),不复制完整 API 参数表、响应 JSON 或 Given/When/Then 正文。
|
|
23
|
+
|
|
24
|
+
`影响文件` 是当前故事独立完整的权威清单,每项使用故事内唯一 `F<number>`、动作词(`add|modify|reuse` 或中文同义 `新增|修改|复用`)、真实路径或「未定位」、以及用途;其他代码落点字段引用当前故事编号,不重复完整路径。同一文件可在不同故事中重复出现。
|
|
25
|
+
|
|
26
|
+
每个选中故事必须恰好存在一份同 ID 依赖详情;缺失、重复或出现未选中故事都必须失败。
|
|
27
|
+
|
|
28
|
+
覆盖矩阵维护 `FE/BE-US → AC` 和适用的 API 引用。后端故事的“API 文档引用”列出 API ID。前端故事传入外部 API 文档时只列实际依赖的 `Method + Path`,不记录 API ID、Operation ID、文档路径或完整契约;外部文档可包含无关接口。无 HTTP 依赖的前端故事写“`不适用;本故事无 HTTP API 依赖`”,非 API 后端故事写“`不适用;触发方式为 <实际类型>`”。
|
|
29
|
+
|
|
30
|
+
前端“页面/路由”必须登记 Product Requirement 的目标路由及实际代码落点,不得改变目标 URL;上游写“不适用”时不得虚构独立路由。
|
|
31
|
+
|
|
32
|
+
后端 API 实现映射登记 API ID、Operation ID、Method+Path 和代码入口(具体现有路径或拟新增路径;禁止「未定位」占位)。前端使用外部 API 文档时,映射只登记被引用的 Method+Path。生成的 `api-documentation.md` 中每个 API 必须有代码入口、至少被一个 API-backed 后端故事引用且不得孤立;外部前端 API 文档不执行整份文档孤立检查。无 API 时写:`不适用。本次需求不涉及 HTTP API。`
|
|
33
|
+
|
|
34
|
+
故事局部风险保留在对应故事详情;文末“跨故事风险与未定位项”只记录跨故事、跨前后端或无法归属单故事的风险,同一风险不得重复。状态、空数据、loading、error、disabled、错误文案和恢复入口必须引用项目真实枚举、组件或规范证据;未定位时写入适当风险位置,不得用通用状态名补齐。知识库证据只证明目标规范,代码证据才可证明真实文件、符号和调用关系;二者不一致时必须登记规范迁移/合规风险。知识库文档不得列为“影响文件”。`api-only` 模式不生成本产物。
|
|
35
|
+
|
|
36
|
+
不得复制 AC 的 Given/When/Then 正文或完整 API 参数、响应、Schema、JSON 示例。
|
|
37
|
+
|
|
38
|
+
Blocked 产物只含分析范围、输入与代码基线、阻断原因、恢复条件,不得包含确定性代码位置或 API 契约。
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# V4 输出示例
|
|
2
|
+
|
|
3
|
+
## API 索引与详情
|
|
4
|
+
|
|
5
|
+
````md
|
|
6
|
+
## 2. API 索引
|
|
7
|
+
| API ID | Method + Path | Operation ID | 变更类型 |
|
|
8
|
+
|---|---|---|---|
|
|
9
|
+
| API-001 | GET /api/v1/orders/{orderId}/refund-status | getRefundStatus | 新增 |
|
|
10
|
+
|
|
11
|
+
## 3. API 详情
|
|
12
|
+
### API-001 查询退款状态
|
|
13
|
+
> `GET /api/v1/orders/{orderId}/refund-status`
|
|
14
|
+
|
|
15
|
+
#### 基本信息
|
|
16
|
+
| 字段 | 值 |
|
|
17
|
+
|---|---|
|
|
18
|
+
| Operation ID | getRefundStatus |
|
|
19
|
+
| 变更类型 | 新增 |
|
|
20
|
+
| 幂等性 | 只读请求天然幂等 |
|
|
21
|
+
|
|
22
|
+
#### Path 参数
|
|
23
|
+
| 参数 | 类型 | 必填 | 语义 |
|
|
24
|
+
|---|---|---|---|
|
|
25
|
+
| orderId | string | 是 | 订单标识 |
|
|
26
|
+
|
|
27
|
+
#### 成功响应
|
|
28
|
+
- HTTP:200
|
|
29
|
+
```json
|
|
30
|
+
{"code":"SUCCESS","data":{"refundStatus":"processing"}}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
#### 错误响应
|
|
34
|
+
| 状态码 | 错误码 | 条件 |
|
|
35
|
+
|---|---|---|
|
|
36
|
+
| 200 | FORBIDDEN | 资源访问被拒绝 |
|
|
37
|
+
```json
|
|
38
|
+
{"code":"FORBIDDEN","message":"forbidden"}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
````
|
|
42
|
+
|
|
43
|
+
无 Path、Query、Body 或专属 Header 时省略对应章节。
|
|
44
|
+
|
|
45
|
+
本示例沿用项目约定,将每页条数定义为可选;实际必填性以 Product Requirement 或仓库 API 规范为准:
|
|
46
|
+
|
|
47
|
+
```md
|
|
48
|
+
#### Query 参数
|
|
49
|
+
| 参数 | 类型 | 必填 | 允许值 | 语义 |
|
|
50
|
+
|---|---|---|---|---|
|
|
51
|
+
| pageSize | integer | 否 | 10 \| 20 \| 50 \| 100 | 每页条数 |
|
|
52
|
+
| cursor | string | 否 | - | 下一页游标 |
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
字段与 code 定义前先在内部搜索仓库共享定义,命中时直接复用;API 文档不生成“复用检查”或搜索证据。
|
|
56
|
+
|
|
57
|
+
## Dependency 影响文件与 API 映射
|
|
58
|
+
|
|
59
|
+
```md
|
|
60
|
+
### BE-US-001 查询退款状态
|
|
61
|
+
- 验收标准:AC-BE-001
|
|
62
|
+
- API 文档引用:API-001
|
|
63
|
+
- 影响文件:
|
|
64
|
+
- F1 modify `src/refund/refund.controller.ts`:增加查询入口
|
|
65
|
+
- F2 modify `src/refund/refund.service.ts`:组合退款状态
|
|
66
|
+
- 路由/入口:F1 注册退款状态路由
|
|
67
|
+
- Controller/Handler:F1 校验身份和订单 ID
|
|
68
|
+
- Service/领域逻辑:F2 组合状态
|
|
69
|
+
|
|
70
|
+
## API 实现映射
|
|
71
|
+
| API | Operation ID | 方法与路径 | 代码入口 |
|
|
72
|
+
|---|---|---|---|
|
|
73
|
+
| API-001 | getRefundStatus | GET /api/v1/orders/{orderId}/refund-status | `src/refund/refund.controller.ts#getRefundStatus` |
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`影响文件` 是当前故事的完整路径清单;其余字段使用该故事内的 F 编号引用。API 文档不包含故事或 AC;追溯统一由 Dependency Analysis 维护。非 API 后端故事不生成 API 文档,并在“API 文档引用”中写明触发方式。
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Forward-Test Cases
|
|
2
|
+
|
|
3
|
+
在独立 agent 中逐个执行,只提供原始请求与输入产物,不泄露预期正文。
|
|
4
|
+
|
|
5
|
+
## Case 1:frontend 路由与非 API 引用
|
|
6
|
+
|
|
7
|
+
使用 complete、scope 为 frontend 的 Product Requirement,其中页面路由为 `/account/orders`,故事无 HTTP 依赖。核对:只生成 Dependency Analysis;详情保留目标 URL;“API 文档引用”写“`不适用;本故事无 HTTP API 依赖`”;API 实现映射明确不适用;不生成空 API 文档。
|
|
8
|
+
|
|
9
|
+
## Case 2:无独立路由组件
|
|
10
|
+
|
|
11
|
+
Product Requirement 页面路由写“`不适用;嵌入 /account/orders 页面`”。核对:Dependency 不虚构独立 URL,定位所属页面与组件落点。
|
|
12
|
+
|
|
13
|
+
## Case 3:backend API
|
|
14
|
+
|
|
15
|
+
使用 complete backend Product Requirement,`BE-US-001` 触发方式为 `API(Web)`。核对:API Documentation 和 Dependency Analysis 来自同一次侦察及同一规范中间模型;API 文档索引只有 API ID、Method + Path、Operation ID、变更类型,不含 `BE-US-*`、`AC-BE-*`、故事列或 AC 列;Dependency 覆盖矩阵关联故事、AC 与 API。
|
|
16
|
+
|
|
17
|
+
## Case 4:非分页 API
|
|
18
|
+
|
|
19
|
+
使用非分页查询 API。核对:通用约定保留 Base URL、成功响应结构、公共错误响应结构及 JSON、时间和标识符规范;成功与错误响应均使用 HTTP 200,响应体顶层 code 不同,客户端仅根据 code 区分结果;不生成“分页约定”或“不分页”占位。
|
|
20
|
+
|
|
21
|
+
## Case 5:分页 API
|
|
22
|
+
|
|
23
|
+
分别覆盖:
|
|
24
|
+
- A:Product Requirement 未给出允许值,知识库规范为 `20/50/100` → API 文档使用 `20/50/100`。
|
|
25
|
+
- B:Product Requirement 明确允许值为 `5/10/20` → API 文档必须与之完全一致,不得改回默认集合。
|
|
26
|
+
- C:每页条数参数分别为必填与可选 → 两种文档都应通过。
|
|
27
|
+
- D:实际分页但缺少“分页约定” → validator 与 forward-test 都判定失败。
|
|
28
|
+
- E:非分页 API 出现“分页约定”或“不分页”占位 → validator 与 forward-test 都判定失败。
|
|
29
|
+
- F:page-size 参数允许值与“分页约定”或 Product Requirement 明确集合不一致 → validator 与 forward-test 都判定失败。
|
|
30
|
+
- G:Product Requirement、知识库和仓库均未给出允许值 → API 文档才使用默认 `10/20/50/100`。
|
|
31
|
+
|
|
32
|
+
## Case 6:backend 定时任务
|
|
33
|
+
|
|
34
|
+
使用触发方式为定时任务的归档需求。核对:只生成 Dependency;故事“API 文档引用”写“`不适用;触发方式为 定时任务`”;API 映射写不适用;重点定位 scheduler、job、幂等、批次、数据和恢复测试。
|
|
35
|
+
|
|
36
|
+
## Case 7:API 必要业务契约缺失
|
|
37
|
+
|
|
38
|
+
分别删除 API 型故事输出规范中的输入语义、输出语义、权限规则、业务规则、安全要求或错误与边界。核对:Product Requirement Input Validator 失败,不重新评价 AC 文案风格。
|
|
39
|
+
|
|
40
|
+
## Case 8:Input Validator 不重复上游质量检查
|
|
41
|
+
|
|
42
|
+
使用已通过上游校验且具备故事、同 ID 输出规范、AC ID、触发方式、页面路由或 API 必要业务契约的 Product Requirement,但 AC 正文风格不是下游偏好的写法。核对:Input Validator 仍通过。
|
|
43
|
+
|
|
44
|
+
## Case 9:完整故事文件清单
|
|
45
|
+
|
|
46
|
+
使用两个故事且二者影响同一文件。核对:每个故事都有独立完整的“影响文件”清单;F 编号在故事内重新开始并只在该故事内引用;不生成全局文件索引。
|
|
47
|
+
|
|
48
|
+
## Case 10:故事局部风险
|
|
49
|
+
|
|
50
|
+
制造一个仅属于 `FE-US-001` 的路由冲突和一个跨前后端共享契约风险。核对:路由冲突只写在故事详情,跨域风险只写在文末“跨故事风险与未定位项”,同一风险不重复。
|
|
51
|
+
|
|
52
|
+
## Case 11:API 覆盖与孤立检测
|
|
53
|
+
|
|
54
|
+
让 API-backed 故事漏掉 API ID、API ID 缺少代码入口、或 API 文档新增未被任何故事引用的 API。核对:三种情况都失败;纯前端或非 API 后端故事使用带原因的“不适用”可以通过。
|
|
55
|
+
|
|
56
|
+
## Case 12:内容边界
|
|
57
|
+
|
|
58
|
+
尝试把 Given/When/Then 正文、完整 Query 参数、响应、Schema 或 JSON 示例复制到 Dependency Analysis。核对:校验失败;API 实现映射只保留 API ID、Operation ID、Method + Path 和代码入口。
|
|
59
|
+
|
|
60
|
+
## Case 13:代码位置 unknown
|
|
61
|
+
|
|
62
|
+
代码库中没有目标能力。核对:继续生成 Dependency,记录搜索范围、原因、下一步和 low 置信度;不向用户询问代码位置,也不虚构文件。
|
|
63
|
+
|
|
64
|
+
## Case 14:项目规范
|
|
65
|
+
|
|
66
|
+
使用包含共享状态枚举、空状态组件和同类页面的仓库,并让 `kb-design-assist` 返回当前有效设计系统规范。核对:先获得精简规范证据;当前宿主支持隔离的只读代码侦察 agent 时委派其核验代码落点,不支持时由当前 agent 执行同等范围的定向搜索;Dependency 使用真实枚举、组件、文案与恢复方式,同时区分 `KB-EVIDENCE-*` 与代码证据,不套用 generic 模板。
|
|
67
|
+
|
|
68
|
+
## Case 15:api-only
|
|
69
|
+
|
|
70
|
+
使用 complete backend API Product Requirement、真实仓库和 `--mode api-only`。核对:只创建或更新 `api-documentation.md`,已有 Dependency 字节不变;只运行 Product Requirement Input 和 API 两个当前产物校验器,不运行 Dependency 校验器或 validator matrix。
|
|
71
|
+
|
|
72
|
+
## Case 16:非法 api-only
|
|
73
|
+
|
|
74
|
+
分别使用 `--mode api-only --target frontend` 和没有 API 型后端故事的需求。核对:停止并报告原因,不生成空 API 文档或 blocked Dependency。
|
|
75
|
+
|
|
76
|
+
## Case 17:普通执行验证范围
|
|
77
|
+
|
|
78
|
+
分别运行 frontend、backend 非 API、backend API、api-only 和 blocked 流程。核对:只运行各自当前产物 validator;`test-validators.mjs` 仅在维护或发布回归时运行。
|
|
79
|
+
|
|
80
|
+
## Case 18:后端规范知识检索
|
|
81
|
+
|
|
82
|
+
使用 API 型后端故事,并让 `kb-design-assist` 命中 Controller/Service/Entity/Response、Remote、Web API、错误码清单和服务 `interfaces.md`。核对:在代码侦察前执行定向知识检索;API 中间模型优先采用当前有效规范并由仓库共享定义核验;API Documentation 只呈现最终 HTTP 契约,不包含 `KB-EVIDENCE-*`、知识库路径、调用过程或“复用检查”。
|
|
83
|
+
|
|
84
|
+
## Case 19:知识库与代码现状冲突
|
|
85
|
+
|
|
86
|
+
知识库要求统一 `ApiResponse` 和新的错误码体系,仓库目标模块仍使用旧响应类型。核对:当前影响文件与调用关系以代码证据为准;有效知识库规范作为目标约束;Dependency 登记规范迁移/合规风险,不把知识库文档列为影响文件,也不静默把旧实现当作规范。
|
|
87
|
+
|
|
88
|
+
## Case 20:知识库强制前置、未命中与不可用
|
|
89
|
+
|
|
90
|
+
分别构造“看似不涉及项目规范”的简单故事、相关查询无结果和 `kb-design-assist` 调用失败。核对:简单故事仍先从故事、输出规范和 AC 提取检索计划并真实调用,不允许 `not-executed`;无结果记录 `executed-no-match` 并把项目规范检索降级为受限、定向的代码库搜索;调用失败记录 `unavailable`,必须先说明失败原因并询问用户选择“修复后重试”或“跳过知识库”,未选择前不得预扫描项目资料、侦察代码或生成 complete 产物;选择修复后按重试结果继续,明确选择跳过后才允许降级;仍未查明时按 unknown 处理。不得模拟知识库结果或绕过确认门禁。
|
|
91
|
+
|
|
92
|
+
## Case 21:Web + Remote 生成两个 API
|
|
93
|
+
|
|
94
|
+
使用触发方式为 `API(Web + Remote)` 的订单列表故事。核对:同一故事至少引用两个 API ID,分别生成项目规范确定的 Web 与 Remote Method+Path;`/order/list` 和 `/remote/order/list` 仅作为可能示例,不得把 `/remote` 前缀写成固定规则。
|
|
95
|
+
|
|
96
|
+
## Case 22:frontend 外部 API 文档
|
|
97
|
+
|
|
98
|
+
使用 scope 为 frontend 的 Product Requirement,并传入需求目录外且包含多个无关接口的 Markdown API 文档。核对:Dependency 只记录当前故事实际引用的 Method+Path;不记录 API ID、Operation ID、文档路径或完整契约;无关接口不触发孤立错误;未传 `--api-doc` 或引用不存在的 Method+Path 时校验失败。
|
|
99
|
+
|
|
100
|
+
## Case 23:项目资料预扫描
|
|
101
|
+
|
|
102
|
+
知识库状态确定后提供三个 `ai_workspace` 目录。核对:常规代码侦察前按 `project-how-to`、`code-specification`、`project-business` 顺序枚举并定向读取;缺失目录不阻断;知识库、项目资料和代码冲突时保留差异证据。
|
|
103
|
+
|
|
104
|
+
## Case 23A:知识库与代码侦察顺序
|
|
105
|
+
|
|
106
|
+
使用包含状态、权限和 API 线索且仓库已有相似实现的故事。核对执行轨迹严格为:从选中故事、输出规范和 AC 提取检索计划 → 调用 `kb-design-assist` → 项目资料预扫描 → 定向代码侦察 → 汇总双证据与风险。不得先搜索仓库再补做知识库检索。
|
|
107
|
+
|
|
108
|
+
## Case 24:严格索引与详情唯一性
|
|
109
|
+
|
|
110
|
+
分别向 V4 frontmatter 注入仓库路径、在 API 索引增加没有详情的 API、修改索引中的 Operation ID、为同一故事复制一份依赖详情,并让两个输入故事复用同一 AC ID。核对:额外 frontmatter 字段、非双向一一对应的 API 索引、重复故事详情和重复 AC ID 都被 validator 拒绝。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Product Requirement 输入契约
|
|
2
|
+
|
|
3
|
+
首选输入为 complete V4 `product-requirement.md`。迁移期允许读取 complete V2/V3,但不修改上游产物;新产物始终使用 V4。
|
|
4
|
+
|
|
5
|
+
## 校验边界
|
|
6
|
+
|
|
7
|
+
输入校验器只确认下游能够安全消费 Product Requirement,不重复上游的全部文案与 AC 质量检查。
|
|
8
|
+
|
|
9
|
+
不重新评价:Given/When/Then 文本质量、最低条目数量、完整决策追溯、Clarification 状态、实现细节泄漏禁语、分页默认补齐策略,以及其他只属于上游生成质量的禁止措辞。实现泄漏禁语信任上游交付路径;本 skill 不复查。
|
|
10
|
+
|
|
11
|
+
交接门禁:下游只接受上游按交付路径校验通过的 complete Product Requirement(不得携带 `--allow-pending`)。首选 complete V4;迁移期仍可读取 V3 和非 API 的 complete V2(见下文)。本 skill 的 `--target` 可取上游 `analysis_scope` 的子集,不会改写上游产物。
|
|
12
|
+
|
|
13
|
+
## V3/V4 要求
|
|
14
|
+
|
|
15
|
+
选中范围内至少一个用户故事、同 ID 输出规范和嵌入规范的 AC ID。故事与规范一一对应,故事 AC 引用与规范内 AC ID 完全一致。前端故事必须包含页面路由;无独立路由时使用“不适用”并说明所属页面。后端故事必须包含合法触发方式。
|
|
16
|
+
Product Requirement frontmatter 只允许对应版本契约定义的字段;AC ID 在整个输入中必须全局唯一。
|
|
17
|
+
|
|
18
|
+
API 型后端故事必须具备下游建模最小业务契约字段:输入语义、输出语义、权限规则、业务规则、安全要求、错误与边界。触发方式必须明确为 `API(Web)`、`API(Remote)` 或 `API(Web + Remote)`;迁移期 V3 中笼统的 `API` 也必须返回上游确认范围。Web 与 Remote 都生成 HTTP API 契约,Web + Remote 生成两个独立 API。上游输出规范中的「数据读写」「幂等与并发」不作为本 skill 输入门禁字段。
|
|
19
|
+
|
|
20
|
+
## V2 迁移期
|
|
21
|
+
|
|
22
|
+
V2 按原有“AC 嵌在故事内”的方式读取,不要求独立输出规范章节。V2 + API 触发故事时,禁止生成 API Documentation 与 complete Dependency Analysis 中的 API 映射路径;输入校验器对此组合直接失败,要求先用需求分析 skill 升级为 V4。非 API 的 V2 仍可做依赖落点分析。
|
|
23
|
+
|
|
24
|
+
## 仓库、范围与模式
|
|
25
|
+
|
|
26
|
+
必须提供存在、可读的代码仓库。Product Requirement 位于 `<project-root>/docs/product-analysis/<requirement-id>/`;新增产物写回同目录并继承 ID。显式 target 必须是上游 scope 的子集。
|
|
27
|
+
|
|
28
|
+
`mode` 使用 `full` 或 `api-only`,默认 `full`。`api-only` 只适用于 target 为 `backend|both` 且至少一个选中后端故事的触发方式为 API;它只生成 `api-documentation.md`,不得创建或修改 `dependency-analysis.md`。其代码侦察仍必须覆盖仓库 API 规范、共享 Schema、统一响应/错误和分页约定。
|
|
29
|
+
|
|
30
|
+
任一选中后端故事的触发方式为 API 时生成 `api-documentation.md`;非 HTTP 触发不得生成空 API 文档。`frontend` 不新生成 API 文档;可通过 `--api-doc <path>` 消费任意可读 Markdown API 文档,只把当前故事引用且能核验的 Method+Path 写入 Dependency Analysis。外部文档可包含无关接口,不执行整份文档孤立检查,也不持久化文档路径。业务契约字段缺失时阻断;分页契约按 `api-documentation-schema.md` 生成。
|
|
31
|
+
|
|
32
|
+
## 阻断产物
|
|
33
|
+
|
|
34
|
+
`full` 门禁失败时:若可从 Product Requirement 路径、用户显式 `requirement_id` 或输出路径确定需求目录,则写入 blocked Dependency Analysis(只含分析范围、输入与代码基线、阻断原因、恢复条件);否则不写产物,只在会话报告。`blocked_on` 使用 requirement-missing、requirement-invalid、requirement-not-complete、repository-missing、repository-unreadable、scope-mismatch、missing-stories、missing-acceptance、api-business-contract-incomplete、api-surface-unconfirmed。`api-only` 门禁失败时不生成占位产物,只在会话中报告阻断原因与恢复条件。
|