|
1 | 1 | # Tool Contract Coverage |
2 | 2 |
|
3 | | -PR: PR_26152_076-tool-contract-location-correction |
| 3 | +PR: PR_26152_077-model-b-contract-final-cleanup |
4 | 4 | Date: 2026-06-02 |
5 | 5 |
|
6 | 6 | ## Discovery Sources |
7 | 7 |
|
8 | 8 | - Root Tools Index page: `tools/index.html` |
9 | 9 | - Root Tools Index card data: `tools/tools-page-accordions.js` |
10 | 10 | - Active first-class tool registry: `tools/toolRegistry.js` |
11 | | -- Shared tool behavior: `src/shared/contracts/tools/toolContract.js` |
| 11 | +- Shared tool behavior and output vocabulary: `src/shared/contracts/tools/toolContract.js` |
12 | 12 | - Per-tool declarations: `src/shared/contracts/tools/*Contract.js` |
13 | 13 | - Contract index: `src/shared/contracts/tools/toolContractsIndex.js` |
14 | 14 |
|
15 | | -## Location Status |
| 15 | +## Model B Status |
16 | 16 |
|
17 | | -- Top-level `src/shared/contracts/` contains platform/object contracts only. |
18 | | -- Shared tool behavior now lives under `src/shared/contracts/tools/toolContract.js`. |
| 17 | +- Platform contract tests remain at the top-level contract surface for identity/permissions, projects, and tool state. |
| 18 | +- Shared tool behavior now owns tool status, visibility, versioning, import/export formats, supported output types, and output format compatibility vocabulary. |
19 | 19 | - Per-tool modules remain split: 34/34 retained. |
20 | | -- Matching per-tool tests remain split: 34/34 retained. |
21 | | -- Per-tool declarations include tool-specific id, type, grouping, inputs, outputs, supported assets, import formats, export formats, and tool metadata. |
22 | | -- Shared tool behavior owns owner/project/visibility/status/version, import/export, produced output, supported asset, source tool state, archive, permission, and portable export rules. |
23 | | -- No `src/shared/contracts/tools/paletteContract.js` exists; the platform Palette object remains `src/shared/contracts/paletteContract.js`. |
24 | | -- No standalone `vectorStudioContract.js` was created because the registered vector tools are `object-vector-studio-v2` and `world-vector-studio-v2`. |
| 20 | +- Matching per-tool declaration tests remain split: 34/34 retained. |
| 21 | +- Tool output declarations live in per-tool modules through `producedOutputs`, `supportedAssetTypes`, `importFormats`, and `exportFormats`. |
| 22 | +- Standalone top-level output object behavior models for asset, palette, and vector asset records were removed. |
| 23 | +- No separate behavior models were created for asset, palette, or vector outputs. |
25 | 24 |
|
26 | 25 | ## Active Registered First-Class Tools |
27 | 26 |
|
@@ -53,6 +52,19 @@ All active visible registered first-class tools discovered through `getVisibleAc |
53 | 52 | | `3d-asset-viewer` | `src/shared/contracts/tools/threeDAssetViewerContract.js` | `tests/shared/tools/ThreeDAssetViewerToolContract.test.mjs` | |
54 | 53 | | `3d-camera-path-editor` | `src/shared/contracts/tools/threeDCameraPathEditorContract.js` | `tests/shared/tools/ThreeDCameraPathEditorToolContract.test.mjs` | |
55 | 54 |
|
| 55 | +## Tool Output Declaration Coverage |
| 56 | + |
| 57 | +| Output Family | Shared Vocabulary | Representative Tool Declaration | |
| 58 | +|---|---|---| |
| 59 | +| Vector | `vector`, `vector-json`, `svg` | `object-vector-studio-v2` produces `vector-json` and `svg`. | |
| 60 | +| Palette | `palette`, `palette-json` | `palette-manager-v2` produces `palette-json`. | |
| 61 | +| Image | `image`, `image-file` | `asset-studio` produces `image-file`. | |
| 62 | +| Audio | `audio`, `audio-file` | `audio-sfx-playground-v2` produces `audio-file`. | |
| 63 | +| Tilemap | `tilemap`, `tilemap-json` | `tile-map-editor` produces `tilemap-json`. | |
| 64 | +| Localization | `localization`, `localization-json` | `localization-studio` produces `localization-json`. | |
| 65 | + |
| 66 | +The shared output vocabulary is validated by `tests/shared/tools/ToolOutputDeclarationContract.test.mjs`. |
| 67 | + |
56 | 68 | ## All Tool Declarations |
57 | 69 |
|
58 | 70 | | Tool Contract | Grouping | Contract Module | Matching Test | |
@@ -123,9 +135,10 @@ The root Tools Index card data includes public/root cards that are not all activ |
123 | 135 | - Tool contracts defined: 34 |
124 | 136 | - Tool contracts with grouping metadata: 34 |
125 | 137 | - Per-tool contract modules: 34 |
126 | | -- Matching per-tool tests: 34 |
| 138 | +- Matching per-tool declaration tests: 34 |
| 139 | +- Shared tool behavior tests: 2 |
127 | 140 | - Registered first-class tools without contract: 0 |
128 | 141 | - Root Tools Index cards reviewed: 18 |
129 | 142 | - Root Tools Index cards skipped as non-tool surfaces: 2 |
130 | | -- Top-level tool behavior contracts remaining: 0 |
131 | | -- Duplicate object-vs-tool declaration files remaining: 0 |
| 143 | +- Top-level asset/palette/vector output behavior contracts remaining: 0 |
| 144 | +- Duplicate output behavior models remaining: 0 |
0 commit comments