@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,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: analyze-product-requirements
|
|
3
|
+
description: 面向采用 Product Analysis V4、frontend/backend 范围和 Web/Remote 接口分类的组织内部项目,先根据需求内容强制检索项目知识库,再探索代码库并据此澄清,将自然语言需求或现有需求文档整理为冻结的澄清前分析、逐题澄清记录和完整 Product Requirement,并按项目规范生成用户故事、输出规范与 Given/When/Then 验收标准。用于需求分析、需求澄清、PRD、后端分页契约或用户故事拆分;也适用于“帮我把这个需求写成 PRD”“这个需求怎么拆用户故事”“补一下验收标准”“分析下这个需求要做什么”这类请求。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Analyze Product Requirements
|
|
7
|
+
|
|
8
|
+
IRON LAW:`product-analysis.md` 必须先写入正式路径,再对该正式文件运行 Product Analysis validator;首次校验返回 exit 0 时立即冻结。只要同源正式文件尚未通过校验,就视为未冻结草稿,当前或后续轮次都允许根据 validator 错误继续修正;校验通过后,其正文、frontmatter 和文件路径在当前 requirement 的整个生命周期内都不可变。冻结后的轮次禁止编辑、覆盖、追加、格式化、移动或删除该文件,也不得再次对该路径调用写工具。此冻结仅由本 skill 的提示词约束,不创建完整性 sidecar。澄清决策只能写入 `requirement-clarification.md`,并通过重新生成合并到 `product-requirement.md`。原始需求同样只读。
|
|
9
|
+
|
|
10
|
+
本 skill 只定义需求,不分析完整代码依赖或生成实现代码。可对用户提供的仓库做定向事实搜索,但不得输出文件级影响分析。
|
|
11
|
+
|
|
12
|
+
## 运行环境与外部能力
|
|
13
|
+
|
|
14
|
+
- 必需:可读写当前项目文件,并能运行 Node.js `.mjs` 校验器。
|
|
15
|
+
- 前置第三方 skill:`kb-design-assist`,用于根据需求内容检索项目知识库中的设计系统、业务规范、API 规范和其他项目约定。
|
|
16
|
+
- 可选能力:隔离的只读代码侦察 agent。
|
|
17
|
+
- 缺少隔离代码侦察 agent 时执行对应 fallback;`kb-design-assist` 为 `unavailable` 时必须先让用户选择“修复后重试”或“跳过知识库”,不得直接 fallback,也不得伪造知识库结果、代码证据或 agent 结果。
|
|
18
|
+
- 调用第三方 skill 时使用当前宿主提供的原生 skill 加载机制,不假定具体命令或工具名称。
|
|
19
|
+
|
|
20
|
+
## 输入与产物
|
|
21
|
+
|
|
22
|
+
- 必填:自然语言需求或原始需求文档路径。
|
|
23
|
+
- 可选:`target=frontend|backend|both` 或 `--target frontend|backend|both`;两种写法等价,默认 `both`。
|
|
24
|
+
- 可选:代码仓库、知识库、历史需求、API 文档、设计系统/交互规范、业务规则、`project_root`、`requirement_id`。
|
|
25
|
+
- 可选:`output_dir`,仅用于显式确认规范路径;若提供,必须等于 `<project-root>/docs/product-analysis/<requirement-id>`,不得指向其他位置。
|
|
26
|
+
- 默认目录:`<project-root>/docs/product-analysis/<requirement-id>/`。
|
|
27
|
+
- 固定产物:该目录内的 `product-analysis.md`、`requirement-clarification.md`、`product-requirement.md`。
|
|
28
|
+
|
|
29
|
+
## Workflow
|
|
30
|
+
|
|
31
|
+
- [ ] Step 0:确认输入与写入边界 ⛔ BLOCKING
|
|
32
|
+
- [ ] 原始需求必须足以识别业务目标;输入文件只读。
|
|
33
|
+
- [ ] 将 `target=<value>` 和 `--target <value>` 归一化为唯一 target;缺省时为 `both`,非法值或冲突的多个值必须停止。
|
|
34
|
+
- [ ] 在生成前明确回显“分析范围:frontend | backend | both”;三个产物的 `analysis_scope` 必须等于该归一化 target,后续不得自动扩大范围。
|
|
35
|
+
- [ ] 确定项目根:显式 `project_root` > 仓库根 > 当前项目根。
|
|
36
|
+
- [ ] 确定 requirement ID:显式值 > 需求标题 slug > `YYYYMMDD-<summary-slug>`;仅小写字母、数字和单连字符。
|
|
37
|
+
- [ ] 确定目录:默认 `<project-root>/docs/product-analysis/<requirement-id>`;显式 `output_dir` 若存在则必须与该路径相同。
|
|
38
|
+
- [ ] 用 `scripts/compute-source-identity.mjs` 计算原始需求身份:inline 输入将准确正文写入临时 UTF-8 文件后使用 `inline-source`;文件输入使用 `file-source`,其摘要同时绑定规范化真实路径与文件正文。不得自行拼接或伪造摘要。
|
|
39
|
+
- [ ] 创建目录,三个产物写入同一目录并使用同一 `requirement_id`;产物 frontmatter 不记录可由固定目录推导的项目根或来源路径。
|
|
40
|
+
- [ ] 输出路径不得与原始需求路径相同。
|
|
41
|
+
- [ ] 同源判定:同目录且已冻结 Product Analysis 的“原始需求身份”与本次计算值完全一致。不满足则停止,不得混写;需要更正时使用新的 `requirement_id` 与目录。
|
|
42
|
+
- [ ] 目标目录已有同源 `product-analysis.md` 时,先以只读方式运行 Product Analysis validator:通过则视为已冻结并跳过 Step 1;失败则视为未冻结草稿,继续 Step 1,按 validator 错误修正并重试。只有已通过校验的文件才禁止后续写入;不得把“文件已存在”本身当作冻结依据。
|
|
43
|
+
- [ ] 已有同源任务中,Product Analysis 未通过校验时继续 Step 1 修正草稿;已通过校验并冻结后只能继续更新 Clarification 和 Product Requirement。用户回答当前澄清问题即授权原子更新本流程创建的 pending 产物。覆盖 complete 产物、非本流程创建的文件或来源无法确认的文件前必须单独确认。如已冻结 Product Analysis 的内容需要更正,停止当前 requirement,使用新的 `requirement_id` 和目录重新开始。
|
|
44
|
+
- [ ] Step 1:一次性生成并冻结 Product Analysis ⚠️ REQUIRED
|
|
45
|
+
- [ ] 读取 `references/product-analysis-schema.md`,按契约生成;字段、章节与状态枚举以该文件为准。
|
|
46
|
+
- [ ] 从原始需求提取业务目标、领域对象、角色、关键动作、状态/边界、权限、接口与分页线索,形成仅覆盖当前需求的知识库检索计划;不得先探索代码库再反推检索词。
|
|
47
|
+
- [ ] 首先读取并执行 `references/kb-integration.md`,按其状态机调用 `kb-design-assist`。每次新 requirement 都必须真实执行知识检索,不得因需求简单、未显式提到项目规范或模型判断“无需知识库”而跳过。
|
|
48
|
+
- [ ] 知识库状态为 `executed-hit` 或 `executed-no-match`,或 `unavailable` 后用户明确确认跳过,才允许进入项目资料预扫描与常规代码探索;其余情况保持阻断。
|
|
49
|
+
- [ ] 知识库门禁通过后,依次预扫描 `<project-root>/ai_workspace/project-how-to`、`code-specification`、`project-business`:先枚举文件,再读取入口文档及与当前需求直接相关的内容;缺失目录记录 `not-found` 并继续,不做无边界加载。
|
|
50
|
+
- [ ] 然后读取并执行 `references/clarification-and-knowledge.md` 第 1 节,按需求问题和知识库结论定向探索代码库。当前宿主支持隔离的只读代码侦察 agent 时,优先委派限定范围的代码探索;不支持时由当前 agent 执行同等范围的定向搜索并只保留精简结果,不得阻断或扩大搜索范围。知识库结论不得替代代码落点证据。
|
|
51
|
+
- [ ] 汇总原始需求、`KB-FACT-*`、项目资料与 `CODE-FACT-*`,识别可查明事实、冲突、unknown 和必须由用户选择的目标行为;完成以上顺序后才生成待确认问题并进入 Step 2。
|
|
52
|
+
- [ ] 区分明确需求、推断需求和待确认问题。推断需求一律视为未确认产品内容;每一项推断需求以及任何含糊、缺失、冲突或存在多种合理解释的产品问题,都必须进入 Step 2 逐题向用户澄清,不得因模型认为推荐答案合理而跳过。
|
|
53
|
+
- [ ] scope 包含 backend 且需求涉及接口/API 时,必须确认实现范围为 Web、Remote 或 Web + Remote;只写笼统“接口/API”视为待确认问题。不得依据知识库或代码现状替用户选择。
|
|
54
|
+
- [ ] 仅按 target 生成精简故事骨架和逐故事初步输出规范:`frontend` 只生成 `FE-US-*`,`backend` 只生成 `BE-US-*`,`both` 才生成两端。
|
|
55
|
+
- [ ] Product Analysis 只记录验收关注点,不创建正式 `AC-*` 或完整 Given/When/Then。每个前端故事的同 ID 初步输出规范必须包含“页面路由”:独立页面写以 `/` 开头的目标 URL;组件、弹窗或抽屉无独立路由时写“`不适用;嵌入 /目标路径 页面`”(`/目标路径` 替换为真实路径)。
|
|
56
|
+
- [ ] “原始需求”必须记录 Step 0 计算的 `原始需求身份`;后续所有 Clarification 的“来源/澄清来源”记录相同的原始需求身份。
|
|
57
|
+
- [ ] 只要存在任一未确认的推断需求、产品问题或目标行为 unknown,就使用 `ready-for-clarification`。只有“推断需求”明确写 `- 无未确认的推断需求。` 且“待确认问题”明确写 `- 无待确认问题。` 时,才允许使用 `no-clarification-required`。
|
|
58
|
+
- [ ] 写入前完成全部分析内容。若判断无需澄清,先按 Step 2 直接询问用户是否需要补充;收到“无需补充”或补充内容并重新完成判断后再写入正式文件。
|
|
59
|
+
- [ ] 将完整分析写入正式 `<project-root>/docs/product-analysis/<requirement-id>/product-analysis.md`,此时标记为“已写入、未冻结”;不得创建空文件、占位文件或另一个候选版本。
|
|
60
|
+
- [ ] 立即对正式文件运行 `node <skill-root>/scripts/validate-product-analysis.mjs <product-analysis.md> --target <frontend|backend|both>`,target 使用 Step 0 的归一化值。校验失败时,根据明确错误重新生成并覆盖尚未冻结的正式文件,然后重新校验;执行中断后也可在下一轮继续修正同源未冻结草稿。未返回 exit 0 前禁止生成 Clarification 或进入 Step 2 的逐题决策澄清。上一条“无需澄清”场景的内容补充确认是正式写入前的唯一例外。
|
|
61
|
+
- [ ] 正式文件首次校验返回 exit 0 时,立即在当前执行上下文中把该路径标记为禁止写入并视为冻结;从该时刻起,当前及后续澄清轮次不得再调用写工具处理该路径。不得在校验通过与冻结之间修改、格式化或重新渲染文件。
|
|
62
|
+
- [ ] Step 2:决策树访谈 ⚠️ REQUIRED
|
|
63
|
+
- [ ] 读取 `references/clarification-and-knowledge.md` 第 2 节(含回答复核)和 `references/requirement-clarification-schema.md`。
|
|
64
|
+
- [ ] 每轮先给推荐答案和理由,只问一个决策问题并等待回答;不得合并多个问题,也不得仅因用户已回答就标记 confirmed。
|
|
65
|
+
- [ ] 所有分支收敛后,必须汇总范围、规则、状态/边界、已确认的默认产品行为和非目标,并单独询问用户是否确认以上共同理解或需要补充/修正;未收到明确确认前保持 `pending`。用户补充或修正后重新收敛、重新汇总并再次请求确认。
|
|
66
|
+
- [ ] 仅当不存在任何未确认推断需求、产品问题或目标行为 unknown 时,才跳过决策问题访谈并直接询问用户是否还有内容需要补充;用户补充后重新判断,只有用户明确表示无需补充或确认继续后,才能生成 complete 产物。
|
|
67
|
+
- [ ] 本步只做访谈与回答复核,不执行合成规则;合成在 Step 4。
|
|
68
|
+
- [ ] Step 3:记录 Requirement Clarification ⚠️ REQUIRED
|
|
69
|
+
- [ ] 每轮访谈后更新 Clarification:记录总澄清轮数,并为每个问题记录所属轮次、推荐答案、用户原始回答、最终决策、决策来源和目标位置;依赖和备选仅在适用时记录。
|
|
70
|
+
- [ ] 所有实际生成的 `Q-*` 都是产品决策,必须由用户确认;P0、P1 或 P2 只要未解决都保持 `pending`,不得通过默认假设完成需求。
|
|
71
|
+
- [ ] 用户确认共同理解后,在决策索引写入 `- 共同理解:已确认`,再进入 Step 4 将 Clarification/Product Requirement 标为 `complete`。
|
|
72
|
+
- [ ] Step 4:重新生成 Product Requirement ⛔ BLOCKING
|
|
73
|
+
- [ ] 读取 `references/product-requirement-schema.md`、`references/acceptance-criteria.md` 和 `references/clarification-and-knowledge.md` 第 3 节;按契约与 AC 规则重新生成,不做字符串回写。
|
|
74
|
+
- [ ] 澄清进行中:每次合成后重写 `pending` Product Requirement,并保留“未决事项”;不得标为 `complete`。
|
|
75
|
+
- [ ] pending Clarification 与 pending Product Requirement 写入后,使用 `--allow-pending` 运行二者校验器;两者状态必须一致。`--allow-pending` 仅用于内部中间产物校验,不得用于最终交付或下游消费。
|
|
76
|
+
- [ ] 共同理解已确认后:生成 `complete` Product Requirement;Clarification 同步为 `complete`。
|
|
77
|
+
- [ ] 优先级:用户确认决策 > 原始明确需求 > 当前有效的知识库项目规范 > 模型推断;知识库/代码事实只用于理解项目规范与现状、发现冲突和辅助澄清,不得发明产品意图。
|
|
78
|
+
- [ ] 不得把 `KB-FACT-*`、`CODE-FACT-*`、知识库/仓库路径或代码符号原样写入 Product Requirement。
|
|
79
|
+
- [ ] 用户故事只描述角色/使用方、目标/能力、价值、入口/触发方式和 AC 引用;详细产品行为只写在同 ID 输出规范中,正式 AC 嵌入该输出规范。
|
|
80
|
+
- [ ] 逐个检查每个 `FE-US-*` 的同 ID 输出规范并写入“页面路由”,不得因多个故事共享页面而省略或合并该字段。独立页面写以 `/` 开头的目标 URL;组件、弹窗或抽屉无独立路由时写“`不适用;嵌入 /目标路径 页面`”(`/目标路径` 替换为真实路径)。
|
|
81
|
+
- [ ] target 为 `backend` 或 `both` 时,后端故事只定义 API 的业务能力、输入输出语义、权限和规则;触发方式写 `API(Web)`、`API(Remote)` 或 `API(Web + Remote)`。Web + Remote 表示同一能力需要两个接口;具体 Method+Path 及 DTO 留给依赖 skill。
|
|
82
|
+
- [ ] 后端分页:每页条数允许值按“原始需求/用户确认 > 有效知识库分页规范 > 默认集合 `10`、`20`、`50`、`100`”确定。参数名、必填性、默认值和其他契约不得从知识库 API 文档自动带入。
|
|
83
|
+
- [ ] Step 5:验证并交付 ⛔ BLOCKING
|
|
84
|
+
- [ ] 再次以只读方式向已冻结 Product Analysis 和 Product Requirement 校验器传入归一化 target,只运行三个当前产物校验器;Product Analysis 在 Step 1 已通过正式文件校验,本步不得因任何原因修改它。交付路径不得使用 `--allow-pending`。
|
|
85
|
+
- [ ] Requirement Clarification 校验器核对 Product Analysis/Clarification 的原始需求身份,以及三个产物的 requirement ID、analysis scope 和状态;冻结不做脚本校验。
|
|
86
|
+
- [ ] 只有所有命令返回 0 才能声明完成。本步只交付 complete V4 Product Requirement;下游 `analyze-product-dependencies` 首选消费该产物,其 `--target` 可为本次 `analysis_scope` 的子集。
|
|
87
|
+
- [ ] `test-validators.mjs` 仅在修改本 skill 的输出契约、schema、validator、artifact version、示例、forward-test contract,或发布/安装/回归验证时运行;普通需求分析不运行 validator matrix。
|
|
88
|
+
|
|
89
|
+
完整格式示例按需读取 `references/example.md`;维护或 forward-test 时读取 `references/forward-test-cases.md`。不要为了执行校验而阅读脚本,直接运行。
|
|
90
|
+
|
|
91
|
+
## 完成规则
|
|
92
|
+
|
|
93
|
+
- `no-clarification-required` 仍生成三个产物,但只适用于“推断需求”为 `- 无未确认的推断需求。` 且“待确认问题”为 `- 无待确认问题。` 的场景;Clarification 使用“澄清结论、来源、合并结果”三章精简结构,并记录 `- 内容补充:用户已确认无需补充`;不得仅凭模型判断需求足够明确就自动完成。
|
|
94
|
+
- 需要澄清的 `complete` Clarification:全部分支 resolved,所有实际 `Q-*` 为 `confirmed/user`,决策索引含 `- 共同理解:已确认`,每个 `DEC-Q-*` 进入 Product Requirement 决策追溯。
|
|
95
|
+
- Product Requirement 必须自包含;只描述目标产品行为,不得出现 `KB-FACT-*`、`CODE-FACT-*`、知识库/仓库文件路径、代码级类/函数/组件符号、模块调用关系、数据表名、证据位置或实现算法。
|
|
96
|
+
- 不得生成独立用户角色、验收标准汇总、前后端契约、Open Questions、测试建议或独立边界 case 章节。
|
|
97
|
+
|
|
98
|
+
## Anti-Patterns
|
|
99
|
+
|
|
100
|
+
- 把首次写入正式 `product-analysis.md` 等同于冻结,未运行 validator 就进入澄清;或在 validator 非 0 时冻结错误版本。
|
|
101
|
+
- 正式文件校验通过后、冻结前再次渲染或格式化;或冻结后以“修复校验问题”为由继续修改。
|
|
102
|
+
- 回写、覆盖、格式化、移动或删除已冻结的 `product-analysis.md`。
|
|
103
|
+
- 把 `KB-FACT-*`、`CODE-FACT-*`、知识库/仓库路径、`*Controller/*Service` 符号或“证据位置”写入 Product Requirement。
|
|
104
|
+
- 未获用户明确确认(含共同理解确认)就把 Clarification/Product Requirement 标为 `complete`。
|
|
105
|
+
- 无需澄清时未询问用户是否需要补充,或未收到明确的无需补充/继续确认就生成产物。
|
|
106
|
+
- `kb-design-assist` 为 `unavailable` 时,未让用户选择修复或跳过就继续代码库降级或生成 complete 产物。
|
|
107
|
+
- 在每个新 requirement 开始时跳过知识库、先探索代码库,或用“需求简单/未涉及项目规范”记录未执行状态。
|
|
108
|
+
- 用默认假设消掉未解决的 P0/P1/P2。
|
|
109
|
+
- 把推断需求、含糊需求、缺失产品行为、冲突或多种合理解释留在 Product Analysis 中,却不进入用户澄清。
|
|
110
|
+
- 在 Product Analysis 写正式 `AC-*` 或 Given/When/Then。
|
|
111
|
+
- 任何前端故事的同 ID Product Analysis 或 Product Requirement 输出规范缺少“页面路由”,或因共享页面而只在其中一个故事中填写。
|
|
112
|
+
- 输入已给出分页允许值时,用知识库规范或默认 `10/20/50/100` 覆盖;或从知识库/API 文档自动带入路径、方法、参数名、必填性、默认值、响应、错误码或 DTO。
|
|
113
|
+
- 生成独立用户角色、验收标准汇总、前后端契约、Open Questions、测试建议或边界 case 章节。
|
|
114
|
+
|
|
115
|
+
## 交付前自检
|
|
116
|
+
|
|
117
|
+
声明完成前逐项确认,任一不满足不得交付:
|
|
118
|
+
|
|
119
|
+
- [ ] 三个 V4 产物写入同一 `docs/product-analysis/<requirement-id>/`,共享同一 `requirement_id`,且不含可推导的项目根或来源路径 frontmatter。
|
|
120
|
+
- [ ] 正式 `product-analysis.md` 已先写入并使用归一化 target 通过 Product Analysis validator;首次 exit 0 后立即冻结,且冻结前没有开始逐题澄清。
|
|
121
|
+
- [ ] validator 首次通过并冻结后,没有再次对 `product-analysis.md` 调用任何写入、格式化、移动或删除工具,正文、frontmatter 和路径保持不变。
|
|
122
|
+
- [ ] Product Analysis 与 Clarification 记录相同的原始需求身份。
|
|
123
|
+
- [ ] `complete` 场景下所有实际 `Q-*` 均为 `confirmed/user`,无未确认的产品行为或默认假设。
|
|
124
|
+
- [ ] 三个当前产物校验器全部返回 exit 0;任一非 0 都不算完成。
|
|
125
|
+
|
|
126
|
+
## Validation
|
|
127
|
+
|
|
128
|
+
把 `<skill-root>` 解析为本 `SKILL.md` 所在目录,全部参数使用绝对路径:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
node <skill-root>/scripts/validate-product-analysis.mjs <product-analysis.md> --target <frontend|backend|both>
|
|
132
|
+
node <skill-root>/scripts/validate-product-requirement.mjs <product-requirement.md> --target <frontend|backend|both>
|
|
133
|
+
node <skill-root>/scripts/validate-requirement-clarification.mjs <product-analysis.md> <requirement-clarification.md> <product-requirement.md>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
使用以下命令计算原始需求身份:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
node <skill-root>/scripts/compute-source-identity.mjs inline-source <包含准确 inline 需求正文的临时文件>
|
|
140
|
+
node <skill-root>/scripts/compute-source-identity.mjs file-source <原始需求文件>
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
需要澄清时,Clarification 与 Product Requirement 都为 `pending` 后才可对二者加 `--allow-pending`。该参数保持默认 fail-closed:不带参数时必须为 `complete`;下游和最终交付禁止使用。
|
|
144
|
+
|
|
145
|
+
维护或发布时额外运行 `node <skill-root>/scripts/test-validators.mjs`。
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# 详细验收标准规则
|
|
2
|
+
|
|
3
|
+
## 基本要求
|
|
4
|
+
|
|
5
|
+
每条验收标准必须独立可执行、结果可观察,并使用 Given/When/Then。一个用户故事存在多个关键流程时,拆成多个 AC,不要把互不相关的行为塞入一条 AC。
|
|
6
|
+
|
|
7
|
+
涉及状态变量、空数据、loading、error、disabled、错误提示或恢复入口时,Then 与异常场景必须使用已查明的项目枚举、共享组件、文案和交互规范;不得用通用占位状态替代项目规范。明确需求与项目规范冲突时先澄清目标行为。
|
|
8
|
+
|
|
9
|
+
每条 AC 必须说明:
|
|
10
|
+
|
|
11
|
+
1. Given:用户身份、权限、业务数据、系统状态和必要依赖。
|
|
12
|
+
2. When:具体操作、请求、事件或任务触发。
|
|
13
|
+
3. Then:明确的 UI、状态、字段值、状态码、数据变化或日志结果。
|
|
14
|
+
4. 异常场景:空数据、错误输入、无权限、超时、依赖失败及恢复方式。
|
|
15
|
+
5. 禁止行为:不得泄露、重复提交、产生脏数据、白屏或静默失败等。
|
|
16
|
+
|
|
17
|
+
## 分段最低要求
|
|
18
|
+
|
|
19
|
+
- Given:至少 1 个具体条目。
|
|
20
|
+
- When:至少 1 个具体条目。
|
|
21
|
+
- Then:至少 2 个可观察条目。
|
|
22
|
+
- 异常场景:至少 1 个条目;每个条目必须同时写明具体触发条件和可观察处理结果。
|
|
23
|
+
- 四段总计:至少 6 个条目。
|
|
24
|
+
- Then 或异常场景:至少包含一个禁止行为、失败保护、保留、恢复、重试或兜底结果。
|
|
25
|
+
|
|
26
|
+
不得在 AC 中使用“功能正常、应正常展示、展示正确、接口可用、数据正确、符合预期、妥善处理、合理处理”等模糊结果。
|
|
27
|
+
不得用“无异常情况”“没有需要处理的异常场景”“无需处理失败”等表述代替异常处理结果。
|
|
28
|
+
|
|
29
|
+
## 前端示例
|
|
30
|
+
|
|
31
|
+
```md
|
|
32
|
+
#### AC-FE-001 展示退款处理中状态
|
|
33
|
+
|
|
34
|
+
Given:
|
|
35
|
+
- 用户已登录且订单属于当前用户。
|
|
36
|
+
- 订单存在退款记录,refundStatus 为 processing。
|
|
37
|
+
|
|
38
|
+
When:
|
|
39
|
+
- 用户从订单列表进入该订单详情页。
|
|
40
|
+
|
|
41
|
+
Then:
|
|
42
|
+
- 退款进度模块展示“退款处理中”。
|
|
43
|
+
- 展示 currentStep 和格式化后的 updatedAt。
|
|
44
|
+
- 请求完成后 loading 状态消失。
|
|
45
|
+
- 页面不得展示其他订单的退款数据。
|
|
46
|
+
|
|
47
|
+
异常场景:
|
|
48
|
+
- 请求超时时展示失败提示和重试入口。
|
|
49
|
+
- currentStep 缺失时展示“状态未知”,页面不得白屏。
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 后端示例
|
|
53
|
+
|
|
54
|
+
输出规范与故事不得自行发明 HTTP 方法、路径或 DTO。AC 的 When/Then 使用可观察的业务触发与结果;仅当原始需求或用户澄清已明确给出方法/路径时,才可在 AC 中原样引用。
|
|
55
|
+
|
|
56
|
+
```md
|
|
57
|
+
#### AC-BE-001 返回退款处理中状态
|
|
58
|
+
|
|
59
|
+
Given:
|
|
60
|
+
- 请求用户已认证且拥有目标订单。
|
|
61
|
+
- 退款记录状态为 processing。
|
|
62
|
+
|
|
63
|
+
When:
|
|
64
|
+
- 用户请求查询该订单的退款状态。
|
|
65
|
+
|
|
66
|
+
Then:
|
|
67
|
+
- 返回成功状态。
|
|
68
|
+
- refundStatus 为 processing,failedReason 为 null。
|
|
69
|
+
- currentStep 与退款记录一致,updatedAt 使用约定时间格式。
|
|
70
|
+
- 响应不得包含内部错误堆栈或其他用户数据。
|
|
71
|
+
|
|
72
|
+
异常场景:
|
|
73
|
+
- 订单不存在时返回标准“资源不存在”错误结构。
|
|
74
|
+
- 无权访问时返回标准“禁止访问”错误,且不得泄露订单详情。
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## 不合格写法
|
|
78
|
+
|
|
79
|
+
以下内容不能单独作为验收标准:
|
|
80
|
+
|
|
81
|
+
- 功能正常。
|
|
82
|
+
- 页面展示正确。
|
|
83
|
+
- 接口可用。
|
|
84
|
+
- 数据符合预期。
|
|
85
|
+
- 异常情况正确处理。
|
|
86
|
+
|
|
87
|
+
必须将“正常、正确、可用、符合预期”替换为可核对的具体结果。
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# 澄清、代码事实与合成规则
|
|
2
|
+
|
|
3
|
+
## 1. 知识库与代码事实
|
|
4
|
+
|
|
5
|
+
每个新 requirement 先从需求内容形成定向检索计划,再读取并执行 `kb-integration.md`,直接沿用其中的状态机、用户处置和降级边界。知识库门禁通过后才能预扫描项目资料和探索代码库;为核验实际实现而进行的代码搜索仍不得把代码现状冒充项目规范。
|
|
6
|
+
|
|
7
|
+
项目资料预扫描的时机与顺序按 `kb-integration.md` 执行;命中内容不得替代真实代码证据。
|
|
8
|
+
|
|
9
|
+
有效知识结果使用 `KB-FACT-*`,包含规范事实、来源文档及定位、版本/生效状态、适用范围、需求影响和置信度。知识库用于说明项目要求,代码库用于说明当前实现;知识库命中不能把代码文件、符号或调用关系标记为 confirmed。
|
|
10
|
+
|
|
11
|
+
提供代码仓库且当前宿主支持隔离的只读代码侦察 agent 时,优先将定向事实搜索交给该 agent:认证、权限、状态枚举、相似能力、字段类型、统一错误结构、设计系统、空数据及 loading/error 展示。委派内容仅包含待查问题、允许搜索的范围和适用的知识库规范结论,当前会话只保留结论、证据位置、置信度和未定位项。当前宿主不支持该能力时,由当前 agent 先限定故事、问题、目录或关键词,再沿直接相关引用定向搜索,不做无边界扫描;不得因此阻断流程或扩大搜索范围。文件搜索优先使用 `rg --files` 和 `rg`,没有 `rg` 时使用宿主提供的等价只读搜索能力,不得降低证据标准。事实使用 `CODE-FACT-*`,包含事实、证据位置和需求影响。代码只能回答现状,不能替代用户决定目标需求。
|
|
12
|
+
|
|
13
|
+
scope 包含 backend 且涉及分页时:每页条数允许值以原始需求/用户确认为准;未说明时优先采用 `kb-design-assist` 返回的当前有效分页规范,仍未查明才使用默认集合 `10`、`20`、`50`、`100`。不得把知识库/API 文档的路径、方法、参数名、必填性、默认值、响应、错误码或 DTO 自动合并为产品需求。分析状态变量、空数据、loading、error、disabled 或兜底行为时,优先以当前有效知识库规范为项目规范来源,再核验仓库级指令、设计系统、共享组件和同类实现;未查明时写 unknown,不得用通用惯例冒充项目规范。
|
|
14
|
+
|
|
15
|
+
unknown 按影响分流:会改变范围、权限、业务规则、用户可感知输出/状态/边界或验收结果时,提炼成目标行为的产品决策并进入澄清;只涉及代码位置、符号、实现方式、技术复用或证据缺失时,保留为 `CODE-FACT-*` unknown 并交给依赖分析,不向用户提问,也不进入 Product Requirement。不得询问用户“代码在哪里”;应询问用户希望产品表现为何。
|
|
16
|
+
|
|
17
|
+
scope 包含 backend 且需求涉及接口/API 时,Web、Remote 或 Web + Remote 属于必须由用户确认的产品范围。只写笼统“接口/API”时生成一个澄清问题;确认结果写入现有“触发方式”,不得新增接口形态字段。Web + Remote 表示同一能力需要两个 HTTP 接口。
|
|
18
|
+
|
|
19
|
+
知识库、代码或需求之间冲突时:保留来源证据、生成澄清问题、用户裁决前不选边。过期、适用范围不明、互相冲突或无来源定位的知识结果按 unknown 处理。
|
|
20
|
+
|
|
21
|
+
## 2. 决策树式访谈
|
|
22
|
+
|
|
23
|
+
1. 从 Product Analysis 的全部推断需求、待确认问题和输出规范中的未确认产品内容提取顶层 `BR-*` 分支;每一项推断、含糊、缺失、冲突、多种合理解释或目标行为 unknown 都必须进入决策树,覆盖完整分支,不为满足数量制造分支。原始需求已明确且不存在歧义的行为直接作为 `source-requirement` 事实,不创建分支或问题。
|
|
24
|
+
2. 标注分支依赖,从范围、权限、核心流程、数据语义等基础决策开始。
|
|
25
|
+
3. 每轮只处理一个决策问题:先给推荐答案和理由,再提问并等待回答。任何两个待决子项都不得合并为一次提问。
|
|
26
|
+
4. 收到回答后重新识别剩余推断、模糊点、缺失项、冲突和新引入的未定义产品内容;只要仍存在未确认产品问题或需求,就开启下一轮。
|
|
27
|
+
5. 一次助手提问与用户回答记为一轮;轮数由未解决决策决定,不设置人为上限。
|
|
28
|
+
6. 所有分支解决后,必须总结范围、规则、状态/边界、已确认的默认产品行为和非目标,并单独询问用户“是否确认以上共同理解,或是否需要补充/修正”。用户明确确认前保持 pending:可反复生成 pending Product Requirement(含“未决事项”),但不得标为 complete。
|
|
29
|
+
7. 用户提出补充或修正时,将新内容纳入决策树,重新识别受影响分支与模糊点;收敛后必须重新输出完整的共同理解汇总并再次请求确认。只有用户明确确认当前汇总后,才能在 Clarification 决策索引写入 `- 共同理解:已确认` 并合成 complete Product Requirement。
|
|
30
|
+
|
|
31
|
+
能从环境、知识库、代码或项目资料查明的是事实,必须按“需求驱动的知识库检索 → 项目资料预扫描 → 定向代码探索”的顺序先查证,不询问用户。完成事实查证后,需要在多个目标行为之间选择的产品决策才逐项交给用户确认。分页沿用第 1 节已确定的来源优先级。
|
|
32
|
+
|
|
33
|
+
### 回答复核
|
|
34
|
+
|
|
35
|
+
收到用户回答后,先判断它是否直接覆盖当前问题的关键决策点、是否只有一种合理的产品解释、是否足以写成明确的范围/规则/输出行为/验收结果、是否与原始明确需求或已有决策冲突,以及是否引入新的未定义概念、例外条件或依赖关系。全部满足时才形成最终决策并标记为 confirmed。
|
|
36
|
+
|
|
37
|
+
任一条件不满足时:
|
|
38
|
+
|
|
39
|
+
- 保留用户原始回答,`最终决策` 写“未形成”并说明具体模糊点。
|
|
40
|
+
- P0/P1 使用 `pending-blocking`;P2 可使用 `pending-non-blocking` 并记录未确认影响。任何级别未确认时都不得生成 complete Product Requirement。
|
|
41
|
+
- 下一轮优先继续当前分支,明确指出上一轮回答仍不清晰的部分,并将问题收窄为可直接确认的决策点;不得原样重复问题或跳到其他分支。
|
|
42
|
+
- 不得把模型推断、推荐答案或代码现状当作用户确认。
|
|
43
|
+
|
|
44
|
+
当前问题明确后,再扫描全部推断需求、其他未解决问题和本次回答新引入的模糊点。只要内容属于产品需求或目标行为且尚未确认,就必须继续澄清;纯措辞、代码位置、符号、实现方式、技术复用和其他不构成产品需求的下游技术细节不消耗澄清轮次。
|
|
45
|
+
|
|
46
|
+
问题等级:
|
|
47
|
+
|
|
48
|
+
- P0:改变范围、权限、关键流程、数据语义或验收结果;必须由用户明确确认。
|
|
49
|
+
- P1:可以推荐默认值,但必须经用户确认。
|
|
50
|
+
- P2:可排到后续澄清轮次,但仍须用户确认后才能 complete;只要影响产品行为或验收就必须保持 pending。不影响产品行为的实现问题不属于 P2,按实现事实 unknown 处理。
|
|
51
|
+
|
|
52
|
+
只有“推断需求”为 `- 无未确认的推断需求。` 且“待确认问题”为 `- 无待确认问题。` 时,才跳过决策问题访谈;冻结 Product Analysis 和生成正式产物前,仍须直接询问用户“当前需求无需进一步澄清,是否还有内容需要补充”。用户补充内容时,将其并入本次输入后重新判断;只要出现新的推断、含糊、缺失、冲突或多种合理解释,就转入逐题澄清。只有用户明确表示无需补充或确认继续,才能生成 `no-clarification-required` 的 Product Analysis、complete Clarification 和 complete Product Requirement。不得把模型判断的“没有问题”自动视为用户确认,也不得为这次补充确认伪造 `BR-*`、`Q-*` 或 `DEC-Q-*`。
|
|
53
|
+
|
|
54
|
+
## 3. 合成规则
|
|
55
|
+
|
|
56
|
+
Product Analysis 必须先写入正式路径,再对正式文件运行 validator;同源文件尚未通过校验时视为未冻结草稿,当前或后续轮次都可按错误继续修正,首次返回 exit 0 时立即冻结。冻结后不得回写,冻结只由 skill 提示词约束。Clarification 的“来源/澄清来源”记录相同的原始需求身份;`最终决策` 是合成最终需求的规范化事实;`目标位置` 指向需求范围、业务规则、故事、输出规范或 AC。
|
|
57
|
+
|
|
58
|
+
三个产物必须写入同一 `<project-root>/docs/product-analysis/<requirement-id>/`。同目录来源使用相对路径,避免把个人机器绝对路径写入可交接产物。
|
|
59
|
+
|
|
60
|
+
生成 Product Requirement 时:
|
|
61
|
+
|
|
62
|
+
- 用户确认的推断转为正式需求。
|
|
63
|
+
- 用户否定的推断删除或进入非目标。
|
|
64
|
+
- 用户确认的推荐值或默认行为进入规则和故事,并保留用户决策来源。
|
|
65
|
+
- 当前有效知识库规范可用于填补项目既定的状态、组件、文案、交互和分页允许值;合成时转换为产品语言,不保留 `KB-FACT-*`、知识库路径、搜索过程或纯实现规范名称。
|
|
66
|
+
- 代码库事实只用于解释现状、识别冲突和支持澄清,不作为独立需求来源;未经用户确认且未被原始需求明确要求的代码现状不得进入 Product Requirement。
|
|
67
|
+
- 需要合并的代码事实必须转换为目标产品语言,只保留用户可感知的行为、业务规则和验收结果;`CODE-FACT-*`、证据路径、代码符号、模块结构、数据表和实现过程继续留在 Product Analysis 或 Clarification。
|
|
68
|
+
- 决策影响故事时重新生成故事与 AC,不只在决策列表堆积答案。
|
|
69
|
+
- `DEC-Q-*` 在决策追溯中登记,并能定位到正式章节。
|
|
70
|
+
- 无需澄清时不生成任何 `DEC-Q-*`,说明需求直接来源于原始需求。
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# V4 无需澄清路径示例
|
|
2
|
+
|
|
3
|
+
需求:登录用户在个人资料页修改昵称;昵称 2–20 个字符;保存失败时保留输入并允许重试;不修改头像。
|
|
4
|
+
|
|
5
|
+
## Product Analysis 关键结构
|
|
6
|
+
|
|
7
|
+
```md
|
|
8
|
+
---
|
|
9
|
+
artifact_version: "4.0"
|
|
10
|
+
artifact_type: product-analysis
|
|
11
|
+
requirement_id: profile-nickname
|
|
12
|
+
analysis_scope: frontend
|
|
13
|
+
analysis_status: no-clarification-required
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 1. 原始需求
|
|
17
|
+
- 原始需求身份:inline:sha256:<64位小写十六进制摘要>
|
|
18
|
+
- 正文:登录用户在个人资料页修改昵称;昵称 2–20 个字符;保存失败时保留输入并允许重试;不修改头像。
|
|
19
|
+
|
|
20
|
+
## 4. 需求分析
|
|
21
|
+
### 4.1 明确需求
|
|
22
|
+
- 登录用户可以在个人资料页修改自己的昵称。
|
|
23
|
+
### 4.2 推断需求
|
|
24
|
+
- 无未确认的推断需求。
|
|
25
|
+
### 4.3 待确认问题
|
|
26
|
+
- 无待确认问题。
|
|
27
|
+
- 理由:范围、权限、校验、失败恢复和非目标均已由原始需求明确。
|
|
28
|
+
### 4.4 初步非目标
|
|
29
|
+
- 不修改头像。
|
|
30
|
+
|
|
31
|
+
## 6. 初步前端用户故事
|
|
32
|
+
### FE-US-001 修改昵称
|
|
33
|
+
- 角色:已登录用户
|
|
34
|
+
- 目标:修改自己的展示昵称
|
|
35
|
+
- 价值:保持个人资料准确
|
|
36
|
+
- 入口:个人资料页
|
|
37
|
+
- 验收关注点:合法值可保存;非法值不可提交;失败时保留输入
|
|
38
|
+
|
|
39
|
+
## 7. 初步前端输出规范
|
|
40
|
+
### FE-US-001 修改昵称
|
|
41
|
+
- 页面/组件:个人资料页、昵称编辑表单
|
|
42
|
+
- 页面路由:/account/profile
|
|
43
|
+
- 展示内容:当前昵称、字符计数、校验提示
|
|
44
|
+
- 交互动作:编辑、保存、取消、重试
|
|
45
|
+
- UI 状态:normal、dirty、loading、success、error、disabled
|
|
46
|
+
- 表单校验:昵称长度为 2–20 个字符
|
|
47
|
+
- 权限可见性:仅当前登录用户
|
|
48
|
+
- 边界处理:保存失败时保留输入,不得静默失败
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Product Analysis 不创建正式 AC;每个前端故事的同 ID 初步输出规范都填写页面路由。
|
|
52
|
+
|
|
53
|
+
## 无需澄清记录
|
|
54
|
+
|
|
55
|
+
生成以下产物前,先询问用户是否还有内容需要补充;用户明确回复无需补充后再冻结 Product Analysis。
|
|
56
|
+
|
|
57
|
+
```md
|
|
58
|
+
## 1. 澄清结论
|
|
59
|
+
- 状态:no-clarification-required
|
|
60
|
+
- 原因:范围、权限、数据语义和验收结果已经明确。
|
|
61
|
+
- 内容补充:用户已确认无需补充
|
|
62
|
+
## 2. 来源
|
|
63
|
+
- Product Analysis:./product-analysis.md
|
|
64
|
+
- 原始需求身份:inline:sha256:<与 Product Analysis 一致的摘要>
|
|
65
|
+
## 3. 合并结果
|
|
66
|
+
- Product Requirement 根据明确需求生成,无额外决策标记。
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Product Requirement 故事、规范与 AC
|
|
70
|
+
|
|
71
|
+
```md
|
|
72
|
+
## 5. 前端用户故事
|
|
73
|
+
### FE-US-001 修改昵称
|
|
74
|
+
- 角色:已登录用户
|
|
75
|
+
- 目标:修改自己的展示昵称
|
|
76
|
+
- 价值:保持个人资料准确
|
|
77
|
+
- 入口:个人资料页
|
|
78
|
+
- 验收标准:AC-FE-001
|
|
79
|
+
|
|
80
|
+
## 6. 前端输出规范
|
|
81
|
+
### FE-US-001 修改昵称
|
|
82
|
+
- 页面/组件:个人资料页、昵称编辑表单
|
|
83
|
+
- 页面路由:/account/profile
|
|
84
|
+
- 展示内容:当前昵称、字符计数、校验提示
|
|
85
|
+
- 交互动作:编辑、保存、取消、重试
|
|
86
|
+
- UI 状态:normal、dirty、loading、success、error、disabled
|
|
87
|
+
- 表单校验:昵称长度为 2–20 个字符
|
|
88
|
+
- 权限可见性:仅当前登录用户
|
|
89
|
+
- 边界处理:失败时保留输入,不得静默失败
|
|
90
|
+
|
|
91
|
+
#### AC-FE-001 保存合法昵称
|
|
92
|
+
Given:
|
|
93
|
+
- 用户已登录并打开个人资料页。
|
|
94
|
+
When:
|
|
95
|
+
- 用户输入合法昵称并点击保存。
|
|
96
|
+
Then:
|
|
97
|
+
- 页面提交昵称修改请求。
|
|
98
|
+
- 保存成功后展示新昵称。
|
|
99
|
+
- 保存期间按钮保持 disabled。
|
|
100
|
+
异常场景:
|
|
101
|
+
- 保存失败时保留输入并提供重试入口。
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
故事与输出规范使用同一 ID;故事只引用 AC,AC 正文只在对应输出规范中出现一次。
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# Forward-Test Cases
|
|
2
|
+
|
|
3
|
+
在独立 agent 中逐个执行,不提供预期正文,只核对不变量。
|
|
4
|
+
|
|
5
|
+
## Case 1:无需澄清
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
显式调用 `analyze-product-requirements` skill,参数:`target=frontend`。
|
|
9
|
+
需求:登录用户在个人资料页修改自己的昵称;昵称 2–20 个字符;保存失败时保留输入并允许重试;不修改头像。
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
核对:生成产物前直接询问用户是否还有内容需要补充;未收到明确的“无需补充/确认继续”前不冻结 Product Analysis、不生成 complete 产物;用户确认后,三个产物都在 `<project-root>/docs/product-analysis/<requirement-id>/`,三者 `analysis_scope` 均为 `frontend`;Product Analysis 为 `no-clarification-required` 且不含正式 AC,其“原始需求”包含有效 `inline:sha256:*` 身份,每个前端初步输出规范包含有效页面路由;Clarification 使用三章精简结构、记录相同的原始需求身份和 `内容补充:用户已确认无需补充`,且没有 BR/Q/DEC;Product Requirement 为 complete,不含“默认假设”或“未决事项”;故事与同 ID 输出规范一一对应,每个前端规范均包含有效页面路由。
|
|
13
|
+
|
|
14
|
+
## Case 2:需要逐题澄清
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
显式调用 `analyze-product-requirements` skill,参数:`target=both`。
|
|
18
|
+
需求:管理员可以导出用户数据。
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
核对:角色定义、导出范围、敏感字段、文件格式、有效期和失败行为中任何推断、含糊、缺失或多种合理解释都进入待确认问题;按实际决策树列出分支;每轮先推荐再只问一个决策问题;收到回答后重新扫描全部未确认产品内容;`clarification_rounds` 和问题轮次一致且不受人为上限约束;全部分支收敛后必须汇总范围、规则、状态/边界、已确认默认行为和非目标,并询问用户确认或补充;用户补充后重新收敛并再次汇总确认;明确确认前保持 pending;不得回写 Product Analysis。
|
|
22
|
+
|
|
23
|
+
## Case 3:后端 API 业务需求
|
|
24
|
+
|
|
25
|
+
```text
|
|
26
|
+
显式调用 `analyze-product-requirements` skill,参数:`target=backend`。
|
|
27
|
+
需求:登录用户查询自己订单的退款状态,失败时看到可理解原因,内部错误不得泄露。
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
核对:必须先询问该接口实现为 Web、Remote 还是 Web + Remote;确认前保持 pending。确认后 BE 故事只保留能力、使用方、价值、明确的 `API(Web)|API(Remote)|API(Web + Remote)` 触发方式和 AC 引用;同 ID 输出规范明确输入输出语义、权限和规则;不虚构最终 URL、HTTP 方法、DTO 或代码落点。
|
|
31
|
+
|
|
32
|
+
## Case 4:非 API 后端任务
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
显式调用 `analyze-product-requirements` skill,参数:`target=backend`。
|
|
36
|
+
需求:每天归档 90 天前已完成通知,重复执行不得重复归档。
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
核对:触发方式明确为定时任务;包含批次、幂等、并发和失败恢复;不会把它误标为 API。
|
|
40
|
+
|
|
41
|
+
## Case 5:回答仍然模糊
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
显式调用 `analyze-product-requirements` skill,参数:`target=both`。
|
|
45
|
+
需求:管理员可以导出用户数据。
|
|
46
|
+
第一轮询问导出字段范围时,用户回答:敏感字段按实际情况处理。
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
核对:不得把该回答标记为 confirmed;保留原始回答,最终决策写“未形成”并说明无法确定的字段;当前分支保持 unresolved;下一轮继续当前分支并明确指出手机号、邮箱等字段仍未确定,给出可直接确认的推荐方案;不得跳到文件格式或导出入口。
|
|
50
|
+
|
|
51
|
+
## Case 6:下一轮消除模糊
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
沿用 Case 5。下一轮用户回答:导出邮箱,不导出手机号和身份证号。
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
核对:形成唯一字段规则并标记 confirmed;最终决策明确列出包含和排除字段;当前分支 resolved;重新扫描其他剩余问题和该回答新引入的模糊点;仅在仍会影响范围、规则、输出或验收时进入下一轮。
|
|
58
|
+
|
|
59
|
+
## Case 7:代码事实不得泄漏到最终需求
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
显式调用 `analyze-product-requirements` skill,参数:`target=backend`,并提供一个仓库。
|
|
63
|
+
需求:仅管理员可以导出用户数据。仓库中现有权限判断位于 src/auth/permission.ts,使用 role=admin。
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
核对:Product Analysis 可记录 `CODE-FACT-*`、证据路径和现状;Clarification 可引用该证据辅助判断,但不得把现状自动视为目标决策;Product Requirement 只写“仅管理员可以导出用户数据”等产品规则,不包含 `CODE-FACT-*`、`src/auth/permission.ts`、`role=admin`、代码符号、模块结构或当前实现过程。
|
|
67
|
+
|
|
68
|
+
## Case 8:分页允许值来源
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
显式调用 `analyze-product-requirements` skill,参数:`target=backend`。
|
|
72
|
+
A:需求明确 pageSize 为必填,但未给出允许值集合。
|
|
73
|
+
B:需求明确 pageSize 允许值为 5、10、20。
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
知识库分页规范允许值为 `20/50/100`。核对:A 使用有效知识库规范的 `20/50/100`;B 原样沿用 `5/10/20`,不得被知识库或默认集合覆盖。知识库不可用或未命中时,A 才使用默认集合 `10/20/50/100`。不得从知识库/API 文档自动带入路径、方法、参数名、必填性、默认值、响应、错误码或 DTO。
|
|
77
|
+
|
|
78
|
+
## Case 9:项目状态与空数据规范
|
|
79
|
+
|
|
80
|
+
使用包含统一空状态组件、loading/error 枚举和同类列表页的仓库。核对:当前宿主支持隔离的只读代码侦察 agent 时优先委派探索;不支持时由当前 agent 执行同等范围的受限、定向搜索;Product Analysis 与 Product Requirement 使用项目真实状态名、共享空状态组件及恢复交互;不得用 generic `empty` 或自造文案替代项目规范。
|
|
81
|
+
|
|
82
|
+
## Case 10:unknown 分流
|
|
83
|
+
|
|
84
|
+
仓库中未定位到空数据规范,但需求要求定义空数据展示。核对:把目标空数据行为作为产品决策逐题澄清,不询问代码位置。若仅未定位到组件文件或状态枚举声明位置,则保留 `CODE-FACT-*` unknown 并交给依赖 skill,不进入澄清或 Product Requirement。
|
|
85
|
+
|
|
86
|
+
## Case 11:所有实际问题都由用户确认
|
|
87
|
+
|
|
88
|
+
使用包含推断需求和 P2 产品行为决策的需求。核对:每项推断需求都进入待确认问题并由用户逐题确认;用户确认前 Clarification 和 Product Requirement 保持 pending;不得生成 `default-confirmed` 或 `confirmed-default`;complete 时每个实际 `Q-*` 都为 `confirmed/user`。
|
|
89
|
+
|
|
90
|
+
## Case 12:原始明确行为不伪造问题
|
|
91
|
+
|
|
92
|
+
原始需求明确指定页面路由、权限和错误恢复方式。核对:这些内容以 `source-requirement` 事实直接合并,不生成 `Q-*`、`DEC-Q-*` 或二次确认。
|
|
93
|
+
|
|
94
|
+
## Case 13:页面路由
|
|
95
|
+
|
|
96
|
+
分别使用独立页面、嵌入式抽屉以及两个共享同一页面的前端故事。核对:Product Analysis 和 Product Requirement 的每个前端故事输出规范都包含页面路由;独立页面写以 `/` 开头的目标 URL;抽屉写“`不适用;嵌入 /所属页面 页面`”;共享页面的两个故事分别填写同一路由,不得合并或省略;不得写路由配置文件、框架组件或 middleware。
|
|
97
|
+
|
|
98
|
+
## Case 14:pending 与 complete 结构
|
|
99
|
+
|
|
100
|
+
存在产品行为 unknown 时,pending Product Requirement 必须包含“未决事项”;全部确认后重新生成 complete 文档并删除该章节。两种状态都不得生成“默认假设”。
|
|
101
|
+
|
|
102
|
+
## Case 15:普通执行验证范围
|
|
103
|
+
|
|
104
|
+
核对普通需求分析只运行 Product Analysis、Requirement Clarification 和 Product Requirement 三个当前产物 validator,不运行 `test-validators.mjs`。
|
|
105
|
+
|
|
106
|
+
## Case 16:知识库命中与证据边界
|
|
107
|
+
|
|
108
|
+
使用需要空状态、错误语义和分页约定的需求,并让 `kb-design-assist` 返回可定位、当前有效的设计系统及分页规范。核对:先检索知识库再定向核验仓库;Product Analysis 记录 `executed-hit` 和结构完整的 `KB-FACT-*`;Product Requirement 使用规范化后的产品行为,但不包含 `KB-FACT-*`、知识库路径、搜索过程、Controller/Service/Entity/Response 等实现规范名称。
|
|
109
|
+
|
|
110
|
+
## Case 17:知识库强制前置、未命中或不可用
|
|
111
|
+
|
|
112
|
+
分别使用“看似不涉及项目规范”的简单需求、让 `kb-design-assist` 返回无结果,以及让调用失败。核对:简单需求仍先从需求提取检索词并真实调用知识库,不允许 `not-executed`;无结果记录 `executed-no-match`,在有仓库时降级为受限、定向的代码库规范搜索,无仓库时按 unknown 分流;调用失败记录 `unavailable`,必须先说明失败原因并询问用户选择“修复后重试”或“跳过知识库”,未选择前不得预扫描项目资料、探索代码库或生成 complete 产物;选择修复后按重试结果继续,明确选择跳过后才允许降级。不得把“未执行”误写成“未命中”,也不得绕过确认门禁。
|
|
113
|
+
|
|
114
|
+
## Case 18:知识库与需求冲突
|
|
115
|
+
|
|
116
|
+
原始需求明确分页允许值为 `5/10/20`,知识库规范为 `20/50/100`;另提供一份与原始错误恢复行为冲突的设计规范。核对:分页沿用原始需求;用户可见行为冲突进入逐题澄清,用户裁决前保持 pending;不得静默采用知识库结果。
|
|
117
|
+
|
|
118
|
+
## Case 19:Web + Remote 接口范围
|
|
119
|
+
|
|
120
|
+
需求只写“实现订单列表接口”。核对:必须询问 Web、Remote 或两者;用户确认两者后写 `触发方式:API(Web + Remote)`,不新增接口形态字段,也不在 Product Requirement 中虚构 `/order/list` 或 `/remote/order/list`。
|
|
121
|
+
|
|
122
|
+
## Case 20:项目资料预扫描
|
|
123
|
+
|
|
124
|
+
知识库检索结束后提供包含 `ai_workspace/project-how-to`、`code-specification`、`project-business` 的仓库。核对:常规代码搜索前按固定顺序枚举并定向读取三个目录;目录缺失时记录 `not-found` 并继续;资料事实不能替代真实代码证据。
|
|
125
|
+
|
|
126
|
+
## Case 20A:知识库、代码库与澄清顺序
|
|
127
|
+
|
|
128
|
+
使用同时包含权限歧义、状态约定和已有相似实现的需求。核对执行轨迹严格为:从原始需求提取检索计划 → 调用 `kb-design-assist` → 项目资料预扫描 → 按知识结论定向探索代码库 → 汇总冲突与 unknown → 逐题向用户澄清。不得在知识库门禁通过前搜索代码,也不得在代码事实尚可查证时提前询问用户。
|
|
129
|
+
|
|
130
|
+
## Case 21:提示词冻结与来源身份
|
|
131
|
+
|
|
132
|
+
分别使用 inline 与文件输入生成 Product Analysis。核对:inline 身份只绑定准确正文;file 身份同时绑定规范化真实路径与正文;Clarification 记录相同原始需求身份。完整内容先写入正式 `product-analysis.md`,随即以归一化 target 校验正式文件;首次失败时把同源正式文件保留为未冻结草稿,当前或后续轮次均可继续修正,首次返回 exit 0 后立即冻结并进入澄清。冻结后当前及后续轮次不得再次对正式路径调用写入、格式化、移动或删除工具;Step 5 只读复验。使用相同正文但不同文件路径继续任务时,同源判定必须停止。
|
|
133
|
+
|
|
134
|
+
## Case 21A:正式文件校验通过后才冻结
|
|
135
|
+
|
|
136
|
+
构造缺少必填章节或 target 不匹配的 Product Analysis。核对:完整内容先写入正式路径但保持未冻结;validator 非 0 时允许修正正式文件,且不得开始逐题澄清;执行中断后重新进入时,同源文件校验失败仍视为未冻结草稿并继续修正。首次返回 exit 0 后立即冻结并进入澄清,冻结后再次修改必须被流程拒绝。
|
|
137
|
+
|
|
138
|
+
## Case 22:pending 状态一致性
|
|
139
|
+
|
|
140
|
+
构造 `pending Clarification + pending Product Requirement`、`pending + complete`、`complete + pending` 三组。核对:第一组仅在显式 `--allow-pending` 时通过;后两组始终失败;最终交付与依赖 skill 不使用 `--allow-pending`。
|
|
141
|
+
|
|
142
|
+
## Case 23:严格结构与全局唯一性
|
|
143
|
+
|
|
144
|
+
分别向三个产物 frontmatter 注入 `source_path`,让两个故事复用同一个 AC ID,并把 complete Clarification 的“最终决策”改为“未形成”。核对:额外 frontmatter 字段、重复 AC ID 和未形成最终决策都被 validator 拒绝。
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# kb-design-assist 接入契约
|
|
2
|
+
|
|
3
|
+
每个新 requirement 完成输入识别后,必须先根据需求内容使用当前宿主原生的 skill 加载机制调用第三方 `kb-design-assist`,再预扫描项目资料和探索代码库。即使需求简单、未显式提到项目规范,或模型预判知识库可能没有结果,也不得跳过真实检索。
|
|
4
|
+
|
|
5
|
+
## 调用输入
|
|
6
|
+
|
|
7
|
+
先从原始需求提取业务目标、角色、领域对象、关键动作、状态/边界、权限、接口与分页线索,再向 `kb-design-assist` 提供:
|
|
8
|
+
|
|
9
|
+
- 可识别的项目、产品或知识库范围;无法确定时使用当前项目上下文,不得臆造范围。
|
|
10
|
+
- 已归一化的 `target`、相关故事、业务关键词、领域对象和待查问题。
|
|
11
|
+
- 需要检索的规范类别;只查询与当前需求直接相关的内容,不做无边界扫描。
|
|
12
|
+
- 返回要求:规范结论、文档标题与章节/定位、版本或生效状态、适用范围、置信度、冲突与未定位项。
|
|
13
|
+
|
|
14
|
+
需求分析优先查询设计系统、交互/文案规范、用户可见状态枚举、共享状态组件、权限可见性、错误语义和分页允许值。Controller、Service、Entity、Response、Remote、Web API 或 `interfaces.md` 等纯实现规范仅用于判断当前问题是否属于下游技术设计,不得据此扩写产品需求。
|
|
15
|
+
|
|
16
|
+
知识库状态已确定或用户确认跳过后,再按固定顺序预扫描 `<project-root>/ai_workspace/project-how-to`、`code-specification`、`project-business`,然后才进入常规代码搜索。目录缺失不阻断;命中内容作为项目资料事实记录,并按知识库、项目资料、代码现状之间的冲突规则处理。
|
|
17
|
+
|
|
18
|
+
## 结果状态
|
|
19
|
+
|
|
20
|
+
当前宿主可发现 `kb-design-assist` 时,使用宿主原生的 skill 加载机制调用。知识检索必须记录一种真实状态:
|
|
21
|
+
|
|
22
|
+
- `executed-hit`:已执行并命中可定位、适用且有效的规范。
|
|
23
|
+
- `executed-no-match`:已执行,但没有与当前问题相关的结果。
|
|
24
|
+
- `unavailable`:`kb-design-assist` 未安装、不可发现、调用失败或无法访问目标知识库。
|
|
25
|
+
|
|
26
|
+
未执行知识库检索属于流程违规,不得生成 Product Analysis。未执行时不得声称“未命中”;调用失败时不得模拟结果。`executed-no-match` 和 `unavailable` 均不得伪装为 `executed-hit`。
|
|
27
|
+
|
|
28
|
+
状态为 `executed-no-match` 时直接触发降级:有仓库时执行受限、定向的代码库搜索,只查找与当前问题直接相关的规范或共享定义;没有仓库时按 unknown 分流。`executed-hit` 不触发规范降级,但仍必须探索代码库以核验现状。
|
|
29
|
+
|
|
30
|
+
状态为 `unavailable` 时不得直接降级。立即停止后续知识查证与 complete 产物生成,向用户说明可观察到的失败原因,并单独询问选择:
|
|
31
|
+
|
|
32
|
+
1. **修复后重试**:等待用户修复安装、发现、调用或访问问题,再重新调用 `kb-design-assist`;以重试后的真实结果状态继续流程。
|
|
33
|
+
2. **跳过知识库**:仅在用户明确同意后,记录 `- 用户处置:已确认跳过知识库`,再执行与 `executed-no-match` 相同的受限、定向代码库降级;没有仓库时按 unknown 分流。
|
|
34
|
+
|
|
35
|
+
用户未明确选择前保持阻断,不得自动重试、自动跳过、自动降级或把 `unavailable` 改写为其他状态。正常任务为定位当前实现而进行的代码核验不属于降级,但不得借此绕过该确认门禁或把代码现状冒充项目规范。
|
|
36
|
+
|
|
37
|
+
## 事实与优先级
|
|
38
|
+
|
|
39
|
+
每条有效结果使用 `KB-FACT-*`,记录规范事实、来源文档及定位、版本/生效状态、适用范围、需求影响和置信度。过期、适用范围不明、相互冲突或无法定位来源的结果不得作为已确认规范,只能记录为冲突或 unknown。
|
|
40
|
+
|
|
41
|
+
产品行为来源优先级:
|
|
42
|
+
|
|
43
|
+
1. 用户已确认决策。
|
|
44
|
+
2. 原始需求明确内容。
|
|
45
|
+
3. 当前有效且适用于本项目的知识库规范。
|
|
46
|
+
4. 模型推断或通用兜底。
|
|
47
|
+
|
|
48
|
+
知识库与用户决策、原始需求或另一份有效规范冲突时,保留证据并生成产品澄清问题,用户裁决前不得选边。知识库事实只能填补项目规范,不得发明业务范围、业务规则或用户意图。
|
|
49
|
+
|
|
50
|
+
分页允许值遵循:原始需求/用户确认 > 有效知识库分页规范 > 固定兜底 `10/20/50/100`。即使知识库命中 API 文档,也不得自动带入路径、方法、参数名、必填性、默认值、响应结构、错误码或 DTO。
|
|
51
|
+
|
|
52
|
+
## 产物边界
|
|
53
|
+
|
|
54
|
+
- Product Analysis 的“知识库事实”记录检索状态及 `KB-FACT-*`;代码证据继续使用 `CODE-FACT-*`。
|
|
55
|
+
- Requirement Clarification 可引用 `KB-FACT-*` 解释冲突或推荐理由。
|
|
56
|
+
- Product Requirement 只能保留不含来源标识和技术证据的目标产品行为;不得出现 `KB-FACT-*`、知识库搜索过程、文档路径或实现规范名称。
|