cgraphx 2.0.2 → 2.0.6
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/dist/.claude-template/FLOW-MAP.md +13 -3
- package/dist/.claude-template/agents/task-history.md +186 -0
- package/dist/.claude-template/commands/end.md +1 -0
- package/dist/.claude-template/skills/cgraphx-guide/SKILL.md +5 -3
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.html +8 -8
- package/dist/.claude-template/skills/cgraphx-guide/how-to-use.md +8 -8
- package/dist/.claude-template/skills/clarify-requirements/SKILL.md +13 -9
- package/dist/.claude-template/skills/db-query/SKILL.md +19 -2
- package/dist/.claude-template/skills/iboc-check/SKILL.md +51 -23
- package/dist/.claude-template/skills/iboc-check/filler-prompt.md +3 -4
- package/dist/.claude-template/skills/run-api-test/SKILL.md +15 -15
- package/dist/.claude-template/skills/run-api-test/assets/{template-test-report.md → template-/346/216/245/345/217/243/346/265/213/350/257/225/346/212/245/345/221/212.md} +4 -4
- package/dist/.claude-template/skills/run-api-test/references/bru-run.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/db-verification.md +2 -2
- package/dist/.claude-template/skills/run-api-test/references/report-format.md +6 -6
- package/dist/.claude-template/skills/run-api-test/references/service-readiness.md +1 -1
- package/dist/.claude-template/skills/run-api-test/references/test-scope.md +6 -6
- package/dist/.claude-template/skills/run-ui-test/SKILL.md +186 -0
- package/dist/.claude-template/skills/run-ui-test/references/report-format.md +77 -0
- package/dist/.claude-template/skills/subagent-implement/SKILL.md +3 -2
- package/dist/.claude-template/skills/write-api/SKILL.md +18 -18
- package/dist/.claude-template/skills/write-api/assets/{template-api-spec.md → template-/346/216/245/345/217/243/346/265/213/350/257/225-spec.md} +1 -1
- package/dist/.claude-template/skills/write-api/references/{api-spec-format.md → /346/216/245/345/217/243/346/265/213/350/257/225-spec-format.md} +3 -3
- package/dist/.claude-template/skills/write-plan/SKILL.md +4 -2
- package/dist/.claude-template/skills/write-ui-test/SKILL.md +125 -0
- package/dist/.claude-template/skills/write-ui-test/references//347/224/250/344/276/213/350/247/204/346/240/274-format.md +94 -0
- package/dist/core/code/engine/cli/analyze-config.js +320 -0
- package/dist/core/code/engine/cli/analyze.js +1086 -0
- package/dist/core/code/engine/cli/cli-message.js +83 -0
- package/dist/core/code/engine/cli/detect-changes-format.js +58 -0
- package/dist/core/code/engine/cli/embedding-dims.js +43 -0
- package/dist/core/code/engine/cli/format-elapsed.js +12 -0
- package/dist/core/code/engine/cli/help-i18n.js +144 -0
- package/dist/core/code/engine/cli/i18n/en.js +110 -0
- package/dist/core/code/engine/cli/i18n/index.js +47 -0
- package/dist/core/code/engine/cli/i18n/resources.js +9 -0
- package/dist/core/code/engine/cli/i18n/zh-CN.js +110 -0
- package/dist/core/code/engine/cli/lazy-action.js +67 -0
- package/dist/core/code/engine/cli/optional-grammars.js +136 -0
- package/dist/core/code/engine/cli/resolve-invocation.js +76 -0
- package/dist/core/code/engine/cli/status.js +156 -0
- package/dist/core/code/engine/cli/tool.js +384 -0
- package/dist/core/code/engine/config/ignore-service.js +511 -0
- package/dist/core/code/engine/config/supported-languages.js +17 -0
- package/dist/core/code/engine/core/analysis-features.js +64 -0
- package/dist/core/code/engine/core/analyzer-identity.js +2171 -0
- package/dist/core/code/engine/core/git-staleness.js +180 -0
- package/dist/core/code/engine/core/graph/graph.js +180 -0
- package/dist/core/code/engine/core/graph/import-cycles.js +106 -0
- package/dist/core/code/engine/core/graph/types.js +2 -0
- package/dist/core/code/engine/core/index-freshness.js +12 -0
- package/dist/core/code/engine/core/ingestion/binding-accumulator.js +341 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/c-cpp.js +168 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/csharp.js +9 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/dart.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/go.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/jvm.js +54 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/php.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/python.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/ruby.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/rust.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/swift.js +8 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/configs/typescript-javascript.js +11 -0
- package/dist/core/code/engine/core/ingestion/call-extractors/generic.js +62 -0
- package/dist/core/code/engine/core/ingestion/call-processor.js +503 -0
- package/dist/core/code/engine/core/ingestion/call-routing.js +98 -0
- package/dist/core/code/engine/core/ingestion/call-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/cfg/callee-cell-format.js +45 -0
- package/dist/core/code/engine/core/ingestion/cfg/cfg-builder.js +202 -0
- package/dist/core/code/engine/core/ingestion/cfg/collect.js +81 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-dependence.js +185 -0
- package/dist/core/code/engine/core/ingestion/cfg/control-flow-context.js +130 -0
- package/dist/core/code/engine/core/ingestion/cfg/emit.js +646 -0
- package/dist/core/code/engine/core/ingestion/cfg/post-dominators.js +182 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-def-reason-codec.js +139 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs-graph.js +322 -0
- package/dist/core/code/engine/core/ingestion/cfg/reaching-defs.js +792 -0
- package/dist/core/code/engine/core/ingestion/cfg/synthetic-escape.js +305 -0
- package/dist/core/code/engine/core/ingestion/cfg/traversal-result.js +6 -0
- package/dist/core/code/engine/core/ingestion/cfg/types.js +14 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp-harvest.js +545 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/c-cpp.js +590 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/call-site-harvest.js +356 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp-harvest.js +593 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/csharp.js +871 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart-harvest.js +874 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/dart.js +840 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go-harvest.js +625 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/go.js +642 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java-harvest.js +517 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/java.js +816 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin-harvest.js +723 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/kotlin.js +813 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php-harvest.js +630 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/php.js +725 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python-harvest.js +776 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/python.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby-harvest.js +591 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/ruby.js +760 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust-harvest.js +877 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/rust.js +562 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/scope-tree-harvest.js +120 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift-harvest.js +683 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/swift.js +791 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript-harvest.js +1060 -0
- package/dist/core/code/engine/core/ingestion/cfg/visitors/typescript.js +587 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/c-cpp.js +77 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/csharp.js +24 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/dart.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/go.js +28 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/jvm.js +67 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/php.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/python.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/ruby.js +13 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/rust.js +10 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/swift.js +21 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/configs/typescript-javascript.js +31 -0
- package/dist/core/code/engine/core/ingestion/class-extractors/generic.js +144 -0
- package/dist/core/code/engine/core/ingestion/class-types.js +2 -0
- package/dist/core/code/engine/core/ingestion/cluster-enricher.js +174 -0
- package/dist/core/code/engine/core/ingestion/community-processor.js +604 -0
- package/dist/core/code/engine/core/ingestion/constants.js +26 -0
- package/dist/core/code/engine/core/ingestion/cpp-ue-preprocessor.js +263 -0
- package/dist/core/code/engine/core/ingestion/csharp-namespace-gate.js +133 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/index.js +38 -0
- package/dist/core/code/engine/core/ingestion/di-extractors/spring.js +310 -0
- package/dist/core/code/engine/core/ingestion/emit-references.js +244 -0
- package/dist/core/code/engine/core/ingestion/entry-point-scoring.js +201 -0
- package/dist/core/code/engine/core/ingestion/export-detection.js +244 -0
- package/dist/core/code/engine/core/ingestion/field-extractor.js +29 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/c-cpp.js +107 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/csharp.js +124 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/dart.js +99 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/go.js +102 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/helpers.js +198 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/jvm.js +172 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/php.js +67 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/python.js +94 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/ruby.js +79 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/rust.js +55 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/swift.js +93 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/configs/typescript-javascript.js +59 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/generic.js +147 -0
- package/dist/core/code/engine/core/ingestion/field-extractors/typescript.js +266 -0
- package/dist/core/code/engine/core/ingestion/field-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/filesystem-walker.js +136 -0
- package/dist/core/code/engine/core/ingestion/finalize-orchestrator.js +159 -0
- package/dist/core/code/engine/core/ingestion/framework-detection.js +432 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/analysis-features.js +38 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/annotation-arguments.js +234 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop-candidates.js +88 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/aop.js +487 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/auto-configuration.js +21 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-candidates.js +189 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-catalog.js +32 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/bean-factories.js +73 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/conditionals.js +323 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/config-bindings.js +119 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/di-metadata.js +385 -0
- package/dist/core/code/engine/core/ingestion/frameworks/spring/resource-injection.js +96 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/c-cpp.js +17 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/csharp.js +46 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/dart.js +59 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/go.js +30 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/jvm.js +73 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/php.js +19 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/python.js +45 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/rust.js +58 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/swift.js +94 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/configs/typescript-javascript.js +26 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/csharp.js +128 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/go.js +50 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/jvm.js +112 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/php.js +80 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/python.js +75 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/resolver-factory.js +36 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/ruby.js +20 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/standard.js +180 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/types.js +7 -0
- package/dist/core/code/engine/core/ingestion/import-resolvers/utils.js +153 -0
- package/dist/core/code/engine/core/ingestion/import-target-adapter.js +99 -0
- package/dist/core/code/engine/core/ingestion/language-config.js +391 -0
- package/dist/core/code/engine/core/ingestion/language-provider.js +25 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity-metadata.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/c/arity.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/c/capture-side-channel.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/c/captures.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/c/header-scan.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-decomposer.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/c/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/c/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/c/interpret.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/c/merge-bindings.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/c/query.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/c/scope-resolver.js +112 -0
- package/dist/core/code/engine/core/ingestion/languages/c/simple-hooks.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/c/static-linkage.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/c-cpp.js +506 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/adl.js +804 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity-metadata.js +258 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/arity.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/capture-side-channel.js +89 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/captures.js +1975 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-extractor.js +311 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/constraint-filter.js +210 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/conversion-rank.js +163 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/file-local-linkage.js +327 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/header-scan.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-decomposer.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/import-target.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/index.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/inline-namespaces.js +379 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/interpret.js +239 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/member-lookup.js +470 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/merge-bindings.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/query.js +763 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/range-bindings.js +230 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/scope-resolver.js +354 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/simple-hooks.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/two-phase-lookup.js +348 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/type-classifier.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/cpp/user-defined-conversions.js +128 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/accessor-unwrap.js +67 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/arity.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/captures.js +557 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-decomposer.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/import-target.js +176 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/index.js +95 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/interpret.js +150 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/merge-bindings.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/namespace-siblings.js +708 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/qualified-type-names.js +62 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/query.js +578 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/receiver-binding.js +142 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/resolution-config.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/scope-resolver.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp/simple-hooks.js +81 -0
- package/dist/core/code/engine/core/ingestion/languages/csharp.js +204 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity-metadata.js +38 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/arity.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/built-ins.js +37 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/cache-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/captures.js +1096 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/expand-wildcards.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/extension-type-preprocess.js +33 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/import-target.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/index.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/interpret.js +101 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/merge-bindings.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/query.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/receiver-binding.js +90 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/scope-resolver.js +197 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/signature-bindings.js +54 -0
- package/dist/core/code/engine/core/ingestion/languages/dart/simple-hooks.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/dart.js +138 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity-metadata.js +71 -0
- package/dist/core/code/engine/core/ingestion/languages/go/arity.js +17 -0
- package/dist/core/code/engine/core/ingestion/languages/go/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/captures.js +492 -0
- package/dist/core/code/engine/core/ingestion/languages/go/expand-wildcards.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/go/generic-type-parameters.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-decomposer.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/go/import-target.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/go/index.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interface-impls.js +955 -0
- package/dist/core/code/engine/core/ingestion/languages/go/interpret.js +177 -0
- package/dist/core/code/engine/core/ingestion/languages/go/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/go/method-owners.js +131 -0
- package/dist/core/code/engine/core/ingestion/languages/go/namespace-mirror.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-clause.js +79 -0
- package/dist/core/code/engine/core/ingestion/languages/go/package-siblings.js +83 -0
- package/dist/core/code/engine/core/ingestion/languages/go/query.js +298 -0
- package/dist/core/code/engine/core/ingestion/languages/go/range-binding.js +127 -0
- package/dist/core/code/engine/core/ingestion/languages/go/receiver-binding.js +24 -0
- package/dist/core/code/engine/core/ingestion/languages/go/scope-resolver.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/go/simple-hooks.js +31 -0
- package/dist/core/code/engine/core/ingestion/languages/go/type-binding.js +279 -0
- package/dist/core/code/engine/core/ingestion/languages/go.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/index.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/java/analysis-features.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity-metadata.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/arity.js +27 -0
- package/dist/core/code/engine/core/ingestion/languages/java/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/java/capture-side-channel.js +123 -0
- package/dist/core/code/engine/core/ingestion/languages/java/captures.js +791 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-decomposer.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/java/import-target.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/java/index.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/interpret.js +146 -0
- package/dist/core/code/engine/core/ingestion/languages/java/merge-bindings.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/java/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/query.js +319 -0
- package/dist/core/code/engine/core/ingestion/languages/java/receiver-binding.js +98 -0
- package/dist/core/code/engine/core/ingestion/languages/java/scope-resolver.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/java/simple-hooks.js +39 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-aop.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-conditionals.js +52 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-config-bindings.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/java/spring-di.js +165 -0
- package/dist/core/code/engine/core/ingestion/languages/java.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/arity.js +15 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/captures.js +1122 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/import-target.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/index.js +109 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/interpret.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/query.js +659 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/scope-resolver.js +78 -0
- package/dist/core/code/engine/core/ingestion/languages/javascript/simple-hooks.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-facts.js +46 -0
- package/dist/core/code/engine/core/ingestion/languages/jvm/package-siblings.js +200 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity-metadata.js +23 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/arity.js +18 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/capture-side-channel.js +160 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/captures.js +1262 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/companion-scopes.js +72 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-decomposer.js +40 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/import-target.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/index.js +26 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/interpret.js +75 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/merge-bindings.js +28 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/owners.js +134 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-facts.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/package-siblings.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/query.js +243 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/receiver-binding.js +103 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/scope-resolver.js +207 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/simple-hooks.js +42 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-aop.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-bean-metadata.js +11 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-conditionals.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin/spring-di.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/kotlin.js +189 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity-metadata.js +66 -0
- package/dist/core/code/engine/core/ingestion/languages/php/arity.js +43 -0
- package/dist/core/code/engine/core/ingestion/languages/php/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/php/captures.js +1166 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-decomposer.js +238 -0
- package/dist/core/code/engine/core/ingestion/languages/php/import-target.js +213 -0
- package/dist/core/code/engine/core/ingestion/languages/php/index.js +85 -0
- package/dist/core/code/engine/core/ingestion/languages/php/interpret.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/php/merge-bindings.js +50 -0
- package/dist/core/code/engine/core/ingestion/languages/php/namespace-siblings.js +353 -0
- package/dist/core/code/engine/core/ingestion/languages/php/query.js +391 -0
- package/dist/core/code/engine/core/ingestion/languages/php/receiver-binding.js +135 -0
- package/dist/core/code/engine/core/ingestion/languages/php/scope-resolver.js +361 -0
- package/dist/core/code/engine/core/ingestion/languages/php/simple-hooks.js +116 -0
- package/dist/core/code/engine/core/ingestion/languages/php.js +302 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity-metadata.js +49 -0
- package/dist/core/code/engine/core/ingestion/languages/python/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/python/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/python/captures.js +299 -0
- package/dist/core/code/engine/core/ingestion/languages/python/depends-references.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-decomposer.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/python/import-target.js +440 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index-stats.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/python/index.js +96 -0
- package/dist/core/code/engine/core/ingestion/languages/python/interpret.js +430 -0
- package/dist/core/code/engine/core/ingestion/languages/python/merge-bindings.js +47 -0
- package/dist/core/code/engine/core/ingestion/languages/python/query.js +323 -0
- package/dist/core/code/engine/core/ingestion/languages/python/receiver-binding.js +310 -0
- package/dist/core/code/engine/core/ingestion/languages/python/scope-resolver.js +80 -0
- package/dist/core/code/engine/core/ingestion/languages/python/simple-hooks.js +53 -0
- package/dist/core/code/engine/core/ingestion/languages/python.js +140 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/arity.js +41 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/captures.js +864 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/import-target.js +88 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/interpret.js +115 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/query.js +349 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/receiver-binding.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/scope-resolver.js +263 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby/simple-hooks.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/ruby.js +215 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/arity.js +16 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/cache-stats.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/captures.js +304 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-decomposer.js +167 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/import-target.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/index.js +29 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/interpret.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/merge-bindings.js +21 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/method-owners.js +76 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/module-path.js +222 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/qualified-call.js +482 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/query.js +280 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/range-binding.js +687 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/receiver-binding.js +148 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/scope-resolver.js +151 -0
- package/dist/core/code/engine/core/ingestion/languages/rust/simple-hooks.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/rust.js +183 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity-metadata.js +44 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/arity.js +45 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/base-type.js +30 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/cache-stats.js +32 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/captures.js +594 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/conditional-directive-preprocess.js +256 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/implicit-imports.js +60 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-decomposer.js +87 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/import-target.js +84 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/index.js +56 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/interpret.js +93 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/merge-bindings.js +51 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/query.js +226 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/receiver-binding.js +169 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/scope-resolver.js +192 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/sibling-type-bindings.js +68 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/signature-bindings.js +69 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/simple-hooks.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-grouping.js +97 -0
- package/dist/core/code/engine/core/ingestion/languages/swift/target-siblings.js +74 -0
- package/dist/core/code/engine/core/ingestion/languages/swift.js +246 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity-metadata.js +106 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/arity.js +57 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/array-callback.js +58 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cache-stats.js +34 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/captures.js +956 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-export-assignment.js +535 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/cjs-module-exports.js +196 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-decomposer.js +374 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/import-target.js +65 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/index.js +108 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/interpret.js +344 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/merge-bindings.js +161 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/nuxt-auto-imports.js +325 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/query.js +1328 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/receiver-binding.js +201 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/scope-resolver.js +293 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript/simple-hooks.js +139 -0
- package/dist/core/code/engine/core/ingestion/languages/typescript.js +455 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/captures.js +70 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/import-target.js +61 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/index.js +55 -0
- package/dist/core/code/engine/core/ingestion/languages/vue/scope-resolver.js +295 -0
- package/dist/core/code/engine/core/ingestion/languages/vue.js +96 -0
- package/dist/core/code/engine/core/ingestion/local-symbol-pruner.js +68 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/c-cpp.js +387 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/csharp.js +290 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/dart.js +392 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/go.js +179 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/jvm.js +350 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/php.js +306 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/python.js +312 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/ruby.js +289 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/rust.js +198 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/swift.js +286 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/configs/typescript-javascript.js +341 -0
- package/dist/core/code/engine/core/ingestion/method-extractors/generic.js +209 -0
- package/dist/core/code/engine/core/ingestion/method-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/model/field-registry.js +41 -0
- package/dist/core/code/engine/core/ingestion/model/index.js +52 -0
- package/dist/core/code/engine/core/ingestion/model/method-registry.js +138 -0
- package/dist/core/code/engine/core/ingestion/model/owned-members-lookup.js +46 -0
- package/dist/core/code/engine/core/ingestion/model/registration-table.js +234 -0
- package/dist/core/code/engine/core/ingestion/model/resolve.js +183 -0
- package/dist/core/code/engine/core/ingestion/model/scope-resolution-indexes.js +43 -0
- package/dist/core/code/engine/core/ingestion/model/semantic-model.js +179 -0
- package/dist/core/code/engine/core/ingestion/model/symbol-table.js +216 -0
- package/dist/core/code/engine/core/ingestion/model/type-registry.js +84 -0
- package/dist/core/code/engine/core/ingestion/mro-processor.js +709 -0
- package/dist/core/code/engine/core/ingestion/parsing-processor.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/communities.js +69 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/cross-file.js +71 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/di.js +338 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/http-api-calls.js +312 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/index.js +54 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/mro.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/orm.js +78 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse-impl.js +1286 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/parse.js +41 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/processes.js +193 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/prune-local-symbols.js +29 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/registry.js +52 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/routes.js +409 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/rpc-edges.js +301 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/runner.js +207 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/scan.js +49 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-aop.js +442 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-auto-configuration.js +264 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/spring-config.js +440 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/structure.js +38 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/tools.js +89 -0
- package/dist/core/code/engine/core/ingestion/pipeline-phases/types.js +40 -0
- package/dist/core/code/engine/core/ingestion/pipeline.js +152 -0
- package/dist/core/code/engine/core/ingestion/process-processor.js +325 -0
- package/dist/core/code/engine/core/ingestion/resolve-references.js +205 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/constant-resolver.js +135 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django-root-discovery.js +221 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/django.js +428 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/expo.js +39 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/fastapi-router-bindings.js +264 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/laravel.js +501 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/middleware.js +175 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/nextjs.js +81 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/php.js +25 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/python-const-resolver.js +307 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/response-shapes.js +299 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/route-path.js +71 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring-shared.js +310 -0
- package/dist/core/code/engine/core/ingestion/route-extractors/spring.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor-bridge.js +60 -0
- package/dist/core/code/engine/core/ingestion/scope-extractor.js +1373 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/contract/scope-resolver.js +282 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/callee-id-sink.js +72 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/edges.js +194 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/ids.js +472 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/imports-to-edges.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/method-dispatch.js +43 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/node-lookup.js +274 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/graph-bridge/references-to-edges.js +93 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/callable-value-flow.js +1240 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/compound-receiver.js +1174 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/free-call-fallback.js +873 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/imported-return-types.js +226 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/mro.js +107 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/overload-narrowing.js +441 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/property-dispatch.js +122 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/passes/receiver-bound-calls.js +1720 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/phase.js +395 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/reconcile-ownership.js +208 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/registry.js +49 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/run.js +632 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/pipeline/validate-bindings-immutability.js +112 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/resolution-outcome.js +41 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/namespace-targets.js +81 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/scope/walkers.js +1835 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/unresolved-receivers.js +242 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/utils/definition-id.js +22 -0
- package/dist/core/code/engine/core/ingestion/scope-resolution/workspace-index.js +151 -0
- package/dist/core/code/engine/core/ingestion/structure-processor.js +40 -0
- package/dist/core/code/engine/core/ingestion/tree-sitter-queries.js +2244 -0
- package/dist/core/code/engine/core/ingestion/ts-js-hoc-utils.js +115 -0
- package/dist/core/code/engine/core/ingestion/type-env.js +1136 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/c-cpp.js +555 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/csharp.js +570 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/dart.js +372 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/go.js +508 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/jvm.js +875 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/php.js +537 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/python.js +477 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/ruby.js +380 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/rust.js +502 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/shared.js +843 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/swift.js +490 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/types.js +2 -0
- package/dist/core/code/engine/core/ingestion/type-extractors/typescript.js +690 -0
- package/dist/core/code/engine/core/ingestion/utils/ast-helpers.js +1693 -0
- package/dist/core/code/engine/core/ingestion/utils/call-analysis.js +779 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-flow-captures.js +932 -0
- package/dist/core/code/engine/core/ingestion/utils/callable-labels.js +49 -0
- package/dist/core/code/engine/core/ingestion/utils/deferred-resolution-profile.js +151 -0
- package/dist/core/code/engine/core/ingestion/utils/effective-ram.js +67 -0
- package/dist/core/code/engine/core/ingestion/utils/env.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/event-loop.js +9 -0
- package/dist/core/code/engine/core/ingestion/utils/graph-sort.js +103 -0
- package/dist/core/code/engine/core/ingestion/utils/heap-probe.js +45 -0
- package/dist/core/code/engine/core/ingestion/utils/heritage-marker.js +47 -0
- package/dist/core/code/engine/core/ingestion/utils/line-base.js +24 -0
- package/dist/core/code/engine/core/ingestion/utils/max-file-size.js +59 -0
- package/dist/core/code/engine/core/ingestion/utils/method-props.js +198 -0
- package/dist/core/code/engine/core/ingestion/utils/qualified-name.js +73 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-captures.js +60 -0
- package/dist/core/code/engine/core/ingestion/utils/receiver-chain-codec.js +188 -0
- package/dist/core/code/engine/core/ingestion/utils/scope-tree-walk.js +36 -0
- package/dist/core/code/engine/core/ingestion/utils/symbol-labels.js +48 -0
- package/dist/core/code/engine/core/ingestion/utils/template-arguments.js +187 -0
- package/dist/core/code/engine/core/ingestion/utils/type-parameters.js +209 -0
- package/dist/core/code/engine/core/ingestion/utils/verbose.js +6 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/c-cpp.js +133 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/csharp.js +66 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/dart.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/go.js +153 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/jvm.js +145 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/php.js +61 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/python.js +104 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/ruby.js +55 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/rust.js +79 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/swift.js +91 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/configs/typescript-javascript.js +86 -0
- package/dist/core/code/engine/core/ingestion/variable-extractors/generic.js +111 -0
- package/dist/core/code/engine/core/ingestion/variable-types.js +3 -0
- package/dist/core/code/engine/core/ingestion/vue-sfc-extractor.js +544 -0
- package/dist/core/code/engine/core/ingestion/workers/callable-id.js +122 -0
- package/dist/core/code/engine/core/ingestion/workers/clone-safety.js +470 -0
- package/dist/core/code/engine/core/ingestion/workers/parse-worker.js +2456 -0
- package/dist/core/code/engine/core/ingestion/workers/post-result.js +90 -0
- package/dist/core/code/engine/core/ingestion/workers/quarantine.js +41 -0
- package/dist/core/code/engine/core/ingestion/workers/result-merge.js +59 -0
- package/dist/core/code/engine/core/ingestion/workers/worker-pool.js +1725 -0
- package/dist/core/code/engine/core/ingestion/workspace-config.js +139 -0
- package/dist/core/code/engine/core/lbug/conn-lock.js +72 -0
- package/dist/core/code/engine/core/lbug/csv-generator.js +710 -0
- package/dist/core/code/engine/core/lbug/cypher-escape.js +24 -0
- package/dist/core/code/engine/core/lbug/extension-load-error.js +339 -0
- package/dist/core/code/engine/core/lbug/extension-loader.js +261 -0
- package/dist/core/code/engine/core/lbug/graph-emit-sink.js +584 -0
- package/dist/core/code/engine/core/lbug/lbug-adapter.js +2703 -0
- package/dist/core/code/engine/core/lbug/lbug-config.js +1029 -0
- package/dist/core/code/engine/core/lbug/native-check.js +435 -0
- package/dist/core/code/engine/core/lbug/pool-adapter.js +973 -0
- package/dist/core/code/engine/core/lbug/query-params.js +25 -0
- package/dist/core/code/engine/core/lbug/query-result-utils.js +31 -0
- package/dist/core/code/engine/core/lbug/rel-pair-routing.js +373 -0
- package/dist/core/code/engine/core/lbug/schema.js +771 -0
- package/dist/core/code/engine/core/lbug/shutdown-helpers.js +40 -0
- package/dist/core/code/engine/core/lbug/sidecar-recovery.js +716 -0
- package/dist/core/code/engine/core/lbug/stdio-capture.js +49 -0
- package/dist/core/code/engine/core/lbug/sync-csv-writer.js +115 -0
- package/dist/core/code/engine/core/lbug/wal-checkpoint-driver.js +215 -0
- package/dist/core/code/engine/core/lbug/wal-driver-state.js +28 -0
- package/dist/core/code/engine/core/logger.js +339 -0
- package/dist/core/code/engine/core/platform/capabilities.js +91 -0
- package/dist/core/code/engine/core/run-analyze.js +1098 -0
- package/dist/core/code/engine/core/tree-sitter/parser-loader.js +281 -0
- package/dist/core/code/engine/core/tree-sitter/safe-parse.js +258 -0
- package/dist/core/code/engine/core/tree-sitter/vendored-grammars.js +64 -0
- package/dist/core/code/engine/lib/utils.js +121 -0
- package/dist/core/code/engine/mcp/core/lbug-adapter.js +27 -0
- package/dist/core/code/engine/mcp/local/aop-metadata.js +230 -0
- package/dist/core/code/engine/mcp/local/bean-metadata.js +49 -0
- package/dist/core/code/engine/mcp/local/limits.js +15 -0
- package/dist/core/code/engine/mcp/local/line-display.js +6 -0
- package/dist/core/code/engine/mcp/local/local-backend.js +4142 -0
- package/dist/core/code/engine/storage/branch-index.js +72 -0
- package/dist/core/code/engine/storage/file-hash.js +95 -0
- package/dist/core/code/engine/storage/fs-atomic.js +34 -0
- package/dist/core/code/engine/storage/git.js +555 -0
- package/dist/core/code/engine/storage/index-lock.js +664 -0
- package/dist/core/code/engine/storage/parse-cache.js +650 -0
- package/dist/core/code/engine/storage/parsedfile-store.js +620 -0
- package/dist/core/code/engine/storage/repo-manager.js +1061 -0
- package/dist/core/code/engine/storage/scope-index-store.js +247 -0
- package/dist/core/code/engine/types/pipeline.js +2 -0
- package/dist/core/code/scripts/install-duckdb-extension.mjs +125 -0
- package/dist/core/code/scripts/resolve-analyze-cmd.cjs +346 -0
- package/dist/core/code/shared/graph/types.js +8 -0
- package/dist/core/code/shared/index.js +105 -0
- package/dist/core/code/shared/integrations/circuit-breaker.js +242 -0
- package/dist/core/code/shared/integrations/resilient-fetch.js +224 -0
- package/dist/core/code/shared/integrations/retry.js +70 -0
- package/dist/core/code/shared/integrations/understand-quickly.js +145 -0
- package/dist/core/code/shared/language-detection.js +162 -0
- package/dist/core/code/shared/languages.js +27 -0
- package/dist/core/code/shared/lbug/schema-constants.js +98 -0
- package/dist/core/code/shared/mro-strategy.js +2 -0
- package/dist/core/code/shared/pipeline.js +5 -0
- package/dist/core/code/shared/scope-resolution/callable-flow-site.js +11 -0
- package/dist/core/code/shared/scope-resolution/def-index.js +53 -0
- package/dist/core/code/shared/scope-resolution/evidence-weights.js +87 -0
- package/dist/core/code/shared/scope-resolution/finalize-algorithm.js +807 -0
- package/dist/core/code/shared/scope-resolution/language-classification.js +46 -0
- package/dist/core/code/shared/scope-resolution/method-dispatch-index.js +100 -0
- package/dist/core/code/shared/scope-resolution/module-scope-index.js +59 -0
- package/dist/core/code/shared/scope-resolution/origin-priority.js +23 -0
- package/dist/core/code/shared/scope-resolution/parsed-file.js +54 -0
- package/dist/core/code/shared/scope-resolution/position-index.js +136 -0
- package/dist/core/code/shared/scope-resolution/qualified-name-index.js +77 -0
- package/dist/core/code/shared/scope-resolution/reference-site.js +24 -0
- package/dist/core/code/shared/scope-resolution/registries/class-registry.js +32 -0
- package/dist/core/code/shared/scope-resolution/registries/context.js +52 -0
- package/dist/core/code/shared/scope-resolution/registries/evidence.js +152 -0
- package/dist/core/code/shared/scope-resolution/registries/field-registry.js +33 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-core.js +392 -0
- package/dist/core/code/shared/scope-resolution/registries/lookup-qualified.js +58 -0
- package/dist/core/code/shared/scope-resolution/registries/macro-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/method-registry.js +34 -0
- package/dist/core/code/shared/scope-resolution/registries/tie-breaks.js +63 -0
- package/dist/core/code/shared/scope-resolution/resolve-type-ref.js +128 -0
- package/dist/core/code/shared/scope-resolution/scope-id.js +49 -0
- package/dist/core/code/shared/scope-resolution/scope-tree.js +225 -0
- package/dist/core/code/shared/scope-resolution/symbol-definition.js +12 -0
- package/dist/core/code/shared/scope-resolution/types.js +25 -0
- package/dist/core/code/shared/test-helpers.js +17 -0
- package/dist/core/code/vendor/leiden/index.cjs +355 -0
- package/dist/core/code/vendor/leiden/utils.cjs +419 -0
- package/dist/core/dbquery/cli.d.ts.map +1 -1
- package/dist/core/dbquery/cli.js +5 -4
- package/dist/core/dbquery/cli.js.map +1 -1
- package/dist/core/dbquery/config.d.ts.map +1 -1
- package/dist/core/dbquery/config.js +39 -3
- package/dist/core/dbquery/config.js.map +1 -1
- package/dist/core/dbquery/drivers/http.d.ts +23 -0
- package/dist/core/dbquery/drivers/http.d.ts.map +1 -0
- package/dist/core/dbquery/drivers/http.js +125 -0
- package/dist/core/dbquery/drivers/http.js.map +1 -0
- package/dist/core/dbquery/drivers/mysql.js +1 -1
- package/dist/core/dbquery/drivers/mysql.js.map +1 -1
- package/dist/core/dbquery/drivers/postgres.js +1 -1
- package/dist/core/dbquery/drivers/postgres.js.map +1 -1
- package/dist/core/dbquery/executor.d.ts.map +1 -1
- package/dist/core/dbquery/executor.js +46 -12
- package/dist/core/dbquery/executor.js.map +1 -1
- package/dist/core/dbquery/format.d.ts.map +1 -1
- package/dist/core/dbquery/format.js +2 -1
- package/dist/core/dbquery/format.js.map +1 -1
- package/dist/core/dbquery/init.d.ts.map +1 -1
- package/dist/core/dbquery/init.js +7 -0
- package/dist/core/dbquery/init.js.map +1 -1
- package/dist/core/dbquery/types.d.ts +55 -7
- package/dist/core/dbquery/types.d.ts.map +1 -1
- package/dist/core/directory.d.ts +17 -0
- package/dist/core/directory.d.ts.map +1 -1
- package/dist/core/directory.js +37 -0
- package/dist/core/directory.js.map +1 -1
- package/dist/core/features/cli.d.ts.map +1 -1
- package/dist/core/features/cli.js +3 -2
- package/dist/core/features/cli.js.map +1 -1
- package/dist/core/features/scanner.d.ts +1 -1
- package/dist/core/features/scanner.d.ts.map +1 -1
- package/dist/core/features/scanner.js +20 -4
- package/dist/core/features/scanner.js.map +1 -1
- package/dist/core/markdown/cli.d.ts.map +1 -1
- package/dist/core/markdown/cli.js +9 -8
- package/dist/core/markdown/cli.js.map +1 -1
- package/dist/core/timeline/cli.d.ts.map +1 -1
- package/dist/core/timeline/cli.js +13 -6
- package/dist/core/timeline/cli.js.map +1 -1
- package/dist/core/timeline/debris.d.ts +20 -0
- package/dist/core/timeline/debris.d.ts.map +1 -0
- package/dist/core/timeline/debris.js +124 -0
- package/dist/core/timeline/debris.js.map +1 -0
- package/dist/core/timeline/hook-runner.d.ts.map +1 -1
- package/dist/core/timeline/hook-runner.js +3 -1
- package/dist/core/timeline/hook-runner.js.map +1 -1
- package/dist/core/timeline/hooks.d.ts.map +1 -1
- package/dist/core/timeline/hooks.js +13 -5
- package/dist/core/timeline/hooks.js.map +1 -1
- package/dist/core/timeline/installer.d.ts +2 -0
- package/dist/core/timeline/installer.d.ts.map +1 -1
- package/dist/core/timeline/installer.js +12 -0
- package/dist/core/timeline/installer.js.map +1 -1
- package/dist/core/timeline/project-root.d.ts +21 -0
- package/dist/core/timeline/project-root.d.ts.map +1 -0
- package/dist/core/timeline/project-root.js +83 -0
- package/dist/core/timeline/project-root.js.map +1 -0
- package/dist/web/register.d.ts.map +1 -1
- package/dist/web/register.js +2 -1
- package/dist/web/register.js.map +1 -1
- package/package.json +1 -1
- package/dist/.claude-template/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-deck/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-deck/references/.cgraphx/timeline-current-turn.json +0 -1
- package/dist/.claude-template/skills/handdrawn-sketch-engine/.cgraphx/timeline-current-turn.json +0 -1
- /package/dist/.claude-template/skills/run-api-test/assets/{template-test-verify.jsonl → template-/346/216/245/345/217/243/346/265/213/350/257/225/351/252/214/350/257/201.jsonl"} +0 -0
|
@@ -20,14 +20,17 @@
|
|
|
20
20
|
(手段:无业务可观察→plan 自主;有→回跳 spec)
|
|
21
21
|
│
|
|
22
22
|
▼
|
|
23
|
-
implementation(
|
|
23
|
+
implementation(小规模)│ subagent-implement(大规模,需 plan)
|
|
24
24
|
│
|
|
25
25
|
┌───────────────┼────────────────────────┐
|
|
26
26
|
▼ ▼ ▼
|
|
27
27
|
write-api write-unit-test-spec 交付收尾:
|
|
28
28
|
→ run-api-test → write-unit-test-code 沉淀提示 → knowledge-write
|
|
29
29
|
(接口测试) (单元测试,代码完成后) 交付讲解提示 → write-delivery-guide
|
|
30
|
-
|
|
30
|
+
↓ 推荐(非硬前置) commit 门禁 → git-standards.md
|
|
31
|
+
write-ui-test
|
|
32
|
+
→ run-ui-test
|
|
33
|
+
(UI 功能测试)
|
|
31
34
|
|
|
32
35
|
── 推荐发布后 · 按需(不在主链,不参与门禁); 原因: 发布前写 PRD:写的是预期,实现过程中一定会漂移,发布后 PRD 就过期了,给业务方看反而误导 ──────────────────
|
|
33
36
|
write-prd(业务方/客户审阅,任意时刻可执行,推荐发布后)
|
|
@@ -47,7 +50,7 @@ guides:write-plan 读取并结晶 + 任务打「强制引用」标注(implementa
|
|
|
47
50
|
|
|
48
51
|
## 开发流程
|
|
49
52
|
|
|
50
|
-
- **链**:`/implementation`(
|
|
53
|
+
- **链**:`/implementation`(小规模:单点 / 1-3 文件 / 单模块)| `/subagent-implement`(大规模:预估变更文件 ≥10 且跨 ≥3 独立模块,需 plan,主 agent 只协调、派子 agent 实现);判据是需求规模,不是任务量;拿不准 → implementation,write-plan 的 index「执行方式建议」是终判
|
|
51
54
|
- **前置**:spec 必有;subagent-implement 需 plan
|
|
52
55
|
- **强制读**:规范由 plan 打「强制引用」标注(write-plan 按任务类型机械标:schema → data-standards.md;接口 → interface-standards.md;动码 → coding-standards.md);有 plan 时 implementation / subagent-implement 只读标注,无 plan 时 implementation 自行识别;**缺失 → 中断,先 `/init-project-guides` 补齐**
|
|
53
56
|
- **小步提交**:plan 把可独立提交的任务(完成后仓库可工作)标「独立提交」并把 `git-standards.md` 提交规范结晶进 index「提交规范」节;implementation / subagent-implement 每完成一个标注任务并按规范自查后提交(原子历史,好 review / revert / bisect),precommit 门禁退化为兜底。未标注的任务不擅自提交,push 永远归用户。
|
|
@@ -59,6 +62,13 @@ guides:write-plan 读取并结晶 + 任务打「强制引用」标注(implementa
|
|
|
59
62
|
- **前置**:spec + 实现完成;run-api-test 也可独立跑已有 .bru
|
|
60
63
|
- **强制读**:write-api 执行前读 `docs/guides/interface-standards.md`(缺失 → `/init-project-guides` 中断)
|
|
61
64
|
- **产物**:`docs/bruno/<服务>/<需求前缀>/`(bruno app 可直接打开)+ feature 目录下测试规格与报告
|
|
65
|
+
- **后续**:接口通过后推荐跑 `/write-ui-test` → `/run-ui-test`(UI 功能测试,非硬前置)
|
|
66
|
+
|
|
67
|
+
## UI 功能测试流程
|
|
68
|
+
|
|
69
|
+
- **链**:`/write-ui-test`(从 spec 派生用例,一功能点一用例)→ `/run-ui-test`(Playwright MCP 驱动浏览器执行 + 截图 + 报告;**不验库,只看 UI 表现**)
|
|
70
|
+
- **前置**:spec + 实现完成 + 目标项目已装 Playwright MCP;推荐在接口测试后跑(非硬前置);服务启动 / 测试数据 / headed 与否归人工
|
|
71
|
+
- **产物**:`docs/features/<feature-id>/ui功能测试/`(用例规格 + 报告 + 按功能点命名的截图)
|
|
62
72
|
|
|
63
73
|
## 单元测试流程
|
|
64
74
|
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "task-history"
|
|
3
|
+
description: "Use this agent when you need to reconstruct the development history or real workload of a specific task/feature from the cgraphx timeline, in an isolated context. Trigger when the user names a task/feature (编号 like 0122 or HUYI-REQ) and asks how it was developed, how long it actually took, which sessions touched it, or when the /end command needs the 历时/实际投入 data for a 收口档案. Trigger phrases include: 任务考古, 还原开发历史, 这个需求怎么开发的, 某需求迭代过几轮, 实际投入多久, 工作量, 活跃时长, 跨会话查某任务, 收口档案历时. 区别于 developer-timeline(按时间窗出日报周报)——本 agent 按任务实体反查,不按时间窗。\\n\\n<example>\\nContext: /end 收口档案需要「历时」节的实际投入数据。\\nuser: \"/end 需求 0122,git 仓在 ~/work/foo,SHA 范围 abc123..def456\"\\nassistant: \"让我用 Agent tool 启动 task-history 子 agent,在隔离上下文里从 timeline 反查 0122 的活跃时长和 commit 骨架。\"\\n<commentary>\\n/end 的历时数据必须来自 timeline 实测,派子 agent 反查,主 agent 只拿浓缩结论填档案。\\n</commentary>\\n</example>\\n\\n<example>\\nContext: User wants to know how a feature was actually built.\\nuser: \"0122 这个需求当时是怎么开发出来的?迭代了几轮?\"\\nassistant: \"让我用 Agent tool 启动 task-history 子 agent 做任务考古。\"\\n<commentary>\\n用户点名任务实体要还原开发过程,走 task-history agent 按锚点反查,不走 developer-timeline 的时间窗报告。\\n</commentary>\\n</example>"
|
|
4
|
+
tools: Bash
|
|
5
|
+
color: blue
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
你是任务开发历史还原(任务考古)子 agent。你在**隔离上下文**里跑,主 agent **看不到你的中间过程**(上万条 timeline 事件 JSON、逐 session 钻取输出、脚本中间结果),**只拿到你的最终返回报告**。
|
|
9
|
+
|
|
10
|
+
主 agent 派你来是因为需要还原**一个具体任务/需求**的开发历史,或需要它的**真实工作量**(活跃时长)——典型消费方是 `/end` 收口档案的「历时」节。你的任务:从 `cgraphx timeline` 事件流反查该任务被哪些 session 讨论/改动、跨了几轮、去间隔真实活跃时长,返回浓缩报告。主 agent 不会自己再查 —— 你的返回就是它看到的全部。
|
|
11
|
+
|
|
12
|
+
与 developer-timeline 的分工:**那个按时间窗出报告(日报/周报/月报),你按任务实体做考古**。
|
|
13
|
+
|
|
14
|
+
主 agent 会在 prompt 里给你:目标任务(编号/名称)、git 仓路径、SHA 范围或时间窗、关注点(全貌 or 只要工作量)。缺时间窗时先用第 1 步的 git log 推出来。
|
|
15
|
+
|
|
16
|
+
## 核心认知:timeline 不认识"任务"
|
|
17
|
+
|
|
18
|
+
timeline 记的是**项目级事件流**,每个事件带 `session_id` / `turn_id` / `prompt_text`(用户原话全文)/ `commit_files` / `tool_args.file_path`,但**没有 task/feature 标签**。一个 session 还可能混多个任务(如 b79e593f 同时做 0121+0122)。
|
|
19
|
+
|
|
20
|
+
所以"按任务查"不是原生查询,是**用锚点反推检索**拼出来的。下文四个锚点按可靠性排序,越靠前越可信。
|
|
21
|
+
|
|
22
|
+
## 四个锚点(按可靠性排序)
|
|
23
|
+
|
|
24
|
+
| 锚点 | 可靠性 | 为什么 | 噪声 |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| **commit SHA / commit_message 关键词** | 最高 | 每个 commit 属于且仅属于一个任务,任务独占 | 无 |
|
|
27
|
+
| **prompt_text 关键词** | 高 | 存了用户原话全文,能锚定任务特有词 | 混 `<task-notification>`(子 agent 回调)、SQL 片段;通用词("活动""任务")会串到别的任务 |
|
|
28
|
+
| **特征文件 `--file`** | 看文件 | 任务新建的类干净;共享文件(基础设施)会串任务 | 共享文件被多任务共改,单独用必串 |
|
|
29
|
+
| **时间窗 `--since/--until`** | 辅助 | 消历史和未来串扰 | 消不掉并行任务(同窗口内多任务重叠) |
|
|
30
|
+
|
|
31
|
+
### 特征文件锚点必先判独占/共享(铁律)
|
|
32
|
+
|
|
33
|
+
`--file` 能不能用,先 `git log --oneline -- <文件>` 看一眼:
|
|
34
|
+
|
|
35
|
+
- 提交**全属同一任务编号** → 任务新建/独占(如 0122 的 `StatisticsRefreshDeduplicator`),`--file` 干净直接用。
|
|
36
|
+
- 提交**横跨多个需求编号** → 共享文件(如 `WfTaskServiceImpl`/`GlobalEventListener`),`--file` 单独用必串任务,只能叠加时间窗,且**主锚点退到 commit + prompt 关键词**,文件仅作辅助佐证。
|
|
37
|
+
|
|
38
|
+
## 三步还原流程
|
|
39
|
+
|
|
40
|
+
### 第 1 步:commit 定骨架(查法 C)
|
|
41
|
+
|
|
42
|
+
任务有交付点,先拿 commit 做时间主线。
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# git 侧:拿到该任务的 commit SHA + 真实 author date(不被 rebase 改写)
|
|
46
|
+
git log --oneline --all -i --grep="<任务编号或任务名关键字>" --format="%h author=%aI %s"
|
|
47
|
+
|
|
48
|
+
# timeline 侧:拉这些 commit 的事件,确认时间戳
|
|
49
|
+
cgraphx timeline query --type=git_commit --since=<立项日> --until=<收口日+1> --format=table --limit=10000
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**产出**:任务的 commit 时间主线(谁在哪个 session 哪一刻提交了什么)。
|
|
53
|
+
**注意**:commit_date 可能被批量 rebase 改写(如 0123 的 21 个 commit 全挤在 18:38:03~06),**优先看 author date**(`%aI`),它保留真实开发时刻。
|
|
54
|
+
|
|
55
|
+
### 第 2 步:特征文件扩展(查法 A,先判独占)
|
|
56
|
+
|
|
57
|
+
对第 1 步每个 commit 的核心改动文件,判断独占/共享后决定用不用 `--file`。
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# 判独占:看这文件被几个任务碰过
|
|
61
|
+
git log --oneline -- <文件>
|
|
62
|
+
|
|
63
|
+
# 独占文件 → 直接 --file 反查所有动过它的 session
|
|
64
|
+
cgraphx timeline query --file=<独占类名> --since=<立项日> --until=<收口日+1> --format=json --limit=10000
|
|
65
|
+
# 导出后按 session_id 聚合首末时间戳 → 该 session 在这个任务上的活动区间
|
|
66
|
+
|
|
67
|
+
# 共享文件 → 不单独用,叠加时间窗仍会串并行任务,跳过此步靠第 3 步补
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### 第 3 步:prompt 关键词补纯讨论 session(查法 B)
|
|
71
|
+
|
|
72
|
+
有些 session 只讨论没提交(澄清/探索/拍板/被中断的分支),第 1、2 步漏掉它们。用 `prompt_text` 关键词补:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cgraphx timeline query --type=user_prompt --since=<立项日> --until=<收口日+1> --format=json --limit=10000 > /tmp/prompts.json
|
|
76
|
+
# 然后脚本按任务特有词搜 prompt_text,聚合 session_id
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**关键词选择**:用**任务特有词**(如"分档""delta 路径""去重器""回单口径"),别用通用词("活动""任务""流程"会串到无关 session)。排除 `prompt_text` 以 `<task-notification>` 开头的条目(子 agent 回调,非用户讨论)。
|
|
80
|
+
|
|
81
|
+
### 合并去重
|
|
82
|
+
|
|
83
|
+
把三步捞到的 session_id 合并去重 → 该任务的**完整 session 列表**。每个 session 用 `cgraphx timeline query --session=<id> --format=table` 单独钻取细节,或逐轮看 `prompt_text` 判断该 session 内哪几轮属于本任务(混合会话必须做这步)。
|
|
84
|
+
|
|
85
|
+
## 去间隔活跃时长(timeline 独有的客观指标)
|
|
86
|
+
|
|
87
|
+
事件按时间排序,相邻间隔 >1 小时算断点,累加每段时长——这是"实际投入"的客观下界证据,比主观估会话活跃时段硬。
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
cgraphx timeline query --since=<立项日> --until=<收口日+1> --format=json --limit=10000 | python3 -c "
|
|
91
|
+
import sys,json
|
|
92
|
+
from datetime import datetime,timezone,timedelta
|
|
93
|
+
from collections import defaultdict
|
|
94
|
+
data=json.load(sys.stdin)
|
|
95
|
+
evs=data if isinstance(data,list) else data.get('events',data.get('rows',[]))
|
|
96
|
+
def parse(t):
|
|
97
|
+
if not t: return None
|
|
98
|
+
t=t.replace('Z','+00:00')
|
|
99
|
+
try: return datetime.fromisoformat(t)
|
|
100
|
+
except: return None
|
|
101
|
+
TZ=timezone(timedelta(hours=8)) # 改成本地时区
|
|
102
|
+
byday=defaultdict(list)
|
|
103
|
+
for e in evs:
|
|
104
|
+
t=parse(e.get('ts'))
|
|
105
|
+
if t: byday[t.astimezone(TZ).strftime('%Y-%m-%d')].append(t.astimezone(TZ))
|
|
106
|
+
GAP=timedelta(hours=1)
|
|
107
|
+
def segs(ts):
|
|
108
|
+
ts=sorted(ts); out=[]; s=ts[0]; p=ts[0]
|
|
109
|
+
for t in ts[1:]:
|
|
110
|
+
if t-p<=GAP: p=t
|
|
111
|
+
else: out.append((s,p)); s=t; p=t
|
|
112
|
+
out.append((s,p)); return out
|
|
113
|
+
total=timedelta()
|
|
114
|
+
for d in sorted(byday):
|
|
115
|
+
seg=segs(byday[d]); a=sum((e-s for s,e in seg),timedelta())
|
|
116
|
+
total+=a
|
|
117
|
+
print(f'{d}: 事件={len(byday[d])} 段={len(seg)} 活跃={a.total_seconds()/3600:.1f}h')
|
|
118
|
+
print(' '+' | '.join(f'{s.strftime(\"%H:%M\")}-{e.strftime(\"%H:%M\")}({int((e-s).total_seconds()/60)}m)' for s,e in seg))
|
|
119
|
+
print(f'窗口总活跃={total.total_seconds()/3600:.1f}h')
|
|
120
|
+
"
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**注意**:这是**全项目**活跃时长(含窗口内其他任务)。要切到本任务,需先按 session/文件/prompt 把本任务事件筛出来再算——但混合会话无法精确切分(见局限)。实务做法:给全项目总活跃 + 本任务 commit/prompt 锚定段的占比区间。
|
|
124
|
+
|
|
125
|
+
## 三个诚实局限(必须在报告里标注)
|
|
126
|
+
|
|
127
|
+
1. **没有任务标签**:timeline 永远不知道"这几条事件属于 0122"。所有"按任务查"都是用 commit/prompt/文件/时间窗反推,任务边界靠人工判断,不靠系统。本任务的 session 列表是**推断结果**,不是系统查询结果。
|
|
128
|
+
2. **会话切分 ≠ 任务切分**:一个 session 可能混多任务。`--session` 能拿整个会话,但会话内哪几轮属于本任务,得逐条看 `prompt_text` 判断——这是混合会话无法精确到分钟的根因。
|
|
129
|
+
3. **kill-switch 真空**:`CGRAPHX_NO_TIMELINE=1` 期间 hooks 静默不记录,那段开发 timeline 查不到。若怀疑有真空,回退 `git log` 补,并在报告标"覆盖不足"。
|
|
130
|
+
|
|
131
|
+
## 返回格式(浓缩报告,主 agent 直接消费)
|
|
132
|
+
|
|
133
|
+
**第一节必须是「工作量结论」**——`/end` 的「历时」节直接抄它:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
## 工作量结论
|
|
137
|
+
- 任务标识: <需求编号/名称> · git_range: <首SHA>..<末SHA>
|
|
138
|
+
- 日历跨度: <立项日> ~ <收口日>,共 <N> 天(仅日历跨度,常远大于真实投入)
|
|
139
|
+
- 实际投入(timeline 实测): 约 <X>~<Y> 小时 ≈ <Z> 工作日
|
|
140
|
+
- 口径: 全项目窗口总活跃 <A>h,本任务锚定段占比约 <p>%→ 下界取独占 session 活跃和,上界含混合 session 未切分部分
|
|
141
|
+
- 局限: <混合会话未精确切分 / kill-switch 真空段 / 覆盖不足退化 git log,逐条列>
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
其后按关注点给细节(主 agent 只要工作量时可略读,但你要完整返回):
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
## commit 骨架
|
|
148
|
+
- <SHA> <author date> <一句改动>(按时间排)
|
|
149
|
+
|
|
150
|
+
## 跨 session 列表
|
|
151
|
+
- <session 短码> 首末时间 <起~止> 事件数 <N> 归属 <独占/混合(混了什么)>
|
|
152
|
+
|
|
153
|
+
## 逐日活跃段
|
|
154
|
+
- <日期>: <起-止(Xm)> | <起-止(Xm)> 活跃 <Y>h(标注哪段属本任务)
|
|
155
|
+
|
|
156
|
+
## 归属判断依据
|
|
157
|
+
- 用了哪些锚点(commit 关键词/prompt 特有词/独占文件)、哪些 session 是推断的、置信度
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**若该任务已有 `/end` 收口档案**:加一节「与既有档案的差异」——timeline 实测修正了哪几处(如"API 测试会话高估 5 倍""漏计 09-07 独立会话")。
|
|
161
|
+
|
|
162
|
+
## 约束
|
|
163
|
+
|
|
164
|
+
- **不要返回原始命令输出/事件 JSON/脚本中间结果** —— 主 agent 只看浓缩报告
|
|
165
|
+
- **不要返回全部 session 的全部轮次** —— 只返回归属判断后的结论 + 短码
|
|
166
|
+
- **活跃时长必须给区间**,不要假装精确到分钟(混合会话切不动就是切不动)
|
|
167
|
+
- **局限必须标注**,不要给一个看起来干净的单点数字
|
|
168
|
+
- **一次跑完,不建议主 agent 派第二次子 agent** —— 数据不足就如实说覆盖不足
|
|
169
|
+
|
|
170
|
+
## CLI 速查
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
cgraphx timeline query --type=git_commit --since=<d> --until=<d> --format=table --limit=10000 # commit 骨架
|
|
174
|
+
cgraphx timeline query --type=user_prompt --since=<d> --until=<d> --format=json --limit=10000 # prompt 全文(导出搜关键词)
|
|
175
|
+
cgraphx timeline query --file=<类名> --since=<d> --until=<d> --format=json --limit=10000 # 特征文件(先判独占)
|
|
176
|
+
cgraphx timeline query --session=<id> --format=table # 单 session 钻取
|
|
177
|
+
cgraphx timeline show <id> # 单事件钻取
|
|
178
|
+
cgraphx timeline stats --since=<d> --until=<d> # 整窗统计(byDay/byType/byTool)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
`--file` 是 substring 匹配 `tool_args.file_path` 或 `commit_files`;`--session` 是精确 `session_id`;`--limit` 默认 100(必加 `--limit=10000` 防截断)。时区:`--format=table` 已是本地时间,`json` 的 `ts` 是 UTC ISO(带 `Z`),脚本里自行转本地。
|
|
182
|
+
|
|
183
|
+
## 前置条件
|
|
184
|
+
|
|
185
|
+
- 项目已 `cgraphx install`(有 `.cgraphx/`),timeline hooks 已装。
|
|
186
|
+
- 若 timeline 无数据:说明原因,退化到 `git log` + 收口档案估算,但必须在「工作量结论」标"覆盖不足,非 timeline 实测"。
|
|
@@ -47,6 +47,7 @@ git_range: "<首SHA>..<末SHA>"
|
|
|
47
47
|
- **历时(两层)**:
|
|
48
48
|
- 日历跨度 = 首末 commit 天数,**诚实标注它只是日历跨度**(常与真实投入差很远,如 40 天日历实际只十来天在动)。
|
|
49
49
|
- 实际投入(**到小时**)= AI+开发默认有会话,**以会话活跃时段为主信号**(反映实际坐着开发的时段,含 commit 之间的调试/思考),commit 时间戳分布为辅佐证。**你综合判断**估「约 X 小时 ≈ Y 工作日」:靠近的活跃时段并成连续工作累加、隔远算中断——**宽松思路、不是死阈值**,别机械卡点。标估算性质。诚实局限:低估「攒着末尾提一次」、不计离线开会/调研;是代理不是精确测量。
|
|
50
|
+
- 注意: 开发历史与实际投入**必须派 `task-history` 子 agent 获取**(Agent tool,`subagent_type: "task-history"`,prompt 传入:目标任务编号/名称 + git 仓路径 + SHA 范围或时间窗 + 关注点「工作量/活跃时长」)。直接采纳其返回的「工作量结论」节(timeline 实测的活跃时长区间 + 局限标注)填入本节,**不要自己跑 `cgraphx timeline query` 重查**;子 agent 报「覆盖不足」时才退回上面的会话活跃时段估算法,并在档案标注非 timeline 实测。
|
|
50
51
|
- **产物**:git log 取 SHA 范围 + 关键交付路径;决策锚点无 HOW 文档就据 commit/会话补。
|
|
51
52
|
- **测试汇总**:语义读测试报告,别机械归一化解析。
|
|
52
53
|
- **命中/缺口/新确认(核心)**:痕迹不在文档时——**有 AI 会话就从会话正向读、标 `[来源: AI会话]`**(一手正向留痕,可信 > 补录);**无会话才向人补录、标 `[来源: 事后补录]`**。都不假装是过程文档留痕。
|
|
@@ -33,7 +33,7 @@ cgraphx 是本地优先的 AI agent 研发工具,把**markdown 知识库 + 数
|
|
|
33
33
|
|---|---|
|
|
34
34
|
| **机器级 · 每机器一次** | `npm install -g cgraphx` |
|
|
35
35
|
| **项目级 · 每项目一次** | `cgraphx install`(建 `.cgraphx/` 数据目录 + 部署 skills/commands 到 `.claude/` + 写 hooks/statusLine)、`/knowledge-init`(接手陌生项目时建业务知识库) |
|
|
36
|
-
| **日常做需求 · 必经 2 步** | `/clarify-requirements` 澄清 → `/implementation`(
|
|
36
|
+
| **日常做需求 · 必经 2 步** | `/clarify-requirements` 澄清 → `/implementation`(小规模)或 `/subagent-implement`(大规模)实现 |
|
|
37
37
|
| **日常做需求 · 复杂按需** | `/write-prd`、`/write-spec`、`/write-plan`、`/knowledge-write`(沉淀到 `docs/knowledge/`)、`/write-delivery-guide`(交付讲解,实现收尾提示触发) |
|
|
38
38
|
| **工作回顾 · 按需** | `/developer-timeline`(日/周/月报)、`/write-design-doc`(发布后合成设计文档) |
|
|
39
39
|
| **卸载 · 可选** | `cgraphx uninstall`(清项目 `.claude/` 内包自带的 skills/配置 + 删 `.cgraphx/`)、`npm uninstall -g cgraphx` |
|
|
@@ -48,8 +48,10 @@ cgraphx 是本地优先的 AI agent 研发工具,把**markdown 知识库 + 数
|
|
|
48
48
|
| `/write-prd` | 要给业务方 / 领导确认业务文档 |
|
|
49
49
|
| `/write-spec` | 写技术规格(归档业务行为 / 规则 / 接口 / 数据,作为 plan 的稳定输入) |
|
|
50
50
|
| `/write-plan` | 拆执行计划(给 agent 执行) |
|
|
51
|
-
| `/implementation` |
|
|
52
|
-
| `/subagent-implement` |
|
|
51
|
+
| `/implementation` | 小规模需求实现(主会话顺序做) |
|
|
52
|
+
| `/subagent-implement` | 大规模需求实现(派子 agent,隔离上下文;判据是需求规模,不是任务量) |
|
|
53
|
+
| `/write-api` | 基于 spec 接口章节生成 bruno 测试接口(.bru + 断言 + 真实参数 + 多环境配置) |
|
|
54
|
+
| `/run-api-test` | 跑接口测试 + 核实写接口 DB 副作用 + 出报告(写接口必查 DB;失败只报告不修代码) |
|
|
53
55
|
| `/knowledge-init` | 接手陌生项目,派子 agent 自动探索、建业务知识库 |
|
|
54
56
|
| `/knowledge-write` | 把业务决策 / 概念沉淀成 md 到 `docs/knowledge/` |
|
|
55
57
|
| `/write-design-doc` | 发布后按需,从知识库合成面向人类阅读的设计文档(HTML 或 Markdown) |
|
|
@@ -434,7 +434,7 @@ footer p { margin: 0; }
|
|
|
434
434
|
│ │
|
|
435
435
|
│ ┌───────────────────────────┘
|
|
436
436
|
▼ ▼
|
|
437
|
-
/implementation(
|
|
437
|
+
/implementation(小规模) 或 /subagent-implement(大规模)
|
|
438
438
|
│
|
|
439
439
|
┌────┴─────────────────────────────┐
|
|
440
440
|
▼ ▼ ▼
|
|
@@ -467,8 +467,8 @@ footer p { margin: 0; }
|
|
|
467
467
|
<ul class="phase-list">
|
|
468
468
|
<li><strong style="color:var(--color-primary);">必经</strong> <code>/clarify-requirements</code> 澄清意图、业务边界、技术约束<em>(不拍板实现手段)</em></li>
|
|
469
469
|
<li><strong style="color:var(--color-primary);">核心</strong> <code>/write-spec</code> 写技术规格——唯一契约<em>(归档业务行为/规则/接口/数据/权限/异常/验收)</em></li>
|
|
470
|
-
<li><span class="opt">可选</span> <code>/write-plan</code> 拆执行计划<em>(大需求/跨模块;手段选型在这一步结合代码定——纯工程手段 plan 自主,有业务可观察后果的回跳 spec
|
|
471
|
-
<li><strong style="color:var(--color-primary);">必经</strong> <code>/implementation</code><em>(
|
|
470
|
+
<li><span class="opt">可选</span> <code>/write-plan</code> 拆执行计划<em>(大需求/跨模块;手段选型在这一步结合代码定——纯工程手段 plan 自主,有业务可观察后果的回跳 spec 业务拍板;index 出「执行方式建议」为实现方式终判)</em></li>
|
|
471
|
+
<li><strong style="color:var(--color-primary);">必经</strong> <code>/implementation</code><em>(小规模:单点/1-3 文件/单模块)</em>或 <code>/subagent-implement</code><em>(大规模:预估变更文件 ≥10 且跨 ≥3 独立模块,派子 agent 隔离上下文)</em>;判据是需求规模,不是任务量</li>
|
|
472
472
|
<li><span class="opt">收尾</span> 沉淀 → <code>/knowledge-write</code>;交付讲解 → <code>/write-delivery-guide</code> <em>(有实质代码改动时提示确认,故事线讲解、可重生成)</em></li>
|
|
473
473
|
</ul>
|
|
474
474
|
<div class="highlight">
|
|
@@ -477,13 +477,13 @@ footer p { margin: 0; }
|
|
|
477
477
|
</div>
|
|
478
478
|
|
|
479
479
|
<div id="tab-api-test" class="tab-panel">
|
|
480
|
-
<p style="color:var(--color-text-secondary);font-size:14px;margin:0 0 16px;"><strong>需求开发完成后</strong>,从 spec
|
|
480
|
+
<p style="color:var(--color-text-secondary);font-size:14px;margin:0 0 16px;"><strong>需求开发完成后</strong>,从 spec 到测试报告的全自动闭环。测试产物基于开源工具 <strong>bruno</strong>:<code>docs/bruno/</code> collection 可用 bruno app(GUI)直接打开,可视化浏览、手工调试接口;自动化执行依赖其 CLI(<code>@usebruno/cli</code>),需 <code>npm install -g @usebruno/cli</code>(每机器一次,也可项目本地装;未装时 <code>/run-api-test</code> 报错退出并指向该命令)。</p>
|
|
481
481
|
<ul class="phase-list">
|
|
482
482
|
<li><code>/write-api</code> 基于 spec 接口章节自动生成 bruno 测试接口<em>(.bru + 内嵌断言 + 真实参数 + 多环境配置)</em></li>
|
|
483
483
|
<li><code>/run-api-test</code> 跑测试 + 核实写接口 DB 副作用 + 出报告 <em>—— <strong>写接口必须查 DB 验数据,HTTP 200 ≠ 通过</strong></em></li>
|
|
484
484
|
</ul>
|
|
485
485
|
<div class="highlight">
|
|
486
|
-
<p>产物落在 <code>docs/bruno/</code>
|
|
486
|
+
<p>产物落在 <code>docs/bruno/</code> + <code>docs/features/<前缀>/</code>(测试规格 + 报告)。两个 skill 顺序依赖,但 run-api-test 也可独立跑(针对已有 .bru)。失败只报告不修代码不重跑,交用户决定。</p>
|
|
487
487
|
</div>
|
|
488
488
|
</div>
|
|
489
489
|
|
|
@@ -567,9 +567,9 @@ footer p { margin: 0; }
|
|
|
567
567
|
│ ├── <前缀>-spec.md <span class="skill">/write-spec</span> <span class="must">必有</span> <span class="ann">唯一契约</span>
|
|
568
568
|
│ ├── <b>plan/</b> <span class="skill">/write-plan</span> <span class="opt">可选</span> <span class="ann">大需求</span>
|
|
569
569
|
│ ├── <前缀>-需求文档.md <span class="skill">/write-prd</span> <span class="post">发布后</span> <span class="ann">按需</span>
|
|
570
|
-
│ ├── <前缀>
|
|
571
|
-
│ ├── <前缀>
|
|
572
|
-
│ ├── <前缀>
|
|
570
|
+
│ ├── <前缀>-接口测试-spec.md <span class="skill">/write-api</span> <span class="opt">可选</span> <span class="ann">开发完成后</span>
|
|
571
|
+
│ ├── <前缀>-接口测试报告.md <span class="skill">/run-api-test</span> <span class="opt">可选</span> <span class="ann">write-api 后</span>
|
|
572
|
+
│ ├── <前缀>-接口测试验证.jsonl <span class="skill">/run-api-test</span> <span class="opt">可选</span> <span class="ann">自动产出</span>
|
|
573
573
|
│ ├── <前缀>-单元测试-spec.md <span class="skill">/write-unit-test-spec</span> <span class="opt">可选</span> <span class="ann">开发完成后</span>
|
|
574
574
|
│ ├── <前缀>-单元测试报告.md <span class="skill">/write-unit-test-code</span> <span class="opt">可选</span> <span class="ann">开发完成后</span>
|
|
575
575
|
│ ├── <前缀>-交付讲解.md <span class="skill">/write-delivery-guide</span> <span class="opt">可选</span> <span class="ann">交付时</span>
|
|
@@ -70,7 +70,7 @@ knowledge-recall(自动召回)
|
|
|
70
70
|
│ │
|
|
71
71
|
│ ┌───────────────────────────┘
|
|
72
72
|
▼ ▼
|
|
73
|
-
/implementation(
|
|
73
|
+
/implementation(小规模) 或 /subagent-implement(大规模)
|
|
74
74
|
│
|
|
75
75
|
┌────┴─────────────────────────────┐
|
|
76
76
|
▼ ▼ ▼
|
|
@@ -94,8 +94,8 @@ knowledge-recall(自动召回)
|
|
|
94
94
|
|
|
95
95
|
- **必经** `/clarify-requirements` 澄清意图、业务边界、技术约束(不拍板实现手段)
|
|
96
96
|
- **核心** `/write-spec` 写技术规格——唯一契约,归档业务行为/规则/接口/数据/权限/异常/验收
|
|
97
|
-
- **可选** `/write-plan` 拆执行计划(大需求/跨模块;手段选型在这一步结合代码定——纯工程手段 plan 自主,有业务可观察后果的回跳 spec
|
|
98
|
-
- **必经** `/implementation`(
|
|
97
|
+
- **可选** `/write-plan` 拆执行计划(大需求/跨模块;手段选型在这一步结合代码定——纯工程手段 plan 自主,有业务可观察后果的回跳 spec 业务拍板;index 出「执行方式建议」为实现方式终判)
|
|
98
|
+
- **必经** `/implementation`(小规模:单点/1-3 文件/单模块)或 `/subagent-implement`(大规模:预估变更文件 ≥10 且跨 ≥3 独立模块,派子 agent 隔离上下文);判据是需求规模,不是任务量
|
|
99
99
|
|
|
100
100
|
> 日常默认 2 步:澄清 + 实现。spec 是唯一契约——「没有任何业务义务存在于 spec 之外」,变更时只改 spec 一处,下游重新派生。
|
|
101
101
|
|
|
@@ -105,12 +105,12 @@ knowledge-recall(自动召回)
|
|
|
105
105
|
|
|
106
106
|
### 接口测试流程
|
|
107
107
|
|
|
108
|
-
**需求开发完成后**,从 spec
|
|
108
|
+
**需求开发完成后**,从 spec 到测试报告的全自动闭环。测试产物基于开源工具 **bruno**:`docs/bruno/` collection 可用 bruno app(GUI)直接打开,可视化浏览、手工调试接口;自动化执行依赖其 CLI(`@usebruno/cli`),需 `npm install -g @usebruno/cli`(每机器一次,也可项目本地装;未装时 `/run-api-test` 报错退出并指向该命令)。
|
|
109
109
|
|
|
110
110
|
- `/write-api` 基于 spec 接口章节自动生成 bruno 测试接口(.bru + 内嵌断言 + 真实参数 + 多环境配置)
|
|
111
111
|
- `/run-api-test` 跑测试 + 核实写接口 DB 副作用 + 出报告——**写接口必须查 DB 验数据,HTTP 200 ≠ 通过**
|
|
112
112
|
|
|
113
|
-
> 产物落在 `docs/bruno/`
|
|
113
|
+
> 产物落在 `docs/bruno/` + `docs/features/<前缀>/`(测试规格 + 报告)。两个 skill 顺序依赖,但 run-api-test 也可独立跑(针对已有 .bru)。失败只报告不修代码不重跑,交用户决定。
|
|
114
114
|
|
|
115
115
|
---
|
|
116
116
|
|
|
@@ -177,9 +177,9 @@ docs/
|
|
|
177
177
|
│ ├── <前缀>-spec.md /write-spec 必有 唯一契约
|
|
178
178
|
│ ├── plan/ /write-plan 可选 大需求
|
|
179
179
|
│ ├── <前缀>-需求文档.md /write-prd 可选 发布后按需
|
|
180
|
-
│ ├──
|
|
181
|
-
│ ├──
|
|
182
|
-
│ ├──
|
|
180
|
+
│ ├── <前缀>-接口测试-spec.md /write-api 可选 开发完成后
|
|
181
|
+
│ ├── <前缀>-接口测试报告.md /run-api-test 可选 write-api 后
|
|
182
|
+
│ ├── <前缀>-接口测试验证.jsonl /run-api-test 可选 自动产出
|
|
183
183
|
│ ├── <前缀>-单元测试-spec.md /write-unit-test-spec 可选 开发完成后
|
|
184
184
|
│ ├── <前缀>-单元测试报告.md /write-unit-test-code 可选 开发完成后
|
|
185
185
|
│ ├── <前缀>-交付讲解.md /write-delivery-guide 可选 交付时
|
|
@@ -28,7 +28,7 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
|
|
|
28
28
|
4. **确认初步理解** —— 结构化复述(意图/怀疑的目标/受影响区域/初步范围)+ "**这是你的意思吗?有什么要补充或纠正?**" 用户没明确说"没补充"之前,不进锁定。
|
|
29
29
|
5. **澄清业务边界** —— 目标/参与者/场景/包含与排除/数据归属/权限/异常/成功标准;**口径**(统计维度/时间范围/过滤/去重)与**容忍度**(延迟/新鲜度/一致性预期/中间状态感知)必须锁定;需领导拍板的规则标记"业务决策"。
|
|
30
30
|
6. **识别技术约束与影响(不选手段)** —— 只收三类:① 用户声明的技术约束(如实记录,不代展开);② 兼容性边界(旧 API/旧数据/旧调用方哪些不动);③ 影响半径与风险(blast radius/直接调用方/风险等级,HIGH/CRITICAL 先警告再定)。业务方案可给 2-3 选项 + 推荐,推荐不是锁定;手段选项不在此辩论,记入总结。
|
|
31
|
-
7. **总结并停止** —— 输出澄清总结(见「决策分层」)
|
|
31
|
+
7. **总结并停止** —— 输出澄清总结(见「决策分层」),下一步交用户选,不自动继续;总结指向实现时按「下游实现 skill 选择」三档粗筛推荐(明显小 → `/implementation`;明显大 → plan 后 `/subagent-implement`;拿不准 → 建议先过 plan,不硬判)。
|
|
32
32
|
|
|
33
33
|
## 任务类型路由
|
|
34
34
|
|
|
@@ -98,7 +98,7 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
|
|
|
98
98
|
- **留给 plan 的手段决策**(识别到但不在此拍板;纯工程手段 plan 自主定,有业务可观察后果的 plan 会回跳 spec 业务拍板)
|
|
99
99
|
- **必须在 spec 前解决的问题** / **后续阶段的决策**
|
|
100
100
|
- **下游就绪判断**:Spec 可写否 / Plan 可写否 / 是否需先探索
|
|
101
|
-
- **用户控制的下一步**:`/write-spec` · `/write-plan` · 开始实现(`/implementation`
|
|
101
|
+
- **用户控制的下一步**:`/write-spec` · `/write-plan` · 开始实现(`/implementation` 明显小 / `/subagent-implement` 明显大,需 plan;拿不准 → 先过 `/write-plan` 终判) · `/write-prd`(发布后按需) · `/write-api-doc`(接口开发完毕后,可选) · `/write-design-doc`(发布后按需)
|
|
102
102
|
|
|
103
103
|
不要把 agent 推荐但用户未确认的写进"已锁定"。
|
|
104
104
|
|
|
@@ -108,15 +108,19 @@ description: 用户给一段话描述(模糊想法/领导式指令/产品想法/
|
|
|
108
108
|
|
|
109
109
|
## 下游实现 skill 选择
|
|
110
110
|
|
|
111
|
-
|
|
111
|
+
判断依据是**需求规模**(变更面宽度 × 单 agent 上下文能否装下),不是任务量——任务量是拆解产物,任何需求都拆得出 ≥3 个任务;跨域数也不是信号,小全栈需求天然跨 schema/backend/frontend 三域。
|
|
112
|
+
|
|
113
|
+
| 档位 | 条件 | 推荐 |
|
|
112
114
|
|---|---|---|
|
|
113
|
-
|
|
|
114
|
-
|
|
|
115
|
-
|
|
|
116
|
-
|
|
117
|
-
|
|
115
|
+
| 明显小 | 单点变更 / 1-3 文件 / 单模块 | `/implementation` |
|
|
116
|
+
| 明显大 | 预估变更文件 ≥10 **且** 跨 ≥3 个相互独立的模块 | plan 后 `/subagent-implement` |
|
|
117
|
+
| 拿不准 | 其余情形 | 只推荐 `/write-plan`,不硬判实现方式 |
|
|
118
|
+
|
|
119
|
+
- 默认倾向:拿不准 → implementation 方向(子 agent 有结构性开销,只在单上下文装不下、任务又相互独立时才值)。
|
|
120
|
+
- 反例:小全栈需求(加 1 字段 + 改 1 接口 + 1 页面展示,跨 3 域)→ `/implementation`——跨域、拆得出 ≥3 任务,都不是走 subagent 的理由。
|
|
121
|
+
- `/subagent-implement` 仍需 plan 前置;write-plan 出 index「执行方式建议」做终判,此处粗筛只给方向。
|
|
118
122
|
|
|
119
|
-
|
|
123
|
+
事后文档(发布后按需):`/write-prd`(业务方审阅)· `/write-api-doc`(接口开发完毕,仅新增接口)· `/write-design-doc`(设计文档)。
|
|
120
124
|
|
|
121
125
|
## 红线(绝对不能做)
|
|
122
126
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: db-query
|
|
3
|
-
description: 数据库探索方法论 — 通过 cgraphx db CLI 查数据(MySQL + PostgreSQL),沉淀业务知识到 docs/schema-knowledge/。Use when 查数据库/查数据/SQL查询/查表/表结构/DDL/查表结构/验证数据/获取测试数据。
|
|
3
|
+
description: 数据库探索方法论 — 通过 cgraphx db CLI 查数据(MySQL + PostgreSQL 直连,或经 HTTP 只读查询接口访问无法直连的库),沉淀业务知识到 docs/schema-knowledge/。Use when 查数据库/查数据/SQL查询/查表/表结构/DDL/查表结构/验证数据/获取测试数据。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
## 工具(由 cgraphx 提供,通过 CLI 调用)
|
|
@@ -29,7 +29,24 @@ cgraphx db <subcommand> [options]
|
|
|
29
29
|
- 禁用整个子系统:`CGRAPHX_DB_QUERY_DISABLED=1` 或 profiles 文件里 `"enabled": false`(禁用时所有命令输出 "数据库无法连接,请以代码中查询为准" 到 stderr,exit code 4,不实际连库)
|
|
30
30
|
- 退出码:0 成功 / 2 配置错误 / 3 安全拦截(写操作) / 4 连接/超时/禁用 / 5 参数错误
|
|
31
31
|
|
|
32
|
-
profiles 文件结构:每个 profile 含 `type`(mysql
|
|
32
|
+
profiles 文件结构:每个 profile 含 `type`(`mysql`/`postgres`/`http`)、连接参数、可选 `description`。**密码/token 永不输出**。
|
|
33
|
+
|
|
34
|
+
### 三种 type
|
|
35
|
+
|
|
36
|
+
- **mysql/postgres**(直连):配 `host/port/user/password/database`(+postgres 的 `schema`)。用于能直连的库(如测试库)。
|
|
37
|
+
- **http**(经只读查询接口):配 `url`(接口地址)、`headers`(鉴权,如 `{"Authorization":"Bearer <token>"}`)、`schema`(默认 schema)。用于**只能经项目 HTTP 接口访问、不能直连的库**(如生产库)。接口须实现固定契约:POST 传 `{mode,sql,args,limit,schema,table}` 返回 `{code:200,data:{columns,rows}}` 或裸 `{columns,rows}`;schema 模式(tables/ddl/indexes/table-comment)由接口内部拼方言 SQL 返回结构化结果。**token 过期需手动换**。
|
|
38
|
+
|
|
39
|
+
#### http profile 配置示例
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
"flowable-production": {
|
|
43
|
+
"type": "http",
|
|
44
|
+
"url": "http://生产域名/workflow/dbquery",
|
|
45
|
+
"headers": { "Authorization": "Bearer <生产token>" },
|
|
46
|
+
"schema": "zqpd_sch",
|
|
47
|
+
"description": "生产库(经HTTP接口)"
|
|
48
|
+
}
|
|
49
|
+
```
|
|
33
50
|
|
|
34
51
|
## 使用原则
|
|
35
52
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: iboc-check
|
|
3
3
|
disable-model-invocation: true
|
|
4
|
-
description: 代码开发完成后的文档收口补账:核实 docs/features/ 下本人 git
|
|
4
|
+
description: 代码开发完成后的文档收口补账:核实 docs/features/ 下本人 git 提交过的需求,齐全的跳过、不齐全的交用户决策;补哪些产物(单元测试规格/单元测试报告/收口档案)每次勾选、缺省全补——不要求测试的项目可只勾收口档案;确认后补主 spec 头部(feature-id/负责人/日期),再循环补全勾选范围内缺失的产物。Use when 开发完成后补文档 / 老需求补头部 / 补单测产物 / 补收口档案 / 文档收口 / iboc-check.
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# IBOC Check(文档收口补账)
|
|
8
8
|
|
|
9
9
|
## 定位
|
|
10
10
|
|
|
11
|
-
局方项目代码开发完成后的**事后文档补账**:老需求多在规范建立前做,spec
|
|
11
|
+
局方项目代码开发完成后的**事后文档补账**:老需求多在规范建立前做,spec 无头部、单测产物与收口档案参差。**先核后问**:归属本人且文档齐全的直接跳过,只有不齐全的需求才交用户决策——之前补过的不再重复打扰。确认后**纠正**(补主 spec 头部)、**补全**(按清单循环补缺的文档)。**补哪些产物每次勾选**(单元测试规格 / 单元测试报告 / 收口档案,缺省全补)——不要求测试的项目只勾收口档案,齐全核验与补全都按勾选范围,不把未勾选的产物记为缺失。
|
|
12
12
|
|
|
13
13
|
**主 agent 是统帅不是先锋**:归属核实、补头部、清单、提交留在主 agent;补全重活(读 spec/实现代码、写测试、跑测试、写档案)逐需求派隔离上下文的 filler 子 agent——单需求 spec→测试代码→收口档案全链不占主上下文,多需求互不累积。
|
|
14
14
|
|
|
@@ -16,7 +16,8 @@ description: 代码开发完成后的文档收口补账:核实 docs/features/
|
|
|
16
16
|
|
|
17
17
|
- **只动头部块** —— 补缺失行 + 删多余字段(如状态);不碰正文、不改文件名、不新建 spec;无主 spec 的需求只提示「无法补充」,补 spec 是 `/write-spec` 的事
|
|
18
18
|
- **只处理有 git 提交记录的需求** —— `docs/features/<目录>` 未提交的不处理,不猜归属
|
|
19
|
-
-
|
|
19
|
+
- **不齐全清单必须用户确认** —— git 作者命中只是候选,是不是自己的由用户最终拍板;齐全的需求直接跳过,不进决策清单
|
|
20
|
+
- **产物范围由用户勾选** —— 缺省全三样;未勾选的产物既不参与齐全判定、也不补全(不要求测试的项目只勾收口档案,不被测试产物噪音打扰)
|
|
20
21
|
- **不覆盖既有头部行** —— 头部行已存在则跳过该行,只补缺失的
|
|
21
22
|
- **子 skill 守各自边界** —— filler 子 agent 只在自己需求内编排执行,不越权替子 skill 做判断
|
|
22
23
|
- **一需求一子 agent,串行派任** —— git index 与测试运行是共享资源,不并行
|
|
@@ -24,20 +25,40 @@ description: 代码开发完成后的文档收口补账:核实 docs/features/
|
|
|
24
25
|
|
|
25
26
|
## 流程
|
|
26
27
|
|
|
27
|
-
### 1. 归属核实
|
|
28
|
+
### 1. 归属核实(静默)
|
|
28
29
|
|
|
29
30
|
- 取当前用户:`git config user.name`
|
|
30
31
|
- 对 `docs/features/` 每个目录跑 `git log --format='%an' -- docs/features/<目录名>` 取作者集:
|
|
31
32
|
- 无提交记录 → 跳过,不处理
|
|
32
33
|
- 作者集含当前用户 → 进候选清单
|
|
33
|
-
-
|
|
34
|
+
- 本步不问用户——候选清单先过齐全核验,齐全的不打扰
|
|
34
35
|
|
|
35
|
-
### 2.
|
|
36
|
+
### 2. 产物范围(每次勾选)
|
|
36
37
|
|
|
37
|
-
|
|
38
|
+
问用户本次按哪些产物判定齐全 + 补全,缺省全三样:
|
|
38
39
|
|
|
39
|
-
-
|
|
40
|
-
-
|
|
40
|
+
- 单元测试规格(`<前缀>-单元测试-spec.md`)
|
|
41
|
+
- 单元测试报告(`<前缀>-单元测试报告.md`)
|
|
42
|
+
- 收口档案(`收口档案.md` 或 `<前缀>-收口档案.md`)
|
|
43
|
+
|
|
44
|
+
不要求测试的项目只勾收口档案。**勾选范围同时是齐全核验的 bar 和补全循环的补全集**——未勾选的产物既不判缺失、也不补全,避免测试产物在无测试项目里制造噪音。
|
|
45
|
+
|
|
46
|
+
### 3. 齐全核验(先核后问)
|
|
47
|
+
|
|
48
|
+
逐候选核主 spec 与齐全度(产物 bar = 第 2 步勾选范围):
|
|
49
|
+
|
|
50
|
+
- **无主 spec**(`<前缀>-spec.md` 和 `spec.md` 都没有)→ 记「无法补充清单」,收尾时提示,不进决策清单
|
|
51
|
+
- **齐全标准**:主 spec 头部三行(feature-id/负责人/日期)都在 + 范围内产物都在 → **齐全,直接跳过**,不处理、不进决策清单(之前补过的不再重复打扰)
|
|
52
|
+
- 缺头部行或范围内缺任一产物 → **不齐全**,记缺失项(头部 + 范围内缺失产物),进决策清单
|
|
53
|
+
|
|
54
|
+
### 4. 用户决策(只看不齐全的)
|
|
55
|
+
|
|
56
|
+
- 决策清单为空(候选全齐全)→ 直接收尾汇报,零打扰
|
|
57
|
+
- 非空 → 展示**(目录名 + 日期 + 提交作者 + 缺失项)**,用户确认要补的、剔除不要动的;确认后的清单才是工作范围。产物范围已在第 2 步选定,此处不再问产物
|
|
58
|
+
|
|
59
|
+
### 5. 补头部(只加不改)
|
|
60
|
+
|
|
61
|
+
对确认后的每个需求目录,在其主 spec(第 3 步已核出)文件头部(标题行后,对齐既有 `> ` 块)补缺失的行:
|
|
41
62
|
|
|
42
63
|
```markdown
|
|
43
64
|
> feature-id: 2026-08-03-审批引擎会签与重发能力
|
|
@@ -47,40 +68,41 @@ description: 代码开发完成后的文档收口补账:核实 docs/features/
|
|
|
47
68
|
|
|
48
69
|
三行取值:需求目录名 / `git config user.name` / 目录名日期前缀(**不是当前日期**), 同时删除其他多余字段,比如状态。
|
|
49
70
|
|
|
50
|
-
###
|
|
71
|
+
### 6. 生成工作清单
|
|
51
72
|
|
|
52
|
-
执行 `cgraphx features sync
|
|
73
|
+
执行 `cgraphx features sync` 刷新个人索引(头部补对后 `features list --mine` 才准)。**待办 = 第 4 步确认的不齐全清单**——不从 my-features.md 重建,那里含已齐全的历史需求,不重复进待办。
|
|
53
74
|
|
|
54
|
-
###
|
|
75
|
+
### 7. 补全循环(逐需求派 filler 子 agent)
|
|
55
76
|
|
|
56
|
-
|
|
77
|
+
缺失产物第 3 步已核出(限于第 2 步勾选范围),缺什么补什么:
|
|
57
78
|
|
|
58
79
|
| 产物 | 文件名 | 缺失时调用 |
|
|
59
80
|
|---|---|---|
|
|
60
81
|
| 单元测试规格 | `<前缀>-单元测试-spec.md` | `/write-unit-test-spec` |
|
|
61
82
|
| 单元测试报告 | `<前缀>-单元测试报告.md` | `/write-unit-test-code`(依赖规格;规格刚补完接着跑) |
|
|
62
|
-
| 设计文档 | `<前缀>-设计文档.md` | `/write-design-doc` |
|
|
63
83
|
| 收口档案 | `收口档案.md` 或 `<前缀>-收口档案.md` | `/end` |
|
|
64
84
|
|
|
65
85
|
每条待办是独立任务,补全重活不进主上下文——**派 filler 子 agent**:
|
|
66
86
|
|
|
67
|
-
-
|
|
68
|
-
- 有缺失 → Read `./filler-prompt.md` + 拼任务三件套(需求 / 缺失产物 / 上下文)→ Agent tool 派 `general-purpose`,在隔离上下文按依赖顺序补全(规格 → 报告 →
|
|
87
|
+
- 范围内产物全齐(只缺过头部)→ 不派 filler,该需求改动仅头部,直接走小步提交
|
|
88
|
+
- 有缺失 → Read `./filler-prompt.md` + 拼任务三件套(需求 / 缺失产物 / 上下文)→ Agent tool 派 `general-purpose`,在隔离上下文按依赖顺序补全(规格 → 报告 → 档案)
|
|
69
89
|
- **串行**:一需求一子 agent,跑完一个再派下一个(git index 与测试运行是共享资源,不并行)
|
|
70
90
|
- **status 协议**:DONE → sanity check → 提交;DONE_WITH_CONCERNS → 辨因处理(correctness/scope 先解决,observation 记录);NEEDS_CONTEXT → 补 context 重派;BLOCKED → 记「受阻」进下一条(补账任务相互独立,一个卡住不拖其他)
|
|
71
91
|
- **sanity check(主 agent,每需求)**:声称补出的产物真实存在 + git status 只含该需求的文件;不过 → 派修或记录,不提交
|
|
72
92
|
|
|
73
93
|
**小步提交(每需求独立,主 agent 提交)**:sanity check 通过后,主 agent 按子 agent 报告的「改动文件」清单精确 stage,独立提交,再进下一条:
|
|
74
94
|
|
|
75
|
-
- 提交范围:该需求 `docs/features/<目录>/` 下本次改动(补的头部 +
|
|
95
|
+
- 提交范围:该需求 `docs/features/<目录>/` 下本次改动(补的头部 + 补出的规格/报告/收口档案)+ write-unit-test-code 产出的测试文件;不混入其他需求、不夹带无关文件
|
|
76
96
|
- commit message:项目有 `docs/guides/git-standards.md` 按其规范;没有则参考 `docs: <需求标题> 文档补账`
|
|
77
97
|
- 被 precommit 门禁拦截 → 按提示自查 staged diff 后重试(`CGRAPHX_PRECOMMIT_REVIEWED=1`)
|
|
78
|
-
- 该需求无任何改动
|
|
98
|
+
- 该需求无任何改动 → 不产生提交
|
|
79
99
|
|
|
80
|
-
###
|
|
100
|
+
### 8. 收尾汇报
|
|
81
101
|
|
|
102
|
+
- 本次产物范围:<勾选的产物;未勾选的既不判定也不补全>
|
|
103
|
+
- 底数:候选 N 个 / 齐全跳过 M 个 / 本次处理 K 个(全齐全时零打扰直接收尾)
|
|
82
104
|
- 补了头部的需求数;「无法补充清单」(无主 spec 的,提示可走 `/write-spec` 补)
|
|
83
|
-
- 每条待办的补全结果:补了什么 /
|
|
105
|
+
- 每条待办的补全结果:补了什么 / 子 skill 报告的失败与待确认项 / 受阻跳过
|
|
84
106
|
- 提交清单:每需求一笔(需求 + commit message);push 归用户
|
|
85
107
|
- 下一步交用户,不自动继续
|
|
86
108
|
|
|
@@ -93,7 +115,9 @@ Read 模板 + 拼任务三件套成 prompt,派 `general-purpose`:
|
|
|
93
115
|
## 边界场景
|
|
94
116
|
|
|
95
117
|
- **未提交的需求目录** → 不处理,不猜归属
|
|
96
|
-
-
|
|
118
|
+
- **候选全齐全** → 决策清单为空,零打扰直接收尾汇报
|
|
119
|
+
- **用户只勾部分产物** → 未勾选的产物既不判缺失也不补全;齐全核验按勾选范围,补全循环只补范围内缺失的
|
|
120
|
+
- **无主 spec** → 提示无法补充,不代写(第 2 步核验时即分流,不进决策清单)
|
|
97
121
|
- **头部行部分存在** → 只补缺失行,不改已有值(负责人已有值也不覆盖)
|
|
98
122
|
- **git 作者命中但用户否认** → 移出清单,不处理
|
|
99
123
|
- **补了头部仍不在 my-features.md** → 提示用户检查头部行格式,不硬改
|
|
@@ -102,8 +126,9 @@ Read 模板 + 拼任务三件套成 prompt,派 `general-purpose`:
|
|
|
102
126
|
## 不做的事
|
|
103
127
|
|
|
104
128
|
- 不新建 spec、不改正文、不改文件名(纠正只在头部块:补缺失行 + 删多余字段)
|
|
129
|
+
- 不补设计文档——不在补账范围,发布后按需走 `/write-design-doc`
|
|
105
130
|
- 不处理未提交的需求目录
|
|
106
|
-
-
|
|
131
|
+
- 不自动确认决策清单(只有不齐全的需求才进清单;确认前不动任何文件)
|
|
107
132
|
- 不写业务实现代码(子 skill 也不写)
|
|
108
133
|
- 不碰他人需求(归属过滤 + 用户确认双保险)
|
|
109
134
|
- 不 push(只提交,push 归用户)
|
|
@@ -111,6 +136,9 @@ Read 模板 + 拼任务三件套成 prompt,派 `general-purpose`:
|
|
|
111
136
|
## 和其他 skill 的关系
|
|
112
137
|
|
|
113
138
|
- **implementation / subagent-implement**:上游,代码开发完成后才轮到本 skill
|
|
114
|
-
- **write-unit-test-spec / write-unit-test-code /
|
|
139
|
+
- **write-unit-test-spec / write-unit-test-code / end**:由 filler 子 agent 在隔离上下文内按需调用
|
|
115
140
|
- **subagent-implement**:同款 controller/子 agent 模式(隔离派任 + 提交归 controller);这里更轻——无 plan/spec 审查,一需求一子 agent
|
|
116
141
|
- **features sync**:头部补正是它的数据修正——负责人取自 spec 头部,头部缺失时「按人找需求」失效
|
|
142
|
+
|
|
143
|
+
## 结束后
|
|
144
|
+
- 必须核实单元测试报告中执行情况, 各种情况导致的未执行或者测试不通过 必须提醒用户
|