@vpxa/kb 0.1.13 → 0.1.16
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/README.md +65 -12
- package/package.json +14 -7
- package/packages/analyzers/dist/blast-radius-analyzer.d.ts +17 -21
- package/packages/analyzers/dist/blast-radius-analyzer.js +5 -12
- package/packages/analyzers/dist/dependency-analyzer.d.ts +31 -28
- package/packages/analyzers/dist/dependency-analyzer.js +6 -9
- package/packages/analyzers/dist/diagram-generator.d.ts +12 -9
- package/packages/analyzers/dist/diagram-generator.js +2 -4
- package/packages/analyzers/dist/entry-point-analyzer.d.ts +39 -36
- package/packages/analyzers/dist/entry-point-analyzer.js +4 -6
- package/packages/analyzers/dist/index.d.ts +12 -14
- package/packages/analyzers/dist/index.js +1 -1
- package/packages/analyzers/dist/knowledge-producer.d.ts +34 -26
- package/packages/analyzers/dist/knowledge-producer.js +17 -15
- package/packages/analyzers/dist/pattern-analyzer.d.ts +14 -11
- package/packages/analyzers/dist/pattern-analyzer.js +2 -5
- package/packages/analyzers/dist/regex-call-graph.d.ts +6 -13
- package/packages/analyzers/dist/regex-call-graph.js +1 -1
- package/packages/analyzers/dist/structure-analyzer.d.ts +13 -10
- package/packages/analyzers/dist/structure-analyzer.js +2 -4
- package/packages/analyzers/dist/symbol-analyzer.d.ts +13 -9
- package/packages/analyzers/dist/symbol-analyzer.js +9 -13
- package/packages/analyzers/dist/ts-call-graph.d.ts +16 -14
- package/packages/analyzers/dist/ts-call-graph.js +1 -1
- package/packages/analyzers/dist/types.d.ts +82 -80
- package/packages/analyzers/dist/types.js +1 -0
- package/packages/chunker/dist/call-graph-extractor.d.ts +15 -12
- package/packages/chunker/dist/call-graph-extractor.js +1 -1
- package/packages/chunker/dist/chunker-factory.d.ts +16 -4
- package/packages/chunker/dist/chunker-factory.js +1 -1
- package/packages/chunker/dist/chunker.interface.d.ts +8 -5
- package/packages/chunker/dist/chunker.interface.js +1 -0
- package/packages/chunker/dist/code-chunker.d.ts +16 -13
- package/packages/chunker/dist/code-chunker.js +11 -14
- 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 +1 -0
- package/packages/chunker/dist/extractors/types.d.ts +36 -0
- package/packages/chunker/dist/extractors/types.js +1 -0
- package/packages/chunker/dist/generic-chunker.d.ts +14 -11
- package/packages/chunker/dist/generic-chunker.js +5 -5
- package/packages/chunker/dist/index.d.ts +19 -8
- package/packages/chunker/dist/index.js +1 -1
- package/packages/chunker/dist/markdown-chunker.d.ts +16 -13
- package/packages/chunker/dist/markdown-chunker.js +3 -10
- 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-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-python.wasm +0 -0
- package/packages/chunker/wasm/tree-sitter-rust.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/commands/analyze.d.ts +6 -3
- package/packages/cli/dist/commands/analyze.js +2 -3
- package/packages/cli/dist/commands/context-cmds.d.ts +6 -3
- package/packages/cli/dist/commands/context-cmds.js +1 -1
- package/packages/cli/dist/commands/environment.d.ts +6 -3
- package/packages/cli/dist/commands/environment.js +1 -2
- package/packages/cli/dist/commands/execution.d.ts +6 -3
- package/packages/cli/dist/commands/execution.js +1 -1
- package/packages/cli/dist/commands/graph.d.ts +6 -3
- package/packages/cli/dist/commands/graph.js +5 -6
- 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 +18 -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/global.d.ts +34 -0
- package/packages/cli/dist/commands/init/global.js +5 -0
- package/packages/cli/dist/commands/init/index.d.ts +28 -0
- package/packages/cli/dist/commands/init/index.js +5 -0
- package/packages/cli/dist/commands/init/scaffold.d.ts +23 -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 +165 -0
- package/packages/cli/dist/commands/knowledge.d.ts +6 -3
- package/packages/cli/dist/commands/knowledge.js +1 -1
- package/packages/cli/dist/commands/search.d.ts +6 -3
- package/packages/cli/dist/commands/search.js +1 -8
- package/packages/cli/dist/commands/system.d.ts +6 -3
- package/packages/cli/dist/commands/system.js +4 -7
- package/packages/cli/dist/commands/workspace.d.ts +6 -3
- package/packages/cli/dist/commands/workspace.js +1 -2
- package/packages/cli/dist/context.d.ts +7 -5
- package/packages/cli/dist/context.js +1 -1
- package/packages/cli/dist/helpers.d.ts +51 -48
- package/packages/cli/dist/helpers.js +5 -5
- package/packages/cli/dist/index.d.ts +4 -2
- package/packages/cli/dist/index.js +2 -2
- package/packages/cli/dist/kb-init.d.ts +48 -51
- package/packages/cli/dist/kb-init.js +1 -1
- package/packages/cli/dist/types.d.ts +8 -6
- package/packages/cli/dist/types.js +1 -0
- package/packages/core/dist/constants.d.ts +58 -34
- package/packages/core/dist/constants.js +1 -1
- package/packages/core/dist/content-detector.d.ts +8 -8
- package/packages/core/dist/content-detector.js +1 -1
- package/packages/core/dist/errors.d.ts +15 -13
- package/packages/core/dist/errors.js +1 -1
- package/packages/core/dist/global-registry.d.ts +62 -0
- package/packages/core/dist/global-registry.js +1 -0
- package/packages/core/dist/index.d.ts +7 -6
- package/packages/core/dist/index.js +1 -1
- package/packages/core/dist/logger.d.ts +19 -8
- package/packages/core/dist/logger.js +1 -1
- package/packages/core/dist/types.d.ts +107 -92
- package/packages/core/dist/types.js +1 -0
- package/packages/embeddings/dist/embedder.interface.d.ts +22 -20
- package/packages/embeddings/dist/embedder.interface.js +1 -0
- package/packages/embeddings/dist/index.d.ts +3 -3
- package/packages/embeddings/dist/index.js +1 -1
- package/packages/embeddings/dist/onnx-embedder.d.ts +21 -23
- package/packages/embeddings/dist/onnx-embedder.js +1 -1
- 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/indexer/dist/file-hasher.d.ts +5 -3
- package/packages/indexer/dist/file-hasher.js +1 -1
- package/packages/indexer/dist/filesystem-crawler.d.ts +23 -21
- package/packages/indexer/dist/filesystem-crawler.js +1 -1
- package/packages/indexer/dist/graph-extractor.d.ts +9 -13
- package/packages/indexer/dist/graph-extractor.js +1 -1
- package/packages/indexer/dist/incremental-indexer.d.ts +49 -44
- package/packages/indexer/dist/incremental-indexer.js +1 -1
- package/packages/indexer/dist/index.d.ts +5 -5
- package/packages/indexer/dist/index.js +1 -1
- package/packages/server/dist/api.d.ts +3 -8
- package/packages/server/dist/api.js +1 -1
- package/packages/server/dist/config.d.ts +6 -3
- package/packages/server/dist/config.js +1 -1
- 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 +80 -78
- package/packages/server/dist/curated-manager.js +5 -10
- package/packages/server/dist/index.d.ts +1 -2
- package/packages/server/dist/index.js +1 -1
- package/packages/server/dist/replay-interceptor.d.ts +6 -7
- package/packages/server/dist/replay-interceptor.js +1 -1
- package/packages/server/dist/resources/resources.d.ts +7 -4
- package/packages/server/dist/resources/resources.js +2 -2
- package/packages/server/dist/server.d.ts +37 -25
- package/packages/server/dist/server.js +1 -1
- package/packages/server/dist/tools/analyze.tools.d.ts +14 -11
- package/packages/server/dist/tools/analyze.tools.js +1 -3
- package/packages/server/dist/tools/audit.tool.d.ts +8 -5
- package/packages/server/dist/tools/audit.tool.js +1 -4
- 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/evolution.tools.d.ts +7 -0
- package/packages/server/dist/tools/evolution.tools.js +5 -0
- package/packages/server/dist/tools/forge.tools.d.ts +13 -12
- package/packages/server/dist/tools/forge.tools.js +10 -13
- package/packages/server/dist/tools/forget.tool.d.ts +7 -4
- package/packages/server/dist/tools/forget.tool.js +1 -7
- package/packages/server/dist/tools/graph.tool.d.ts +7 -4
- package/packages/server/dist/tools/graph.tool.js +4 -5
- package/packages/server/dist/tools/list.tool.d.ts +7 -4
- package/packages/server/dist/tools/list.tool.js +2 -8
- package/packages/server/dist/tools/lookup.tool.d.ts +7 -4
- package/packages/server/dist/tools/lookup.tool.js +2 -9
- package/packages/server/dist/tools/onboard.tool.d.ts +8 -5
- package/packages/server/dist/tools/onboard.tool.js +2 -2
- package/packages/server/dist/tools/policy.tools.d.ts +7 -0
- package/packages/server/dist/tools/policy.tools.js +2 -0
- package/packages/server/dist/tools/produce.tool.d.ts +6 -3
- package/packages/server/dist/tools/produce.tool.js +2 -2
- package/packages/server/dist/tools/read.tool.d.ts +7 -4
- package/packages/server/dist/tools/read.tool.js +2 -6
- package/packages/server/dist/tools/reindex.tool.d.ts +10 -7
- package/packages/server/dist/tools/reindex.tool.js +3 -2
- package/packages/server/dist/tools/remember.tool.d.ts +8 -4
- package/packages/server/dist/tools/remember.tool.js +3 -5
- package/packages/server/dist/tools/replay.tool.d.ts +6 -3
- package/packages/server/dist/tools/replay.tool.js +2 -6
- package/packages/server/dist/tools/search.tool.d.ts +10 -5
- package/packages/server/dist/tools/search.tool.js +6 -22
- package/packages/server/dist/tools/status.tool.d.ts +12 -4
- package/packages/server/dist/tools/status.tool.js +2 -3
- package/packages/server/dist/tools/toolkit.tools.d.ts +36 -35
- package/packages/server/dist/tools/toolkit.tools.js +20 -24
- package/packages/server/dist/tools/update.tool.d.ts +7 -4
- package/packages/server/dist/tools/update.tool.js +1 -6
- package/packages/server/dist/tools/utility.tools.d.ts +15 -15
- package/packages/server/dist/tools/utility.tools.js +10 -23
- package/packages/server/dist/version-check.d.ts +5 -2
- package/packages/server/dist/version-check.js +1 -1
- package/packages/store/dist/graph-store.interface.d.ts +89 -87
- package/packages/store/dist/graph-store.interface.js +1 -0
- package/packages/store/dist/index.d.ts +6 -6
- package/packages/store/dist/index.js +1 -1
- package/packages/store/dist/lance-store.d.ts +37 -31
- package/packages/store/dist/lance-store.js +1 -1
- package/packages/store/dist/sqlite-graph-store.d.ts +43 -47
- package/packages/store/dist/sqlite-graph-store.js +13 -13
- package/packages/store/dist/store-factory.d.ts +11 -8
- package/packages/store/dist/store-factory.js +1 -1
- package/packages/store/dist/store.interface.d.ts +47 -47
- package/packages/store/dist/store.interface.js +1 -0
- package/packages/tools/dist/audit.d.ts +61 -62
- package/packages/tools/dist/audit.js +4 -5
- package/packages/tools/dist/batch.d.ts +20 -18
- package/packages/tools/dist/batch.js +1 -1
- package/packages/tools/dist/changelog.d.ts +29 -27
- package/packages/tools/dist/changelog.js +2 -2
- package/packages/tools/dist/check.d.ts +42 -39
- package/packages/tools/dist/check.js +2 -2
- package/packages/tools/dist/checkpoint.d.ts +17 -15
- package/packages/tools/dist/checkpoint.js +1 -2
- package/packages/tools/dist/codemod.d.ts +35 -33
- package/packages/tools/dist/codemod.js +2 -2
- package/packages/tools/dist/compact.d.ts +34 -38
- package/packages/tools/dist/compact.js +2 -2
- package/packages/tools/dist/data-transform.d.ts +10 -8
- package/packages/tools/dist/data-transform.js +1 -1
- package/packages/tools/dist/dead-symbols.d.ts +29 -26
- package/packages/tools/dist/dead-symbols.js +2 -2
- package/packages/tools/dist/delegate.d.ts +26 -24
- package/packages/tools/dist/delegate.js +1 -5
- package/packages/tools/dist/diff-parse.d.ts +24 -22
- package/packages/tools/dist/diff-parse.js +3 -3
- package/packages/tools/dist/digest.d.ts +43 -46
- package/packages/tools/dist/digest.js +4 -5
- 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 +11 -9
- package/packages/tools/dist/encode.js +1 -1
- package/packages/tools/dist/env-info.d.ts +25 -23
- package/packages/tools/dist/env-info.js +1 -1
- package/packages/tools/dist/eval.d.ts +13 -11
- package/packages/tools/dist/eval.js +2 -3
- package/packages/tools/dist/evidence-map.d.ts +64 -62
- package/packages/tools/dist/evidence-map.js +2 -3
- 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 +50 -30
- package/packages/tools/dist/file-summary.js +2 -2
- package/packages/tools/dist/file-walk.d.ts +6 -4
- package/packages/tools/dist/file-walk.js +1 -1
- package/packages/tools/dist/find-examples.d.ts +26 -22
- package/packages/tools/dist/find-examples.js +3 -3
- package/packages/tools/dist/find.d.ts +39 -41
- package/packages/tools/dist/find.js +1 -1
- package/packages/tools/dist/forge-classify.d.ts +35 -39
- package/packages/tools/dist/forge-classify.js +2 -2
- package/packages/tools/dist/forge-ground.d.ts +58 -61
- package/packages/tools/dist/forge-ground.js +1 -1
- package/packages/tools/dist/git-context.d.ts +22 -20
- package/packages/tools/dist/git-context.js +3 -3
- package/packages/tools/dist/graph-query.d.ts +75 -79
- package/packages/tools/dist/graph-query.js +1 -1
- package/packages/tools/dist/guide.d.ts +14 -12
- package/packages/tools/dist/guide.js +1 -1
- package/packages/tools/dist/health.d.ts +13 -11
- package/packages/tools/dist/health.js +2 -2
- package/packages/tools/dist/http-request.d.ts +20 -18
- package/packages/tools/dist/http-request.js +1 -1
- package/packages/tools/dist/index.d.ts +55 -53
- package/packages/tools/dist/index.js +1 -1
- package/packages/tools/dist/lane.d.ts +28 -26
- package/packages/tools/dist/lane.js +6 -7
- package/packages/tools/dist/measure.d.ts +34 -30
- package/packages/tools/dist/measure.js +2 -2
- package/packages/tools/dist/onboard.d.ts +29 -27
- package/packages/tools/dist/onboard.js +17 -41
- package/packages/tools/dist/parse-output.d.ts +48 -46
- package/packages/tools/dist/parse-output.js +2 -2
- package/packages/tools/dist/path-resolver.d.ts +4 -2
- package/packages/tools/dist/path-resolver.js +1 -1
- package/packages/tools/dist/process-manager.d.ts +18 -16
- package/packages/tools/dist/process-manager.js +1 -1
- package/packages/tools/dist/queue.d.ts +28 -26
- package/packages/tools/dist/queue.js +1 -2
- package/packages/tools/dist/regex-test.d.ts +26 -24
- package/packages/tools/dist/regex-test.js +1 -1
- package/packages/tools/dist/rename.d.ts +28 -26
- package/packages/tools/dist/rename.js +2 -2
- package/packages/tools/dist/replay.d.ts +33 -31
- package/packages/tools/dist/replay.js +4 -6
- package/packages/tools/dist/response-envelope.d.ts +32 -30
- package/packages/tools/dist/response-envelope.js +1 -1
- package/packages/tools/dist/schema-validate.d.ts +15 -13
- package/packages/tools/dist/schema-validate.js +1 -1
- package/packages/tools/dist/scope-map.d.ts +45 -48
- package/packages/tools/dist/scope-map.js +1 -1
- package/packages/tools/dist/snippet.d.ts +26 -25
- package/packages/tools/dist/snippet.js +1 -1
- package/packages/tools/dist/stash.d.ts +13 -11
- package/packages/tools/dist/stash.js +1 -2
- package/packages/tools/dist/stratum-card.d.ts +27 -28
- package/packages/tools/dist/stratum-card.js +3 -5
- package/packages/tools/dist/symbol.d.ts +31 -26
- package/packages/tools/dist/symbol.js +3 -3
- package/packages/tools/dist/test-run.d.ts +19 -16
- package/packages/tools/dist/test-run.js +2 -2
- package/packages/tools/dist/text-utils.d.ts +6 -4
- package/packages/tools/dist/text-utils.js +2 -2
- package/packages/tools/dist/time-utils.d.ts +15 -13
- package/packages/tools/dist/time-utils.js +1 -1
- package/packages/tools/dist/trace.d.ts +26 -21
- package/packages/tools/dist/trace.js +2 -2
- package/packages/tools/dist/truncation.d.ts +6 -4
- package/packages/tools/dist/truncation.js +6 -13
- package/packages/tools/dist/watch.d.ts +28 -26
- package/packages/tools/dist/watch.js +1 -1
- package/packages/tools/dist/web-fetch.d.ts +35 -33
- package/packages/tools/dist/web-fetch.js +6 -12
- package/packages/tools/dist/web-search.d.ts +16 -14
- package/packages/tools/dist/web-search.js +1 -1
- package/packages/tools/dist/workset.d.ts +19 -17
- package/packages/tools/dist/workset.js +1 -2
- package/packages/tui/dist/App-CYLNJLr6.js +2 -0
- package/packages/tui/dist/App.d.ts +11 -6
- package/packages/tui/dist/App.js +1 -450
- package/packages/tui/dist/CuratedPanel-sYdZAICX.js +2 -0
- package/packages/tui/dist/LogPanel-DtMnoyXT.js +3 -0
- package/packages/tui/dist/SearchPanel-DREo6zgt.js +2 -0
- package/packages/tui/dist/StatusPanel-2ex8fLOO.js +2 -0
- package/packages/tui/dist/chunk-D6axbAb-.js +2 -0
- package/packages/tui/dist/devtools-DUyj952l.js +7 -0
- package/packages/tui/dist/embedder.interface-D4ew0HPW.d.ts +28 -0
- package/packages/tui/dist/index-B9VpfVPP.d.ts +13 -0
- package/packages/tui/dist/index.d.ts +3 -19
- package/packages/tui/dist/index.js +1 -476
- package/packages/tui/dist/jsx-runtime-Cof-kwFn.js +316 -0
- package/packages/tui/dist/panels/CuratedPanel.d.ts +11 -6
- package/packages/tui/dist/panels/CuratedPanel.js +1 -371
- package/packages/tui/dist/panels/LogPanel.d.ts +7 -3
- package/packages/tui/dist/panels/LogPanel.js +1 -449
- package/packages/tui/dist/panels/SearchPanel.d.ts +14 -8
- package/packages/tui/dist/panels/SearchPanel.js +1 -372
- package/packages/tui/dist/panels/StatusPanel.d.ts +11 -6
- package/packages/tui/dist/panels/StatusPanel.js +1 -371
- package/packages/tui/dist/store.interface-CnY6SPOH.d.ts +150 -0
- package/scaffold/adapters/claude-code.mjs +20 -0
- package/scaffold/adapters/copilot.mjs +320 -0
- package/scaffold/copilot/agents/Architect-Reviewer-Alpha.agent.md +21 -0
- package/scaffold/copilot/agents/Architect-Reviewer-Beta.agent.md +21 -0
- package/scaffold/copilot/agents/Documenter.agent.md +42 -0
- package/scaffold/copilot/agents/Orchestrator.agent.md +104 -0
- package/scaffold/copilot/agents/Planner.agent.md +54 -0
- package/scaffold/copilot/agents/Refactor.agent.md +36 -0
- package/scaffold/copilot/agents/Researcher-Alpha.agent.md +20 -0
- package/scaffold/copilot/agents/Researcher-Beta.agent.md +20 -0
- package/scaffold/copilot/agents/Researcher-Delta.agent.md +20 -0
- package/scaffold/copilot/agents/Researcher-Gamma.agent.md +20 -0
- package/scaffold/definitions/agents.mjs +165 -0
- package/scaffold/definitions/bodies.mjs +292 -0
- package/scaffold/definitions/hooks.mjs +43 -0
- package/scaffold/definitions/models.mjs +56 -0
- package/scaffold/definitions/plugins.mjs +24 -0
- package/scaffold/definitions/prompts.mjs +145 -0
- package/scaffold/definitions/protocols.mjs +322 -0
- package/scaffold/definitions/tools.mjs +176 -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 +31 -0
- package/scaffold/general/agents/Documenter.agent.md +42 -0
- package/scaffold/general/agents/Explorer.agent.md +50 -0
- package/scaffold/general/agents/Frontend.agent.md +29 -0
- package/scaffold/general/agents/Implementer.agent.md +31 -0
- package/scaffold/general/agents/Orchestrator.agent.md +104 -0
- package/scaffold/general/agents/Planner.agent.md +55 -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 +42 -0
- package/scaffold/general/agents/_shared/adr-protocol.md +91 -0
- package/scaffold/general/agents/_shared/architect-reviewer-base.md +50 -0
- package/scaffold/general/agents/_shared/code-agent-base.md +88 -0
- package/scaffold/general/agents/_shared/code-reviewer-base.md +54 -0
- package/scaffold/general/agents/_shared/decision-protocol.md +27 -0
- package/scaffold/general/agents/_shared/forge-protocol.md +46 -0
- package/scaffold/general/agents/_shared/researcher-base.md +61 -0
- package/scaffold/general/agents/templates/adr-template.md +27 -0
- package/scaffold/general/agents/templates/execution-state.md +25 -0
- package/scaffold/general/prompts/ask.prompt.md +20 -0
- package/scaffold/general/prompts/debug.prompt.md +25 -0
- package/scaffold/general/prompts/design.prompt.md +22 -0
- package/scaffold/general/prompts/implement.prompt.md +26 -0
- package/scaffold/general/prompts/plan.prompt.md +24 -0
- package/scaffold/general/prompts/review.prompt.md +31 -0
- package/scaffold/generate.mjs +74 -0
- package/skills/adr-skill/SKILL.md +329 -0
- package/skills/adr-skill/assets/templates/adr-madr.md +89 -0
- package/skills/adr-skill/assets/templates/adr-readme.md +20 -0
- package/skills/adr-skill/assets/templates/adr-simple.md +46 -0
- package/skills/adr-skill/references/adr-conventions.md +95 -0
- package/skills/adr-skill/references/examples.md +193 -0
- package/skills/adr-skill/references/review-checklist.md +77 -0
- package/skills/adr-skill/references/template-variants.md +52 -0
- package/skills/adr-skill/scripts/bootstrap_adr.js +259 -0
- package/skills/adr-skill/scripts/new_adr.js +391 -0
- package/skills/adr-skill/scripts/set_adr_status.js +169 -0
- package/skills/brainstorming/SKILL.md +259 -0
- package/skills/brainstorming/scripts/frame-template.html +365 -0
- package/skills/brainstorming/scripts/helper.js +216 -0
- package/skills/brainstorming/scripts/server.cjs +9 -0
- package/skills/brainstorming/scripts/server.src.cjs +249 -0
- package/skills/brainstorming/spec-document-reviewer-prompt.md +49 -0
- package/skills/brainstorming/visual-companion.md +430 -0
- package/skills/c4-architecture/SKILL.md +295 -0
- package/skills/c4-architecture/references/advanced-patterns.md +552 -0
- package/skills/c4-architecture/references/c4-syntax.md +492 -0
- package/skills/c4-architecture/references/common-mistakes.md +437 -0
- package/skills/knowledge-base/SKILL.md +100 -10
- package/skills/lesson-learned/SKILL.md +105 -0
- package/skills/lesson-learned/references/anti-patterns.md +55 -0
- package/skills/lesson-learned/references/se-principles.md +109 -0
- package/skills/requirements-clarity/SKILL.md +324 -0
- package/skills/session-handoff/SKILL.md +189 -0
- package/skills/session-handoff/references/handoff-template.md +139 -0
- package/skills/session-handoff/references/resume-checklist.md +80 -0
- package/skills/session-handoff/scripts/check_staleness.js +269 -0
- package/skills/session-handoff/scripts/create_handoff.js +299 -0
- package/skills/session-handoff/scripts/list_handoffs.js +113 -0
- package/skills/session-handoff/scripts/validate_handoff.js +241 -0
- package/packages/chunker/dist/treesitter-chunker.d.ts +0 -47
- package/packages/chunker/dist/treesitter-chunker.js +0 -8
- package/packages/cli/dist/commands/init.d.ts +0 -10
- package/packages/cli/dist/commands/init.js +0 -308
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorming
|
|
3
|
+
description: "You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation."
|
|
4
|
+
argument-hint: "Feature, component, or behavior to design"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Brainstorming Ideas Into Designs
|
|
8
|
+
|
|
9
|
+
Help turn ideas into fully formed designs and specs through natural collaborative dialogue.
|
|
10
|
+
|
|
11
|
+
Start by understanding the current project context, then ask questions one at a time to refine the idea. Once you understand what you're building, present the design and get user approval.
|
|
12
|
+
|
|
13
|
+
<HARD-GATE>
|
|
14
|
+
Do NOT invoke any implementation skill, write any code, scaffold any project, or take any implementation action until you have presented a design and the user has approved it. This applies to EVERY project regardless of perceived simplicity.
|
|
15
|
+
</HARD-GATE>
|
|
16
|
+
|
|
17
|
+
## Anti-Pattern: "This Is Too Simple To Need A Design"
|
|
18
|
+
|
|
19
|
+
Every project goes through this process. A todo list, a single-function utility, a config change — all of them. "Simple" projects are where unexamined assumptions cause the most wasted work. The design can be short (a few sentences for truly simple projects), but you MUST present it and get approval.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Mode Selection
|
|
24
|
+
|
|
25
|
+
This skill operates in two modes. **You decide which mode to use** based on the task characteristics — do NOT ask the user which mode.
|
|
26
|
+
|
|
27
|
+
### Simple Mode
|
|
28
|
+
|
|
29
|
+
Use when **all** of these are true:
|
|
30
|
+
- Affects ≤3 files
|
|
31
|
+
- Single component or concern
|
|
32
|
+
- No new service/package/module boundaries
|
|
33
|
+
- No cross-service data flow changes
|
|
34
|
+
- Clear, well-understood domain
|
|
35
|
+
|
|
36
|
+
Examples: config change, utility function, bug fix with design ambiguity, small feature in existing component.
|
|
37
|
+
|
|
38
|
+
### Advanced Mode
|
|
39
|
+
|
|
40
|
+
Use when **any** of these are true:
|
|
41
|
+
- Affects >3 files or crosses service boundaries
|
|
42
|
+
- Introduces new packages, services, or modules
|
|
43
|
+
- Multiple independent subsystems involved
|
|
44
|
+
- Architectural decisions with multiple viable approaches
|
|
45
|
+
- Changes data models, APIs, or interfaces used by other services
|
|
46
|
+
- User explicitly requests thorough exploration
|
|
47
|
+
|
|
48
|
+
Examples: new notification channel, new API service, platform redesign, multi-service feature, infrastructure changes.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Simple Mode Process
|
|
53
|
+
|
|
54
|
+
### Checklist
|
|
55
|
+
|
|
56
|
+
1. **Explore project context** — check files, docs, recent commits
|
|
57
|
+
2. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
|
|
58
|
+
3. **Propose 2-3 approaches** — with trade-offs and your recommendation
|
|
59
|
+
4. **Present design** — in sections scaled to their complexity, get user approval after each section
|
|
60
|
+
5. **Write design doc** — save to `docs/plans/YYYY-MM-DD-<topic>-design.md` and commit
|
|
61
|
+
6. **Transition to implementation** — invoke writing-plans skill to create implementation plan
|
|
62
|
+
|
|
63
|
+
### Process Flow
|
|
64
|
+
|
|
65
|
+
```dot
|
|
66
|
+
digraph brainstorming_simple {
|
|
67
|
+
"Explore project context" [shape=box];
|
|
68
|
+
"Ask clarifying questions" [shape=box];
|
|
69
|
+
"Propose 2-3 approaches" [shape=box];
|
|
70
|
+
"Present design sections" [shape=box];
|
|
71
|
+
"User approves design?" [shape=diamond];
|
|
72
|
+
"Write design doc" [shape=box];
|
|
73
|
+
"Invoke writing-plans skill" [shape=doublecircle];
|
|
74
|
+
|
|
75
|
+
"Explore project context" -> "Ask clarifying questions";
|
|
76
|
+
"Ask clarifying questions" -> "Propose 2-3 approaches";
|
|
77
|
+
"Propose 2-3 approaches" -> "Present design sections";
|
|
78
|
+
"Present design sections" -> "User approves design?";
|
|
79
|
+
"User approves design?" -> "Present design sections" [label="no, revise"];
|
|
80
|
+
"User approves design?" -> "Write design doc" [label="yes"];
|
|
81
|
+
"Write design doc" -> "Invoke writing-plans skill";
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Advanced Mode Process
|
|
88
|
+
|
|
89
|
+
### Checklist
|
|
90
|
+
|
|
91
|
+
1. **Explore project context** — check files, docs, recent commits
|
|
92
|
+
2. **Assess scope** — if multiple independent subsystems, decompose before detailing (see below)
|
|
93
|
+
3. **Offer visual companion** (if topic will involve visual questions) — this is its own message, not combined with a clarifying question. See `visual-companion.md`.
|
|
94
|
+
4. **Ask clarifying questions** — one at a time, understand purpose/constraints/success criteria
|
|
95
|
+
5. **Propose 2-3 approaches via Decision Protocol** — launch ALL 4 Researcher variants in parallel to independently generate approaches. Synthesize their output into deduplicated options with trade-offs and your recommendation. Present agreements and disagreements to the user. *(See "Decision Protocol Integration" below.)*
|
|
96
|
+
6. **Present design** — in sections scaled to their complexity, get user approval after each section
|
|
97
|
+
7. **Write design doc** — save to `docs/plans/YYYY-MM-DD-<topic>-design.md` and commit
|
|
98
|
+
8. **Spec review loop** — review the spec for completeness, consistency, clarity, scope, and YAGNI. Fix issues. Max 3 iterations, then surface to user.
|
|
99
|
+
9. **User reviews written spec** — ask user to review the spec file before proceeding
|
|
100
|
+
10. **Transition to implementation** — invoke writing-plans skill to create implementation plan
|
|
101
|
+
|
|
102
|
+
### Decision Protocol Integration (Advanced Mode Only)
|
|
103
|
+
|
|
104
|
+
When Advanced Mode reaches step 5 ("Propose approaches"), invoke the **multi-model decision protocol**:
|
|
105
|
+
|
|
106
|
+
1. Frame the design question with full context gathered from steps 1-4
|
|
107
|
+
2. Launch ALL 4 Researcher variants **in parallel** with identical framing:
|
|
108
|
+
> Independently analyze this design question. Propose 2-3 approaches with trade-offs, complexity, risks, and your recommendation.
|
|
109
|
+
3. After all return, synthesize:
|
|
110
|
+
- **Strong agreements** (3+ models align) → Accept as validated direction
|
|
111
|
+
- **Disagreements** → Present each position to the user with reasoning
|
|
112
|
+
4. Present the deduplicated approaches to the user for choice
|
|
113
|
+
5. If a decision produces an ADR, write it to `docs/decisions/`
|
|
114
|
+
|
|
115
|
+
This replaces the single-agent "propose approaches" step with 4 independent perspectives, producing higher-quality options.
|
|
116
|
+
|
|
117
|
+
### Process Flow
|
|
118
|
+
|
|
119
|
+
```dot
|
|
120
|
+
digraph brainstorming_advanced {
|
|
121
|
+
"Explore project context" [shape=box];
|
|
122
|
+
"Assess scope" [shape=diamond];
|
|
123
|
+
"Decompose into sub-projects" [shape=box];
|
|
124
|
+
"Visual questions ahead?" [shape=diamond];
|
|
125
|
+
"Offer Visual Companion\n(own message)" [shape=box];
|
|
126
|
+
"Ask clarifying questions" [shape=box];
|
|
127
|
+
"Decision Protocol:\n4 Researchers in parallel" [shape=box, style=bold];
|
|
128
|
+
"Synthesize approaches" [shape=box];
|
|
129
|
+
"Present design sections" [shape=box];
|
|
130
|
+
"User approves design?" [shape=diamond];
|
|
131
|
+
"Write design doc" [shape=box];
|
|
132
|
+
"Spec review loop" [shape=box];
|
|
133
|
+
"Spec review passed?" [shape=diamond];
|
|
134
|
+
"User reviews spec?" [shape=diamond];
|
|
135
|
+
"Invoke writing-plans skill" [shape=doublecircle];
|
|
136
|
+
|
|
137
|
+
"Explore project context" -> "Assess scope";
|
|
138
|
+
"Assess scope" -> "Decompose into sub-projects" [label="too large"];
|
|
139
|
+
"Assess scope" -> "Visual questions ahead?" [label="right-sized"];
|
|
140
|
+
"Decompose into sub-projects" -> "Visual questions ahead?" [label="first sub-project"];
|
|
141
|
+
"Visual questions ahead?" -> "Offer Visual Companion\n(own message)" [label="yes"];
|
|
142
|
+
"Visual questions ahead?" -> "Ask clarifying questions" [label="no"];
|
|
143
|
+
"Offer Visual Companion\n(own message)" -> "Ask clarifying questions";
|
|
144
|
+
"Ask clarifying questions" -> "Decision Protocol:\n4 Researchers in parallel";
|
|
145
|
+
"Decision Protocol:\n4 Researchers in parallel" -> "Synthesize approaches";
|
|
146
|
+
"Synthesize approaches" -> "Present design sections";
|
|
147
|
+
"Present design sections" -> "User approves design?";
|
|
148
|
+
"User approves design?" -> "Present design sections" [label="no, revise"];
|
|
149
|
+
"User approves design?" -> "Write design doc" [label="yes"];
|
|
150
|
+
"Write design doc" -> "Spec review loop";
|
|
151
|
+
"Spec review loop" -> "Spec review passed?";
|
|
152
|
+
"Spec review passed?" -> "Spec review loop" [label="issues found, fix"];
|
|
153
|
+
"Spec review passed?" -> "User reviews spec?" [label="approved"];
|
|
154
|
+
"User reviews spec?" -> "Write design doc" [label="changes requested"];
|
|
155
|
+
"User reviews spec?" -> "Invoke writing-plans skill" [label="approved"];
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Large Project Decomposition
|
|
160
|
+
|
|
161
|
+
Before asking detailed questions, assess scope: if the request describes multiple independent subsystems (e.g., "build a platform with chat, file storage, billing, and analytics"), flag this immediately. Don't spend questions refining details of a project that needs to be decomposed first.
|
|
162
|
+
|
|
163
|
+
If the project is too large for a single spec, help the user decompose into sub-projects: what are the independent pieces, how do they relate, what order should they be built? Then brainstorm the first sub-project through the normal design flow. Each sub-project gets its own spec → plan → implementation cycle.
|
|
164
|
+
|
|
165
|
+
### Spec Review Loop
|
|
166
|
+
|
|
167
|
+
After writing the spec document, review it yourself for:
|
|
168
|
+
|
|
169
|
+
| Category | What to Look For |
|
|
170
|
+
|----------|------------------|
|
|
171
|
+
| Completeness | TODOs, placeholders, "TBD", incomplete sections |
|
|
172
|
+
| Consistency | Internal contradictions, conflicting requirements |
|
|
173
|
+
| Clarity | Requirements ambiguous enough to cause someone to build the wrong thing |
|
|
174
|
+
| Scope | Focused enough for a single plan — not covering multiple independent subsystems |
|
|
175
|
+
| YAGNI | Unrequested features, over-engineering |
|
|
176
|
+
|
|
177
|
+
**Only flag issues that would cause real problems during implementation planning.** A missing section, a contradiction, or a requirement so ambiguous it could be interpreted two different ways — those are issues. Minor wording improvements and stylistic preferences are not.
|
|
178
|
+
|
|
179
|
+
Fix issues and re-review. Max 3 iterations, then surface remaining concerns to the user.
|
|
180
|
+
|
|
181
|
+
### User Review Gate
|
|
182
|
+
|
|
183
|
+
After the spec review passes, ask the user to review:
|
|
184
|
+
|
|
185
|
+
> "Spec written and committed to `<path>`. Please review it and let me know if you want to make any changes before we start writing out the implementation plan."
|
|
186
|
+
|
|
187
|
+
Wait for the user's response. If they request changes, make them and re-run the spec review. Only proceed once the user approves.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## The Process (Both Modes)
|
|
192
|
+
|
|
193
|
+
**Understanding the idea:**
|
|
194
|
+
- Check out the current project state first (files, docs, recent commits)
|
|
195
|
+
- Ask questions one at a time to refine the idea
|
|
196
|
+
- Prefer multiple choice questions when possible, but open-ended is fine too
|
|
197
|
+
- Only one question per message — if a topic needs more exploration, break it into multiple questions
|
|
198
|
+
- Focus on understanding: purpose, constraints, success criteria
|
|
199
|
+
|
|
200
|
+
**Exploring approaches:**
|
|
201
|
+
- Propose 2-3 different approaches with trade-offs
|
|
202
|
+
- Present options conversationally with your recommendation and reasoning
|
|
203
|
+
- Lead with your recommended option and explain why
|
|
204
|
+
|
|
205
|
+
**Presenting the design:**
|
|
206
|
+
- Once you believe you understand what you're building, present the design
|
|
207
|
+
- Scale each section to its complexity: a few sentences if straightforward, up to 200-300 words if nuanced
|
|
208
|
+
- Ask after each section whether it looks right so far
|
|
209
|
+
- Cover: architecture, components, data flow, error handling, testing
|
|
210
|
+
- Be ready to go back and clarify if something doesn't make sense
|
|
211
|
+
|
|
212
|
+
**Design for isolation and clarity** (Advanced mode emphasis, but good practice always):
|
|
213
|
+
- Break the system into smaller units that each have one clear purpose, communicate through well-defined interfaces, and can be understood and tested independently
|
|
214
|
+
- For each unit, you should be able to answer: what does it do, how do you use it, and what does it depend on?
|
|
215
|
+
- Can someone understand what a unit does without reading its internals? Can you change the internals without breaking consumers? If not, the boundaries need work.
|
|
216
|
+
|
|
217
|
+
**Working in existing codebases:**
|
|
218
|
+
- Explore the current structure before proposing changes. Follow existing patterns.
|
|
219
|
+
- Where existing code has problems that affect the work (e.g., a file that's grown too large, unclear boundaries, tangled responsibilities), include targeted improvements as part of the design — the way a good developer improves code they're working in.
|
|
220
|
+
- Don't propose unrelated refactoring. Stay focused on what serves the current goal.
|
|
221
|
+
|
|
222
|
+
## After the Design
|
|
223
|
+
|
|
224
|
+
**Documentation:**
|
|
225
|
+
- Write the validated design to `docs/plans/YYYY-MM-DD-<topic>-design.md`
|
|
226
|
+
- (User preferences for spec location override this default)
|
|
227
|
+
- Use elements-of-style:writing-clearly-and-concisely skill if available
|
|
228
|
+
- Commit the design document to git
|
|
229
|
+
|
|
230
|
+
**Implementation:**
|
|
231
|
+
- Invoke the writing-plans skill to create a detailed implementation plan
|
|
232
|
+
- Do NOT invoke any other skill. writing-plans is the next step.
|
|
233
|
+
|
|
234
|
+
**The terminal state is invoking writing-plans.** Do NOT invoke frontend-design, mcp-builder, or any other implementation skill. The ONLY skill you invoke after brainstorming is writing-plans.
|
|
235
|
+
|
|
236
|
+
## Key Principles
|
|
237
|
+
|
|
238
|
+
- **One question at a time** — Don't overwhelm with multiple questions
|
|
239
|
+
- **Multiple choice preferred** — Easier to answer than open-ended when possible
|
|
240
|
+
- **YAGNI ruthlessly** — Remove unnecessary features from all designs
|
|
241
|
+
- **Explore alternatives** — Always propose 2-3 approaches before settling
|
|
242
|
+
- **Incremental validation** — Present design, get approval before moving on
|
|
243
|
+
- **Be flexible** — Go back and clarify when something doesn't make sense
|
|
244
|
+
|
|
245
|
+
## Visual Companion (Advanced Mode Only)
|
|
246
|
+
|
|
247
|
+
A browser-based companion for showing mockups, diagrams, and visual options during brainstorming. Available as a tool — not a mode. Accepting the companion means it's available for questions that benefit from visual treatment; it does NOT mean every question goes through the browser.
|
|
248
|
+
|
|
249
|
+
**Offering the companion:** When you anticipate that upcoming questions will involve visual content (mockups, layouts, diagrams), offer it once for consent:
|
|
250
|
+
> "Some of what we're working on might be easier to explain if I can show it to you in a web browser. I can put together mockups, diagrams, comparisons, and other visuals as we go. The browser opens automatically when I start the visual companion. This feature is still new and can be token-intensive. Want to try it?"
|
|
251
|
+
|
|
252
|
+
**This offer MUST be its own message.** Do not combine it with clarifying questions, context summaries, or any other content. Wait for the user's response before continuing. If they decline, proceed with text-only brainstorming.
|
|
253
|
+
|
|
254
|
+
**Per-question decision:** Even after the user accepts, decide FOR EACH QUESTION whether to use the browser or the terminal. The test: **would the user understand this better by seeing it than reading it?**
|
|
255
|
+
|
|
256
|
+
- **Use the browser** for visual content — mockups, wireframes, layout comparisons, architecture diagrams, side-by-side visual designs
|
|
257
|
+
- **Use the terminal** for text content — requirements questions, conceptual choices, tradeoff lists, A/B/C/D text options, scope decisions
|
|
258
|
+
|
|
259
|
+
If they agree to the companion, read `visual-companion.md` for the detailed setup and usage guide.
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>Brainstorming</title>
|
|
7
|
+
<style>
|
|
8
|
+
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
9
|
+
|
|
10
|
+
:root {
|
|
11
|
+
--bg: #0d1117;
|
|
12
|
+
--surface: #161b22;
|
|
13
|
+
--border: #30363d;
|
|
14
|
+
--text: #e6edf3;
|
|
15
|
+
--text-muted: #8b949e;
|
|
16
|
+
--accent: #58a6ff;
|
|
17
|
+
--accent-glow: rgba(88, 166, 255, 0.15);
|
|
18
|
+
--success: #3fb950;
|
|
19
|
+
--radius: 8px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
body {
|
|
23
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
|
|
24
|
+
background: var(--bg);
|
|
25
|
+
color: var(--text);
|
|
26
|
+
line-height: 1.6;
|
|
27
|
+
min-height: 100vh;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.frame-header {
|
|
31
|
+
padding: 16px 24px;
|
|
32
|
+
border-bottom: 1px solid var(--border);
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: center;
|
|
35
|
+
gap: 12px;
|
|
36
|
+
}
|
|
37
|
+
.frame-header .logo {
|
|
38
|
+
font-size: 14px;
|
|
39
|
+
font-weight: 600;
|
|
40
|
+
color: var(--text-muted);
|
|
41
|
+
letter-spacing: 0.5px;
|
|
42
|
+
text-transform: uppercase;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.frame-content {
|
|
46
|
+
max-width: 960px;
|
|
47
|
+
margin: 0 auto;
|
|
48
|
+
padding: 32px 24px;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* Selection indicator bar */
|
|
52
|
+
#selection-indicator {
|
|
53
|
+
position: fixed;
|
|
54
|
+
bottom: 0;
|
|
55
|
+
left: 0;
|
|
56
|
+
right: 0;
|
|
57
|
+
background: var(--surface);
|
|
58
|
+
border-top: 1px solid var(--border);
|
|
59
|
+
padding: 12px 24px;
|
|
60
|
+
display: none;
|
|
61
|
+
align-items: center;
|
|
62
|
+
justify-content: center;
|
|
63
|
+
gap: 8px;
|
|
64
|
+
font-size: 14px;
|
|
65
|
+
color: var(--accent);
|
|
66
|
+
z-index: 100;
|
|
67
|
+
}
|
|
68
|
+
#selection-indicator.visible { display: flex; }
|
|
69
|
+
#selection-indicator .check { font-size: 18px; }
|
|
70
|
+
|
|
71
|
+
/* Typography */
|
|
72
|
+
h2 {
|
|
73
|
+
font-size: 24px;
|
|
74
|
+
font-weight: 600;
|
|
75
|
+
margin-bottom: 8px;
|
|
76
|
+
color: var(--text);
|
|
77
|
+
}
|
|
78
|
+
h3 {
|
|
79
|
+
font-size: 18px;
|
|
80
|
+
font-weight: 600;
|
|
81
|
+
margin-bottom: 4px;
|
|
82
|
+
color: var(--text);
|
|
83
|
+
}
|
|
84
|
+
h4 {
|
|
85
|
+
font-size: 14px;
|
|
86
|
+
font-weight: 600;
|
|
87
|
+
margin-bottom: 8px;
|
|
88
|
+
color: var(--text);
|
|
89
|
+
}
|
|
90
|
+
.subtitle {
|
|
91
|
+
font-size: 16px;
|
|
92
|
+
color: var(--text-muted);
|
|
93
|
+
margin-bottom: 24px;
|
|
94
|
+
}
|
|
95
|
+
.section {
|
|
96
|
+
margin-bottom: 32px;
|
|
97
|
+
}
|
|
98
|
+
.label {
|
|
99
|
+
font-size: 11px;
|
|
100
|
+
font-weight: 600;
|
|
101
|
+
text-transform: uppercase;
|
|
102
|
+
letter-spacing: 0.8px;
|
|
103
|
+
color: var(--text-muted);
|
|
104
|
+
margin-bottom: 8px;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Options (A/B/C choices) */
|
|
108
|
+
.options {
|
|
109
|
+
display: flex;
|
|
110
|
+
flex-direction: column;
|
|
111
|
+
gap: 12px;
|
|
112
|
+
margin: 16px 0;
|
|
113
|
+
}
|
|
114
|
+
.option {
|
|
115
|
+
display: flex;
|
|
116
|
+
align-items: flex-start;
|
|
117
|
+
gap: 16px;
|
|
118
|
+
padding: 16px 20px;
|
|
119
|
+
background: var(--surface);
|
|
120
|
+
border: 2px solid var(--border);
|
|
121
|
+
border-radius: var(--radius);
|
|
122
|
+
cursor: pointer;
|
|
123
|
+
transition: border-color 0.15s, background 0.15s;
|
|
124
|
+
}
|
|
125
|
+
.option:hover {
|
|
126
|
+
border-color: var(--accent);
|
|
127
|
+
background: var(--accent-glow);
|
|
128
|
+
}
|
|
129
|
+
.option.selected {
|
|
130
|
+
border-color: var(--accent);
|
|
131
|
+
background: var(--accent-glow);
|
|
132
|
+
}
|
|
133
|
+
.option .letter {
|
|
134
|
+
flex-shrink: 0;
|
|
135
|
+
width: 32px;
|
|
136
|
+
height: 32px;
|
|
137
|
+
display: flex;
|
|
138
|
+
align-items: center;
|
|
139
|
+
justify-content: center;
|
|
140
|
+
border-radius: 50%;
|
|
141
|
+
background: var(--border);
|
|
142
|
+
font-weight: 700;
|
|
143
|
+
font-size: 14px;
|
|
144
|
+
color: var(--text-muted);
|
|
145
|
+
transition: background 0.15s, color 0.15s;
|
|
146
|
+
}
|
|
147
|
+
.option.selected .letter {
|
|
148
|
+
background: var(--accent);
|
|
149
|
+
color: var(--bg);
|
|
150
|
+
}
|
|
151
|
+
.option .content { flex: 1; }
|
|
152
|
+
.option .content p {
|
|
153
|
+
color: var(--text-muted);
|
|
154
|
+
font-size: 14px;
|
|
155
|
+
margin-top: 4px;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* Cards (visual designs) */
|
|
159
|
+
.cards {
|
|
160
|
+
display: grid;
|
|
161
|
+
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
|
|
162
|
+
gap: 16px;
|
|
163
|
+
margin: 16px 0;
|
|
164
|
+
}
|
|
165
|
+
.card {
|
|
166
|
+
background: var(--surface);
|
|
167
|
+
border: 2px solid var(--border);
|
|
168
|
+
border-radius: var(--radius);
|
|
169
|
+
overflow: hidden;
|
|
170
|
+
cursor: pointer;
|
|
171
|
+
transition: border-color 0.15s, transform 0.15s;
|
|
172
|
+
}
|
|
173
|
+
.card:hover {
|
|
174
|
+
border-color: var(--accent);
|
|
175
|
+
transform: translateY(-2px);
|
|
176
|
+
}
|
|
177
|
+
.card.selected {
|
|
178
|
+
border-color: var(--accent);
|
|
179
|
+
}
|
|
180
|
+
.card-image {
|
|
181
|
+
padding: 20px;
|
|
182
|
+
background: rgba(255,255,255,0.02);
|
|
183
|
+
min-height: 180px;
|
|
184
|
+
display: flex;
|
|
185
|
+
align-items: center;
|
|
186
|
+
justify-content: center;
|
|
187
|
+
}
|
|
188
|
+
.card-body {
|
|
189
|
+
padding: 16px;
|
|
190
|
+
}
|
|
191
|
+
.card-body p {
|
|
192
|
+
color: var(--text-muted);
|
|
193
|
+
font-size: 14px;
|
|
194
|
+
margin-top: 4px;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/* Mockup container */
|
|
198
|
+
.mockup {
|
|
199
|
+
background: var(--surface);
|
|
200
|
+
border: 1px solid var(--border);
|
|
201
|
+
border-radius: var(--radius);
|
|
202
|
+
overflow: hidden;
|
|
203
|
+
margin: 16px 0;
|
|
204
|
+
}
|
|
205
|
+
.mockup-header {
|
|
206
|
+
padding: 8px 16px;
|
|
207
|
+
font-size: 12px;
|
|
208
|
+
font-weight: 600;
|
|
209
|
+
color: var(--text-muted);
|
|
210
|
+
background: rgba(255,255,255,0.03);
|
|
211
|
+
border-bottom: 1px solid var(--border);
|
|
212
|
+
}
|
|
213
|
+
.mockup-body {
|
|
214
|
+
padding: 20px;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/* Split view */
|
|
218
|
+
.split {
|
|
219
|
+
display: grid;
|
|
220
|
+
grid-template-columns: 1fr 1fr;
|
|
221
|
+
gap: 16px;
|
|
222
|
+
margin: 16px 0;
|
|
223
|
+
}
|
|
224
|
+
@media (max-width: 700px) {
|
|
225
|
+
.split { grid-template-columns: 1fr; }
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/* Pros/Cons */
|
|
229
|
+
.pros-cons {
|
|
230
|
+
display: grid;
|
|
231
|
+
grid-template-columns: 1fr 1fr;
|
|
232
|
+
gap: 16px;
|
|
233
|
+
margin: 16px 0;
|
|
234
|
+
}
|
|
235
|
+
.pros, .cons {
|
|
236
|
+
padding: 16px;
|
|
237
|
+
border-radius: var(--radius);
|
|
238
|
+
}
|
|
239
|
+
.pros {
|
|
240
|
+
background: rgba(63, 185, 80, 0.08);
|
|
241
|
+
border: 1px solid rgba(63, 185, 80, 0.3);
|
|
242
|
+
}
|
|
243
|
+
.cons {
|
|
244
|
+
background: rgba(248, 81, 73, 0.08);
|
|
245
|
+
border: 1px solid rgba(248, 81, 73, 0.3);
|
|
246
|
+
}
|
|
247
|
+
.pros h4 { color: #3fb950; }
|
|
248
|
+
.cons h4 { color: #f85149; }
|
|
249
|
+
.pros-cons ul {
|
|
250
|
+
list-style: none;
|
|
251
|
+
padding: 0;
|
|
252
|
+
}
|
|
253
|
+
.pros-cons li {
|
|
254
|
+
padding: 4px 0;
|
|
255
|
+
font-size: 14px;
|
|
256
|
+
color: var(--text-muted);
|
|
257
|
+
}
|
|
258
|
+
.pros-cons li::before {
|
|
259
|
+
margin-right: 8px;
|
|
260
|
+
font-weight: 600;
|
|
261
|
+
}
|
|
262
|
+
.pros li::before { content: '+'; color: #3fb950; }
|
|
263
|
+
.cons li::before { content: '−'; color: #f85149; }
|
|
264
|
+
|
|
265
|
+
/* Mock elements (wireframe building blocks) */
|
|
266
|
+
.mock-nav {
|
|
267
|
+
background: var(--surface);
|
|
268
|
+
border: 1px solid var(--border);
|
|
269
|
+
border-radius: var(--radius);
|
|
270
|
+
padding: 12px 20px;
|
|
271
|
+
font-size: 14px;
|
|
272
|
+
color: var(--text-muted);
|
|
273
|
+
margin-bottom: 12px;
|
|
274
|
+
}
|
|
275
|
+
.mock-sidebar {
|
|
276
|
+
width: 200px;
|
|
277
|
+
flex-shrink: 0;
|
|
278
|
+
background: var(--surface);
|
|
279
|
+
border: 1px solid var(--border);
|
|
280
|
+
border-radius: var(--radius);
|
|
281
|
+
padding: 16px;
|
|
282
|
+
font-size: 13px;
|
|
283
|
+
color: var(--text-muted);
|
|
284
|
+
margin-right: 12px;
|
|
285
|
+
}
|
|
286
|
+
.mock-content {
|
|
287
|
+
flex: 1;
|
|
288
|
+
background: var(--surface);
|
|
289
|
+
border: 1px solid var(--border);
|
|
290
|
+
border-radius: var(--radius);
|
|
291
|
+
padding: 20px;
|
|
292
|
+
font-size: 14px;
|
|
293
|
+
color: var(--text-muted);
|
|
294
|
+
min-height: 200px;
|
|
295
|
+
}
|
|
296
|
+
.mock-button {
|
|
297
|
+
padding: 8px 20px;
|
|
298
|
+
background: var(--accent);
|
|
299
|
+
color: var(--bg);
|
|
300
|
+
border: none;
|
|
301
|
+
border-radius: 6px;
|
|
302
|
+
font-size: 14px;
|
|
303
|
+
font-weight: 600;
|
|
304
|
+
cursor: pointer;
|
|
305
|
+
}
|
|
306
|
+
.mock-button:hover { opacity: 0.9; }
|
|
307
|
+
.mock-input {
|
|
308
|
+
padding: 8px 12px;
|
|
309
|
+
background: var(--surface);
|
|
310
|
+
border: 1px solid var(--border);
|
|
311
|
+
border-radius: 6px;
|
|
312
|
+
color: var(--text);
|
|
313
|
+
font-size: 14px;
|
|
314
|
+
width: 100%;
|
|
315
|
+
max-width: 300px;
|
|
316
|
+
}
|
|
317
|
+
.mock-input::placeholder { color: var(--text-muted); }
|
|
318
|
+
.placeholder {
|
|
319
|
+
background: rgba(255,255,255,0.03);
|
|
320
|
+
border: 1px dashed var(--border);
|
|
321
|
+
border-radius: var(--radius);
|
|
322
|
+
padding: 40px 20px;
|
|
323
|
+
text-align: center;
|
|
324
|
+
color: var(--text-muted);
|
|
325
|
+
font-size: 14px;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/* General list styling inside content */
|
|
329
|
+
.frame-content ul, .frame-content ol {
|
|
330
|
+
padding-left: 20px;
|
|
331
|
+
margin: 8px 0;
|
|
332
|
+
}
|
|
333
|
+
.frame-content li {
|
|
334
|
+
margin: 4px 0;
|
|
335
|
+
color: var(--text-muted);
|
|
336
|
+
font-size: 14px;
|
|
337
|
+
}
|
|
338
|
+
.frame-content p {
|
|
339
|
+
margin: 8px 0;
|
|
340
|
+
}
|
|
341
|
+
.frame-content a {
|
|
342
|
+
color: var(--accent);
|
|
343
|
+
text-decoration: none;
|
|
344
|
+
}
|
|
345
|
+
.frame-content a:hover { text-decoration: underline; }
|
|
346
|
+
|
|
347
|
+
</style>
|
|
348
|
+
</head>
|
|
349
|
+
<body>
|
|
350
|
+
<div class="frame-header">
|
|
351
|
+
<span class="logo">Brainstorming</span>
|
|
352
|
+
</div>
|
|
353
|
+
<div class="frame-content">
|
|
354
|
+
<!-- CONTENT -->
|
|
355
|
+
</div>
|
|
356
|
+
<div id="selection-indicator">
|
|
357
|
+
<span class="check">✓</span>
|
|
358
|
+
<span id="selection-text">Selected</span>
|
|
359
|
+
</div>
|
|
360
|
+
<script>
|
|
361
|
+
const BRAINSTORM_DIR = __BRAINSTORM_DIR__;
|
|
362
|
+
<!-- HELPER_SCRIPT -->
|
|
363
|
+
</script>
|
|
364
|
+
</body>
|
|
365
|
+
</html>
|