@vpxa/aikit 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1207 -0
- package/bin/aikit.mjs +10 -0
- package/package.json +92 -0
- package/packages/aikit-client/dist/direct-client.d.ts +37 -0
- package/packages/aikit-client/dist/direct-client.js +1 -0
- package/packages/aikit-client/dist/index.d.ts +5 -0
- package/packages/aikit-client/dist/index.js +1 -0
- package/packages/aikit-client/dist/mcp-client.d.ts +19 -0
- package/packages/aikit-client/dist/mcp-client.js +4 -0
- package/packages/aikit-client/dist/parsers.d.ts +35 -0
- package/packages/aikit-client/dist/parsers.js +2 -0
- package/packages/aikit-client/dist/types.d.ts +62 -0
- package/packages/aikit-client/dist/types.js +1 -0
- package/packages/analyzers/dist/blast-radius-analyzer.d.ts +19 -0
- package/packages/analyzers/dist/blast-radius-analyzer.js +6 -0
- package/packages/analyzers/dist/dependency-analyzer.d.ts +32 -0
- package/packages/analyzers/dist/dependency-analyzer.js +8 -0
- package/packages/analyzers/dist/diagram-generator.d.ts +16 -0
- package/packages/analyzers/dist/diagram-generator.js +2 -0
- package/packages/analyzers/dist/entry-point-analyzer.d.ts +40 -0
- package/packages/analyzers/dist/entry-point-analyzer.js +4 -0
- package/packages/analyzers/dist/index.d.ts +12 -0
- package/packages/analyzers/dist/index.js +1 -0
- package/packages/analyzers/dist/knowledge-producer.d.ts +40 -0
- package/packages/analyzers/dist/knowledge-producer.js +26 -0
- package/packages/analyzers/dist/pattern-analyzer.d.ts +15 -0
- package/packages/analyzers/dist/pattern-analyzer.js +2 -0
- package/packages/analyzers/dist/regex-call-graph.d.ts +10 -0
- package/packages/analyzers/dist/regex-call-graph.js +1 -0
- package/packages/analyzers/dist/structure-analyzer.d.ts +19 -0
- package/packages/analyzers/dist/structure-analyzer.js +4 -0
- package/packages/analyzers/dist/symbol-analyzer.d.ts +14 -0
- package/packages/analyzers/dist/symbol-analyzer.js +9 -0
- package/packages/analyzers/dist/ts-call-graph.d.ts +29 -0
- package/packages/analyzers/dist/ts-call-graph.js +1 -0
- package/packages/analyzers/dist/types.d.ts +110 -0
- package/packages/analyzers/dist/types.js +1 -0
- package/packages/chunker/dist/call-graph-extractor.d.ts +25 -0
- package/packages/chunker/dist/call-graph-extractor.js +1 -0
- package/packages/chunker/dist/chunker-factory.d.ts +19 -0
- package/packages/chunker/dist/chunker-factory.js +1 -0
- package/packages/chunker/dist/chunker.interface.d.ts +13 -0
- package/packages/chunker/dist/chunker.interface.js +1 -0
- package/packages/chunker/dist/code-chunker.d.ts +17 -0
- package/packages/chunker/dist/code-chunker.js +11 -0
- package/packages/chunker/dist/extractors/call-extractor.d.ts +24 -0
- package/packages/chunker/dist/extractors/call-extractor.js +1 -0
- package/packages/chunker/dist/extractors/entry-point-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/entry-point-detector.js +1 -0
- package/packages/chunker/dist/extractors/import-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/import-extractor.js +1 -0
- package/packages/chunker/dist/extractors/pattern-detector.d.ts +14 -0
- package/packages/chunker/dist/extractors/pattern-detector.js +1 -0
- package/packages/chunker/dist/extractors/scope-resolver.d.ts +26 -0
- package/packages/chunker/dist/extractors/scope-resolver.js +1 -0
- package/packages/chunker/dist/extractors/symbol-extractor.d.ts +14 -0
- package/packages/chunker/dist/extractors/symbol-extractor.js +3 -0
- package/packages/chunker/dist/extractors/types.d.ts +44 -0
- package/packages/chunker/dist/extractors/types.js +1 -0
- package/packages/chunker/dist/generic-chunker.d.ts +15 -0
- package/packages/chunker/dist/generic-chunker.js +5 -0
- package/packages/chunker/dist/index.d.ts +19 -0
- package/packages/chunker/dist/index.js +1 -0
- package/packages/chunker/dist/markdown-chunker.d.ts +17 -0
- package/packages/chunker/dist/markdown-chunker.js +3 -0
- package/packages/chunker/dist/wasm/languages.d.ts +18 -0
- package/packages/chunker/dist/wasm/languages.js +1 -0
- package/packages/chunker/dist/wasm/query-executor.d.ts +70 -0
- package/packages/chunker/dist/wasm/query-executor.js +1 -0
- package/packages/chunker/dist/wasm/runtime.d.ts +44 -0
- package/packages/chunker/dist/wasm/runtime.js +1 -0
- package/packages/chunker/dist/wasm/types.d.ts +84 -0
- package/packages/chunker/dist/wasm/types.js +1 -0
- package/packages/chunker/dist/wasm-chunker.d.ts +23 -0
- package/packages/chunker/dist/wasm-chunker.js +6 -0
- package/packages/chunker/src/queries/go/calls.scm +11 -0
- package/packages/chunker/src/queries/go/entry-points.scm +20 -0
- package/packages/chunker/src/queries/go/imports.scm +6 -0
- package/packages/chunker/src/queries/go/patterns.scm +25 -0
- package/packages/chunker/src/queries/go/symbols.scm +26 -0
- package/packages/chunker/src/queries/java/calls.scm +10 -0
- package/packages/chunker/src/queries/java/entry-points.scm +27 -0
- package/packages/chunker/src/queries/java/imports.scm +11 -0
- package/packages/chunker/src/queries/java/patterns.scm +27 -0
- package/packages/chunker/src/queries/java/symbols.scm +28 -0
- package/packages/chunker/src/queries/javascript/calls.scm +21 -0
- package/packages/chunker/src/queries/javascript/entry-points.scm +31 -0
- package/packages/chunker/src/queries/javascript/imports.scm +32 -0
- package/packages/chunker/src/queries/javascript/patterns.scm +28 -0
- package/packages/chunker/src/queries/javascript/symbols.scm +52 -0
- package/packages/chunker/src/queries/python/calls.scm +11 -0
- package/packages/chunker/src/queries/python/entry-points.scm +21 -0
- package/packages/chunker/src/queries/python/imports.scm +14 -0
- package/packages/chunker/src/queries/python/patterns.scm +25 -0
- package/packages/chunker/src/queries/python/symbols.scm +17 -0
- package/packages/chunker/src/queries/rust/calls.scm +20 -0
- package/packages/chunker/src/queries/rust/entry-points.scm +7 -0
- package/packages/chunker/src/queries/rust/imports.scm +26 -0
- package/packages/chunker/src/queries/rust/patterns.scm +18 -0
- package/packages/chunker/src/queries/rust/symbols.scm +73 -0
- package/packages/chunker/src/queries/typescript/calls.scm +21 -0
- package/packages/chunker/src/queries/typescript/entry-points.scm +48 -0
- package/packages/chunker/src/queries/typescript/imports.scm +35 -0
- package/packages/chunker/src/queries/typescript/patterns.scm +47 -0
- package/packages/chunker/src/queries/typescript/symbols.scm +79 -0
- package/packages/chunker/wasm/tree-sitter-c.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-c_sharp.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-cpp.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-go.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-java.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-javascript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-kotlin.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-php.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-python.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-ruby.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-rust.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-scala.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-swift.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-typescript.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter.wasm +0 -0
- package/packages/cli/dist/aikit-init.d.ts +54 -0
- package/packages/cli/dist/aikit-init.js +1 -0
- package/packages/cli/dist/commands/analyze.d.ts +6 -0
- package/packages/cli/dist/commands/analyze.js +2 -0
- package/packages/cli/dist/commands/context-cmds.d.ts +6 -0
- package/packages/cli/dist/commands/context-cmds.js +1 -0
- package/packages/cli/dist/commands/environment.d.ts +6 -0
- package/packages/cli/dist/commands/environment.js +1 -0
- package/packages/cli/dist/commands/execution.d.ts +6 -0
- package/packages/cli/dist/commands/execution.js +1 -0
- package/packages/cli/dist/commands/flow.d.ts +6 -0
- package/packages/cli/dist/commands/flow.js +1 -0
- package/packages/cli/dist/commands/graph.d.ts +6 -0
- package/packages/cli/dist/commands/graph.js +6 -0
- package/packages/cli/dist/commands/init/adapters.d.ts +28 -0
- package/packages/cli/dist/commands/init/adapters.js +1 -0
- package/packages/cli/dist/commands/init/config.d.ts +10 -0
- package/packages/cli/dist/commands/init/config.js +3 -0
- package/packages/cli/dist/commands/init/constants.d.ts +41 -0
- package/packages/cli/dist/commands/init/constants.js +1 -0
- package/packages/cli/dist/commands/init/curated.d.ts +7 -0
- package/packages/cli/dist/commands/init/curated.js +1 -0
- package/packages/cli/dist/commands/init/frontmatter.d.ts +54 -0
- package/packages/cli/dist/commands/init/frontmatter.js +2 -0
- package/packages/cli/dist/commands/init/index.d.ts +36 -0
- package/packages/cli/dist/commands/init/index.js +5 -0
- package/packages/cli/dist/commands/init/manifest.d.ts +71 -0
- package/packages/cli/dist/commands/init/manifest.js +1 -0
- package/packages/cli/dist/commands/init/scaffold.d.ts +46 -0
- package/packages/cli/dist/commands/init/scaffold.js +1 -0
- package/packages/cli/dist/commands/init/templates.d.ts +9 -0
- package/packages/cli/dist/commands/init/templates.js +194 -0
- package/packages/cli/dist/commands/init/user.d.ts +61 -0
- package/packages/cli/dist/commands/init/user.js +5 -0
- package/packages/cli/dist/commands/knowledge.d.ts +6 -0
- package/packages/cli/dist/commands/knowledge.js +1 -0
- package/packages/cli/dist/commands/search.d.ts +6 -0
- package/packages/cli/dist/commands/search.js +1 -0
- package/packages/cli/dist/commands/system.d.ts +6 -0
- package/packages/cli/dist/commands/system.js +4 -0
- package/packages/cli/dist/commands/upgrade.d.ts +6 -0
- package/packages/cli/dist/commands/upgrade.js +1 -0
- package/packages/cli/dist/commands/workspace.d.ts +6 -0
- package/packages/cli/dist/commands/workspace.js +1 -0
- package/packages/cli/dist/context.d.ts +7 -0
- package/packages/cli/dist/context.js +1 -0
- package/packages/cli/dist/helpers.d.ts +55 -0
- package/packages/cli/dist/helpers.js +5 -0
- package/packages/cli/dist/index.d.ts +10 -0
- package/packages/cli/dist/index.js +3 -0
- package/packages/cli/dist/types.d.ts +9 -0
- package/packages/cli/dist/types.js +1 -0
- package/packages/core/dist/constants.d.ts +74 -0
- package/packages/core/dist/constants.js +1 -0
- package/packages/core/dist/content-detector.d.ts +13 -0
- package/packages/core/dist/content-detector.js +1 -0
- package/packages/core/dist/errors.d.ts +20 -0
- package/packages/core/dist/errors.js +1 -0
- package/packages/core/dist/global-registry.d.ts +63 -0
- package/packages/core/dist/global-registry.js +1 -0
- package/packages/core/dist/index.d.ts +7 -0
- package/packages/core/dist/index.js +1 -0
- package/packages/core/dist/logger.d.ts +32 -0
- package/packages/core/dist/logger.js +1 -0
- package/packages/core/dist/types.d.ts +133 -0
- package/packages/core/dist/types.js +1 -0
- package/packages/dashboard/dist/assets/index-BjA4YODs.js +21 -0
- package/packages/dashboard/dist/assets/index-BjA4YODs.js.map +1 -0
- package/packages/dashboard/dist/assets/index-CHpVij2M.css +1 -0
- package/packages/dashboard/dist/index.html +18 -0
- package/packages/elicitation/dist/build.d.ts +14 -0
- package/packages/elicitation/dist/build.js +1 -0
- package/packages/elicitation/dist/fields.d.ts +32 -0
- package/packages/elicitation/dist/fields.js +1 -0
- package/packages/elicitation/dist/index.d.ts +5 -0
- package/packages/elicitation/dist/index.js +1 -0
- package/packages/elicitation/dist/normalize.d.ts +15 -0
- package/packages/elicitation/dist/normalize.js +1 -0
- package/packages/elicitation/dist/types.d.ts +88 -0
- package/packages/elicitation/dist/types.js +1 -0
- package/packages/embeddings/dist/embedder.interface.d.ts +26 -0
- package/packages/embeddings/dist/embedder.interface.js +1 -0
- package/packages/embeddings/dist/index.d.ts +3 -0
- package/packages/embeddings/dist/index.js +1 -0
- package/packages/embeddings/dist/onnx-embedder.d.ts +22 -0
- package/packages/embeddings/dist/onnx-embedder.js +1 -0
- package/packages/enterprise-bridge/dist/cache.d.ts +28 -0
- package/packages/enterprise-bridge/dist/cache.js +1 -0
- package/packages/enterprise-bridge/dist/er-client.d.ts +37 -0
- package/packages/enterprise-bridge/dist/er-client.js +1 -0
- package/packages/enterprise-bridge/dist/evolution-collector.d.ts +62 -0
- package/packages/enterprise-bridge/dist/evolution-collector.js +1 -0
- package/packages/enterprise-bridge/dist/index.d.ts +8 -0
- package/packages/enterprise-bridge/dist/index.js +1 -0
- package/packages/enterprise-bridge/dist/policy-store.d.ts +45 -0
- package/packages/enterprise-bridge/dist/policy-store.js +1 -0
- package/packages/enterprise-bridge/dist/push-adapter.d.ts +23 -0
- package/packages/enterprise-bridge/dist/push-adapter.js +1 -0
- package/packages/enterprise-bridge/dist/result-merger.d.ts +14 -0
- package/packages/enterprise-bridge/dist/result-merger.js +1 -0
- package/packages/enterprise-bridge/dist/types.d.ts +81 -0
- package/packages/enterprise-bridge/dist/types.js +1 -0
- package/packages/flows/dist/adapters/claude-plugin.d.ts +12 -0
- package/packages/flows/dist/adapters/claude-plugin.js +1 -0
- package/packages/flows/dist/adapters/copilot.d.ts +10 -0
- package/packages/flows/dist/adapters/copilot.js +1 -0
- package/packages/flows/dist/adapters/index.d.ts +11 -0
- package/packages/flows/dist/adapters/index.js +1 -0
- package/packages/flows/dist/adapters/native.d.ts +10 -0
- package/packages/flows/dist/adapters/native.js +1 -0
- package/packages/flows/dist/builtins.d.ts +16 -0
- package/packages/flows/dist/builtins.js +1 -0
- package/packages/flows/dist/foundation.d.ts +20 -0
- package/packages/flows/dist/foundation.js +11 -0
- package/packages/flows/dist/git.d.ts +34 -0
- package/packages/flows/dist/git.js +1 -0
- package/packages/flows/dist/index.d.ts +12 -0
- package/packages/flows/dist/index.js +1 -0
- package/packages/flows/dist/loader.d.ts +13 -0
- package/packages/flows/dist/loader.js +2 -0
- package/packages/flows/dist/registry.d.ts +23 -0
- package/packages/flows/dist/registry.js +1 -0
- package/packages/flows/dist/state-machine.d.ts +23 -0
- package/packages/flows/dist/state-machine.js +1 -0
- package/packages/flows/dist/symlinks.d.ts +17 -0
- package/packages/flows/dist/symlinks.js +1 -0
- package/packages/flows/dist/types.d.ts +112 -0
- package/packages/flows/dist/types.js +1 -0
- package/packages/indexer/dist/file-hasher.d.ts +13 -0
- package/packages/indexer/dist/file-hasher.js +1 -0
- package/packages/indexer/dist/filesystem-crawler.d.ts +29 -0
- package/packages/indexer/dist/filesystem-crawler.js +1 -0
- package/packages/indexer/dist/graph-extractor.d.ts +18 -0
- package/packages/indexer/dist/graph-extractor.js +1 -0
- package/packages/indexer/dist/hash-cache.d.ts +24 -0
- package/packages/indexer/dist/hash-cache.js +1 -0
- package/packages/indexer/dist/incremental-indexer.d.ts +56 -0
- package/packages/indexer/dist/incremental-indexer.js +1 -0
- package/packages/indexer/dist/index.d.ts +6 -0
- package/packages/indexer/dist/index.js +1 -0
- package/packages/present/dist/index.html +709 -0
- package/packages/server/dist/api.d.ts +3 -0
- package/packages/server/dist/api.js +1 -0
- package/packages/server/dist/auto-gc.d.ts +30 -0
- package/packages/server/dist/auto-gc.js +1 -0
- package/packages/server/dist/completions.d.ts +14 -0
- package/packages/server/dist/completions.js +1 -0
- package/packages/server/dist/config.d.ts +14 -0
- package/packages/server/dist/config.js +1 -0
- package/packages/server/dist/cross-workspace.d.ts +43 -0
- package/packages/server/dist/cross-workspace.js +1 -0
- package/packages/server/dist/curated-manager.d.ts +92 -0
- package/packages/server/dist/curated-manager.js +5 -0
- package/packages/server/dist/dashboard-static.d.ts +27 -0
- package/packages/server/dist/dashboard-static.js +1 -0
- package/packages/server/dist/elicitor.d.ts +18 -0
- package/packages/server/dist/elicitor.js +1 -0
- package/packages/server/dist/index.d.ts +1 -0
- package/packages/server/dist/index.js +1 -0
- package/packages/server/dist/mcp-logging.d.ts +11 -0
- package/packages/server/dist/mcp-logging.js +1 -0
- package/packages/server/dist/output-schemas.d.ts +242 -0
- package/packages/server/dist/output-schemas.js +1 -0
- package/packages/server/dist/prompts.d.ts +13 -0
- package/packages/server/dist/prompts.js +13 -0
- package/packages/server/dist/replay-interceptor.d.ts +23 -0
- package/packages/server/dist/replay-interceptor.js +1 -0
- package/packages/server/dist/resource-links.d.ts +34 -0
- package/packages/server/dist/resource-links.js +1 -0
- package/packages/server/dist/resources/curated-resources.d.ts +13 -0
- package/packages/server/dist/resources/curated-resources.js +2 -0
- package/packages/server/dist/resources/resource-notifier.d.ts +45 -0
- package/packages/server/dist/resources/resource-notifier.js +1 -0
- package/packages/server/dist/resources/resources.d.ts +8 -0
- package/packages/server/dist/resources/resources.js +2 -0
- package/packages/server/dist/sampling.d.ts +41 -0
- package/packages/server/dist/sampling.js +2 -0
- package/packages/server/dist/server.d.ts +47 -0
- package/packages/server/dist/server.js +3 -0
- package/packages/server/dist/structured-content-guard.d.ts +26 -0
- package/packages/server/dist/structured-content-guard.js +1 -0
- package/packages/server/dist/task-manager.d.ts +40 -0
- package/packages/server/dist/task-manager.js +1 -0
- package/packages/server/dist/tool-metadata.d.ts +38 -0
- package/packages/server/dist/tool-metadata.js +1 -0
- package/packages/server/dist/tool-prefix.d.ts +12 -0
- package/packages/server/dist/tool-prefix.js +1 -0
- package/packages/server/dist/tools/analyze.tools.d.ts +14 -0
- package/packages/server/dist/tools/analyze.tools.js +8 -0
- package/packages/server/dist/tools/audit.tool.d.ts +8 -0
- package/packages/server/dist/tools/audit.tool.js +1 -0
- package/packages/server/dist/tools/brainstorm.tool.d.ts +7 -0
- package/packages/server/dist/tools/brainstorm.tool.js +9 -0
- package/packages/server/dist/tools/bridge.tools.d.ts +34 -0
- package/packages/server/dist/tools/bridge.tools.js +15 -0
- package/packages/server/dist/tools/context.tools.d.ts +15 -0
- package/packages/server/dist/tools/context.tools.js +10 -0
- package/packages/server/dist/tools/evolution.tools.d.ts +7 -0
- package/packages/server/dist/tools/evolution.tools.js +5 -0
- package/packages/server/dist/tools/execution.tools.d.ts +14 -0
- package/packages/server/dist/tools/execution.tools.js +4 -0
- package/packages/server/dist/tools/flow.tools.d.ts +7 -0
- package/packages/server/dist/tools/flow.tools.js +1 -0
- package/packages/server/dist/tools/forge.tools.d.ts +13 -0
- package/packages/server/dist/tools/forge.tools.js +10 -0
- package/packages/server/dist/tools/forget.tool.d.ts +8 -0
- package/packages/server/dist/tools/forget.tool.js +1 -0
- package/packages/server/dist/tools/graph.tool.d.ts +7 -0
- package/packages/server/dist/tools/graph.tool.js +5 -0
- package/packages/server/dist/tools/infra.tools.d.ts +10 -0
- package/packages/server/dist/tools/infra.tools.js +5 -0
- package/packages/server/dist/tools/list.tool.d.ts +7 -0
- package/packages/server/dist/tools/list.tool.js +2 -0
- package/packages/server/dist/tools/lookup.tool.d.ts +7 -0
- package/packages/server/dist/tools/lookup.tool.js +3 -0
- package/packages/server/dist/tools/manipulation.tools.d.ts +10 -0
- package/packages/server/dist/tools/manipulation.tools.js +4 -0
- package/packages/server/dist/tools/onboard.tool.d.ts +9 -0
- package/packages/server/dist/tools/onboard.tool.js +2 -0
- package/packages/server/dist/tools/persistence.tools.d.ts +10 -0
- package/packages/server/dist/tools/persistence.tools.js +5 -0
- package/packages/server/dist/tools/policy.tools.d.ts +7 -0
- package/packages/server/dist/tools/policy.tools.js +3 -0
- package/packages/server/dist/tools/present/browser.d.ts +4 -0
- package/packages/server/dist/tools/present/browser.js +93 -0
- package/packages/server/dist/tools/present/helpers.d.ts +18 -0
- package/packages/server/dist/tools/present/helpers.js +1 -0
- package/packages/server/dist/tools/present/html.d.ts +18 -0
- package/packages/server/dist/tools/present/html.js +5 -0
- package/packages/server/dist/tools/present/index.d.ts +2 -0
- package/packages/server/dist/tools/present/index.js +1 -0
- package/packages/server/dist/tools/present/markdown.d.ts +17 -0
- package/packages/server/dist/tools/present/markdown.js +8 -0
- package/packages/server/dist/tools/present/templates.d.ts +14 -0
- package/packages/server/dist/tools/present/templates.js +472 -0
- package/packages/server/dist/tools/present/tool.d.ts +27 -0
- package/packages/server/dist/tools/present/tool.js +19 -0
- package/packages/server/dist/tools/present-blocks.d.ts +46 -0
- package/packages/server/dist/tools/present-blocks.js +27 -0
- package/packages/server/dist/tools/present-charts.d.ts +31 -0
- package/packages/server/dist/tools/present-charts.js +34 -0
- package/packages/server/dist/tools/present-theme.d.ts +14 -0
- package/packages/server/dist/tools/present-theme.js +395 -0
- package/packages/server/dist/tools/present-utils.d.ts +11 -0
- package/packages/server/dist/tools/present-utils.js +1 -0
- package/packages/server/dist/tools/present.tool.d.ts +2 -0
- package/packages/server/dist/tools/present.tool.js +1 -0
- package/packages/server/dist/tools/produce.tool.d.ts +7 -0
- package/packages/server/dist/tools/produce.tool.js +4 -0
- package/packages/server/dist/tools/read.tool.d.ts +7 -0
- package/packages/server/dist/tools/read.tool.js +2 -0
- package/packages/server/dist/tools/reindex.tool.d.ts +11 -0
- package/packages/server/dist/tools/reindex.tool.js +3 -0
- package/packages/server/dist/tools/remember.tool.d.ts +9 -0
- package/packages/server/dist/tools/remember.tool.js +4 -0
- package/packages/server/dist/tools/replay.tool.d.ts +6 -0
- package/packages/server/dist/tools/replay.tool.js +3 -0
- package/packages/server/dist/tools/restore.tool.d.ts +6 -0
- package/packages/server/dist/tools/restore.tool.js +3 -0
- package/packages/server/dist/tools/search.tool.d.ts +11 -0
- package/packages/server/dist/tools/search.tool.js +10 -0
- package/packages/server/dist/tools/status.tool.d.ts +20 -0
- package/packages/server/dist/tools/status.tool.js +3 -0
- package/packages/server/dist/tools/update.tool.d.ts +8 -0
- package/packages/server/dist/tools/update.tool.js +1 -0
- package/packages/server/dist/tools/utility.tools.d.ts +15 -0
- package/packages/server/dist/tools/utility.tools.js +13 -0
- package/packages/server/dist/version-check.d.ts +32 -0
- package/packages/server/dist/version-check.js +1 -0
- package/packages/store/dist/graph-store.interface.d.ts +118 -0
- package/packages/store/dist/graph-store.interface.js +1 -0
- package/packages/store/dist/index.d.ts +6 -0
- package/packages/store/dist/index.js +1 -0
- package/packages/store/dist/lance-store.d.ts +44 -0
- package/packages/store/dist/lance-store.js +1 -0
- package/packages/store/dist/sqlite-graph-store.d.ts +45 -0
- package/packages/store/dist/sqlite-graph-store.js +58 -0
- package/packages/store/dist/store-factory.d.ts +12 -0
- package/packages/store/dist/store-factory.js +1 -0
- package/packages/store/dist/store.interface.d.ts +54 -0
- package/packages/store/dist/store.interface.js +1 -0
- package/packages/tools/dist/audit.d.ts +65 -0
- package/packages/tools/dist/audit.js +6 -0
- package/packages/tools/dist/batch.d.ts +23 -0
- package/packages/tools/dist/batch.js +1 -0
- package/packages/tools/dist/changelog.d.ts +36 -0
- package/packages/tools/dist/changelog.js +2 -0
- package/packages/tools/dist/check.d.ts +48 -0
- package/packages/tools/dist/check.js +2 -0
- package/packages/tools/dist/checkpoint.d.ts +19 -0
- package/packages/tools/dist/checkpoint.js +1 -0
- package/packages/tools/dist/codemod.d.ts +39 -0
- package/packages/tools/dist/codemod.js +2 -0
- package/packages/tools/dist/compact.d.ts +41 -0
- package/packages/tools/dist/compact.js +3 -0
- package/packages/tools/dist/config-extractor.d.ts +9 -0
- package/packages/tools/dist/config-extractor.js +7 -0
- package/packages/tools/dist/data-transform.d.ts +12 -0
- package/packages/tools/dist/data-transform.js +1 -0
- package/packages/tools/dist/dead-symbols.d.ts +28 -0
- package/packages/tools/dist/dead-symbols.js +2 -0
- package/packages/tools/dist/delegate.d.ts +36 -0
- package/packages/tools/dist/delegate.js +1 -0
- package/packages/tools/dist/diagram-builder.d.ts +9 -0
- package/packages/tools/dist/diagram-builder.js +9 -0
- package/packages/tools/dist/diff-parse.d.ts +28 -0
- package/packages/tools/dist/diff-parse.js +3 -0
- package/packages/tools/dist/digest.d.ts +50 -0
- package/packages/tools/dist/digest.js +6 -0
- package/packages/tools/dist/dogfood-log.d.ts +49 -0
- package/packages/tools/dist/dogfood-log.js +2 -0
- package/packages/tools/dist/encode.d.ts +16 -0
- package/packages/tools/dist/encode.js +1 -0
- package/packages/tools/dist/env-info.d.ts +30 -0
- package/packages/tools/dist/env-info.js +1 -0
- package/packages/tools/dist/eval.d.ts +15 -0
- package/packages/tools/dist/eval.js +2 -0
- package/packages/tools/dist/evidence-map.d.ts +92 -0
- package/packages/tools/dist/evidence-map.js +2 -0
- package/packages/tools/dist/file-cache.d.ts +41 -0
- package/packages/tools/dist/file-cache.js +3 -0
- package/packages/tools/dist/file-summary.d.ts +52 -0
- package/packages/tools/dist/file-summary.js +2 -0
- package/packages/tools/dist/file-walk.d.ts +6 -0
- package/packages/tools/dist/file-walk.js +1 -0
- package/packages/tools/dist/find-examples.d.ts +29 -0
- package/packages/tools/dist/find-examples.js +3 -0
- package/packages/tools/dist/find.d.ts +49 -0
- package/packages/tools/dist/find.js +1 -0
- package/packages/tools/dist/forge-classify.d.ts +44 -0
- package/packages/tools/dist/forge-classify.js +2 -0
- package/packages/tools/dist/forge-ground.d.ts +61 -0
- package/packages/tools/dist/forge-ground.js +1 -0
- package/packages/tools/dist/git-context.d.ts +25 -0
- package/packages/tools/dist/git-context.js +3 -0
- package/packages/tools/dist/graph-query.d.ts +86 -0
- package/packages/tools/dist/graph-query.js +1 -0
- package/packages/tools/dist/guide.d.ts +25 -0
- package/packages/tools/dist/guide.js +1 -0
- package/packages/tools/dist/health.d.ts +16 -0
- package/packages/tools/dist/health.js +2 -0
- package/packages/tools/dist/http-request.d.ts +25 -0
- package/packages/tools/dist/http-request.js +1 -0
- package/packages/tools/dist/index.d.ts +57 -0
- package/packages/tools/dist/index.js +1 -0
- package/packages/tools/dist/lane.d.ts +41 -0
- package/packages/tools/dist/lane.js +6 -0
- package/packages/tools/dist/measure.d.ts +42 -0
- package/packages/tools/dist/measure.js +2 -0
- package/packages/tools/dist/onboard-utils.d.ts +12 -0
- package/packages/tools/dist/onboard-utils.js +1 -0
- package/packages/tools/dist/onboard.d.ts +50 -0
- package/packages/tools/dist/onboard.js +18 -0
- package/packages/tools/dist/parse-output.d.ts +82 -0
- package/packages/tools/dist/parse-output.js +2 -0
- package/packages/tools/dist/path-resolver.d.ts +14 -0
- package/packages/tools/dist/path-resolver.js +1 -0
- package/packages/tools/dist/process-manager.d.ts +20 -0
- package/packages/tools/dist/process-manager.js +1 -0
- package/packages/tools/dist/queue.d.ts +40 -0
- package/packages/tools/dist/queue.js +1 -0
- package/packages/tools/dist/regex-test.d.ts +33 -0
- package/packages/tools/dist/regex-test.js +1 -0
- package/packages/tools/dist/regex-utils.d.ts +8 -0
- package/packages/tools/dist/regex-utils.js +1 -0
- package/packages/tools/dist/rename.d.ts +31 -0
- package/packages/tools/dist/rename.js +2 -0
- package/packages/tools/dist/replay.d.ts +59 -0
- package/packages/tools/dist/replay.js +4 -0
- package/packages/tools/dist/response-envelope.d.ts +43 -0
- package/packages/tools/dist/response-envelope.js +1 -0
- package/packages/tools/dist/restore-points.d.ts +22 -0
- package/packages/tools/dist/restore-points.js +1 -0
- package/packages/tools/dist/schema-validate.d.ts +25 -0
- package/packages/tools/dist/schema-validate.js +1 -0
- package/packages/tools/dist/scope-map.d.ts +51 -0
- package/packages/tools/dist/scope-map.js +1 -0
- package/packages/tools/dist/snippet.d.ts +35 -0
- package/packages/tools/dist/snippet.js +1 -0
- package/packages/tools/dist/stash.d.ts +14 -0
- package/packages/tools/dist/stash.js +1 -0
- package/packages/tools/dist/stratum-card.d.ts +30 -0
- package/packages/tools/dist/stratum-card.js +4 -0
- package/packages/tools/dist/symbol.d.ts +45 -0
- package/packages/tools/dist/symbol.js +3 -0
- package/packages/tools/dist/synthesis-engine.d.ts +13 -0
- package/packages/tools/dist/synthesis-engine.js +6 -0
- package/packages/tools/dist/test-run.d.ts +28 -0
- package/packages/tools/dist/test-run.js +2 -0
- package/packages/tools/dist/text-utils.d.ts +24 -0
- package/packages/tools/dist/text-utils.js +2 -0
- package/packages/tools/dist/time-utils.d.ts +20 -0
- package/packages/tools/dist/time-utils.js +1 -0
- package/packages/tools/dist/trace.d.ts +29 -0
- package/packages/tools/dist/trace.js +2 -0
- package/packages/tools/dist/truncation.d.ts +33 -0
- package/packages/tools/dist/truncation.js +7 -0
- package/packages/tools/dist/watch.d.ts +32 -0
- package/packages/tools/dist/watch.js +1 -0
- package/packages/tools/dist/web-fetch.d.ts +47 -0
- package/packages/tools/dist/web-fetch.js +8 -0
- package/packages/tools/dist/web-search.d.ts +25 -0
- package/packages/tools/dist/web-search.js +1 -0
- package/packages/tools/dist/workset.d.ts +47 -0
- package/packages/tools/dist/workset.js +1 -0
- package/packages/tui/dist/App-DU2KEylW.js +2 -0
- package/packages/tui/dist/App.d.ts +13 -0
- package/packages/tui/dist/App.js +2 -0
- package/packages/tui/dist/CuratedPanel-BIamXLNy.js +2 -0
- package/packages/tui/dist/LogPanel-Bo8a8QXB.js +3 -0
- package/packages/tui/dist/SearchPanel-CpJGczAc.js +2 -0
- package/packages/tui/dist/StatusPanel-BAbUxyqQ.js +2 -0
- package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
- package/packages/tui/dist/devtools-DMOZMn70.js +7 -0
- package/packages/tui/dist/hooks/useKBClient.d.ts +9 -0
- package/packages/tui/dist/hooks/useKBClient.js +2 -0
- package/packages/tui/dist/hooks/usePolling.d.ts +8 -0
- package/packages/tui/dist/hooks/usePolling.js +2 -0
- package/packages/tui/dist/index-BXafekwr.d.ts +64 -0
- package/packages/tui/dist/index.d.ts +7 -0
- package/packages/tui/dist/index.js +2 -0
- package/packages/tui/dist/jsx-runtime-y6Gdq5PZ.js +294 -0
- package/packages/tui/dist/panels/CuratedPanel.d.ts +7 -0
- package/packages/tui/dist/panels/CuratedPanel.js +2 -0
- package/packages/tui/dist/panels/LogPanel.d.ts +7 -0
- package/packages/tui/dist/panels/LogPanel.js +2 -0
- package/packages/tui/dist/panels/SearchPanel.d.ts +7 -0
- package/packages/tui/dist/panels/SearchPanel.js +2 -0
- package/packages/tui/dist/panels/StatusPanel.d.ts +7 -0
- package/packages/tui/dist/panels/StatusPanel.js +2 -0
- package/packages/tui/dist/react-D__J1GQe.js +24 -0
- package/packages/tui/dist/useKBClient-C35iA4uG.js +2 -0
- package/packages/tui/dist/usePolling-BbjnRWgx.js +2 -0
- package/scaffold/README.md +192 -0
- package/scaffold/adapters/claude-code.mjs +56 -0
- package/scaffold/adapters/copilot.mjs +270 -0
- package/scaffold/definitions/agents.mjs +189 -0
- package/scaffold/definitions/bodies.mjs +487 -0
- package/scaffold/definitions/hooks.mjs +43 -0
- package/scaffold/definitions/models.mjs +56 -0
- package/scaffold/definitions/plugins.mjs +38 -0
- package/scaffold/definitions/prompts.mjs +145 -0
- package/scaffold/definitions/protocols.mjs +679 -0
- package/scaffold/definitions/tools.mjs +229 -0
- package/scaffold/flows/aikit-advanced/flow.json +60 -0
- package/scaffold/flows/aikit-advanced/skills/execute/SKILL.md +124 -0
- package/scaffold/flows/aikit-advanced/skills/plan/SKILL.md +100 -0
- package/scaffold/flows/aikit-advanced/skills/spec/SKILL.md +100 -0
- package/scaffold/flows/aikit-advanced/skills/task/SKILL.md +99 -0
- package/scaffold/flows/aikit-advanced/skills/verify/SKILL.md +122 -0
- package/scaffold/flows/aikit-basic/flow.json +36 -0
- package/scaffold/flows/aikit-basic/skills/assess/SKILL.md +82 -0
- package/scaffold/flows/aikit-basic/skills/implement/SKILL.md +105 -0
- package/scaffold/flows/aikit-basic/skills/verify/SKILL.md +96 -0
- package/scaffold/general/agents/Architect-Reviewer-Alpha.agent.md +21 -0
- package/scaffold/general/agents/Architect-Reviewer-Beta.agent.md +21 -0
- package/scaffold/general/agents/Code-Reviewer-Alpha.agent.md +12 -0
- package/scaffold/general/agents/Code-Reviewer-Beta.agent.md +12 -0
- package/scaffold/general/agents/Debugger.agent.md +34 -0
- package/scaffold/general/agents/Documenter.agent.md +53 -0
- package/scaffold/general/agents/Explorer.agent.md +63 -0
- package/scaffold/general/agents/Frontend.agent.md +29 -0
- package/scaffold/general/agents/Implementer.agent.md +33 -0
- package/scaffold/general/agents/Orchestrator.agent.md +149 -0
- package/scaffold/general/agents/Planner.agent.md +79 -0
- package/scaffold/general/agents/README.md +57 -0
- package/scaffold/general/agents/Refactor.agent.md +36 -0
- package/scaffold/general/agents/Researcher-Alpha.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Beta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Delta.agent.md +20 -0
- package/scaffold/general/agents/Researcher-Gamma.agent.md +20 -0
- package/scaffold/general/agents/Security.agent.md +55 -0
- package/scaffold/general/agents/_shared/architect-reviewer-base.md +60 -0
- package/scaffold/general/agents/_shared/code-agent-base.md +262 -0
- package/scaffold/general/agents/_shared/code-reviewer-base.md +64 -0
- package/scaffold/general/agents/_shared/decision-protocol.md +27 -0
- package/scaffold/general/agents/_shared/forge-protocol.md +90 -0
- package/scaffold/general/agents/_shared/researcher-base.md +101 -0
- package/scaffold/general/agents/templates/adr-template.md +28 -0
- package/scaffold/general/agents/templates/execution-state.md +26 -0
- package/scaffold/general/prompts/ask.prompt.md +21 -0
- package/scaffold/general/prompts/debug.prompt.md +25 -0
- package/scaffold/general/prompts/design.prompt.md +23 -0
- package/scaffold/general/prompts/implement.prompt.md +26 -0
- package/scaffold/general/prompts/plan.prompt.md +25 -0
- package/scaffold/general/prompts/review.prompt.md +32 -0
- package/scaffold/general/skills/adr-skill/SKILL.md +329 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-madr.md +89 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-readme.md +20 -0
- package/scaffold/general/skills/adr-skill/assets/templates/adr-simple.md +46 -0
- package/scaffold/general/skills/adr-skill/references/adr-conventions.md +95 -0
- package/scaffold/general/skills/adr-skill/references/examples.md +193 -0
- package/scaffold/general/skills/adr-skill/references/review-checklist.md +77 -0
- package/scaffold/general/skills/adr-skill/references/template-variants.md +52 -0
- package/scaffold/general/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
- package/scaffold/general/skills/adr-skill/scripts/new_adr.js +391 -0
- package/scaffold/general/skills/adr-skill/scripts/set_adr_status.js +169 -0
- package/scaffold/general/skills/aikit/SKILL.md +521 -0
- package/scaffold/general/skills/brainstorming/SKILL.md +259 -0
- package/scaffold/general/skills/brainstorming/scripts/frame-template.html +365 -0
- package/scaffold/general/skills/brainstorming/scripts/helper.js +216 -0
- package/scaffold/general/skills/brainstorming/scripts/server.cjs +9 -0
- package/scaffold/general/skills/brainstorming/scripts/server.src.cjs +249 -0
- package/scaffold/general/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/scaffold/general/skills/brainstorming/visual-companion.md +430 -0
- package/scaffold/general/skills/c4-architecture/SKILL.md +295 -0
- package/scaffold/general/skills/c4-architecture/references/advanced-patterns.md +552 -0
- package/scaffold/general/skills/c4-architecture/references/c4-syntax.md +492 -0
- package/scaffold/general/skills/c4-architecture/references/common-mistakes.md +437 -0
- package/scaffold/general/skills/lesson-learned/SKILL.md +105 -0
- package/scaffold/general/skills/lesson-learned/references/anti-patterns.md +55 -0
- package/scaffold/general/skills/lesson-learned/references/se-principles.md +109 -0
- package/scaffold/general/skills/multi-agents-development/SKILL.md +435 -0
- package/scaffold/general/skills/multi-agents-development/architecture-review-prompt.md +81 -0
- package/scaffold/general/skills/multi-agents-development/code-quality-review-prompt.md +91 -0
- package/scaffold/general/skills/multi-agents-development/implementer-prompt.md +93 -0
- package/scaffold/general/skills/multi-agents-development/parallel-dispatch-example.md +167 -0
- package/scaffold/general/skills/multi-agents-development/spec-review-prompt.md +81 -0
- package/scaffold/general/skills/present/SKILL.md +424 -0
- package/scaffold/general/skills/requirements-clarity/SKILL.md +324 -0
- package/scaffold/general/skills/session-handoff/SKILL.md +189 -0
- package/scaffold/general/skills/session-handoff/references/handoff-template.md +139 -0
- package/scaffold/general/skills/session-handoff/references/resume-checklist.md +80 -0
- package/scaffold/general/skills/session-handoff/scripts/check_staleness.js +269 -0
- package/scaffold/general/skills/session-handoff/scripts/create_handoff.js +299 -0
- package/scaffold/general/skills/session-handoff/scripts/list_handoffs.js +113 -0
- package/scaffold/general/skills/session-handoff/scripts/validate_handoff.js +241 -0
- package/scaffold/generate.mjs +82 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Curated catalog of software engineering principles. Load this before analyzing code changes so you can map observations to named principles.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Software Engineering Principles
|
|
6
|
+
|
|
7
|
+
Use this as a lookup table. When you spot a pattern in a diff, find the matching principle here. Each entry includes **code signals** -- what to look for in actual changes.
|
|
8
|
+
|
|
9
|
+
## Design Principles (SOLID)
|
|
10
|
+
|
|
11
|
+
**Single Responsibility Principle (SRP)**
|
|
12
|
+
A module should have one reason to change.
|
|
13
|
+
Code signals: A class/file was split into two. A function was extracted. A component stopped handling both UI and data fetching.
|
|
14
|
+
|
|
15
|
+
**Open/Closed Principle (OCP)**
|
|
16
|
+
Open for extension, closed for modification.
|
|
17
|
+
Code signals: New behavior added without changing existing code. A plugin/hook/callback system introduced. Strategy pattern or configuration used instead of conditionals.
|
|
18
|
+
|
|
19
|
+
**Liskov Substitution Principle (LSP)**
|
|
20
|
+
Subtypes must be substitutable for their base types.
|
|
21
|
+
Code signals: An interface was introduced to unify implementations. A subclass override changed behavior in a way that broke callers (violation). Type narrowing or guards added.
|
|
22
|
+
|
|
23
|
+
**Interface Segregation Principle (ISP)**
|
|
24
|
+
No client should depend on methods it doesn't use.
|
|
25
|
+
Code signals: A large interface was split into smaller ones. Optional methods removed from an interface. A "fat" props object was broken into focused ones.
|
|
26
|
+
|
|
27
|
+
**Dependency Inversion Principle (DIP)**
|
|
28
|
+
Depend on abstractions, not concretions.
|
|
29
|
+
Code signals: A concrete dependency replaced with an interface/injection. A factory or provider pattern introduced. Import paths changed from specific implementations to abstract layers.
|
|
30
|
+
|
|
31
|
+
**Composition over Inheritance**
|
|
32
|
+
Favor object composition over class inheritance.
|
|
33
|
+
Code signals: Inheritance hierarchy replaced with delegation. Mixins or HOCs replaced with hooks or composition. A "base class" was removed.
|
|
34
|
+
|
|
35
|
+
## Simplicity Principles
|
|
36
|
+
|
|
37
|
+
**DRY (Don't Repeat Yourself)**
|
|
38
|
+
Every piece of knowledge should have a single representation.
|
|
39
|
+
Code signals: Duplicate code extracted into a shared function. A constant replaced repeated literals. A template/generator replaced copy-pasted boilerplate.
|
|
40
|
+
|
|
41
|
+
**KISS (Keep It Simple, Stupid)**
|
|
42
|
+
The simplest solution that works is the best.
|
|
43
|
+
Code signals: A complex abstraction replaced with a straightforward implementation. Unnecessary indirection removed. A clever one-liner replaced with readable code.
|
|
44
|
+
|
|
45
|
+
**YAGNI (You Aren't Gonna Need It)**
|
|
46
|
+
Don't build it until you actually need it.
|
|
47
|
+
Code signals: Speculative features removed. Unused configuration options deleted. An over-engineered solution simplified to match actual requirements.
|
|
48
|
+
|
|
49
|
+
**Rule of Three**
|
|
50
|
+
Wait until the third duplication before abstracting.
|
|
51
|
+
Code signals: Similar code exists in 2 places and was left alone (good). A premature abstraction was introduced after only one use (violation). Third occurrence triggered extraction (textbook application).
|
|
52
|
+
|
|
53
|
+
**Principle of Least Surprise**
|
|
54
|
+
Code should behave the way most users would expect.
|
|
55
|
+
Code signals: A function renamed to better describe what it does. Return types made consistent. Side effects made explicit or removed.
|
|
56
|
+
|
|
57
|
+
## Structural Principles
|
|
58
|
+
|
|
59
|
+
**Separation of Concerns**
|
|
60
|
+
Different responsibilities should live in different modules.
|
|
61
|
+
Code signals: Business logic extracted from UI components. Data access separated from domain logic. Configuration separated from behavior. A "god file" split into focused modules.
|
|
62
|
+
|
|
63
|
+
**High Cohesion**
|
|
64
|
+
Related functionality should live together.
|
|
65
|
+
Code signals: Scattered related functions gathered into one module. A utility file broken up so each piece lives near its consumers. A feature folder created.
|
|
66
|
+
|
|
67
|
+
**Loose Coupling**
|
|
68
|
+
Modules should depend on each other as little as possible.
|
|
69
|
+
Code signals: Direct imports replaced with events/callbacks. A shared dependency removed. Modules communicate through well-defined interfaces instead of reaching into internals.
|
|
70
|
+
|
|
71
|
+
**Encapsulation**
|
|
72
|
+
Hide internal details, expose only what's necessary.
|
|
73
|
+
Code signals: Public methods reduced. Internal helpers made private. A module's API surface shrunk. Implementation details hidden behind a facade.
|
|
74
|
+
|
|
75
|
+
**Information Hiding**
|
|
76
|
+
Modules should not expose their internal data structures.
|
|
77
|
+
Code signals: Raw data structures wrapped in accessor methods. Internal state made private. A data transformation moved inside the module that owns the data.
|
|
78
|
+
|
|
79
|
+
## Pragmatic Principles
|
|
80
|
+
|
|
81
|
+
**Boy Scout Rule**
|
|
82
|
+
Leave the code better than you found it.
|
|
83
|
+
Code signals: Small cleanups alongside a feature change. A renamed variable for clarity. A dead code path removed. An outdated comment updated.
|
|
84
|
+
|
|
85
|
+
**Fail Fast**
|
|
86
|
+
Detect and report errors as early as possible.
|
|
87
|
+
Code signals: Input validation added at entry points. Assertions added for invariants. Early returns replacing deep nesting. Error handling moved closer to the source.
|
|
88
|
+
|
|
89
|
+
**Defensive Programming**
|
|
90
|
+
Anticipate and handle unexpected inputs gracefully.
|
|
91
|
+
Code signals: Null checks added. Default values provided. Edge cases handled. Error boundaries introduced.
|
|
92
|
+
|
|
93
|
+
**Premature Optimization (avoiding it)**
|
|
94
|
+
Don't optimize until you've measured.
|
|
95
|
+
Code signals: A simple implementation chosen over a "faster" complex one. Readability prioritized over micro-performance. A profiling step added before optimization work.
|
|
96
|
+
|
|
97
|
+
## Refactoring Patterns
|
|
98
|
+
|
|
99
|
+
**Extract Method/Function**
|
|
100
|
+
Code signals: A long function split into named sub-functions. Inline logic replaced with a well-named call.
|
|
101
|
+
|
|
102
|
+
**Extract Class/Module**
|
|
103
|
+
Code signals: A file split into multiple files. A class split into two with distinct responsibilities.
|
|
104
|
+
|
|
105
|
+
**Replace Conditional with Polymorphism**
|
|
106
|
+
Code signals: A switch/if-else chain replaced with a strategy pattern or subclass dispatch. A type map introduced.
|
|
107
|
+
|
|
108
|
+
**Introduce Parameter Object**
|
|
109
|
+
Code signals: Multiple related parameters grouped into a single options/config object. Function signatures simplified.
|
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
# Multi-Agent Development
|
|
2
|
+
|
|
3
|
+
Comprehensive patterns for orchestrating multiple AI agents in parallel development workflows. Covers task decomposition, parallel dispatch, context crafting, status handling, review pipelines, and recovery.
|
|
4
|
+
|
|
5
|
+
**Core Principle**: Dispatch multiple agents for focused tasks. Each subagent gets fresh, focused context with explicit scope — never inherited session state.
|
|
6
|
+
|
|
7
|
+
Load this skill when orchestrating multi-agent work: planning parallel batches, crafting delegation prompts, handling implementer status, running review pipelines, or recovering from agent failures.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## §1 Agent Roles & Model Selection
|
|
12
|
+
|
|
13
|
+
### Role Categories
|
|
14
|
+
|
|
15
|
+
| Role | Agents | When to Use | Parallelizable |
|
|
16
|
+
|------|--------|-------------|----------------|
|
|
17
|
+
| **Orchestration** | Orchestrator, Planner | Workflow control, planning | No (sequential) |
|
|
18
|
+
| **Implementation** | Implementer, Frontend, Refactor | Code creation/modification | Yes (disjoint files only) |
|
|
19
|
+
| **Research** | Explorer, Researcher-Alpha/Beta/Gamma/Delta | Codebase exploration, decisions | Yes (always) |
|
|
20
|
+
| **Review** | Code-Reviewer-Alpha/Beta, Architect-Reviewer-Alpha/Beta | Quality verification | Yes (always) |
|
|
21
|
+
| **Diagnostics** | Debugger, Security | Issue tracing, vulnerability analysis | Yes (read-only) |
|
|
22
|
+
| **Documentation** | Documenter | README, API docs, changelog | Yes (disjoint files) |
|
|
23
|
+
|
|
24
|
+
### Model Selection by Task Complexity
|
|
25
|
+
|
|
26
|
+
Choose the **least powerful model that can handle the role**:
|
|
27
|
+
|
|
28
|
+
| Complexity Signal | Model Tier | Example Agents |
|
|
29
|
+
|-------------------|-----------|----------------|
|
|
30
|
+
| Mechanical (rename, move, add field) | Fast model | Explorer (Gemini Flash) |
|
|
31
|
+
| Standard (implement spec, write tests) | Mid-tier | Implementer (GPT-5.4), Refactor (GPT-5.4) |
|
|
32
|
+
| Judgment-heavy (architecture, security, debug) | Strongest | Debugger (Opus 4.6), Security (Opus 4.6) |
|
|
33
|
+
| Multi-model cross-validation | Mixed | Researcher-Alpha/Beta/Gamma/Delta (all different) |
|
|
34
|
+
|
|
35
|
+
**Upgrade signal**: If an agent returns `BLOCKED` or `DONE_WITH_CONCERNS` on a task classified as "Standard", consider re-dispatching to a stronger model.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## §2 Task Decomposition Rules
|
|
40
|
+
|
|
41
|
+
### The Golden Rule
|
|
42
|
+
> **One task = one focused problem domain = 1-3 files maximum.**
|
|
43
|
+
|
|
44
|
+
### Decomposition Checklist
|
|
45
|
+
|
|
46
|
+
For each task, specify ALL of:
|
|
47
|
+
- [ ] **Target files** — exact paths to create or modify
|
|
48
|
+
- [ ] **Acceptance criteria** — what "done" looks like (testable)
|
|
49
|
+
- [ ] **Agent assignment** — which agent handles this
|
|
50
|
+
- [ ] **Dependencies** — which tasks must complete first (if any)
|
|
51
|
+
|
|
52
|
+
### Sizing Guide
|
|
53
|
+
|
|
54
|
+
| Task Size | Files | Example | Agent |
|
|
55
|
+
|-----------|-------|---------|-------|
|
|
56
|
+
| **Micro** | 1 file | Add a utility function | Implementer |
|
|
57
|
+
| **Small** | 1-2 files | New endpoint + test | Implementer |
|
|
58
|
+
| **Standard** | 2-3 files | Feature with service + controller + test | Implementer |
|
|
59
|
+
| **Too big** | 4+ files | **SPLIT IT** — decompose further | — |
|
|
60
|
+
|
|
61
|
+
### Splitting Strategies
|
|
62
|
+
- **By layer**: Service logic (Implementer) + UI component (Frontend) + tests (Implementer)
|
|
63
|
+
- **By feature boundary**: Auth endpoints (Implementer A) + Profile endpoints (Implementer B)
|
|
64
|
+
- **By concern**: Data model changes (Implementer) + API route changes (Implementer) + UI updates (Frontend)
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## §3 Independence Decision Tree
|
|
69
|
+
|
|
70
|
+
Before marking tasks as parallel, walk this tree:
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Task A and Task B — can they run in parallel?
|
|
74
|
+
│
|
|
75
|
+
├─ Do they share ANY files? (create, modify, or delete the same file)
|
|
76
|
+
│ ├─ YES → SEQUENTIAL (or merge into one task)
|
|
77
|
+
│ └─ NO ↓
|
|
78
|
+
│
|
|
79
|
+
├─ Do they share mutable state? (env vars, globals, same DB table, shared config)
|
|
80
|
+
│ ├─ YES → SEQUENTIAL
|
|
81
|
+
│ └─ NO ↓
|
|
82
|
+
│
|
|
83
|
+
├─ Does B need A's output? (B reads a file A creates, B uses A's new export)
|
|
84
|
+
│ ├─ YES → SEQUENTIAL (A before B)
|
|
85
|
+
│ └─ NO ↓
|
|
86
|
+
│
|
|
87
|
+
├─ Would A's result change B's approach? (A discovers something that affects B)
|
|
88
|
+
│ ├─ YES → SEQUENTIAL or single agent
|
|
89
|
+
│ └─ NO ↓
|
|
90
|
+
│
|
|
91
|
+
├─ Resource contention? (same port, same build process, same lock file)
|
|
92
|
+
│ ├─ YES → SEQUENTIAL
|
|
93
|
+
│ └─ NO ↓
|
|
94
|
+
│
|
|
95
|
+
└─ ✅ SAFE TO PARALLELIZE
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Edge Cases
|
|
99
|
+
|
|
100
|
+
| Situation | Verdict | Why |
|
|
101
|
+
|-----------|---------|-----|
|
|
102
|
+
| Both import from same module (read-only) | ✅ Parallel | Reading shared code is fine |
|
|
103
|
+
| Both add exports to same index file | ❌ Sequential | Concurrent index.ts edits will conflict |
|
|
104
|
+
| A creates a type, B uses that type | ❌ Sequential | B depends on A's output |
|
|
105
|
+
| Both modify different test files | ✅ Parallel | Disjoint file sets |
|
|
106
|
+
| Both touch package.json | ❌ Sequential | Shared file |
|
|
107
|
+
| A adds a route, B adds middleware | ⚠️ Check | If B's middleware affects A's route → sequential |
|
|
108
|
+
|
|
109
|
+
### Integration Verification (after parallel batch completes)
|
|
110
|
+
|
|
111
|
+
1. **Conflict check**: Did any agent unexpectedly modify a file assigned to another agent?
|
|
112
|
+
2. **Import check**: Do all new cross-references resolve?
|
|
113
|
+
3. **Full suite**: `check({})` + `test_run({})` — everything must pass
|
|
114
|
+
4. **Spot check**: Manually verify at least one task's output matches acceptance criteria
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## §4 Parallel Dispatch Patterns
|
|
119
|
+
|
|
120
|
+
### Dispatch Rules
|
|
121
|
+
|
|
122
|
+
1. **Max 4 concurrent file-modifying agents** per batch
|
|
123
|
+
2. **Read-only agents have no limit** — Explorer, Researcher*, Reviewer*, Security can always run in parallel
|
|
124
|
+
3. **Build dependency graph first** — phases with no dependencies MUST be batched together
|
|
125
|
+
4. **Never dispatch two implementers to the same file** — even different sections
|
|
126
|
+
|
|
127
|
+
### Batch Strategy
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Phase Plan:
|
|
131
|
+
Phase 1: [Task A, Task B, Task C] ← no dependencies between A/B/C
|
|
132
|
+
Phase 2: [Task D, Task E] ← D depends on A, E depends on B
|
|
133
|
+
Phase 3: [Task F] ← F depends on D and E
|
|
134
|
+
|
|
135
|
+
Execution:
|
|
136
|
+
Batch 1: dispatch(A, B, C) in parallel → review → gate
|
|
137
|
+
Batch 2: dispatch(D, E) in parallel → review → gate
|
|
138
|
+
Batch 3: dispatch(F) → review → gate
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### Anti-Patterns
|
|
142
|
+
|
|
143
|
+
| ❌ Don't | ✅ Do Instead |
|
|
144
|
+
|----------|--------------|
|
|
145
|
+
| Dispatch 6 implementers at once | Max 4, queue the rest |
|
|
146
|
+
| Give one agent 10 files | Split into 3-4 focused tasks |
|
|
147
|
+
| Let agents read the full plan | Give each agent ONLY its task context |
|
|
148
|
+
| Retry same prompt on failure | Diagnose first, then re-prompt with fix |
|
|
149
|
+
| Skip review after parallel batch | ALWAYS review + integration verify |
|
|
150
|
+
| Inherit session context to subagent | Build fresh, focused context per dispatch |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## §5 Context Crafting Guide
|
|
155
|
+
|
|
156
|
+
### The Controller Principle
|
|
157
|
+
> **The Orchestrator provides ALL context. Subagents never need to search for context themselves.**
|
|
158
|
+
|
|
159
|
+
Each subagent gets a fresh, self-contained prompt. No inherited session state. No "read the plan first."
|
|
160
|
+
|
|
161
|
+
### The 6-Point Prompt Template
|
|
162
|
+
|
|
163
|
+
Every delegation prompt MUST include:
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
## 1. Scope
|
|
167
|
+
Files to create/modify: [exact paths]
|
|
168
|
+
Files to NOT touch: [boundaries]
|
|
169
|
+
|
|
170
|
+
## 2. Goal
|
|
171
|
+
[What the code should do — acceptance criteria, testable outcomes]
|
|
172
|
+
|
|
173
|
+
## 3. Architectural Context
|
|
174
|
+
[Relevant patterns, conventions, existing code structure]
|
|
175
|
+
[Include actual code snippets from compact/digest — don't tell agent to "go read X"]
|
|
176
|
+
|
|
177
|
+
## 4. Constraints
|
|
178
|
+
- Follow [pattern/convention]
|
|
179
|
+
- Do NOT modify [boundary files]
|
|
180
|
+
- Use [specific library/approach]
|
|
181
|
+
|
|
182
|
+
## 5. FORGE Context
|
|
183
|
+
Tier: [Floor/Standard/Critical]
|
|
184
|
+
Evidence requirements: [what evidence to collect]
|
|
185
|
+
|
|
186
|
+
## 6. Self-Review & Status
|
|
187
|
+
Before declaring DONE, verify:
|
|
188
|
+
- [ ] All acceptance criteria met
|
|
189
|
+
- [ ] No files outside scope modified
|
|
190
|
+
- [ ] Tests pass (if applicable)
|
|
191
|
+
- [ ] Code follows stated conventions
|
|
192
|
+
|
|
193
|
+
End with status: DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### What to Include vs Omit
|
|
197
|
+
|
|
198
|
+
| ✅ Include | ❌ Omit |
|
|
199
|
+
|-----------|---------|
|
|
200
|
+
| Exact file paths and code snippets | Full session history |
|
|
201
|
+
| Acceptance criteria | Other agents' tasks |
|
|
202
|
+
| Relevant conventions (from KB) | Unrelated architecture context |
|
|
203
|
+
| Compact/digest of relevant files | Raw file contents of large files |
|
|
204
|
+
| Error messages (if fixing a bug) | Previous failed attempts (unless relevant) |
|
|
205
|
+
| FORGE tier and ceremony | Full FORGE protocol explanation |
|
|
206
|
+
|
|
207
|
+
### Context Size Budget
|
|
208
|
+
|
|
209
|
+
| Task Complexity | Context Target | Approach |
|
|
210
|
+
|-----------------|---------------|----------|
|
|
211
|
+
| Micro (1 file) | ~500 tokens | Inline code snippet + goal |
|
|
212
|
+
| Small (1-2 files) | ~1000 tokens | `compact` of target files + goal |
|
|
213
|
+
| Standard (2-3 files) | ~2000 tokens | `digest` of related files + architectural context |
|
|
214
|
+
| Complex (judgment-heavy) | ~3000 tokens | `digest` + relevant decisions from KB |
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## §6 Subagent Execution Cycle
|
|
219
|
+
|
|
220
|
+
### Lifecycle
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
Orchestrator Subagent (fresh instance)
|
|
224
|
+
│ │
|
|
225
|
+
├─ Craft focused prompt ──────────────►│
|
|
226
|
+
│ (6-point template) │
|
|
227
|
+
│ ├─ Understand scope
|
|
228
|
+
│ ├─ Implement changes
|
|
229
|
+
│ ├─ Self-review (checklist)
|
|
230
|
+
│◄─────────────────── Return status ───┤
|
|
231
|
+
│ │ (DONE/CONCERNS/NEEDS/BLOCKED)
|
|
232
|
+
│ │
|
|
233
|
+
├─ Handle status (see §7) × (subagent terminates)
|
|
234
|
+
│
|
|
235
|
+
├─ Automated gate (check/test_run)
|
|
236
|
+
│
|
|
237
|
+
├─ Dispatch reviewers (see §8)
|
|
238
|
+
│
|
|
239
|
+
└─ FORGE evidence_map gate
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Key Rules
|
|
243
|
+
|
|
244
|
+
1. **One subagent = one task**. Never reuse a subagent for a different task.
|
|
245
|
+
2. **Controller provides context**. The subagent's prompt contains everything it needs — it should NOT need to search/explore the codebase.
|
|
246
|
+
3. **Self-review before handoff**. Every implementer must complete the self-review checklist before declaring DONE.
|
|
247
|
+
4. **Status is mandatory**. Every subagent response MUST end with exactly ONE status code.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
## §7 Implementer Status Protocol
|
|
252
|
+
|
|
253
|
+
### Status Codes
|
|
254
|
+
|
|
255
|
+
Every implementer (Implementer, Frontend, Refactor) MUST end their response with exactly ONE:
|
|
256
|
+
|
|
257
|
+
| Status | Meaning | Orchestrator Action |
|
|
258
|
+
|--------|---------|-------------------|
|
|
259
|
+
| **DONE** | All tasks complete, self-review passed | → Automated gate → Review pipeline |
|
|
260
|
+
| **DONE_WITH_CONCERNS** | Complete but flagging issues: [list] | → Surface concerns as `Assumed` claims in evidence_map → Likely HOLD → Address before review |
|
|
261
|
+
| **NEEDS_CONTEXT** | Cannot proceed without: [specific question] | → Provide missing context → Re-dispatch same task (counts as retry) |
|
|
262
|
+
| **BLOCKED** | Hit a wall: [description] | → Diagnose (see below) |
|
|
263
|
+
|
|
264
|
+
### BLOCKED Diagnosis Tree
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
Agent returned BLOCKED
|
|
268
|
+
│
|
|
269
|
+
├─ Missing context? (needs info not in prompt)
|
|
270
|
+
│ → Provide context, re-dispatch
|
|
271
|
+
│
|
|
272
|
+
├─ Wrong model? (task too complex for assigned model)
|
|
273
|
+
│ → Re-dispatch to stronger model (e.g., Implementer → Debugger)
|
|
274
|
+
│
|
|
275
|
+
├─ Scope too broad? (agent overwhelmed)
|
|
276
|
+
│ → Split task further, re-dispatch smaller pieces
|
|
277
|
+
│
|
|
278
|
+
├─ Plan wrong? (implementation approach won't work)
|
|
279
|
+
│ → Re-plan this phase, check KB for alternatives
|
|
280
|
+
│
|
|
281
|
+
└─ External blocker? (dependency not ready, API unavailable)
|
|
282
|
+
→ Park task, proceed with independent work, revisit later
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### FORGE Composition
|
|
286
|
+
|
|
287
|
+
Status protocol and FORGE are **independent but composable**:
|
|
288
|
+
|
|
289
|
+
- **Status** = subjective agent telemetry ("I think I'm done")
|
|
290
|
+
- **FORGE** = objective quality evidence ("the evidence says it's done")
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
DONE → proceed to automated gate → FORGE evidence_map
|
|
294
|
+
DONE_WITH_CONCERNS → concerns become 'Assumed' claims → evidence_map likely HOLDs
|
|
295
|
+
NEEDS_CONTEXT → provide context, re-dispatch (no FORGE yet)
|
|
296
|
+
BLOCKED → diagnose:
|
|
297
|
+
contract/security issue → HARD_BLOCK
|
|
298
|
+
resource/scope issue → re-plan, no FORGE
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**Critical rule**: Every `DONE` status MUST be followed by `evidence_map({ action: "gate" })` before proceeding to review. No shortcuts.
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## §8 Review Pipeline
|
|
306
|
+
|
|
307
|
+
### Four-Stage Pipeline
|
|
308
|
+
|
|
309
|
+
```
|
|
310
|
+
Stage 1: Implementer Self-Review (embedded in agent output)
|
|
311
|
+
└─ Checklist: scope respected, tests pass, conventions followed
|
|
312
|
+
│
|
|
313
|
+
Stage 2: Orchestrator Automated Gate
|
|
314
|
+
└─ check({}) + test_run({}) MUST pass
|
|
315
|
+
└─ Validate self-review checklist present in output
|
|
316
|
+
└─ FAIL → bounce back to implementer with specific gap
|
|
317
|
+
└─ PASS ↓
|
|
318
|
+
│
|
|
319
|
+
Stage 3: Dual Code Review (parallel)
|
|
320
|
+
├─ Code-Reviewer-Alpha (GPT-5.4): code quality + Spec Alignment
|
|
321
|
+
└─ Code-Reviewer-Beta (Opus 4.6): code quality + Spec Alignment
|
|
322
|
+
│ Both review same code, different model perspectives
|
|
323
|
+
│ Spec Alignment = "Does this match what was asked?"
|
|
324
|
+
│
|
|
325
|
+
Stage 4: Conditional Reviews (parallel if both needed)
|
|
326
|
+
├─ Architecture Review — if boundary changes, new modules, pattern shifts
|
|
327
|
+
└─ Security Review — if auth, crypto, input handling, or external data
|
|
328
|
+
│
|
|
329
|
+
FORGE Gate: evidence_map({ action: "gate" })
|
|
330
|
+
└─ YIELD → proceed to commit
|
|
331
|
+
└─ HOLD → address flagged items → re-gate (max 3 rounds)
|
|
332
|
+
└─ HARD_BLOCK → escalate to user
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Spec Alignment Dimension (for Code Reviewers)
|
|
336
|
+
|
|
337
|
+
Both Code-Reviewer-Alpha and Code-Reviewer-Beta evaluate an explicit **Spec Alignment** dimension:
|
|
338
|
+
|
|
339
|
+
1. Does the implementation match the acceptance criteria from the task?
|
|
340
|
+
2. Are there over-builds (features not requested)?
|
|
341
|
+
3. Are there under-builds (requirements missed)?
|
|
342
|
+
4. Does the output match the expected file changes?
|
|
343
|
+
|
|
344
|
+
This catches spec drift that automated tests might miss.
|
|
345
|
+
|
|
346
|
+
### When to Skip Stages
|
|
347
|
+
|
|
348
|
+
| Stage | Skip When |
|
|
349
|
+
|-------|-----------|
|
|
350
|
+
| Architecture Review | No new modules, no boundary changes, no new patterns |
|
|
351
|
+
| Security Review | No auth, no crypto, no external input handling |
|
|
352
|
+
| FORGE Gate | Floor-tier tasks only (simple, mechanical changes) |
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## §9 Recovery & Escalation
|
|
357
|
+
|
|
358
|
+
### Retry Policy
|
|
359
|
+
|
|
360
|
+
- **Max 2 retries per agent per task** — after that, re-plan or escalate
|
|
361
|
+
- Each retry MUST include the specific failure reason in the new prompt
|
|
362
|
+
- Never retry with the same prompt — always add diagnostic context
|
|
363
|
+
|
|
364
|
+
### Loop Detection
|
|
365
|
+
|
|
366
|
+
If an agent returns the same error/status 2+ times:
|
|
367
|
+
1. **STOP** — do not retry again
|
|
368
|
+
2. Check if the approach is fundamentally wrong
|
|
369
|
+
3. Consider: different agent, different model, different decomposition, or user escalation
|
|
370
|
+
|
|
371
|
+
### Emergency Procedures
|
|
372
|
+
|
|
373
|
+
When parallel batch causes cascading failures:
|
|
374
|
+
|
|
375
|
+
```
|
|
376
|
+
STOP → Halt all running agents immediately
|
|
377
|
+
ASSESS → git diff --stat + check({}) — how bad is it?
|
|
378
|
+
CONTAIN → Limited (1-3 files): fix or re-delegate
|
|
379
|
+
Widespread (10+ files): git stash to preserve for analysis
|
|
380
|
+
RECOVER → Partial: git checkout -- {specific files}
|
|
381
|
+
Full: git stash (preserves) or git checkout . (discards)
|
|
382
|
+
Nuclear: git reset --hard HEAD (last resort)
|
|
383
|
+
DOCUMENT → remember what went wrong, update plan
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Scope Tripwires
|
|
387
|
+
|
|
388
|
+
| Signal | Action |
|
|
389
|
+
|--------|--------|
|
|
390
|
+
| Agent modified **2x more files** than planned | Pause, review before continuing |
|
|
391
|
+
| Agent returns `ESCALATE` or `BLOCKED` repeatedly | Do NOT re-delegate unchanged. Diagnose first |
|
|
392
|
+
| Agent's output contradicts the plan | Stop, compare with plan, re-align |
|
|
393
|
+
| Tests that were passing now fail | Immediate rollback of that agent's changes |
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## §10 Common Mistakes & Red Flags
|
|
398
|
+
|
|
399
|
+
### Delegation Anti-Patterns
|
|
400
|
+
|
|
401
|
+
| ❌ Mistake | Why It Fails | ✅ Fix |
|
|
402
|
+
|-----------|-------------|--------|
|
|
403
|
+
| **Too broad scope** — "implement the auth system" | Agent lacks clear boundaries, produces sprawling changes | Split: "add JWT middleware to auth.ts" + "add login endpoint to routes.ts" |
|
|
404
|
+
| **No constraints** — "add a feature" | Agent invents architecture, conflicts with existing patterns | Include conventions, boundaries, existing patterns in prompt |
|
|
405
|
+
| **Vague output** — "make it work" | No way to verify completion | Specific acceptance criteria: "endpoint returns 200 with {schema}" |
|
|
406
|
+
| **Session context inheritance** — "continue from where we left off" | Subagent has stale/polluted context | Fresh prompt with 6-point template every time |
|
|
407
|
+
| **Skipping reviews** — "it's a small change" | Small changes cause big regressions | ALWAYS run automated gate minimum |
|
|
408
|
+
| **Parallel on shared files** — "both agents edit config.ts" | Merge conflicts, lost changes | Sequential, or merge into one task |
|
|
409
|
+
| **Trusting the report** — "agent said DONE so it's done" | Agents are optimistic, miss edge cases | Automated gate + dual code review catches this |
|
|
410
|
+
| **Brute-force retries** — same prompt 3 times | If it failed twice, it'll fail a third time | Diagnose, change approach, then retry |
|
|
411
|
+
| **Orchestrator implements** — "just this one small fix" | Breaks the delegation contract, no review | ALWAYS delegate, no matter how small |
|
|
412
|
+
|
|
413
|
+
### Red Flags in Agent Output
|
|
414
|
+
|
|
415
|
+
| Flag | What It Means | Action |
|
|
416
|
+
|------|--------------|--------|
|
|
417
|
+
| Agent modified files outside its scope | Scope creep or misunderstanding | Rollback out-of-scope files, re-delegate with tighter constraints |
|
|
418
|
+
| Agent added dependencies not in plan | Unauthorized architectural decision | Review necessity, likely rollback |
|
|
419
|
+
| Agent skipped self-review checklist | Rushing, likely incomplete | Bounce back with checklist requirement |
|
|
420
|
+
| Agent's DONE but tests fail | Didn't actually self-test | Bounce back with failing test output |
|
|
421
|
+
| Agent asks questions in output instead of using NEEDS_CONTEXT | Misunderstands status protocol | Treat as NEEDS_CONTEXT, educate in next prompt |
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## Prompt Template Reference
|
|
426
|
+
|
|
427
|
+
Detailed prompt templates are provided as sidecar files:
|
|
428
|
+
|
|
429
|
+
| Template | File | Use When |
|
|
430
|
+
|----------|------|----------|
|
|
431
|
+
| Implementer dispatch | [`implementer-prompt.md`](implementer-prompt.md) | Dispatching Implementer, Frontend, or Refactor agents |
|
|
432
|
+
| Spec compliance review | [`spec-review-prompt.md`](spec-review-prompt.md) | Adversarial spec alignment check (Code-Reviewer-Alpha) |
|
|
433
|
+
| Code quality review | [`code-quality-review-prompt.md`](code-quality-review-prompt.md) | Dual code quality review (Code-Reviewer-Beta) |
|
|
434
|
+
| Architecture review | [`architecture-review-prompt.md`](architecture-review-prompt.md) | Boundary changes, pattern adherence review |
|
|
435
|
+
| Parallel dispatch example | [`parallel-dispatch-example.md`](parallel-dispatch-example.md) | Worked example of decomposing a feature into parallel tasks |
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Architecture Review Prompt Template
|
|
2
|
+
|
|
3
|
+
Use this template when dispatching **Architect-Reviewer-Alpha** and **Architect-Reviewer-Beta** for architecture review. Only needed when changes cross module boundaries, introduce new patterns, or modify shared infrastructure.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Prompt Template
|
|
8
|
+
|
|
9
|
+
```markdown
|
|
10
|
+
You are performing an architecture review. Focus on structural decisions, not code quality (that's handled separately).
|
|
11
|
+
|
|
12
|
+
## Change Summary
|
|
13
|
+
[What was changed and why — high-level description]
|
|
14
|
+
|
|
15
|
+
## Files Changed
|
|
16
|
+
[List of files with module/boundary information]
|
|
17
|
+
|
|
18
|
+
## Architectural Context
|
|
19
|
+
[Paste relevant architecture docs, module graph, dependency structure from compact/digest]
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Review Dimensions
|
|
24
|
+
|
|
25
|
+
### 1. Boundary Integrity
|
|
26
|
+
- Do changes respect existing module boundaries?
|
|
27
|
+
- Are there new cross-module dependencies that shouldn't exist?
|
|
28
|
+
- Is the dependency direction correct (inner → outer, not reverse)?
|
|
29
|
+
|
|
30
|
+
### 2. Pattern Adherence
|
|
31
|
+
- Do new components follow established architectural patterns?
|
|
32
|
+
- Are there deviations from the documented architecture?
|
|
33
|
+
- If a new pattern is introduced, is it justified and documented?
|
|
34
|
+
|
|
35
|
+
### 3. Coupling & Cohesion
|
|
36
|
+
- Are new dependencies minimal and well-justified?
|
|
37
|
+
- Could any coupling be reduced with interfaces or inversion?
|
|
38
|
+
- Are related concerns grouped together?
|
|
39
|
+
|
|
40
|
+
### 4. Scalability Impact
|
|
41
|
+
- Will this change create bottlenecks under load?
|
|
42
|
+
- Are there single points of failure introduced?
|
|
43
|
+
- Does this work with horizontal scaling?
|
|
44
|
+
|
|
45
|
+
### 5. Migration & Evolution
|
|
46
|
+
- Does this change make future changes harder?
|
|
47
|
+
- Are there implicit assumptions that will break?
|
|
48
|
+
- Is the change reversible if needed?
|
|
49
|
+
|
|
50
|
+
### 6. API Surface
|
|
51
|
+
- Are new public APIs minimal and well-designed?
|
|
52
|
+
- Could any public surface be internal instead?
|
|
53
|
+
- Are breaking changes flagged?
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Output Format
|
|
58
|
+
|
|
59
|
+
### Verdict: [APPROVE | APPROVE_WITH_NOTES | REQUEST_CHANGES]
|
|
60
|
+
|
|
61
|
+
**APPROVE** — Architecture is sound.
|
|
62
|
+
**APPROVE_WITH_NOTES** — Acceptable, but track these concerns.
|
|
63
|
+
**REQUEST_CHANGES** — Structural issues that must be resolved.
|
|
64
|
+
|
|
65
|
+
### Findings:
|
|
66
|
+
| # | Dimension | Severity | Description | Impact |
|
|
67
|
+
|---|-----------|----------|-------------|--------|
|
|
68
|
+
| 1 | [Dimension] | [Blocker/Concern/Note] | [Issue] | [What breaks/degrades] |
|
|
69
|
+
|
|
70
|
+
### Recommendation:
|
|
71
|
+
[Structural guidance for improvement]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Usage Notes
|
|
77
|
+
|
|
78
|
+
- **Only trigger architecture review when**: changes cross module boundaries, new patterns are introduced, shared infrastructure is modified, or public API surface changes
|
|
79
|
+
- Both Alpha and Beta reviewers run in parallel for multi-model perspective
|
|
80
|
+
- Architecture blockers are HIGH priority — must resolve before merge
|
|
81
|
+
- If both reviewers flag the same concern, it's almost certainly a real issue
|