@documentation-robotics/cli 0.1.13 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -2
- package/dist/analysis/relationship-classifier.js +2 -9
- package/dist/analysis/relationship-classifier.js.map +2 -2
- package/dist/analyzers/call-graph-utils.js +2 -2
- package/dist/analyzers/call-graph-utils.js.map +2 -2
- package/dist/analyzers/cards/build.js +171 -0
- package/dist/analyzers/cards/build.js.map +7 -0
- package/dist/analyzers/cards/classify.js +42 -0
- package/dist/analyzers/cards/classify.js.map +7 -0
- package/dist/analyzers/cards/edge-index.js +44 -0
- package/dist/analyzers/cards/edge-index.js.map +7 -0
- package/dist/analyzers/cards/facts.js +46 -0
- package/dist/analyzers/cards/facts.js.map +7 -0
- package/dist/analyzers/cards/graph.js +42 -0
- package/dist/analyzers/cards/graph.js.map +7 -0
- package/dist/analyzers/cards/index.js +8 -0
- package/dist/analyzers/cards/index.js.map +7 -0
- package/dist/analyzers/cards/tier0.js +18 -0
- package/dist/analyzers/cards/tier0.js.map +7 -0
- package/dist/analyzers/cards/types.js +1 -0
- package/dist/analyzers/cards/types.js.map +7 -0
- package/dist/analyzers/cbm-analyzer.js +195 -171
- package/dist/analyzers/cbm-analyzer.js.map +2 -2
- package/dist/analyzers/cbm-responses.js +336 -0
- package/dist/analyzers/cbm-responses.js.map +7 -0
- package/dist/analyzers/edge-relationships.js +45 -0
- package/dist/analyzers/edge-relationships.js.map +7 -0
- package/dist/analyzers/mapping-loader.js +9 -0
- package/dist/analyzers/mapping-loader.js.map +2 -2
- package/dist/analyzers/tier0-rules.js +153 -0
- package/dist/analyzers/tier0-rules.js.map +7 -0
- package/dist/analyzers/types.js.map +1 -1
- package/dist/analyzers/verify-engine.js +22 -19
- package/dist/analyzers/verify-engine.js.map +2 -2
- package/dist/audit/relationships/ai/prompts.js +10 -10
- package/dist/audit/relationships/ai/prompts.js.map +2 -2
- package/dist/audit/relationships/analysis/layer-templates.js +52 -52
- package/dist/audit/relationships/analysis/layer-templates.js.map +1 -1
- package/dist/cli.js +112 -28
- package/dist/cli.js.map +3 -3
- package/dist/coding-agents/agents/claude-code.js +3 -1
- package/dist/coding-agents/agents/claude-code.js.map +2 -2
- package/dist/coding-agents/claude-code-client.js +2 -1
- package/dist/coding-agents/claude-code-client.js.map +2 -2
- package/dist/coding-agents/copilot-client.js +17 -12
- package/dist/coding-agents/copilot-client.js.map +2 -2
- package/dist/coding-agents/default-permissions.js +152 -0
- package/dist/coding-agents/default-permissions.js.map +7 -0
- package/dist/coding-agents/drbot-mcp.js +167 -0
- package/dist/coding-agents/drbot-mcp.js.map +7 -0
- package/dist/commands/add.js +12 -7
- package/dist/commands/add.js.map +2 -2
- package/dist/commands/analyzer.js +134 -23
- package/dist/commands/analyzer.js.map +2 -2
- package/dist/commands/audit.js +6 -6
- package/dist/commands/audit.js.map +2 -2
- package/dist/commands/changeset-verify.js +55 -0
- package/dist/commands/changeset-verify.js.map +7 -0
- package/dist/commands/changeset.js +261 -147
- package/dist/commands/changeset.js.map +2 -2
- package/dist/commands/delete.js +52 -19
- package/dist/commands/delete.js.map +3 -3
- package/dist/commands/element.js +3 -2
- package/dist/commands/element.js.map +2 -2
- package/dist/commands/farm.js +773 -0
- package/dist/commands/farm.js.map +7 -0
- package/dist/commands/init.js +11 -1
- package/dist/commands/init.js.map +2 -2
- package/dist/commands/mcp.js +122 -0
- package/dist/commands/mcp.js.map +7 -0
- package/dist/commands/relationship.js +251 -47
- package/dist/commands/relationship.js.map +2 -2
- package/dist/commands/reports.js +1 -1
- package/dist/commands/reports.js.map +2 -2
- package/dist/commands/update.js +56 -24
- package/dist/commands/update.js.map +2 -2
- package/dist/commands/upgrade.js +99 -11
- package/dist/commands/upgrade.js.map +3 -3
- package/dist/commands/validate.js +41 -3
- package/dist/commands/validate.js.map +2 -2
- package/dist/commands/version.js +2 -2
- package/dist/commands/version.js.map +2 -2
- package/dist/commands/visualize.js +4 -3
- package/dist/commands/visualize.js.map +2 -2
- package/dist/config.js +83 -0
- package/dist/config.js.map +7 -0
- package/dist/core/annotation-store.js +138 -0
- package/dist/core/annotation-store.js.map +7 -0
- package/dist/core/catalog-migration.js +33 -0
- package/dist/core/catalog-migration.js.map +7 -0
- package/dist/core/changeset-analysis.js +421 -0
- package/dist/core/changeset-analysis.js.map +7 -0
- package/dist/core/changeset-base-index.js +153 -0
- package/dist/core/changeset-base-index.js.map +7 -0
- package/dist/core/changeset-brief-delta.js +102 -0
- package/dist/core/changeset-brief-delta.js.map +7 -0
- package/dist/core/changeset-graph.js +281 -0
- package/dist/core/changeset-graph.js.map +7 -0
- package/dist/core/changeset-only-guard.js +32 -0
- package/dist/core/changeset-only-guard.js.map +7 -0
- package/dist/core/changeset-summary.js +68 -0
- package/dist/core/changeset-summary.js.map +7 -0
- package/dist/core/changeset-validator.js +66 -20
- package/dist/core/changeset-validator.js.map +2 -2
- package/dist/core/changeset-verify.js +518 -0
- package/dist/core/changeset-verify.js.map +7 -0
- package/dist/core/changeset.js +56 -9
- package/dist/core/changeset.js.map +2 -2
- package/dist/core/element-type-migration.js +145 -0
- package/dist/core/element-type-migration.js.map +7 -0
- package/dist/core/farm-manifest.js +140 -0
- package/dist/core/farm-manifest.js.map +7 -0
- package/dist/core/farm-sync-engine.js +346 -0
- package/dist/core/farm-sync-engine.js.map +7 -0
- package/dist/core/farm-sync-state.js +167 -0
- package/dist/core/farm-sync-state.js.map +7 -0
- package/dist/core/manifest.js +6 -3
- package/dist/core/manifest.js.map +2 -2
- package/dist/core/migration-registry.js +84 -1
- package/dist/core/migration-registry.js.map +2 -2
- package/dist/core/model-upgrade.js +102 -0
- package/dist/core/model-upgrade.js.map +7 -0
- package/dist/core/model.js +257 -44
- package/dist/core/model.js.map +3 -3
- package/dist/core/mutation-handler.js +71 -6
- package/dist/core/mutation-handler.js.map +2 -2
- package/dist/core/relationship-migration-table.js +6639 -0
- package/dist/core/relationship-migration-table.js.map +7 -0
- package/dist/core/relationship-migration.js +272 -0
- package/dist/core/relationship-migration.js.map +7 -0
- package/dist/core/relationship-prune.js +49 -0
- package/dist/core/relationship-prune.js.map +7 -0
- package/dist/core/relationship-staging.js +68 -0
- package/dist/core/relationship-staging.js.map +7 -0
- package/dist/core/relationships.js +26 -4
- package/dist/core/relationships.js.map +2 -2
- package/dist/core/report-data-model.js +7 -13
- package/dist/core/report-data-model.js.map +2 -2
- package/dist/core/staged-changeset-storage.js +64 -17
- package/dist/core/staged-changeset-storage.js.map +2 -2
- package/dist/core/staged-source-reference.js +28 -0
- package/dist/core/staged-source-reference.js.map +7 -0
- package/dist/core/staging-area.js +83 -18
- package/dist/core/staging-area.js.map +2 -2
- package/dist/core/virtual-projection.js +14 -5
- package/dist/core/virtual-projection.js.map +2 -2
- package/dist/export/archimate-exporter.js +1 -0
- package/dist/export/archimate-exporter.js.map +2 -2
- package/dist/generated/compiled-validators.js +2 -2
- package/dist/generated/compiled-validators.js.map +2 -2
- package/dist/generated/layer-registry.js +16 -16
- package/dist/generated/layer-registry.js.map +2 -2
- package/dist/generated/node-types.js +186 -168
- package/dist/generated/node-types.js.map +2 -2
- package/dist/generated/relationship-index.js +2209 -7727
- package/dist/generated/relationship-index.js.map +2 -2
- package/dist/integrations/claude_code/agents/dr-architect.md +16 -3
- package/dist/integrations/claude_code/agents/dr-extractor.md +1 -1
- package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
- package/dist/integrations/claude_code/commands/dr-map.md +13 -0
- package/dist/integrations/claude_code/commands/dr-plan.md +40 -0
- package/dist/integrations/claude_code/commands/dr-relate.md +106 -96
- package/dist/integrations/claude_code/commands/dr-verify.md +45 -2
- package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +14 -0
- package/dist/integrations/claude_code/docs/MCP_SERVER.md +79 -0
- package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
- package/dist/integrations/claude_code/docs/README.md +52 -1
- package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +93 -72
- package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +163 -126
- package/dist/integrations/claude_code/skills/dr_03_product_layer/SKILL.md +161 -126
- package/dist/integrations/claude_code/skills/dr_04_security_layer/SKILL.md +153 -133
- package/dist/integrations/claude_code/skills/dr_05_application_layer/SKILL.md +129 -100
- package/dist/integrations/claude_code/skills/dr_06_technology_layer/SKILL.md +111 -94
- package/dist/integrations/claude_code/skills/dr_07_api_layer/SKILL.md +143 -157
- package/dist/integrations/claude_code/skills/dr_08_data_model_layer/SKILL.md +117 -33
- package/dist/integrations/claude_code/skills/dr_09_dataset_layer/SKILL.md +74 -25
- package/dist/integrations/claude_code/skills/dr_10_ux_layer/SKILL.md +88 -12
- package/dist/integrations/claude_code/skills/dr_11_navigation_layer/SKILL.md +83 -24
- package/dist/integrations/claude_code/skills/dr_12_apm_layer/SKILL.md +57 -12
- package/dist/integrations/claude_code/skills/dr_13_testing_layer/SKILL.md +92 -15
- package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +119 -0
- package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +3 -0
- package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +1 -1
- package/dist/integrations/github_copilot/agents/dr-architect.md +1 -1
- package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +182 -102
- package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +266 -148
- package/dist/integrations/github_copilot/skills/dr_03_product_layer/SKILL.md +547 -86
- package/dist/integrations/github_copilot/skills/dr_04_security_layer/SKILL.md +164 -169
- package/dist/integrations/github_copilot/skills/dr_05_application_layer/SKILL.md +420 -150
- package/dist/integrations/github_copilot/skills/dr_06_technology_layer/SKILL.md +331 -138
- package/dist/integrations/github_copilot/skills/dr_07_api_layer/SKILL.md +265 -201
- package/dist/integrations/github_copilot/skills/dr_08_data_model_layer/SKILL.md +181 -58
- package/dist/integrations/github_copilot/skills/dr_09_dataset_layer/SKILL.md +209 -57
- package/dist/integrations/github_copilot/skills/dr_10_ux_layer/SKILL.md +277 -112
- package/dist/integrations/github_copilot/skills/dr_11_navigation_layer/SKILL.md +219 -70
- package/dist/integrations/github_copilot/skills/dr_12_apm_layer/SKILL.md +189 -105
- package/dist/integrations/github_copilot/skills/dr_13_testing_layer/SKILL.md +222 -102
- package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +119 -0
- package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +3 -0
- package/dist/integrations/hash-utils.js.map +2 -2
- package/dist/mcp/api-key-manager.js +111 -0
- package/dist/mcp/api-key-manager.js.map +7 -0
- package/dist/mcp/changeset-only.js +34 -0
- package/dist/mcp/changeset-only.js.map +7 -0
- package/dist/mcp/http-transport.js +176 -0
- package/dist/mcp/http-transport.js.map +7 -0
- package/dist/mcp/resource-registry.js +97 -0
- package/dist/mcp/resource-registry.js.map +7 -0
- package/dist/mcp/tool-registry.js +60 -0
- package/dist/mcp/tool-registry.js.map +7 -0
- package/dist/mcp/tools/annotation-create.js +39 -0
- package/dist/mcp/tools/annotation-create.js.map +7 -0
- package/dist/mcp/tools/annotation-delete.js +29 -0
- package/dist/mcp/tools/annotation-delete.js.map +7 -0
- package/dist/mcp/tools/annotation-get.js +29 -0
- package/dist/mcp/tools/annotation-get.js.map +7 -0
- package/dist/mcp/tools/annotation-list.js +24 -0
- package/dist/mcp/tools/annotation-list.js.map +7 -0
- package/dist/mcp/tools/annotation-reply.js +34 -0
- package/dist/mcp/tools/annotation-reply.js.map +7 -0
- package/dist/mcp/tools/annotation-shared.js +10 -0
- package/dist/mcp/tools/annotation-shared.js.map +7 -0
- package/dist/mcp/tools/annotation-update.js +39 -0
- package/dist/mcp/tools/annotation-update.js.map +7 -0
- package/dist/mcp/tools/changeset-analysis-tools.js +78 -0
- package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
- package/dist/mcp/tools/changeset-editing.js +184 -0
- package/dist/mcp/tools/changeset-editing.js.map +7 -0
- package/dist/mcp/tools/changeset-lifecycle.js +83 -0
- package/dist/mcp/tools/changeset-lifecycle.js.map +7 -0
- package/dist/mcp/tools/changeset-list.js +33 -0
- package/dist/mcp/tools/changeset-list.js.map +7 -0
- package/dist/mcp/tools/changeset-shared.js +31 -0
- package/dist/mcp/tools/changeset-shared.js.map +7 -0
- package/dist/mcp/tools/changeset-show.js +55 -0
- package/dist/mcp/tools/changeset-show.js.map +7 -0
- package/dist/mcp/tools/changeset-verify.js +43 -0
- package/dist/mcp/tools/changeset-verify.js.map +7 -0
- package/dist/mcp/tools/chat-launch.js +50 -0
- package/dist/mcp/tools/chat-launch.js.map +7 -0
- package/dist/mcp/tools/chat-status.js +26 -0
- package/dist/mcp/tools/chat-status.js.map +7 -0
- package/dist/mcp/tools/index.js +65 -0
- package/dist/mcp/tools/index.js.map +7 -0
- package/dist/mcp/tools/model-add.js +107 -0
- package/dist/mcp/tools/model-add.js.map +7 -0
- package/dist/mcp/tools/model-delete.js +99 -0
- package/dist/mcp/tools/model-delete.js.map +7 -0
- package/dist/mcp/tools/model-export.js +72 -0
- package/dist/mcp/tools/model-export.js.map +7 -0
- package/dist/mcp/tools/model-info.js +51 -0
- package/dist/mcp/tools/model-info.js.map +7 -0
- package/dist/mcp/tools/model-list.js +53 -0
- package/dist/mcp/tools/model-list.js.map +7 -0
- package/dist/mcp/tools/model-reload.js +34 -0
- package/dist/mcp/tools/model-reload.js.map +7 -0
- package/dist/mcp/tools/model-search.js +102 -0
- package/dist/mcp/tools/model-search.js.map +7 -0
- package/dist/mcp/tools/model-show.js +68 -0
- package/dist/mcp/tools/model-show.js.map +7 -0
- package/dist/mcp/tools/model-stats.js +22 -0
- package/dist/mcp/tools/model-stats.js.map +7 -0
- package/dist/mcp/tools/model-trace.js +118 -0
- package/dist/mcp/tools/model-trace.js.map +7 -0
- package/dist/mcp/tools/model-update.js +121 -0
- package/dist/mcp/tools/model-update.js.map +7 -0
- package/dist/mcp/tools/model-validate.js +78 -0
- package/dist/mcp/tools/model-validate.js.map +7 -0
- package/dist/mcp/tools/relationship-tools.js +98 -0
- package/dist/mcp/tools/relationship-tools.js.map +7 -0
- package/dist/mcp/tools/shared.js +126 -0
- package/dist/mcp/tools/shared.js.map +7 -0
- package/dist/mcp/tools/spec-type.js +90 -0
- package/dist/mcp/tools/spec-type.js.map +7 -0
- package/dist/reports/model-layer-report-generator.js +5 -3
- package/dist/reports/model-layer-report-generator.js.map +2 -2
- package/dist/reports/model-readme-generator.js +116 -0
- package/dist/reports/model-readme-generator.js.map +7 -0
- package/dist/reports/model-report-data.js +37 -1
- package/dist/reports/model-report-data.js.map +2 -2
- package/dist/reports/model-report-orchestrator.js +29 -6
- package/dist/reports/model-report-orchestrator.js.map +2 -2
- package/dist/reports/model-report-utils.js +9 -0
- package/dist/reports/model-report-utils.js.map +7 -0
- package/dist/schemas/bundled/analyzers/cbm.json +1186 -68
- package/dist/schemas/bundled/analyzers/manifest.json +2 -2
- package/dist/schemas/bundled/api.json +1029 -1658
- package/dist/schemas/bundled/apm.json +499 -734
- package/dist/schemas/bundled/application.json +745 -370
- package/dist/schemas/bundled/base.json +3 -220
- package/dist/schemas/bundled/business.json +452 -366
- package/dist/schemas/bundled/data-model.json +403 -383
- package/dist/schemas/bundled/data-store.json +334 -558
- package/dist/schemas/bundled/manifest.json +18 -18
- package/dist/schemas/bundled/motivation.json +349 -368
- package/dist/schemas/bundled/navigation.json +415 -731
- package/dist/schemas/bundled/product.json +325 -159
- package/dist/schemas/bundled/security.json +864 -1232
- package/dist/schemas/bundled/technology.json +574 -703
- package/dist/schemas/bundled/testing.json +718 -1643
- package/dist/schemas/bundled/ux.json +739 -1352
- package/dist/server/schemas.js +8 -0
- package/dist/server/schemas.js.map +2 -2
- package/dist/server/server.js +234 -31
- package/dist/server/server.js.map +2 -2
- package/dist/server-entry.js +2 -1
- package/dist/server-entry.js.map +2 -2
- package/dist/telemetry/config.js +2 -40
- package/dist/telemetry/config.js.map +2 -2
- package/dist/telemetry/index.js +1 -1
- package/dist/types/index.js.map +2 -2
- package/dist/utils/ansi-suppressor.js +23 -0
- package/dist/utils/ansi-suppressor.js.map +7 -0
- package/dist/utils/attribute-patch.js +41 -0
- package/dist/utils/attribute-patch.js.map +7 -0
- package/dist/utils/color-utils.js +34 -0
- package/dist/utils/color-utils.js.map +7 -0
- package/dist/utils/element-reference-shape.js +15 -1
- package/dist/utils/element-reference-shape.js.map +3 -3
- package/dist/utils/error-hints.js +29 -0
- package/dist/utils/error-hints.js.map +7 -0
- package/dist/utils/errors.js +75 -10
- package/dist/utils/errors.js.map +2 -2
- package/dist/utils/globals.js +17 -1
- package/dist/utils/globals.js.map +2 -2
- package/dist/utils/project-paths.js +50 -3
- package/dist/utils/project-paths.js.map +2 -2
- package/dist/utils/reference-path-parser.js +49 -0
- package/dist/utils/reference-path-parser.js.map +7 -0
- package/dist/utils/source-reference.js +17 -10
- package/dist/utils/source-reference.js.map +2 -2
- package/dist/utils/spec-version.js +10 -2
- package/dist/utils/spec-version.js.map +2 -2
- package/dist/validators/composed-reference-validator.js +240 -0
- package/dist/validators/composed-reference-validator.js.map +7 -0
- package/dist/validators/reference-validator.js +57 -13
- package/dist/validators/reference-validator.js.map +3 -3
- package/dist/validators/relationship-schema-validator.js +33 -5
- package/dist/validators/relationship-schema-validator.js.map +3 -3
- package/dist/validators/schema-validator.js +27 -9
- package/dist/validators/schema-validator.js.map +2 -2
- package/dist/validators/types.js.map +1 -1
- package/dist/viewer/README.md +6 -6
- package/dist/viewer/assets/main-CxzcuU_o.js +84 -0
- package/dist/viewer/assets/main-j-7ULYpm.css +1 -0
- package/dist/viewer/index.html +2 -2
- package/dist/viewer/manifest.json +10 -10
- package/dist/viewer/version.json +1 -1
- package/package.json +7 -3
- package/dist/viewer/assets/main-B7AOQXXX.js +0 -81
- package/dist/viewer/assets/main-vdrFrG7q.css +0 -1
|
@@ -29,9 +29,9 @@ full set of spec-defined schemas — intra-layer and cross-layer alike.
|
|
|
29
29
|
|
|
30
30
|
Relationships require the full model to be visible before wiring can begin:
|
|
31
31
|
|
|
32
|
-
- A `ux.
|
|
32
|
+
- A `ux.view.composes.ux.componentinstance` relationship can't be created until both
|
|
33
33
|
the source and target UX elements exist
|
|
34
|
-
- Cross-layer relationships (e.g., `business.businessservice --[delivers
|
|
34
|
+
- Cross-layer relationships (e.g., `business.businessservice --[delivers]--> motivation.value`)
|
|
35
35
|
can't be wired until both layers are populated
|
|
36
36
|
- Re-running `/dr-relate` after adding more layers is cheap — no nodes are re-created
|
|
37
37
|
|
|
@@ -303,16 +303,16 @@ Build a relationship map that includes both intra-layer and cross-layer schemas:
|
|
|
303
303
|
|
|
304
304
|
```
|
|
305
305
|
ux layer relationship map (intra-layer):
|
|
306
|
-
ux.
|
|
307
|
-
ux.
|
|
308
|
-
ux.
|
|
306
|
+
ux.view →[composes]→ ux.componentinstance
|
|
307
|
+
ux.componentinstance →[realizes]→ ux.librarycomponent
|
|
308
|
+
ux.librarycomponent →[specializes]→ ux.librarycomponent
|
|
309
309
|
ux.view →[handles]→ ux.event
|
|
310
310
|
ux.widget →[triggers]→ ux.event
|
|
311
311
|
... (123 total intra-layer schemas in ux)
|
|
312
312
|
|
|
313
313
|
application layer cross-layer schemas:
|
|
314
314
|
application.applicationprocess →[realizes]→ business.businessprocess
|
|
315
|
-
application.applicationservice →[delivers
|
|
315
|
+
application.applicationservice →[delivers]→ motivation.value
|
|
316
316
|
application.applicationservice →[references]→ apm.traceconfiguration
|
|
317
317
|
...
|
|
318
318
|
```
|
|
@@ -343,8 +343,8 @@ For each populated layer (in the order they appear in the model):
|
|
|
343
343
|
- Element names and descriptions
|
|
344
344
|
- Source provenance files (if elements share the same source file, a relationship
|
|
345
345
|
is likely)
|
|
346
|
-
- Domain semantics of the predicate (e.g., `
|
|
347
|
-
|
|
346
|
+
- Domain semantics of the predicate (e.g., `composes` implies a parent view
|
|
347
|
+
placing a child component)
|
|
348
348
|
|
|
349
349
|
3. For warranted pairs, create the relationship:
|
|
350
350
|
|
|
@@ -378,20 +378,20 @@ For each populated layer (in the order they appear in the model):
|
|
|
378
378
|
|
|
379
379
|
**Intra-layer relationship priorities by layer:**
|
|
380
380
|
|
|
381
|
-
| Layer | High-value predicates to look for
|
|
382
|
-
| ----------- |
|
|
383
|
-
| ux |
|
|
384
|
-
| navigation |
|
|
385
|
-
| api |
|
|
386
|
-
| data-model |
|
|
387
|
-
| data-store |
|
|
388
|
-
| application | depends-on, orchestrates, delegates-to
|
|
389
|
-
| technology |
|
|
390
|
-
| security |
|
|
391
|
-
| apm |
|
|
392
|
-
| testing |
|
|
393
|
-
| business | realizes, depends-on, triggers, supports
|
|
394
|
-
| motivation |
|
|
381
|
+
| Layer | High-value predicates to look for |
|
|
382
|
+
| ----------- | ------------------------------------------------------------------------- |
|
|
383
|
+
| ux | composes, realizes, applies, binds-to, uses, triggers, navigates-to |
|
|
384
|
+
| navigation | navigates-to, flows-to, protects, evaluates, composes, accesses |
|
|
385
|
+
| api | composes, references, specializes, governs, realizes, serves |
|
|
386
|
+
| data-model | composes, references, specializes, maps-to |
|
|
387
|
+
| data-store | composes, accesses, references, triggers, derives-from |
|
|
388
|
+
| application | depends-on, orchestrates, delegates-to |
|
|
389
|
+
| technology | composes, assigned-to, realizes, serves, connects, depends-on |
|
|
390
|
+
| security | aggregates, composes, authorizes, mandates, mitigates, generates, governs |
|
|
391
|
+
| apm | aggregates, composes, flows-to, references, monitors |
|
|
392
|
+
| testing | composes, references, validates, aggregates, covers, tests |
|
|
393
|
+
| business | realizes, depends-on, triggers, supports |
|
|
394
|
+
| motivation | realizes, aggregates, specializes, influence, associated-with, constrains |
|
|
395
395
|
|
|
396
396
|
---
|
|
397
397
|
|
|
@@ -424,79 +424,89 @@ The table below lists every cross-layer layer pair and the predicates defined in
|
|
|
424
424
|
Run `dr schema relationship <element-type>` for the exact source/destination node types
|
|
425
425
|
within each pair — this table shows the predicate vocabulary, not individual type combinations.
|
|
426
426
|
|
|
427
|
-
| Source Layer | Target Layer | Predicates
|
|
428
|
-
| ------------ | ------------ |
|
|
429
|
-
| api |
|
|
430
|
-
| api |
|
|
431
|
-
| api |
|
|
432
|
-
| api |
|
|
433
|
-
| api |
|
|
434
|
-
| api |
|
|
435
|
-
|
|
|
436
|
-
| apm |
|
|
437
|
-
| apm |
|
|
438
|
-
| apm |
|
|
439
|
-
| apm | data-
|
|
440
|
-
| apm |
|
|
441
|
-
| apm |
|
|
442
|
-
| apm |
|
|
443
|
-
| apm |
|
|
444
|
-
| apm |
|
|
445
|
-
| apm |
|
|
446
|
-
| application |
|
|
447
|
-
| application |
|
|
448
|
-
| application |
|
|
449
|
-
| application |
|
|
450
|
-
|
|
|
451
|
-
|
|
|
452
|
-
| business |
|
|
453
|
-
|
|
|
454
|
-
|
|
|
455
|
-
| data-model |
|
|
456
|
-
| data-model |
|
|
457
|
-
| data-model |
|
|
458
|
-
| data-model |
|
|
459
|
-
| data-model |
|
|
460
|
-
| data-
|
|
461
|
-
| data-
|
|
462
|
-
| data-store |
|
|
463
|
-
| data-store |
|
|
464
|
-
| data-store |
|
|
465
|
-
| data-store |
|
|
466
|
-
|
|
|
467
|
-
|
|
|
468
|
-
| navigation |
|
|
469
|
-
| navigation |
|
|
470
|
-
| navigation |
|
|
471
|
-
| navigation |
|
|
472
|
-
| navigation |
|
|
473
|
-
| navigation |
|
|
474
|
-
| navigation |
|
|
475
|
-
|
|
|
476
|
-
|
|
|
477
|
-
|
|
|
478
|
-
|
|
|
479
|
-
|
|
|
480
|
-
|
|
|
481
|
-
|
|
|
482
|
-
|
|
|
483
|
-
|
|
|
484
|
-
|
|
|
485
|
-
|
|
|
486
|
-
|
|
|
487
|
-
|
|
|
488
|
-
|
|
|
489
|
-
|
|
|
490
|
-
| testing |
|
|
491
|
-
| testing |
|
|
492
|
-
|
|
|
493
|
-
|
|
|
494
|
-
|
|
|
495
|
-
|
|
|
496
|
-
|
|
|
497
|
-
|
|
|
498
|
-
|
|
|
499
|
-
|
|
|
427
|
+
| Source Layer | Target Layer | Predicates |
|
|
428
|
+
| ------------ | ------------ | ---------------------------------------------------------------------- |
|
|
429
|
+
| api | application | realizes, references, serves, triggers, uses |
|
|
430
|
+
| api | motivation | satisfies, supports |
|
|
431
|
+
| api | navigation | serves |
|
|
432
|
+
| api | product | exposes |
|
|
433
|
+
| api | security | realizes, references, requires, satisfies |
|
|
434
|
+
| api | technology | depends-on |
|
|
435
|
+
| apm | api | monitors, references |
|
|
436
|
+
| apm | application | maps-to, monitors |
|
|
437
|
+
| apm | business | monitors |
|
|
438
|
+
| apm | data-model | monitors, references |
|
|
439
|
+
| apm | data-store | accesses, monitors |
|
|
440
|
+
| apm | motivation | measures-outcome, satisfies |
|
|
441
|
+
| apm | navigation | monitors, references |
|
|
442
|
+
| apm | security | monitors, references, satisfies |
|
|
443
|
+
| apm | technology | monitors, references |
|
|
444
|
+
| apm | ux | monitors, references |
|
|
445
|
+
| application | apm | references |
|
|
446
|
+
| application | business | accesses, realizes, serves, triggers |
|
|
447
|
+
| application | data-model | accesses |
|
|
448
|
+
| application | data-store | accesses |
|
|
449
|
+
| application | motivation | delivers, realizes, satisfies |
|
|
450
|
+
| application | product | realizes |
|
|
451
|
+
| application | security | accesses, constrained-by, exposes, realizes, requires |
|
|
452
|
+
| business | application | references |
|
|
453
|
+
| business | motivation | delivers, realizes, references, satisfies, supports |
|
|
454
|
+
| business | security | constrained-by |
|
|
455
|
+
| data-model | api | maps-to |
|
|
456
|
+
| data-model | application | realizes |
|
|
457
|
+
| data-model | business | realizes |
|
|
458
|
+
| data-model | data-store | maps-to |
|
|
459
|
+
| data-model | motivation | satisfies |
|
|
460
|
+
| data-model | security | references, requires, satisfies |
|
|
461
|
+
| data-model | technology | maps-to |
|
|
462
|
+
| data-store | api | maps-to, serves |
|
|
463
|
+
| data-store | application | realizes, serves, triggers |
|
|
464
|
+
| data-store | business | realizes, satisfies |
|
|
465
|
+
| data-store | motivation | satisfies |
|
|
466
|
+
| data-store | security | realizes, references, requires, satisfies |
|
|
467
|
+
| data-store | technology | depends-on |
|
|
468
|
+
| navigation | api | maps-to, references, requires, uses |
|
|
469
|
+
| navigation | application | accesses, depends-on, lazy-loads, realizes, references, triggers, uses |
|
|
470
|
+
| navigation | business | references |
|
|
471
|
+
| navigation | data-model | accesses, maps-to, references |
|
|
472
|
+
| navigation | motivation | satisfies |
|
|
473
|
+
| navigation | product | realizes |
|
|
474
|
+
| navigation | security | accesses, realizes, references, requires, satisfies |
|
|
475
|
+
| navigation | technology | depends-on |
|
|
476
|
+
| navigation | ux | maps-to, triggers, uses |
|
|
477
|
+
| product | business | realizes, references |
|
|
478
|
+
| product | motivation | delivers, references, satisfies, supports |
|
|
479
|
+
| security | business | constrains, governs, protects, references, targets |
|
|
480
|
+
| security | motivation | realizes, references, satisfies |
|
|
481
|
+
| technology | api | serves |
|
|
482
|
+
| technology | apm | serves |
|
|
483
|
+
| technology | application | realizes, serves |
|
|
484
|
+
| technology | data-store | serves |
|
|
485
|
+
| technology | motivation | realizes, satisfies |
|
|
486
|
+
| technology | navigation | serves |
|
|
487
|
+
| technology | product | realizes |
|
|
488
|
+
| technology | security | accesses, realizes, satisfies |
|
|
489
|
+
| technology | ux | serves |
|
|
490
|
+
| testing | api | covers, references, tests |
|
|
491
|
+
| testing | apm | tests |
|
|
492
|
+
| testing | application | covers, tests |
|
|
493
|
+
| testing | business | covers, tests |
|
|
494
|
+
| testing | data-model | covers, references, tests |
|
|
495
|
+
| testing | data-store | accesses, covers, tests |
|
|
496
|
+
| testing | motivation | measures-outcome, satisfies, supports |
|
|
497
|
+
| testing | navigation | covers, tests |
|
|
498
|
+
| testing | product | covers, tests |
|
|
499
|
+
| testing | security | covers, tests |
|
|
500
|
+
| testing | technology | covers, references, requires |
|
|
501
|
+
| testing | ux | covers, references, tests |
|
|
502
|
+
| ux | api | maps-to, references, triggers |
|
|
503
|
+
| ux | application | realizes, triggers |
|
|
504
|
+
| ux | business | references, serves |
|
|
505
|
+
| ux | data-model | maps-to, references |
|
|
506
|
+
| ux | motivation | satisfies, supports |
|
|
507
|
+
| ux | product | realizes |
|
|
508
|
+
| ux | security | references, requires, satisfies |
|
|
509
|
+
| ux | technology | depends-on |
|
|
500
510
|
|
|
501
511
|
> **API→Application traceability pattern**
|
|
502
512
|
>
|
|
@@ -644,7 +654,7 @@ Log the failure and continue. At the end of the pass, surface skipped pairs:
|
|
|
644
654
|
Skipped relationships (not in spec):
|
|
645
655
|
ux.view.dashboard-view →[contains]→ ux.widget.sidebar
|
|
646
656
|
Reason: ux.view.contains.ux.widget is not a defined relationship schema
|
|
647
|
-
Suggestion: Valid predicates for ux.view:
|
|
657
|
+
Suggestion: Valid predicates for ux.view: composes, applies, binds-to, uses
|
|
648
658
|
```
|
|
649
659
|
|
|
650
660
|
### Element not found
|
|
@@ -16,7 +16,19 @@ Cross-reference the Documentation Robotics model against an external code analyz
|
|
|
16
16
|
- **Graph-only**: Routes discovered in the code but missing from the model (suspected gaps) ⚠
|
|
17
17
|
- **Model-only**: Operations in the model but not discovered in the code (possible drift) ?
|
|
18
18
|
|
|
19
|
-
4.
|
|
19
|
+
4. Checks matched elements for connections the spec models but the model lacks, and looks for
|
|
20
|
+
evidence of each in the analyzer's graph and the code
|
|
21
|
+
5. Offers actionable next steps: add missing routes and connections, remove orphaned operations, or
|
|
22
|
+
ignore entries
|
|
23
|
+
|
|
24
|
+
## Important: Dual-Root Configuration
|
|
25
|
+
|
|
26
|
+
The verification process respects your project's dual-root configuration. If your codebase root (source code location) differs from your model root (metadata location), ensure:
|
|
27
|
+
|
|
28
|
+
1. **Configure in manifest**: Set `codebase_path` in `documentation-robotics/model/manifest.yaml` if needed
|
|
29
|
+
2. **Re-index if needed**: If you recently updated `codebase_path`, run `dr analyzer index --force` before verifying
|
|
30
|
+
|
|
31
|
+
See [dr-analyzer.md](dr-analyzer.md) for complete dual-root documentation.
|
|
20
32
|
|
|
21
33
|
## Usage
|
|
22
34
|
|
|
@@ -348,7 +360,38 @@ ignore:
|
|
|
348
360
|
match: "model_only"
|
|
349
361
|
```
|
|
350
362
|
|
|
351
|
-
### Step 7:
|
|
363
|
+
### Step 7: Check for Missing Connections
|
|
364
|
+
|
|
365
|
+
Matching elements is half the check. Within reason, every connection the spec models for a type is
|
|
366
|
+
expected, though not every one will exist. Look for the ones the model has not captured:
|
|
367
|
+
|
|
368
|
+
1. **Pick the elements.** The matched elements, plus the ones you added in Step 5. With a changeset
|
|
369
|
+
active, the elements it adds or changes.
|
|
370
|
+
2. **Ask the spec what each type can connect to:** `dr schema relationship <layer>.<type>` lists
|
|
371
|
+
the triples the catalog defines from that type (over MCP, `spec_type` lists both directions).
|
|
372
|
+
Incoming ones are covered when you check the element at the other end.
|
|
373
|
+
3. **Compare with the model:** `dr show <element-id>` lists the relationships the element has.
|
|
374
|
+
Every triple the spec models that the element lacks is a candidate.
|
|
375
|
+
4. **Look for evidence of each candidate, in this order:**
|
|
376
|
+
- the analyzer's graph: `dr analyzer callers <symbol>` / `dr analyzer callees <symbol>` for the
|
|
377
|
+
element's source symbol, or `dr analyzer query` for HTTP calls, imports and handlers between
|
|
378
|
+
the element's file and the other element's file
|
|
379
|
+
- the code at the element's source file and symbol
|
|
380
|
+
5. **Act on what you find.**
|
|
381
|
+
- Evidence found: offer the relationship with the evidence, for example
|
|
382
|
+
`dr relationship add <source-id> <target-id> --predicate <predicate>`. Say what the evidence is
|
|
383
|
+
("`createOrder` calls `OrderRepository.save`").
|
|
384
|
+
- No evidence: don't add it. The catalog says a connection can exist, not that it does here.
|
|
385
|
+
|
|
386
|
+
**Report the result in its own section:**
|
|
387
|
+
|
|
388
|
+
```
|
|
389
|
+
Missing connections: N candidates checked, X with evidence (offered), Y without evidence (left out).
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
List each one with evidence: the triple, the two elements, and where the evidence is.
|
|
393
|
+
|
|
394
|
+
### Step 8: Status and Next Steps
|
|
352
395
|
|
|
353
396
|
**After processing all buckets, summarize:**
|
|
354
397
|
|
|
@@ -168,6 +168,18 @@ If you select [y], the analyzer is installed and ready.
|
|
|
168
168
|
|
|
169
169
|
**What this does:** Scans your codebase and builds an indexed code graph for later verification.
|
|
170
170
|
|
|
171
|
+
**Important: If Your Codebase is in a Different Directory**
|
|
172
|
+
|
|
173
|
+
If your source code lives in a different directory than your model (common in monorepos), configure it first:
|
|
174
|
+
|
|
175
|
+
**In `documentation-robotics/model/manifest.yaml`:**
|
|
176
|
+
|
|
177
|
+
```yaml
|
|
178
|
+
codebase_path: src # Relative to the directory that contains documentation-robotics/
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Then proceed with indexing.
|
|
182
|
+
|
|
171
183
|
**Command:**
|
|
172
184
|
|
|
173
185
|
```bash
|
|
@@ -206,6 +218,8 @@ Ready for extraction with /dr-map
|
|
|
206
218
|
|
|
207
219
|
**Then proceed to Step 3** with the analyzer installed. This enables `/dr-verify` for gap and drift detection.
|
|
208
220
|
|
|
221
|
+
For complete analyzer documentation including dual-root configuration, see [dr-analyzer.md](../commands/dr-analyzer.md).
|
|
222
|
+
|
|
209
223
|
---
|
|
210
224
|
|
|
211
225
|
### Option B: Without Code Analyzer (Faster, Manual-First Approach)
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: DR MCP Server
|
|
3
|
+
description: Configure an MCP client to connect to the Documentation Robotics MCP server
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Documentation Robotics MCP Server
|
|
7
|
+
|
|
8
|
+
`dr mcp` runs the CLI as a [Model Context Protocol](https://modelcontextprotocol.io/) server over stdio, exposing model tools (list/show/search/add/update/delete/validate/export/trace elements, changesets, chat, annotations) to any MCP-aware AI client — Claude Code included.
|
|
9
|
+
|
|
10
|
+
Annotation tools (`annotation_list`, `annotation_get`, `annotation_create`, `annotation_update`, `annotation_delete`, `annotation_reply`) mirror the capabilities of the REST server's `/api/annotations/*` endpoints. Unlike the REST server's in-memory, per-process annotation store, the MCP tools persist annotations to `documentation-robotics/annotations/` on disk, so they survive across MCP sessions.
|
|
11
|
+
|
|
12
|
+
## Tools
|
|
13
|
+
|
|
14
|
+
| Group | Tools |
|
|
15
|
+
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
16
|
+
| Read the model | `model_list`, `model_show`, `model_search`, `model_trace`, `model_stats`, `model_info`, `model_validate`, `model_export`, `model_reload` |
|
|
17
|
+
| Change the model | `model_add`, `model_update`, `model_delete`, `relationship_add`, `relationship_delete` |
|
|
18
|
+
| Look up the spec | `spec_type` |
|
|
19
|
+
| Changesets | `changeset_list`, `changeset_show`, `changeset_create`, `changeset_activate`, `changeset_deactivate`, `changeset_update`, `changeset_unstage`, `changeset_discard` |
|
|
20
|
+
| Pressure-test and verify | `changeset_brief`, `changeset_impact`, `changeset_verify` |
|
|
21
|
+
| Annotations | `annotation_list`, `annotation_get`, `annotation_create`, `annotation_update`, `annotation_delete`, `annotation_reply` |
|
|
22
|
+
| Chat | `chat_launch`, `chat_status` |
|
|
23
|
+
|
|
24
|
+
With a changeset active, the "change the model" tools stage into it, and the read tools show the model as the changeset leaves it. Committing or applying a changeset is not a tool: the human does that in the viewer or with `dr changeset commit`. `changeset_discard` deletes staged changes for good, so it needs the changeset named explicitly (id or name) and `confirm: true`.
|
|
25
|
+
|
|
26
|
+
To plan a change with these tools, use `/dr-plan` (or the `dr_change_planning` skill). The design is in [`docs/CHANGE_MODELING.md`](../../../docs/CHANGE_MODELING.md).
|
|
27
|
+
|
|
28
|
+
## Environment
|
|
29
|
+
|
|
30
|
+
| Variable | Effect |
|
|
31
|
+
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
32
|
+
| `DR_MCP_API_KEY` | Required. The key `dr mcp` prints on start. |
|
|
33
|
+
| `DR_MCP_ROOT_PATH` | Serve the model at this path instead of the working directory. An unusable path is reported on stderr and the server keeps its own directory. |
|
|
34
|
+
| `DR_CHANGESET_ONLY` | `true`/`1`/`yes`/`on` refuses model writes unless a staged changeset is active (an unrecognised value also turns it on, with a warning). DrBot sets it with `dr visualize --with-changesets`. |
|
|
35
|
+
|
|
36
|
+
## Configuring Claude Code
|
|
37
|
+
|
|
38
|
+
Add an entry to your project's `.mcp.json` (or the equivalent global MCP config). Name the server `dr`: the DR agents and DrBot refer to its tools as `mcp__dr__<tool>`.
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"mcpServers": {
|
|
43
|
+
"dr": {
|
|
44
|
+
"command": "dr",
|
|
45
|
+
"args": ["mcp"],
|
|
46
|
+
"env": {
|
|
47
|
+
"DR_MCP_API_KEY": "<key printed by dr mcp>"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Other MCP clients follow the same shape: a `command`/`args` pair that launches `dr mcp`, plus `DR_MCP_API_KEY` in `env`.
|
|
55
|
+
|
|
56
|
+
## Getting the API key
|
|
57
|
+
|
|
58
|
+
Run `dr mcp` once from a terminal — it generates an API key on first launch (prompting for a storage path interactively, defaulting to `~/.dr-mcp-key` otherwise) and prints it to stderr on every launch:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
$ dr mcp
|
|
62
|
+
Generated new MCP API key, stored at /home/you/.dr-mcp-key
|
|
63
|
+
MCP API key: dr-mcp-<random>
|
|
64
|
+
Documentation Robotics MCP server ready (stdio)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Copy that key into the client config's `DR_MCP_API_KEY`. The server rejects the connection if the key is missing or doesn't match.
|
|
68
|
+
|
|
69
|
+
## Rotating the key
|
|
70
|
+
|
|
71
|
+
If a key leaks or you just want a fresh one, run:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
dr mcp --regenerate-key
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
This overwrites the key at its existing storage path, updates `~/.dr-config.yaml`, and prints the new key — no manual deletion of files required. Update `DR_MCP_API_KEY` in every client config after rotating.
|
|
78
|
+
|
|
79
|
+
See [cli/README.md](../../../cli/README.md#mcp-server) for the full command reference.
|
|
@@ -185,6 +185,34 @@ dr analyzer index
|
|
|
185
185
|
- **Pre-Briefs:** Analyzer provides summaries of endpoints, services, datastores that `/dr-map` uses for high-confidence extraction
|
|
186
186
|
- **Three Buckets:** Verification shows **matched** (good), **graph-only** (gaps), **model-only** (drift)
|
|
187
187
|
- **Interactive Reconciliation:** `/dr-verify` prompts you to add gaps or remove drift one by one
|
|
188
|
+
- **Dual-Root Architecture:** Your model (metadata) and codebase (source code) can be in different directories. Configure via `codebase_path` in `manifest.yaml` if needed (relative to the directory that contains `documentation-robotics/`).
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Special Setup: Dual-Root Configuration
|
|
193
|
+
|
|
194
|
+
If your source code and model are in **separate directories** (common in monorepos), configure the codebase root:
|
|
195
|
+
|
|
196
|
+
**In `documentation-robotics/model/manifest.yaml`:**
|
|
197
|
+
|
|
198
|
+
```yaml
|
|
199
|
+
version: 0.1.0
|
|
200
|
+
schema: documentation-robotics-v1
|
|
201
|
+
---
|
|
202
|
+
codebase_path: src # Relative to the directory that contains documentation-robotics/
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
`codebase_path` is resolved against the model root: the directory that **contains** `documentation-robotics/`, not the `documentation-robotics/model/` folder the manifest sits in. So `src` points at `<model-root>/src`, and a sibling checkout at `<model-root>/../my-app` is `codebase_path: ../my-app`.
|
|
206
|
+
|
|
207
|
+
**Then re-index:**
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
dr analyzer index --force
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**Don't have separate directories?** No action needed — DR defaults to the model directory.
|
|
214
|
+
|
|
215
|
+
For complete details, see [dr-analyzer.md dual-root documentation](../commands/dr-analyzer.md).
|
|
188
216
|
|
|
189
217
|
---
|
|
190
218
|
|
|
@@ -231,14 +259,15 @@ Ready for export/sharing
|
|
|
231
259
|
|
|
232
260
|
## Troubleshooting Quick Fixes
|
|
233
261
|
|
|
234
|
-
| Problem | Solution
|
|
235
|
-
| ------------------- |
|
|
236
|
-
| "No analyzer" | `dr analyzer discover` then pick one
|
|
237
|
-
| "Not indexed" | `dr analyzer index` to build graph
|
|
238
|
-
| "Index stale" | `dr analyzer index` to refresh
|
|
239
|
-
| "Many gaps" | `/dr-map ./src --layers api` to re-extract
|
|
240
|
-
| "
|
|
241
|
-
| "
|
|
262
|
+
| Problem | Solution |
|
|
263
|
+
| ------------------- | ---------------------------------------------------------------------- |
|
|
264
|
+
| "No analyzer" | `dr analyzer discover` then pick one |
|
|
265
|
+
| "Not indexed" | `dr analyzer index` to build graph |
|
|
266
|
+
| "Index stale" | `dr analyzer index` to refresh |
|
|
267
|
+
| "Many gaps" | `/dr-map ./src --layers api` to re-extract |
|
|
268
|
+
| "Wrong codebase" | Set `codebase_path` in manifest.yaml, then `dr analyzer index --force` |
|
|
269
|
+
| "Validation errors" | `dr validate --strict` to see details, then `/dr-model` to fix |
|
|
270
|
+
| "Lost in process" | Read `END_TO_END_WALKTHROUGH.md` for detailed guide |
|
|
242
271
|
|
|
243
272
|
---
|
|
244
273
|
|
|
@@ -50,6 +50,16 @@ The comprehensive manual walkthrough covering every step from fresh project thro
|
|
|
50
50
|
|
|
51
51
|
### Command Reference
|
|
52
52
|
|
|
53
|
+
- **[dr-plan.md](../commands/dr-plan.md)** — Plan a change as a staged changeset over the `dr` MCP server
|
|
54
|
+
- Frame, draft, pressure-test (`changeset_brief`, `changeset_impact`), review, build, verify
|
|
55
|
+
- The human commits the changeset in the PR
|
|
56
|
+
|
|
57
|
+
- **[dr-analyzer.md](../commands/dr-analyzer.md)** — Discover, install, and manage code analyzers
|
|
58
|
+
- Dual-root architecture (separate metadata and codebase roots)
|
|
59
|
+
- Index and query code graphs
|
|
60
|
+
- Analyzer endpoints, services, datastores
|
|
61
|
+
- Pre-index configuration for dual-root setups
|
|
62
|
+
|
|
53
63
|
- **[dr-map.md](../commands/dr-map.md)** — Extract architecture from your codebase
|
|
54
64
|
- Recipe vs. Targeted modes
|
|
55
65
|
- Layer-by-layer extraction
|
|
@@ -59,6 +69,7 @@ The comprehensive manual walkthrough covering every step from fresh project thro
|
|
|
59
69
|
- Three-bucket reporting (matched, gaps, drift)
|
|
60
70
|
- Interactive reconciliation
|
|
61
71
|
- Ignore lists and drift management
|
|
72
|
+
- Works with dual-root analyzer setup
|
|
62
73
|
|
|
63
74
|
- **[dr-validate.md](../commands/dr-validate.md)** — Validate model integrity
|
|
64
75
|
- Schema and reference validation
|
|
@@ -69,8 +80,13 @@ The comprehensive manual walkthrough covering every step from fresh project thro
|
|
|
69
80
|
|
|
70
81
|
- **[dr-init.md](../commands/dr-init.md)** — Initialize new models
|
|
71
82
|
|
|
83
|
+
### MCP Integration
|
|
84
|
+
|
|
85
|
+
- **[MCP_SERVER.md](MCP_SERVER.md)** — Configure an MCP client (Claude Code or otherwise) to connect to `dr mcp`, including the API key setup and rotation
|
|
86
|
+
|
|
72
87
|
### Skills & Agents
|
|
73
88
|
|
|
89
|
+
- **[dr_change_planning/SKILL.md](../skills/dr_change_planning/SKILL.md)** — "Plan this change" as a DR changeset (the steps behind `/dr-plan`)
|
|
74
90
|
- **[dr-codebase-memory/SKILL.md](../skills/dr_codebase_memory/SKILL.md)** — Codebase memory and context management
|
|
75
91
|
- Layer-specific skills (Layer 1-13)
|
|
76
92
|
|
|
@@ -154,10 +170,12 @@ integrations/claude_code/
|
|
|
154
170
|
│ ├── dr-sync.md ← Sync with code changes
|
|
155
171
|
│ ├── dr-design.md ← Design elements
|
|
156
172
|
│ ├── dr-info.md ← Get model information
|
|
173
|
+
│ ├── dr-plan.md ← Plan a change as a changeset
|
|
157
174
|
│ ├── dr-changeset.md ← Manage changesets
|
|
158
175
|
│ └── dr-relate.md ← Establish relationships
|
|
159
176
|
│
|
|
160
177
|
├── skills/ ← Specialized knowledge modules
|
|
178
|
+
│ ├── dr_change_planning/
|
|
161
179
|
│ ├── dr_codebase_memory/
|
|
162
180
|
│ ├── dr_01_motivation_layer/
|
|
163
181
|
│ ├── ... (all 13 layers)
|
|
@@ -173,11 +191,44 @@ integrations/claude_code/
|
|
|
173
191
|
|
|
174
192
|
## 🔑 Key Concepts
|
|
175
193
|
|
|
194
|
+
### Dual-Root Architecture
|
|
195
|
+
|
|
196
|
+
Your Documentation Robotics project has two roots:
|
|
197
|
+
|
|
198
|
+
- **Model Root** — Where your `documentation-robotics/` directory lives (contains manifest, layers, changesets)
|
|
199
|
+
- **Codebase Root** — Where your actual source code is located
|
|
200
|
+
|
|
201
|
+
These can be the same directory (typical) or different directories (useful for monorepos or federated architectures). Analyzer commands automatically respect this configuration.
|
|
202
|
+
|
|
203
|
+
**Resolution Priority:**
|
|
204
|
+
|
|
205
|
+
The codebase root is resolved in this order:
|
|
206
|
+
|
|
207
|
+
1. **`--codebase-path` CLI flag** — Global option that overrides all other resolution methods
|
|
208
|
+
2. **`manifest.codebase_path`** — Configured in `documentation-robotics/model/manifest.yaml`; resolved relative to the model root, the directory that contains `documentation-robotics/`
|
|
209
|
+
3. **Farm auto-resolution** — If your model is in a farm, resolved from farm configuration
|
|
210
|
+
4. **Default** — Uses the model root itself
|
|
211
|
+
|
|
212
|
+
**Configure via `manifest.codebase_path`:**
|
|
213
|
+
|
|
214
|
+
```yaml
|
|
215
|
+
# documentation-robotics/model/manifest.yaml
|
|
216
|
+
codebase_path: ../my-app # Relative to the directory that contains documentation-robotics/, points to actual source code
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
After configuration, re-index for changes to take effect:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
dr analyzer index --force
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
For details, see [dr-analyzer.md](../commands/dr-analyzer.md).
|
|
226
|
+
|
|
176
227
|
### Source Provenance
|
|
177
228
|
|
|
178
229
|
Every extracted element includes:
|
|
179
230
|
|
|
180
|
-
- **source_file** — The file path (relative to
|
|
231
|
+
- **source_file** — The file path (relative to codebase root)
|
|
181
232
|
- **source_symbol** — The specific class/function/symbol
|
|
182
233
|
- **source_provenance** — "extracted" (from code) or "inferred" (from patterns)
|
|
183
234
|
|