@documentation-robotics/cli 0.1.0 → 0.1.7
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 +466 -693
- package/dist/analysis/data-model-analyzer.js +189 -0
- package/dist/analysis/data-model-analyzer.js.map +7 -0
- package/dist/analysis/index.js +3 -0
- package/dist/analysis/index.js.map +7 -0
- package/dist/analysis/relationship-classifier.js +181 -0
- package/dist/analysis/relationship-classifier.js.map +7 -0
- package/dist/analyzers/base-analyzer.js +1 -0
- package/dist/analyzers/base-analyzer.js.map +7 -0
- package/dist/analyzers/call-graph-utils.js +39 -0
- package/dist/analyzers/call-graph-utils.js.map +7 -0
- package/dist/analyzers/cbm-analyzer.js +1205 -0
- package/dist/analyzers/cbm-analyzer.js.map +7 -0
- package/dist/analyzers/heuristic-utils.js +55 -0
- package/dist/analyzers/heuristic-utils.js.map +7 -0
- package/dist/analyzers/mapping-loader.js +146 -0
- package/dist/analyzers/mapping-loader.js.map +7 -0
- package/dist/analyzers/registry.js +124 -0
- package/dist/analyzers/registry.js.map +7 -0
- package/dist/analyzers/session-state.js +176 -0
- package/dist/analyzers/session-state.js.map +7 -0
- package/dist/analyzers/stdio-client.js +208 -0
- package/dist/analyzers/stdio-client.js.map +7 -0
- package/dist/analyzers/types.js +15 -0
- package/dist/analyzers/types.js.map +7 -0
- package/dist/analyzers/verify-engine.js +209 -0
- package/dist/analyzers/verify-engine.js.map +7 -0
- package/dist/analyzers/verify-ignore.js +130 -0
- package/dist/analyzers/verify-ignore.js.map +7 -0
- package/dist/analyzers/version.js +8 -0
- package/dist/analyzers/version.js.map +7 -0
- package/dist/audit/ai/runner.js +41 -0
- package/dist/audit/ai/runner.js.map +7 -0
- package/dist/audit/differential-analyzer.js +183 -0
- package/dist/audit/differential-analyzer.js.map +7 -0
- package/dist/audit/index.js +32 -0
- package/dist/audit/index.js.map +7 -0
- package/dist/audit/nodes/ai/evaluator.js +49 -0
- package/dist/audit/nodes/ai/evaluator.js.map +7 -0
- package/dist/audit/nodes/ai/parser.js +55 -0
- package/dist/audit/nodes/ai/parser.js.map +7 -0
- package/dist/audit/nodes/ai/prompts.js +103 -0
- package/dist/audit/nodes/ai/prompts.js.map +7 -0
- package/dist/audit/nodes/analysis/node-completeness-checker.js +32 -0
- package/dist/audit/nodes/analysis/node-completeness-checker.js.map +7 -0
- package/dist/audit/nodes/analysis/node-definition-analyzer.js +47 -0
- package/dist/audit/nodes/analysis/node-definition-analyzer.js.map +7 -0
- package/dist/audit/nodes/analysis/node-overlap-detector.js +79 -0
- package/dist/audit/nodes/analysis/node-overlap-detector.js.map +7 -0
- package/dist/audit/nodes/model/orchestrator.js +82 -0
- package/dist/audit/nodes/model/orchestrator.js.map +7 -0
- package/dist/audit/nodes/spec/loader.js +116 -0
- package/dist/audit/nodes/spec/loader.js.map +7 -0
- package/dist/audit/nodes/spec/orchestrator.js +68 -0
- package/dist/audit/nodes/spec/orchestrator.js.map +7 -0
- package/dist/audit/nodes/types.js +1 -0
- package/dist/audit/nodes/types.js.map +7 -0
- package/dist/audit/pipeline/index.js +5 -0
- package/dist/audit/pipeline/index.js.map +7 -0
- package/dist/audit/pipeline/pipeline-orchestrator.js +218 -0
- package/dist/audit/pipeline/pipeline-orchestrator.js.map +7 -0
- package/dist/audit/relationships/ai/evaluator.js +235 -0
- package/dist/audit/relationships/ai/evaluator.js.map +7 -0
- package/dist/audit/relationships/ai/parser.js +197 -0
- package/dist/audit/relationships/ai/parser.js.map +7 -0
- package/dist/audit/relationships/ai/prompts.js +274 -0
- package/dist/audit/relationships/ai/prompts.js.map +7 -0
- package/dist/audit/relationships/analysis/balance-assessor.js +115 -0
- package/dist/audit/relationships/analysis/balance-assessor.js.map +7 -0
- package/dist/audit/relationships/analysis/coverage-analyzer.js +99 -0
- package/dist/audit/relationships/analysis/coverage-analyzer.js.map +7 -0
- package/dist/audit/relationships/analysis/duplicate-detector.js +95 -0
- package/dist/audit/relationships/analysis/duplicate-detector.js.map +7 -0
- package/dist/audit/relationships/analysis/gap-analyzer.js +99 -0
- package/dist/audit/relationships/analysis/gap-analyzer.js.map +7 -0
- package/dist/audit/relationships/analysis/layer-templates.js +294 -0
- package/dist/audit/relationships/analysis/layer-templates.js.map +7 -0
- package/dist/audit/relationships/graph/connectivity.js +129 -0
- package/dist/audit/relationships/graph/connectivity.js.map +7 -0
- package/dist/audit/relationships/graph/relationship-graph.js +179 -0
- package/dist/audit/relationships/graph/relationship-graph.js.map +7 -0
- package/dist/audit/relationships/model/balance-assessor.js +49 -0
- package/dist/audit/relationships/model/balance-assessor.js.map +7 -0
- package/dist/audit/relationships/model/coverage-analyzer.js +34 -0
- package/dist/audit/relationships/model/coverage-analyzer.js.map +7 -0
- package/dist/audit/relationships/model/duplicate-detector.js +68 -0
- package/dist/audit/relationships/model/duplicate-detector.js.map +7 -0
- package/dist/audit/relationships/model/gap-analyzer.js +41 -0
- package/dist/audit/relationships/model/gap-analyzer.js.map +7 -0
- package/dist/audit/relationships/model/orchestrator.js +126 -0
- package/dist/audit/relationships/model/orchestrator.js.map +7 -0
- package/dist/audit/relationships/spec/orchestrator.js +157 -0
- package/dist/audit/relationships/spec/orchestrator.js.map +7 -0
- package/dist/audit/reports/index.js +5 -0
- package/dist/audit/reports/index.js.map +7 -0
- package/dist/audit/reports/report-generator.js +118 -0
- package/dist/audit/reports/report-generator.js.map +7 -0
- package/dist/audit/snapshot-storage.js +163 -0
- package/dist/audit/snapshot-storage.js.map +7 -0
- package/dist/audit/types.js +21 -0
- package/dist/audit/types.js.map +7 -0
- package/dist/cli.js +223 -92
- package/dist/cli.js.map +3 -3
- package/dist/coding-agents/agents/claude-code.js +147 -0
- package/dist/coding-agents/agents/claude-code.js.map +7 -0
- package/dist/coding-agents/agents/index.js +5 -0
- package/dist/coding-agents/agents/index.js.map +7 -0
- package/dist/coding-agents/agents/types.js +1 -0
- package/dist/coding-agents/agents/types.js.map +7 -0
- package/dist/coding-agents/base-chat-client.js +45 -0
- package/dist/coding-agents/base-chat-client.js.map +7 -0
- package/dist/coding-agents/chat-utils.js +23 -0
- package/dist/coding-agents/chat-utils.js.map +7 -0
- package/dist/coding-agents/claude-code-client.js +246 -0
- package/dist/coding-agents/claude-code-client.js.map +7 -0
- package/dist/coding-agents/copilot-client.js +209 -0
- package/dist/coding-agents/copilot-client.js.map +7 -0
- package/dist/commands/add.js +95 -33
- package/dist/commands/add.js.map +2 -2
- package/dist/commands/analyzer.js +511 -0
- package/dist/commands/analyzer.js.map +7 -0
- package/dist/commands/audit-diff.js +49 -0
- package/dist/commands/audit-diff.js.map +7 -0
- package/dist/commands/audit-snapshots.js +62 -0
- package/dist/commands/audit-snapshots.js.map +7 -0
- package/dist/commands/audit.js +81 -0
- package/dist/commands/audit.js.map +7 -0
- package/dist/commands/catalog.js +248 -0
- package/dist/commands/catalog.js.map +7 -0
- package/dist/commands/changeset.js +577 -66
- package/dist/commands/changeset.js.map +2 -2
- package/dist/commands/chat.js +106 -83
- package/dist/commands/chat.js.map +2 -2
- package/dist/commands/claude.js +74 -0
- package/dist/commands/claude.js.map +7 -0
- package/dist/commands/conformance.js +71 -68
- package/dist/commands/conformance.js.map +2 -2
- package/dist/commands/copilot.js +75 -0
- package/dist/commands/copilot.js.map +7 -0
- package/dist/commands/delete.js +125 -11
- package/dist/commands/delete.js.map +3 -3
- package/dist/commands/discover-logic.js +44 -0
- package/dist/commands/discover-logic.js.map +7 -0
- package/dist/commands/docs.js +87 -0
- package/dist/commands/docs.js.map +7 -0
- package/dist/commands/element.js +14 -20
- package/dist/commands/element.js.map +2 -2
- package/dist/commands/export.js +13 -3
- package/dist/commands/export.js.map +2 -2
- package/dist/commands/import.js +51 -0
- package/dist/commands/import.js.map +7 -0
- package/dist/commands/info.js +30 -24
- package/dist/commands/info.js.map +2 -2
- package/dist/commands/init.js +27 -11
- package/dist/commands/init.js.map +2 -2
- package/dist/commands/list.js +63 -13
- package/dist/commands/list.js.map +3 -3
- package/dist/commands/relationship.js +225 -37
- package/dist/commands/relationship.js.map +2 -2
- package/dist/commands/report.js +54 -0
- package/dist/commands/report.js.map +7 -0
- package/dist/commands/reports.js +45 -0
- package/dist/commands/reports.js.map +7 -0
- package/dist/commands/schema.js +135 -0
- package/dist/commands/schema.js.map +7 -0
- package/dist/commands/search.js +40 -12
- package/dist/commands/search.js.map +2 -2
- package/dist/commands/show.js +58 -27
- package/dist/commands/show.js.map +2 -2
- package/dist/commands/stats.js +35 -0
- package/dist/commands/stats.js.map +7 -0
- package/dist/commands/trace.js +39 -16
- package/dist/commands/trace.js.map +2 -2
- package/dist/commands/update.js +141 -14
- package/dist/commands/update.js.map +2 -2
- package/dist/commands/upgrade.js +210 -46
- package/dist/commands/upgrade.js.map +3 -3
- package/dist/commands/validate.js +142 -23
- package/dist/commands/validate.js.map +3 -3
- package/dist/commands/version.js +8 -12
- package/dist/commands/version.js.map +2 -2
- package/dist/commands/visualize.js +162 -25
- package/dist/commands/visualize.js.map +2 -2
- package/dist/core/base-snapshot-manager.js +84 -0
- package/dist/core/base-snapshot-manager.js.map +7 -0
- package/dist/core/changeset-exporter.js +305 -0
- package/dist/core/changeset-exporter.js.map +7 -0
- package/dist/core/changeset-validator.js +41 -0
- package/dist/core/changeset-validator.js.map +7 -0
- package/dist/core/changeset.js +88 -173
- package/dist/core/changeset.js.map +2 -2
- package/dist/core/dependency-tracker.js +4 -2
- package/dist/core/dependency-tracker.js.map +2 -2
- package/dist/core/element.js +98 -27
- package/dist/core/element.js.map +2 -2
- package/dist/core/golden-copy-cache.js +290 -0
- package/dist/core/golden-copy-cache.js.map +7 -0
- package/dist/core/graph-model.js +266 -0
- package/dist/core/graph-model.js.map +7 -0
- package/dist/core/layer.js +159 -16
- package/dist/core/layer.js.map +2 -2
- package/dist/core/layers.js +32 -0
- package/dist/core/layers.js.map +7 -0
- package/dist/core/manifest.js +32 -11
- package/dist/core/manifest.js.map +2 -2
- package/dist/core/migration-registry.js +56 -1
- package/dist/core/migration-registry.js.map +2 -2
- package/dist/core/model.js +424 -217
- package/dist/core/model.js.map +3 -3
- package/dist/core/mutation-handler.js +179 -0
- package/dist/core/mutation-handler.js.map +7 -0
- package/dist/core/reference-registry.js +29 -21
- package/dist/core/reference-registry.js.map +2 -2
- package/dist/core/relationship-catalog.js +189 -0
- package/dist/core/relationship-catalog.js.map +7 -0
- package/dist/core/relationship-registry.js.map +2 -2
- package/dist/core/relationships.js.map +1 -1
- package/dist/core/report-data-model.js +285 -0
- package/dist/core/report-data-model.js.map +7 -0
- package/dist/core/spec-data-service.js +185 -0
- package/dist/core/spec-data-service.js.map +7 -0
- package/dist/core/spec-loader-types.js +1 -0
- package/dist/core/spec-loader-types.js.map +7 -0
- package/dist/core/spec-loader.js +234 -0
- package/dist/core/spec-loader.js.map +7 -0
- package/dist/core/staged-changeset-storage.js +282 -0
- package/dist/core/staged-changeset-storage.js.map +7 -0
- package/dist/core/staging-area.js +1002 -0
- package/dist/core/staging-area.js.map +7 -0
- package/dist/core/stats-collector.js +169 -0
- package/dist/core/stats-collector.js.map +7 -0
- package/dist/core/virtual-projection.js +443 -0
- package/dist/core/virtual-projection.js.map +7 -0
- package/dist/export/archimate-exporter.js +99 -60
- package/dist/export/archimate-exporter.js.map +2 -2
- package/dist/export/audit-formatters.js +479 -0
- package/dist/export/audit-formatters.js.map +7 -0
- package/dist/export/diff-formatters.js +99 -0
- package/dist/export/diff-formatters.js.map +7 -0
- package/dist/export/export-manager.js.map +2 -2
- package/dist/export/graphml-exporter.js +44 -27
- package/dist/export/graphml-exporter.js.map +2 -2
- package/dist/export/index.js +4 -0
- package/dist/export/index.js.map +2 -2
- package/dist/export/json-schema-exporter.js +55 -42
- package/dist/export/json-schema-exporter.js.map +2 -2
- package/dist/export/markdown-exporter.js +92 -70
- package/dist/export/markdown-exporter.js.map +2 -2
- package/dist/export/markdown-generator.js +248 -0
- package/dist/export/markdown-generator.js.map +7 -0
- package/dist/export/markdown-utils.js +30 -0
- package/dist/export/markdown-utils.js.map +7 -0
- package/dist/export/mermaid-markdown-exporter.js +37 -0
- package/dist/export/mermaid-markdown-exporter.js.map +7 -0
- package/dist/export/openapi-exporter.js +119 -71
- package/dist/export/openapi-exporter.js.map +2 -2
- package/dist/export/plantuml-exporter.js +104 -39
- package/dist/export/plantuml-exporter.js.map +2 -2
- package/dist/export/report-formatters.js +111 -0
- package/dist/export/report-formatters.js.map +7 -0
- package/dist/export/stats-formatters.js +98 -0
- package/dist/export/stats-formatters.js.map +7 -0
- package/dist/export/types.js +2 -14
- package/dist/export/types.js.map +2 -2
- package/dist/export/verify-formatters.js +153 -0
- package/dist/export/verify-formatters.js.map +7 -0
- package/dist/generated/compiled-validators.js +17 -0
- package/dist/generated/compiled-validators.js.map +7 -0
- package/dist/generated/index.js +31 -0
- package/dist/generated/index.js.map +7 -0
- package/dist/generated/layer-registry.js +190 -0
- package/dist/generated/layer-registry.js.map +7 -0
- package/dist/generated/layer-types.js +7 -0
- package/dist/generated/layer-types.js.map +7 -0
- package/dist/generated/node-types.js +1719 -0
- package/dist/generated/node-types.js.map +7 -0
- package/dist/generated/relationship-index.js +14552 -0
- package/dist/generated/relationship-index.js.map +7 -0
- package/dist/import/archimate-importer.js +166 -0
- package/dist/import/archimate-importer.js.map +7 -0
- package/dist/import/index.js +47 -0
- package/dist/import/index.js.map +7 -0
- package/dist/import/openapi-importer.js +143 -0
- package/dist/import/openapi-importer.js.map +7 -0
- package/dist/import/types.js +1 -0
- package/dist/import/types.js.map +7 -0
- package/dist/integrations/base-manager.js +311 -0
- package/dist/integrations/base-manager.js.map +7 -0
- package/dist/integrations/claude-manager.js +360 -0
- package/dist/integrations/claude-manager.js.map +7 -0
- package/dist/integrations/claude_code/agents/dr-advisor.md +253 -0
- package/dist/integrations/claude_code/agents/dr-architect.md +278 -0
- package/dist/integrations/claude_code/agents/dr-extractor.md +286 -0
- package/dist/integrations/claude_code/commands/dr-changeset.md +657 -0
- package/dist/integrations/claude_code/commands/dr-design.md +373 -0
- package/dist/integrations/claude_code/commands/dr-info.md +132 -0
- package/dist/integrations/claude_code/commands/dr-init.md +251 -0
- package/dist/integrations/claude_code/commands/dr-map.md +936 -0
- package/dist/integrations/claude_code/commands/dr-model.md +493 -0
- package/dist/integrations/claude_code/commands/dr-relate.md +814 -0
- package/dist/integrations/claude_code/commands/dr-sync.md +279 -0
- package/dist/integrations/claude_code/commands/dr-validate.md +654 -0
- package/dist/integrations/claude_code/commands/dr-verify.md +559 -0
- package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +903 -0
- package/dist/integrations/claude_code/docs/QUICK_START.md +271 -0
- package/dist/integrations/claude_code/docs/README.md +347 -0
- package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +550 -0
- package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +620 -0
- package/dist/integrations/claude_code/skills/dr_03_security_layer/SKILL.md +642 -0
- package/dist/integrations/claude_code/skills/dr_04_application_layer/SKILL.md +911 -0
- package/dist/integrations/claude_code/skills/dr_05_technology_layer/SKILL.md +836 -0
- package/dist/integrations/claude_code/skills/dr_06_api_layer/SKILL.md +933 -0
- package/dist/integrations/claude_code/skills/dr_07_data_model_layer/SKILL.md +210 -0
- package/dist/integrations/claude_code/skills/dr_08_dataset_layer/SKILL.md +319 -0
- package/dist/integrations/claude_code/skills/dr_09_ux_layer/SKILL.md +319 -0
- package/dist/integrations/claude_code/skills/dr_10_navigation_layer/SKILL.md +318 -0
- package/dist/integrations/claude_code/skills/dr_11_apm_layer/SKILL.md +273 -0
- package/dist/integrations/claude_code/skills/dr_12_testing_layer/SKILL.md +273 -0
- package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +187 -0
- package/dist/integrations/claude_code/skills/dr_codebase_memory/SKILL.md +590 -0
- package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +295 -0
- package/dist/integrations/copilot-manager.js +328 -0
- package/dist/integrations/copilot-manager.js.map +7 -0
- package/dist/integrations/github_copilot/agents/dr-advisor.md +243 -0
- package/dist/integrations/github_copilot/agents/dr-architect.md +1567 -0
- package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +491 -0
- package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +539 -0
- package/dist/integrations/github_copilot/skills/dr_03_security_layer/SKILL.md +667 -0
- package/dist/integrations/github_copilot/skills/dr_04_application_layer/SKILL.md +670 -0
- package/dist/integrations/github_copilot/skills/dr_05_technology_layer/SKILL.md +660 -0
- package/dist/integrations/github_copilot/skills/dr_06_api_layer/SKILL.md +855 -0
- package/dist/integrations/github_copilot/skills/dr_07_data_model_layer/SKILL.md +171 -0
- package/dist/integrations/github_copilot/skills/dr_08_dataset_layer/SKILL.md +216 -0
- package/dist/integrations/github_copilot/skills/dr_09_ux_layer/SKILL.md +230 -0
- package/dist/integrations/github_copilot/skills/dr_10_navigation_layer/SKILL.md +228 -0
- package/dist/integrations/github_copilot/skills/dr_11_apm_layer/SKILL.md +234 -0
- package/dist/integrations/github_copilot/skills/dr_12_testing_layer/SKILL.md +230 -0
- package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +187 -0
- package/dist/integrations/hash-utils.js +51 -0
- package/dist/integrations/hash-utils.js.map +7 -0
- package/dist/integrations/types.js +16 -0
- package/dist/integrations/types.js.map +7 -0
- package/dist/reports/model-layer-report-generator.js +278 -0
- package/dist/reports/model-layer-report-generator.js.map +7 -0
- package/dist/reports/model-report-data.js +57 -0
- package/dist/reports/model-report-data.js.map +7 -0
- package/dist/reports/model-report-orchestrator.js +103 -0
- package/dist/reports/model-report-orchestrator.js.map +7 -0
- package/dist/schemas/bundled/analyzers/cbm.json +595 -0
- package/dist/schemas/bundled/analyzers/manifest.json +9 -0
- package/dist/schemas/bundled/api.json +3411 -0
- package/dist/schemas/bundled/apm.json +2371 -0
- package/dist/schemas/bundled/application.json +1253 -0
- package/dist/schemas/bundled/base.json +1622 -0
- package/dist/schemas/bundled/business.json +1279 -0
- package/dist/schemas/bundled/data-model.json +1298 -0
- package/dist/schemas/bundled/data-store.json +2025 -0
- package/dist/schemas/bundled/manifest.json +93 -0
- package/dist/schemas/bundled/motivation.json +1360 -0
- package/dist/schemas/bundled/navigation.json +1874 -0
- package/dist/schemas/bundled/security.json +3488 -0
- package/dist/schemas/bundled/technology.json +2067 -0
- package/dist/schemas/bundled/testing.json +3120 -0
- package/dist/schemas/bundled/ux.json +3592 -0
- package/dist/server/schemas.js +202 -0
- package/dist/server/schemas.js.map +7 -0
- package/dist/server/server.js +1336 -252
- package/dist/server/server.js.map +3 -3
- package/dist/server/telemetry-middleware.js +22 -15
- package/dist/server/telemetry-middleware.js.map +2 -2
- package/dist/server-entry.js +65 -0
- package/dist/server-entry.js.map +7 -0
- package/dist/telemetry/config.js +89 -0
- package/dist/telemetry/config.js.map +7 -0
- package/dist/telemetry/console-interceptor.js.map +1 -1
- package/dist/telemetry/detect.js +24 -0
- package/dist/telemetry/detect.js.map +7 -0
- package/dist/telemetry/fetch-otlp-exporter.js +112 -0
- package/dist/telemetry/fetch-otlp-exporter.js.map +7 -0
- package/dist/telemetry/index.js +153 -3
- package/dist/telemetry/index.js.map +2 -2
- package/dist/telemetry/resilient-exporter.js +22 -8
- package/dist/telemetry/resilient-exporter.js.map +2 -2
- package/dist/telemetry/resilient-log-exporter.js +17 -8
- package/dist/telemetry/resilient-log-exporter.js.map +2 -2
- package/dist/telemetry/test-instrumentation.js.map +2 -2
- package/dist/types/index.js +84 -0
- package/dist/types/index.js.map +3 -3
- package/dist/types/source-reference.js +1 -0
- package/dist/types/source-reference.js.map +7 -0
- package/dist/utils/chat-logger.js +292 -0
- package/dist/utils/chat-logger.js.map +7 -0
- package/dist/utils/claude-stream.js +8 -0
- package/dist/utils/claude-stream.js.map +7 -0
- package/dist/utils/date-utils.js +7 -0
- package/dist/utils/date-utils.js.map +7 -0
- package/dist/utils/element-utils.js.map +1 -1
- package/dist/utils/errors.js +88 -15
- package/dist/utils/errors.js.map +3 -3
- package/dist/utils/export-python-annotations.js +82 -0
- package/dist/utils/export-python-annotations.js.map +7 -0
- package/dist/utils/file-io.js +7 -2
- package/dist/utils/file-io.js.map +2 -2
- package/dist/utils/file-lock.js +156 -0
- package/dist/utils/file-lock.js.map +7 -0
- package/dist/utils/id-generator.js +18 -0
- package/dist/utils/id-generator.js.map +7 -0
- package/dist/utils/layer-name-formatter.js +16 -0
- package/dist/utils/layer-name-formatter.js.map +7 -0
- package/dist/utils/markdown-anchor.js +7 -0
- package/dist/utils/markdown-anchor.js.map +7 -0
- package/dist/utils/markdown-link.js +12 -0
- package/dist/utils/markdown-link.js.map +7 -0
- package/dist/utils/markdown-table.js +17 -0
- package/dist/utils/markdown-table.js.map +7 -0
- package/dist/utils/mermaid-utils.js +11 -0
- package/dist/utils/mermaid-utils.js.map +7 -0
- package/dist/utils/project-paths.js.map +2 -2
- package/dist/utils/source-reference.js +52 -0
- package/dist/utils/source-reference.js.map +7 -0
- package/dist/utils/spec-installer.js +40 -53
- package/dist/utils/spec-installer.js.map +2 -2
- package/dist/utils/spec-version.js +5 -1
- package/dist/utils/spec-version.js.map +2 -2
- package/dist/utils/string-utils.js +12 -0
- package/dist/utils/string-utils.js.map +7 -0
- package/dist/utils/table-formatting.js +19 -0
- package/dist/utils/table-formatting.js.map +7 -0
- package/dist/validators/index.js +4 -0
- package/dist/validators/index.js.map +2 -2
- package/dist/validators/naming-validator.js +20 -23
- package/dist/validators/naming-validator.js.map +2 -2
- package/dist/validators/reference-validator.js +23 -38
- package/dist/validators/reference-validator.js.map +2 -2
- package/dist/validators/relationship-schema-validator.js +243 -0
- package/dist/validators/relationship-schema-validator.js.map +7 -0
- package/dist/validators/schema-validator.js +168 -68
- package/dist/validators/schema-validator.js.map +2 -2
- package/dist/validators/semantic-validator.js +36 -60
- package/dist/validators/semantic-validator.js.map +2 -2
- package/dist/validators/types.js.map +2 -2
- package/dist/validators/validation-formatter.js +159 -0
- package/dist/validators/validation-formatter.js.map +7 -0
- package/dist/validators/validator.js +24 -38
- package/dist/validators/validator.js.map +2 -2
- package/dist/viewer/README.md +139 -0
- package/dist/viewer/assets/main-CY0Xufuj.css +1 -0
- package/dist/viewer/assets/main-DtgErnwF.js +81 -0
- package/dist/viewer/assets/vendor-CxKvDp2x.js +17 -0
- package/dist/viewer/favicon.svg +11 -0
- package/dist/viewer/fonts/inter/Inter-Black.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Bold.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-ExtraBold.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Light.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Medium.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Regular.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-SemiBold.woff2 +0 -0
- package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2 +0 -0
- package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 +0 -0
- package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2 +0 -0
- package/dist/viewer/index.html +15 -0
- package/dist/viewer/manifest.json +99 -0
- package/dist/viewer/version.json +1 -0
- package/package.json +42 -16
- package/PYTHON_CLI_PARITY.md +0 -265
- package/PYTHON_CLI_STRUCTURE_UPDATE.md +0 -246
- package/biome.json +0 -42
- package/bunfig.toml +0 -3
- package/dist/ai/claude-client.js +0 -71
- package/dist/ai/claude-client.js.map +0 -7
- package/dist/ai/context-provider.js +0 -129
- package/dist/ai/context-provider.js.map +0 -7
- package/dist/ai/tools.js +0 -231
- package/dist/ai/tools.js.map +0 -7
- package/dist/commands/migrate.js +0 -36
- package/dist/commands/migrate.js.map +0 -7
- package/dist/commands/project.js +0 -74
- package/dist/commands/project.js.map +0 -7
- package/dist/core/active-changeset.js +0 -52
- package/dist/core/active-changeset.js.map +0 -7
- package/dist/core/projection-engine.js +0 -288
- package/dist/core/projection-engine.js.map +0 -7
- package/dist/schemas/bundled/01-motivation-layer.schema.json +0 -942
- package/dist/schemas/bundled/02-business-layer.schema.json +0 -1293
- package/dist/schemas/bundled/03-security-layer.schema.json +0 -2177
- package/dist/schemas/bundled/04-application-layer.schema.json +0 -1328
- package/dist/schemas/bundled/05-technology-layer.schema.json +0 -1465
- package/dist/schemas/bundled/06-api-layer.schema.json +0 -1743
- package/dist/schemas/bundled/07-data-model-layer.schema.json +0 -1253
- package/dist/schemas/bundled/08-datastore-layer.schema.json +0 -892
- package/dist/schemas/bundled/09-ux-layer.schema.json +0 -1506
- package/dist/schemas/bundled/10-navigation-layer.schema.json +0 -843
- package/dist/schemas/bundled/11-apm-observability-layer.schema.json +0 -1430
- package/dist/schemas/bundled/12-testing-layer.schema.json +0 -1091
- package/dist/schemas/bundled/common/layer-extensions.schema.json +0 -266
- package/dist/schemas/bundled/common/predicates.schema.json +0 -493
- package/dist/schemas/bundled/common/relationships.schema.json +0 -791
- package/dist/schemas/bundled/common/source-references.schema.json +0 -71
- package/dist/schemas/bundled/link-registry.json +0 -1839
- package/dist/schemas/bundled/link-registry.schema.json +0 -339
- package/dist/schemas/bundled/relationship-catalog.json +0 -1302
- package/dist/schemas/bundled/relationship-type.schema.json +0 -221
- package/dist/utils/model-path.js +0 -22
- package/dist/utils/model-path.js.map +0 -7
- package/docs/TEST-INSTRUMENTATION.md +0 -405
- package/docs/telemetry.md +0 -427
- package/test-debug.js +0 -33
- package/test-special.mjs +0 -46
- package/test_runner.ts +0 -7
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Design model changes for a proposed feature, with reasoning annotations per element
|
|
3
|
+
argument-hint: '"<feature description>"'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design Model Changes for a Proposed Feature
|
|
7
|
+
|
|
8
|
+
Given a natural language description of a proposed change, generate all implied model elements across affected layers — with reasoning for each decision. Output is a named changeset ready for review and refinement.
|
|
9
|
+
|
|
10
|
+
## What This Command Does
|
|
11
|
+
|
|
12
|
+
1. Parses the intent (new feature, refactor, compliance requirement, scaling change)
|
|
13
|
+
2. Identifies all layers that will have changes
|
|
14
|
+
3. Builds a complete impact map with a rationale per element
|
|
15
|
+
4. Creates a named changeset
|
|
16
|
+
5. Stages elements layer by layer with reasoning annotations
|
|
17
|
+
6. Presents the full design for review and offers refinements
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/dr-design "Add a real-time order tracking feature"
|
|
23
|
+
/dr-design "Migrate checkout domain from monolith to microservices"
|
|
24
|
+
/dr-design "Add SOC2 compliance controls to the payment flow"
|
|
25
|
+
/dr-design "Introduce a recommendation engine for the product catalog"
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## How This Differs from `/dr-changeset`
|
|
29
|
+
|
|
30
|
+
`/dr-changeset` manages the lifecycle of changes you already know you want to make.
|
|
31
|
+
|
|
32
|
+
`/dr-design` **figures out what changes to make** from a high-level intent. You describe the goal; the command determines the elements, layers, and relationships, then builds the changeset for you with full reasoning.
|
|
33
|
+
|
|
34
|
+
## Instructions for Claude Code
|
|
35
|
+
|
|
36
|
+
> **GLOBAL RULE — source_reference on every element:**
|
|
37
|
+
> Every `dr add` call in this command MUST include `--source-provenance inferred`.
|
|
38
|
+
> Omitting it leaves `source_reference` unset, which produces one `dr validate` warning
|
|
39
|
+
> per element — permanently, until manually fixed. There are no exceptions.
|
|
40
|
+
> Correct form: `dr add <layer> <type> "<name>" --description "..." --source-provenance inferred`
|
|
41
|
+
|
|
42
|
+
### Step 1: Validate Prerequisites
|
|
43
|
+
|
|
44
|
+
Check that a DR model exists:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
ls -la documentation-robotics/model/manifest.yaml 2>/dev/null
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
If no model, prompt: "Initialize a model first with /dr-init, then extract your baseline with /dr-map."
|
|
51
|
+
|
|
52
|
+
### Step 2: Parse Intent
|
|
53
|
+
|
|
54
|
+
Classify the proposed change into one of these intent types:
|
|
55
|
+
|
|
56
|
+
| Intent Type | Examples | Typical Affected Layers |
|
|
57
|
+
| ------------------------- | --------------------------------------------- | ------------------------------------------------------- |
|
|
58
|
+
| **New feature** | "Add order tracking", "Add notifications" | motivation, application, api, data-model, security, apm |
|
|
59
|
+
| **Compliance** | "SOC2 compliance", "GDPR controls", "PCI-DSS" | motivation, security, business, testing |
|
|
60
|
+
| **Infrastructure change** | "Move to Kubernetes", "Switch to Postgres" | technology, data-store, apm |
|
|
61
|
+
| **Domain refactor** | "Extract microservice", "Split monolith" | business, application, api, technology |
|
|
62
|
+
| **UX/Product** | "Add mobile app", "Redesign checkout flow" | ux, navigation, api, application |
|
|
63
|
+
| **Observability** | "Add distributed tracing", "SLO dashboards" | apm, application, motivation |
|
|
64
|
+
| **Data change** | "Add new entity", "Redesign data model" | data-model, data-store, api, application |
|
|
65
|
+
|
|
66
|
+
Ask a clarifying question if the intent type is ambiguous or the scope is very broad.
|
|
67
|
+
|
|
68
|
+
### Step 3: Examine the Existing Model
|
|
69
|
+
|
|
70
|
+
Before proposing new elements, understand what already exists:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Check what's already in the model for relevant layers
|
|
74
|
+
dr list application
|
|
75
|
+
dr list api
|
|
76
|
+
dr list motivation
|
|
77
|
+
|
|
78
|
+
# Look for related existing elements
|
|
79
|
+
dr search "<key terms from the feature description>"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
This prevents proposing elements that already exist and enables proposing relationships to existing elements.
|
|
83
|
+
|
|
84
|
+
**Duplicate guard:** Before staging any element in Step 6, verify it does not already exist:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
dr show <proposed-element-id> 2>/dev/null && echo "EXISTS" || echo "NEW"
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
If the element already exists, skip the `dr add` call and note it in the design summary as "already modeled." Do not attempt to re-add it.
|
|
91
|
+
|
|
92
|
+
### Step 4: Build the Impact Map
|
|
93
|
+
|
|
94
|
+
For each affected layer, determine:
|
|
95
|
+
|
|
96
|
+
- What elements need to be added (and why)
|
|
97
|
+
- What existing elements need to be updated (and what changes)
|
|
98
|
+
- What cross-layer relationships to add (e.g., the new API operation exposes the new application service)
|
|
99
|
+
|
|
100
|
+
**Impact map ordering** (design from intent down to implementation):
|
|
101
|
+
|
|
102
|
+
1. Motivation — what goal/requirement drives this?
|
|
103
|
+
2. Business — what business capability does it add or change?
|
|
104
|
+
3. Security — what access controls, policies, or threats does it introduce?
|
|
105
|
+
4. Technology — what infrastructure, platforms, or frameworks does it require?
|
|
106
|
+
5. Application — what services or components implement it?
|
|
107
|
+
6. API — what endpoints expose it?
|
|
108
|
+
7. Data Model — what entities or schemas does it require?
|
|
109
|
+
8. Data Store — what tables or indexes does it need?
|
|
110
|
+
9. UX — what screens or components does the user interact with? (if applicable)
|
|
111
|
+
10. Navigation — what routing changes does it require? (if applicable)
|
|
112
|
+
11. APM — what metrics, spans, or alerts should track it?
|
|
113
|
+
12. Testing — what test cases should validate it?
|
|
114
|
+
|
|
115
|
+
Reason about each layer explicitly. It's acceptable to skip layers that are genuinely not affected — but provide a rationale.
|
|
116
|
+
|
|
117
|
+
### Step 5: Create a Named Changeset
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
dr changeset create design-<kebab-feature-name>
|
|
121
|
+
dr changeset activate design-<kebab-feature-name>
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Example:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
dr changeset create design-real-time-order-tracking
|
|
128
|
+
dr changeset activate design-real-time-order-tracking
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Step 6: Stage Elements with Reasoning Annotations
|
|
132
|
+
|
|
133
|
+
With the changeset active, add each element in the prescribed layer order (motivation first, then down). All `dr add` commands auto-stage to the active changeset. Include reasoning in the description.
|
|
134
|
+
|
|
135
|
+
**REQUIRED — no exceptions:** Every `dr add` call MUST end with `--source-provenance inferred`.
|
|
136
|
+
This is non-negotiable. Elements staged without it will produce permanent `dr validate` warnings.
|
|
137
|
+
No `--source-file` is needed for design-generated elements — provenance alone is sufficient.
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# CORRECT — always end dr add calls with --source-provenance inferred
|
|
141
|
+
dr add motivation goal "Real Time Order Visibility" \
|
|
142
|
+
--description "Customers can see live order status updates without refreshing. Drives the new tracking feature." \
|
|
143
|
+
--source-provenance inferred
|
|
144
|
+
|
|
145
|
+
# WRONG — missing --source-provenance causes a validate warning for this element forever
|
|
146
|
+
dr add motivation goal "Real Time Order Visibility" \
|
|
147
|
+
--description "Customers can see live order status updates without refreshing."
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Show each staged element to the user as it's created with its reasoning:
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Staging motivation layer...
|
|
154
|
+
|
|
155
|
+
+ motivation.goal.real-time-order-visibility
|
|
156
|
+
Reasoning: "Real-time tracking" implies a business goal for order transparency.
|
|
157
|
+
This goal will drive the new business service and API operations.
|
|
158
|
+
|
|
159
|
+
Staging application layer...
|
|
160
|
+
|
|
161
|
+
+ application.service.order-tracking-service
|
|
162
|
+
Reasoning: Real-time tracking requires a dedicated service to manage WebSocket
|
|
163
|
+
connections or SSE streams. Separate from order-service to isolate concerns.
|
|
164
|
+
|
|
165
|
+
+ application.service.notification-dispatcher
|
|
166
|
+
Reasoning: Tracking updates must be pushed to clients. A dispatcher service
|
|
167
|
+
decouples the tracking logic from the delivery mechanism.
|
|
168
|
+
|
|
169
|
+
Staging api layer...
|
|
170
|
+
|
|
171
|
+
+ api.operation.get-order-tracking-status
|
|
172
|
+
Reasoning: REST polling endpoint for clients that can't use WebSockets.
|
|
173
|
+
Path: GET /api/v1/orders/{id}/tracking
|
|
174
|
+
|
|
175
|
+
+ api.operation.subscribe-order-updates
|
|
176
|
+
Reasoning: WebSocket endpoint for real-time push. Consider SSE as alternative
|
|
177
|
+
if WebSocket complexity is undesirable.
|
|
178
|
+
|
|
179
|
+
Staging data-model layer...
|
|
180
|
+
|
|
181
|
+
+ data-model.objectschema.order-tracking-event
|
|
182
|
+
Reasoning: Need to store tracking state transitions (submitted → shipped → delivered).
|
|
183
|
+
This schema captures each event with timestamp, actor, and orderId.
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Step 7: Show Complete Changeset Preview
|
|
187
|
+
|
|
188
|
+
After staging all elements, display the full changeset with reasoning:
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
dr changeset preview
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Show output in annotated format:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
DESIGN PROPOSAL: Real-Time Order Tracking
|
|
198
|
+
==========================================
|
|
199
|
+
Changeset: design-real-time-order-tracking
|
|
200
|
+
|
|
201
|
+
MOTIVATION (1 element):
|
|
202
|
+
+ motivation.goal.real-time-order-visibility
|
|
203
|
+
[Goal] Customers can see live order status without refreshing
|
|
204
|
+
|
|
205
|
+
BUSINESS (1 element):
|
|
206
|
+
+ business.service.order-tracking-capability
|
|
207
|
+
[BusinessService] Business capability for real-time order visibility
|
|
208
|
+
|
|
209
|
+
SECURITY (1 element):
|
|
210
|
+
+ security.policy.order-tracking-access-control
|
|
211
|
+
[AccessPolicy] Only authenticated customers can view their own orders
|
|
212
|
+
|
|
213
|
+
APPLICATION (2 elements):
|
|
214
|
+
+ application.service.order-tracking-service
|
|
215
|
+
[ApplicationService] Manages tracking state and WebSocket/SSE connections
|
|
216
|
+
+ application.service.notification-dispatcher
|
|
217
|
+
[ApplicationService] Pushes tracking updates to subscribed clients
|
|
218
|
+
|
|
219
|
+
API (2 elements):
|
|
220
|
+
+ api.operation.get-order-tracking-status
|
|
221
|
+
[Operation] GET /api/v1/orders/{id}/tracking — polling endpoint
|
|
222
|
+
+ api.operation.subscribe-order-updates
|
|
223
|
+
[Operation] WS /api/v1/orders/{id}/tracking/ws — push endpoint
|
|
224
|
+
|
|
225
|
+
DATA MODEL (1 element):
|
|
226
|
+
+ data-model.objectschema.order-tracking-event
|
|
227
|
+
[ObjectSchema] Immutable event log: status, timestamp, actor, orderId
|
|
228
|
+
|
|
229
|
+
DATA STORE (1 element):
|
|
230
|
+
+ data-store.collection.order-tracking-events
|
|
231
|
+
[Collection] Append-only event collection with index on orderId
|
|
232
|
+
|
|
233
|
+
APM (2 elements):
|
|
234
|
+
+ apm.span.order-tracking-update
|
|
235
|
+
[Span] Traces each status transition through the tracking service
|
|
236
|
+
+ apm.metric.tracking-update-latency
|
|
237
|
+
[Metric] P95 latency for pushing updates to clients — alert if >500ms
|
|
238
|
+
|
|
239
|
+
TESTING (2 elements):
|
|
240
|
+
+ testing.testcasesketch.order-tracking-status-transitions
|
|
241
|
+
[TestCaseSketch] Validates all valid state machine transitions
|
|
242
|
+
+ testing.testcasesketch.concurrent-tracking-subscribers
|
|
243
|
+
[TestCaseSketch] Load test: 1000 concurrent WebSocket connections
|
|
244
|
+
|
|
245
|
+
CROSS-LAYER REFERENCES:
|
|
246
|
+
api.operation.get-order-tracking-status → exposes → application.service.order-tracking-service
|
|
247
|
+
application.service.order-tracking-service → realizes → business.service.order-tracking-capability
|
|
248
|
+
application.service.order-tracking-service → stores → data-store.collection.order-tracking-events
|
|
249
|
+
|
|
250
|
+
Total: 13 new elements across 9 layers
|
|
251
|
+
|
|
252
|
+
Options:
|
|
253
|
+
[c] Commit this design (apply to model)
|
|
254
|
+
[r] Refine — add more detail to a layer
|
|
255
|
+
[s] Skip a layer (remove its elements)
|
|
256
|
+
[+] Add an element I didn't include
|
|
257
|
+
[e] Edit a specific element
|
|
258
|
+
[d] Discard design
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Step 8: Offer Refinements
|
|
262
|
+
|
|
263
|
+
Based on user feedback, iterate:
|
|
264
|
+
|
|
265
|
+
**Refine a layer:** Re-examine that layer and add more granular elements
|
|
266
|
+
|
|
267
|
+
**Skip a layer:** Remove staged elements for that layer
|
|
268
|
+
|
|
269
|
+
**Add an element:** Prompt user to describe it, then stage it
|
|
270
|
+
|
|
271
|
+
**Edit an element:** Update the staged element's properties
|
|
272
|
+
|
|
273
|
+
**Change scope:** Broaden or narrow the design
|
|
274
|
+
|
|
275
|
+
### Step 9: Commit or Save for Later
|
|
276
|
+
|
|
277
|
+
If user is ready to commit:
|
|
278
|
+
|
|
279
|
+
```bash
|
|
280
|
+
dr changeset commit
|
|
281
|
+
dr validate --strict
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
If user wants to save for later:
|
|
285
|
+
|
|
286
|
+
```
|
|
287
|
+
Design saved as changeset: design-real-time-order-tracking
|
|
288
|
+
13 elements staged, not yet committed to the model
|
|
289
|
+
|
|
290
|
+
Resume with: /dr-changeset preview design-real-time-order-tracking
|
|
291
|
+
Commit when ready: dr changeset commit design-real-time-order-tracking
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Step 10: Wire Cross-Layer Relationships
|
|
295
|
+
|
|
296
|
+
After committing, the new elements exist in the model but are not yet connected to existing elements — they will show up as orphans in `dr audit`. Offer to run a relate pass.
|
|
297
|
+
|
|
298
|
+
Substitute `<N>` with the actual committed count from `dr changeset commit`'s output and `<layers>` with the layers touched by this design:
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
Design committed. <N> new elements are now in the model.
|
|
302
|
+
|
|
303
|
+
These elements are not yet connected to existing architectural elements.
|
|
304
|
+
Run /dr-relate to wire cross-layer relationships (recommended), or skip if
|
|
305
|
+
you plan to add relationships manually.
|
|
306
|
+
|
|
307
|
+
[r] Run /dr-relate now for the new elements
|
|
308
|
+
[s] Skip — I'll wire relationships later
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
If the user chooses to relate, invoke `/dr-relate` with the scope narrowed to the `<layers>` touched by this design.
|
|
312
|
+
|
|
313
|
+
## Design Principles
|
|
314
|
+
|
|
315
|
+
**Be opinionated about layer coverage:** A feature that touches the API layer almost certainly needs APM instrumentation and test cases. Flag when these are missing and add them unless the user explicitly skips.
|
|
316
|
+
|
|
317
|
+
**Reference existing elements:** Always check what's in the model before adding. New API operations should expose existing (or newly staged) application services, not float independently.
|
|
318
|
+
|
|
319
|
+
**Reason explicitly:** Every staged element must have a rationale — not just "this is needed" but "this is needed because..."
|
|
320
|
+
|
|
321
|
+
**Suggest alternatives:** When there are multiple valid design choices (WebSocket vs. SSE, separate service vs. extending existing), note both options in the reasoning and ask which to proceed with.
|
|
322
|
+
|
|
323
|
+
**Size appropriately:** A small feature shouldn't produce 30 elements. A large compliance initiative might. Use judgment about what's architecturally significant vs. implementation detail.
|
|
324
|
+
|
|
325
|
+
## Example Interactions
|
|
326
|
+
|
|
327
|
+
### Example 1: New Feature
|
|
328
|
+
|
|
329
|
+
```
|
|
330
|
+
User: /dr-design "Add a notification service for order status updates"
|
|
331
|
+
|
|
332
|
+
You:
|
|
333
|
+
Analyzing intent: new feature — cross-cutting notification capability
|
|
334
|
+
Affected layers: motivation, business, application, api, security, apm, testing
|
|
335
|
+
Skipping: technology (no new infra), data-store (events stored in existing order table),
|
|
336
|
+
ux (backend feature only), navigation (no routing changes)
|
|
337
|
+
|
|
338
|
+
Checking existing model...
|
|
339
|
+
Found: application.service.order-service (will need to trigger notifications)
|
|
340
|
+
Found: api.operation.create-order (existing — notification triggered on order creation)
|
|
341
|
+
|
|
342
|
+
Staging design...
|
|
343
|
+
[... staged elements with reasoning ...]
|
|
344
|
+
|
|
345
|
+
Design ready. 11 elements across 7 layers.
|
|
346
|
+
[Review prompt as shown above]
|
|
347
|
+
```
|
|
348
|
+
|
|
349
|
+
### Example 2: Compliance
|
|
350
|
+
|
|
351
|
+
```
|
|
352
|
+
User: /dr-design "Add SOC2 Type II controls for our payment processing flow"
|
|
353
|
+
|
|
354
|
+
You:
|
|
355
|
+
Analyzing intent: compliance — SOC2 Type II for payment domain
|
|
356
|
+
Affected layers: motivation (requirements), security (controls), business (process),
|
|
357
|
+
testing (audit evidence), apm (audit logging)
|
|
358
|
+
|
|
359
|
+
Checking existing model for payment elements...
|
|
360
|
+
Found: application.service.payment-service
|
|
361
|
+
Found: api.operation.create-payment
|
|
362
|
+
Found: data-store.collection.payments
|
|
363
|
+
|
|
364
|
+
Staging SOC2 controls mapped to existing elements...
|
|
365
|
+
[... staged elements with reasoning ...]
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
## Related Commands
|
|
369
|
+
|
|
370
|
+
- `/dr-sync` — Update model from actual code changes after implementation
|
|
371
|
+
- `/dr-changeset` — Manage changeset lifecycle directly
|
|
372
|
+
- `/dr-model` — Add individual elements manually
|
|
373
|
+
- `/dr-advisor` — Get architectural advice before designing
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Show overview of the architecture model — layer element counts, version, and metadata
|
|
3
|
+
argument-hint: "[--layer <name>] [--verbose]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Model Info
|
|
7
|
+
|
|
8
|
+
Show an overview of the Documentation Robotics model: project metadata, layer names, and element counts per layer.
|
|
9
|
+
|
|
10
|
+
## What This Command Does
|
|
11
|
+
|
|
12
|
+
Displays:
|
|
13
|
+
|
|
14
|
+
- Project name, version, spec version, author, description
|
|
15
|
+
- List of all 12 layers with their element counts
|
|
16
|
+
- With `--layer <name>`: detailed view of a single layer
|
|
17
|
+
- With `--layer <name> --verbose`: per-type breakdown within that layer
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
/dr-info [--layer <name>] [--verbose]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Instructions for Claude Code
|
|
26
|
+
|
|
27
|
+
### When to Run `dr info`
|
|
28
|
+
|
|
29
|
+
Run `dr info` as the **first orientation step** when starting any modeling session or when you need to understand the model's overall shape. It is the fastest way to answer:
|
|
30
|
+
|
|
31
|
+
- "How many elements exist per layer?"
|
|
32
|
+
- "What version is the model?"
|
|
33
|
+
- "Which layers have content?"
|
|
34
|
+
|
|
35
|
+
### Decision Flowchart: `dr info` vs. Related Commands
|
|
36
|
+
|
|
37
|
+
| Goal | Command |
|
|
38
|
+
| ---------------------------------- | ---------------------------------- |
|
|
39
|
+
| Model overview (counts per layer) | `dr info` |
|
|
40
|
+
| Per-type breakdown within a layer | `dr info --layer <name> --verbose` |
|
|
41
|
+
| Health metrics (orphans, coverage) | `dr stats` |
|
|
42
|
+
| List actual element IDs in a layer | `dr list <layer>` |
|
|
43
|
+
| Find an element by name/type | `dr search <term>` |
|
|
44
|
+
| Inspect a single element | `dr show <element-id>` |
|
|
45
|
+
|
|
46
|
+
### Recommended Session Start Sequence
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# 1. Orientation — understand what exists
|
|
50
|
+
dr info
|
|
51
|
+
|
|
52
|
+
# 2. Check for active changeset — know your editing context
|
|
53
|
+
dr changeset status
|
|
54
|
+
|
|
55
|
+
# 3. Validate current state before making changes
|
|
56
|
+
dr validate
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Using `--layer` and `--verbose`
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Overview of all layers
|
|
63
|
+
dr info
|
|
64
|
+
|
|
65
|
+
# Summary for one layer (only that layer is loaded — much faster)
|
|
66
|
+
dr info --layer api
|
|
67
|
+
|
|
68
|
+
# Per-type breakdown for one layer
|
|
69
|
+
dr info --layer api --verbose
|
|
70
|
+
# Example output:
|
|
71
|
+
# api
|
|
72
|
+
# Elements: 47
|
|
73
|
+
# Details:
|
|
74
|
+
# - operation: 16
|
|
75
|
+
# - endpoint: 31
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Use `--layer <name> --verbose` instead of chaining `dr info --layer api` + `dr list api` — it provides the same type breakdown without listing every element ID.
|
|
79
|
+
|
|
80
|
+
### Known Blind Spots
|
|
81
|
+
|
|
82
|
+
`dr info` does NOT show:
|
|
83
|
+
|
|
84
|
+
- **Active changeset**: Whether a changeset is currently staged. Run `dr changeset status` separately.
|
|
85
|
+
- **Validation health**: Whether the model has any errors or warnings. Run `dr validate` separately.
|
|
86
|
+
- **Relationship counts**: How many cross-layer references or intra-layer relationships exist. Run `dr stats` for connectivity metrics.
|
|
87
|
+
- **Per-type breakdown** (all-layers mode): Without `--layer`, only total element counts per layer are shown, not breakdown by type.
|
|
88
|
+
|
|
89
|
+
### No Machine-Readable Output
|
|
90
|
+
|
|
91
|
+
`dr info` has no `--json` or `--output` flag. For programmatic element data, use:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
dr list <layer> --json # All elements in a layer as JSON
|
|
95
|
+
dr stats --format json # Health metrics as JSON
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Example Output
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
Model: Documentation Robotics Viewer
|
|
102
|
+
────────────────────────────────────────────────
|
|
103
|
+
Name: Documentation Robotics Viewer
|
|
104
|
+
Version: 0.3.1
|
|
105
|
+
Spec Version: 0.8.3
|
|
106
|
+
Author: Austin Sand
|
|
107
|
+
Created: 2025-11-01T00:00:00.000Z
|
|
108
|
+
Modified: 2026-04-11T18:22:14.931Z
|
|
109
|
+
|
|
110
|
+
Layers:
|
|
111
|
+
────────────────────────────────────────────────
|
|
112
|
+
motivation 18 elements
|
|
113
|
+
business 32 elements
|
|
114
|
+
security 14 elements
|
|
115
|
+
application 41 elements
|
|
116
|
+
technology 12 elements
|
|
117
|
+
api 47 elements
|
|
118
|
+
data-model 23 elements
|
|
119
|
+
data-store 8 elements
|
|
120
|
+
ux 19 elements
|
|
121
|
+
navigation 9 elements
|
|
122
|
+
apm 22 elements
|
|
123
|
+
testing 20 elements
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Related Commands
|
|
127
|
+
|
|
128
|
+
- `dr changeset status` — check active changeset before making changes
|
|
129
|
+
- `dr validate` — check model health before editing
|
|
130
|
+
- `dr list <layer>` — list element IDs in a specific layer
|
|
131
|
+
- `dr stats` — relationship coverage and orphan metrics
|
|
132
|
+
- `dr show <element-id>` — inspect a single element in detail
|