@trace.market/types 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,154 @@
1
+ ## Plan: Authentiq Types Integration
2
+
3
+ Add marketplace-layer types from src/authentiq.ts into the package in a way that complements, rather than replaces, the existing supply-chain model in src/index.d.ts. Reuse current Price, Facility, Process, ProductInstance, ToolInstance, and KnowHow where possible; add only the missing entity layers and bridge fields needed to map products, services, know-how, and offers.
4
+
5
+ **Steps**
6
+ 1. Keep current supply-chain core in place: ProductInstance, Process, KnowHow, Impact, Facility, Price remain the package foundation.
7
+ 2. Add missing marketplace primitives from authentiq.ts: MediaFile, GeoLocation, SocialAccount, Availability, WeeklyTimeSlot, OneTimeDateSlot, ServiceDeliveryModes, plus bounded enums that are not already covered.
8
+ 3. Add missing entity hierarchy: ProofOfProvenance, ProofOfProduct, ProofOfService, ProductType, ServiceType, ProductItem, ServiceItem, plus create/update request types only if the package is intended to ship API contracts.
9
+ 4. Bridge marketplace entities to supply-chain entities instead of duplicating them: connect ProductType and ServiceType to KnowHow, ToolInstance, Impact, and ProductInstance/Process references.
10
+ 5. Normalize overlaps carefully: decide whether Price.currency should become a tighter union, whether GeoLocation should coexist with GeoJSON Point Location, and whether License should be shared by KnowHow and Product/Service offerings.
11
+ 6. Extend descriptions metadata for any newly exported public types so MCP graph/editor features can explain them consistently.
12
+ 7. Verify with tsc --noEmit and check that public exports remain backward compatible.
13
+
14
+ **Relevant files**
15
+ - /opt/tm-types/src/index.d.ts — current supply-chain/public type surface to preserve and extend
16
+ - /opt/tm-types/src/authentiq.ts — candidate marketplace/product/service model to integrate
17
+ - /opt/tm-types/src/descriptions.ts — field metadata that should be kept in sync with public types
18
+ - /opt/tm-types/package.json — confirms package entrypoint is src/index.d.ts
19
+
20
+ **Verification**
21
+ 1. Confirm no duplicate/conflicting public names between authentiq.ts and index.d.ts.
22
+ 2. Validate that ProductType/ServiceType can reference KnowHow, ToolInstance, and Impact without introducing circular ambiguity.
23
+ 3. Run npm run validate in /opt/tm-types.
24
+
25
+ **Decisions**
26
+ - Include: entity layers needed for provenance, products, services, offers, scheduling, media, and social metadata.
27
+ - Exclude by default: private identity fields in PersonalData and CRUD API interfaces unless this package is intentionally becoming an API contract package.
28
+ - Preferred approach: additive exports plus bridge fields/types, not a rewrite of existing supply-chain types.
29
+
30
+ I’m comparing the attached Authentiq model against the existing types package so I can identify the minimum fields and structures needed to represent services, products, and know-how cleanly without overloading the current schema.
31
+
32
+ Compare authentiq to types
33
+
34
+ Read memory
35
+
36
+ Read [](file:///opt/tm-types)
37
+
38
+ Read [](file:///opt/tm-types/src/authentiq.ts#1-1), lines 1 to 300
39
+
40
+ Read [](file:///opt/tm-types/src)
41
+
42
+ Read [](file:///opt/tm-types/src/authentiq.ts#300-300), lines 300 to 493
43
+
44
+ Read [](file:///opt/tm-types/src/index.d.ts)
45
+
46
+ Read [](file:///opt/tm-types/src/descriptions.ts#1-1), lines 1 to 500
47
+
48
+ Read [](file:///opt/tm-types/src/openlcaMcpTypes.ts)
49
+
50
+ Searched for regex `KnowHow|Media|Location|Pricing|Availability|Organization` (`ssh-remote+167.235.250.122` · `opt/tm-types/src/**`), 20 results
51
+
52
+ Read [](file:///opt/tm-types/src/descriptions.ts#500-500), lines 500 to 759
53
+
54
+ Created memory file [](file:///root/.vscode-server/data/User/workspaceStorage/ce8095297ecce63c8ebdb28cda4536e1/GitHub.copilot-chat/memory-tool/memories/NTYzZTkxNTAtNjRmYy00NWU1LTkzZmQtNTgxZjNhZjMzNmVm/tm-types-authentiq-analysis.md)
55
+
56
+ I have the comparison report. Next I’m pulling the current package symbols and the subagent’s findings into a concrete recommendation set so the answer stays tied to what already exists in this repo.
57
+
58
+ Searching for files matching `ssh-remote+167.235.250.122` · `opt/tm-types/src/*`
59
+
60
+ Searched for regex `KnowHow|FoodInstance|ProductInstance|Impact|Facility|Location|Price|MachineInstance|Service|Product|provenance` (`ssh-remote+167.235.250.122` · `opt/tm-types/src/**`), 200 results
61
+
62
+ Read [](file:///root/.vscode-server/data/User/workspaceStorage/ce8095297ecce63c8ebdb28cda4536e1/GitHub.copilot-chat/chat-session-resources/563e9150-64fc-45e5-93fd-581f3af336ef/call_jMNmeQVYFe1zCVZBVBJ7VPrP__vscode-1774861952263/content.txt)
63
+
64
+ I’ve confirmed the current package already has process, impact, price, facility, and know-how concepts. I’m pulling the exact core type definitions now so the recommendation is limited to what is genuinely missing rather than duplicating what the package already models.
65
+
66
+ Read [](file:///opt/tm-types/src/index.d.ts#1-1), lines 1 to 260
67
+
68
+ Read [](file:///opt/tm-types/src/descriptions.ts#440-440), lines 440 to 740
69
+
70
+ Read [](file:///opt/tm-types/package.json)
71
+
72
+ I have enough context to make a scoped recommendation. I’m saving a concise integration plan in session memory so the package changes and boundaries are explicit if you want to implement this next.
73
+
74
+ Created memory file [](file:///root/.vscode-server/data/User/workspaceStorage/ce8095297ecce63c8ebdb28cda4536e1/GitHub.copilot-chat/memory-tool/memories/NTYzZTkxNTAtNjRmYy00NWU1LTkzZmQtNTgxZjNhZjMzNmVm/plan.md)
75
+
76
+ The current package already covers the supply-chain side well: ProductInstance, Process, Facility, Price, ToolInstance, Impact, and KnowHow are already in src/index.d.ts through src/index.d.ts. What it does not have is the marketplace and provenance hierarchy from the attachment. So the fields to add are mostly the ones that describe who offers something, what is being offered, and how that offer is scheduled or presented.
77
+
78
+ **What to add**
79
+ Add the missing entity layers from src/authentiq.ts to the public package surface:
80
+
81
+ - Provenance / org layer from src/authentiq.ts:
82
+ ProofOfProvenance fields: id, walletAddress, name, keywords, websiteUrl, description, location, logo, peers, intellectualProperty, createdAt, updatedAt
83
+
84
+ - Product DAO layer from src/authentiq.ts:
85
+ ProofOfProduct fields: id, walletAddress, provenanceId, name, keywords, websiteUrl, description, location, logo, peers, productTypes, createdAt, updatedAt
86
+
87
+ - Service DAO layer from src/authentiq.ts:
88
+ ProofOfService fields: id, walletAddress, provenanceId, name, keywords, websiteUrl, description, location, logo, peers, serviceTypes, createdAt, updatedAt
89
+
90
+ - Product offer template layer from src/authentiq.ts:
91
+ ProductType fields: id, walletAddress, productId, name, keywords, license, physicalSpecs, price, currency, openForSpecialRequests, shortDescription, contents, specificDescription, photos, documentProofs, validationCertificates, createdAt, updatedAt
92
+
93
+ - Service offer template layer from src/authentiq.ts:
94
+ ServiceType fields: id, walletAddress, serviceId, name, keywords, license, availability, deliveryModes, averageDuration, durationUnit, price, currency, openForSpecialRequests, shortDescription, contents, specificDescription, photos, documentProofs, validationCertificates, createdAt, updatedAt
95
+
96
+ - Product listing layer from src/authentiq.ts:
97
+ ProductItem fields: id, walletAddress, productTypeId, providerWalletAddress, relatedPlatforms, category, keywords, quantity, quantityUnit, offerValidFrom, offerValidTo, description, location, photos, createdAt, updatedAt
98
+
99
+ - Service listing layer from src/authentiq.ts:
100
+ ServiceItem fields: id, walletAddress, serviceTypeId, providerWalletAddress, relatedPlatforms, category, keywords, occasionsToOffer, offerValidFrom, offerValidTo, description, location, photos, createdAt, updatedAt
101
+
102
+ **Supporting types you should also add**
103
+ These are the attachment fields that make the above usable and are not already well represented in the package:
104
+
105
+ - GeoLocation: address, lat, lng from src/authentiq.ts
106
+ - MediaFile: id, url, caption, mimeType, uploadedAt from src/authentiq.ts
107
+ - SocialAccount: platform, handle from src/authentiq.ts
108
+ - Availability: mode, timezone, weekly, onetime from src/authentiq.ts
109
+ - WeeklyTimeSlot: day, startTime, endTime from src/authentiq.ts
110
+ - OneTimeDateSlot: date, startTime, endTime from src/authentiq.ts
111
+ - ServiceDeliveryModes: online, inPerson, onSite from src/authentiq.ts
112
+ - ProductPhysicalSpecs: dimensions, dimensionsUnit, weight, weightUnit, netVolume, volumeUnit, packagingQuantity, packagingType from src/authentiq.ts
113
+ - IntellectualProperty: license, description, photos, documentProofs, validationCertificates from src/authentiq.ts
114
+
115
+ **What to map, not duplicate**
116
+ A few attachment concepts overlap with the existing package and should be bridged instead of copied blindly:
117
+
118
+ - Know-how: keep the existing KnowHow from src/index.d.ts, then let ProductType and ServiceType reference it.
119
+ - Price: the package already has Price in src/index.d.ts. I would extend or normalize that rather than introducing a second price shape.
120
+ - Location: the package uses GeoJSON Point as Location in src/index.d.ts, while Authentiq uses GeoLocation with address plus lat/lng. Keep both only if you need both map precision and human-readable address; otherwise define one canonical location model and adapters.
121
+ - Impact and ToolInstance already exist in src/index.d.ts and src/index.d.ts. ProductType and ServiceType should reference these rather than re-declare similar fields.
122
+
123
+ **What I would not add by default**
124
+ These are valid in the attachment, but I would keep them out of the core types package unless you explicitly want this package to become an API-contract and identity package:
125
+
126
+ - PersonalData from src/authentiq.ts, especially bankAccountIban, identityCardNumber, passportNumber, ssn, biometricProofs, medicalRecords
127
+ - CRUD API interfaces from src/authentiq.ts
128
+ - Create and update request types, unless this package is meant to ship request/response DTOs as part of the public contract
129
+
130
+ **Recommended minimal set**
131
+ If you want the smallest useful addition for mapping services, products, and know-how, add only:
132
+
133
+ 1. ProofOfProvenance
134
+ 2. ProofOfProduct
135
+ 3. ProofOfService
136
+ 4. ProductType
137
+ 5. ServiceType
138
+ 6. ProductItem
139
+ 7. ServiceItem
140
+ 8. GeoLocation
141
+ 9. MediaFile
142
+ 10. Availability, WeeklyTimeSlot, OneTimeDateSlot
143
+ 11. ServiceDeliveryModes
144
+ 12. ProductPhysicalSpecs
145
+ 13. IntellectualProperty
146
+
147
+ Then add bridge references so ProductType and ServiceType can point to existing KnowHow, ToolInstance, Impact, and optionally ProductInstance or Process.
148
+
149
+ **Plan**
150
+ I saved a scoped integration plan in session memory at /memories/session/plan.md. The core recommendation is additive: keep the existing supply-chain model in src/index.d.ts, export the marketplace hierarchy from src/authentiq.ts, and connect the two with a few reference fields instead of rewriting the current model.
151
+
152
+ If you want, the next step can be either:
153
+ 1. I draft the exact merged public type surface for src/index.d.ts
154
+ 2. I propose the bridge fields between ProductType or ServiceType and KnowHow or Process before any code changes
@@ -19,7 +19,7 @@ jobs:
19
19
 
20
20
  - uses: actions/setup-node@v4
21
21
  with:
22
- node-version: '20'
22
+ node-version: '24'
23
23
 
24
24
  - name: Install dependencies
25
25
  working-directory: ./mcp-server
@@ -24,7 +24,7 @@ jobs:
24
24
 
25
25
  - uses: actions/setup-node@v4
26
26
  with:
27
- node-version: '20'
27
+ node-version: '24'
28
28
  registry-url: 'https://registry.npmjs.org'
29
29
 
30
30
  - name: Install dependencies
@@ -33,40 +33,37 @@ jobs:
33
33
  - name: Validate types
34
34
  run: npm run validate
35
35
 
36
- - name: Check if version changed
37
- id: check
36
+ - name: Auto-bump patch if version already published
38
37
  run: |
39
38
  git fetch --tags
39
+ git config user.name "GitHub Actions"
40
+ git config user.email "actions@github.com"
40
41
  CURRENT_VERSION=$(node -p "require('./package.json').version")
41
- if git rev-parse "v$CURRENT_VERSION" >/dev/null 2>&1; then
42
- echo "Version $CURRENT_VERSION already exists"
43
- echo "changed=false" >> $GITHUB_OUTPUT
44
- else
45
- echo "New version $CURRENT_VERSION"
46
- echo "changed=true" >> $GITHUB_OUTPUT
47
- echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
48
- fi
49
-
42
+ while git rev-parse "v$CURRENT_VERSION" >/dev/null 2>&1; do
43
+ echo "Tag v$CURRENT_VERSION already exists – bumping patch"
44
+ npm version patch --no-git-tag-version
45
+ CURRENT_VERSION=$(node -p "require('./package.json').version")
46
+ done
47
+ echo "Publishing as v$CURRENT_VERSION"
48
+ echo "version=$CURRENT_VERSION" >> $GITHUB_ENV
49
+ git add package.json
50
+ git commit -m "chore: auto-bump to v$CURRENT_VERSION [skip ci]" || true
51
+
50
52
  - name: Publish to NPM
51
- if: steps.check.outputs.changed == 'true'
52
53
  run: npm publish --provenance --access public
53
54
  env:
54
55
  NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
55
-
56
- - name: Create Git tag
57
- if: steps.check.outputs.changed == 'true'
56
+
57
+ - name: Create Git tag and push
58
58
  run: |
59
- git config user.name "GitHub Actions"
60
- git config user.email "actions@github.com"
61
- git tag "v${{ steps.check.outputs.version }}"
62
- git push origin "v${{ steps.check.outputs.version }}"
63
-
59
+ git tag "v${{ env.version }}"
60
+ git push origin HEAD:main "v${{ env.version }}"
61
+
64
62
  - name: Create GitHub Release
65
- if: steps.check.outputs.changed == 'true'
66
- uses: softprops/action-gh-release@v1
63
+ uses: softprops/action-gh-release@v2
67
64
  with:
68
- tag_name: v${{ steps.check.outputs.version }}
69
- name: Release v${{ steps.check.outputs.version }}
65
+ tag_name: v${{ env.version }}
66
+ name: Release v${{ env.version }}
70
67
  draft: false
71
68
  prerelease: false
72
69
  env:
package/CHANGELOG.md CHANGED
@@ -9,8 +9,7 @@ All notable changes to this project will be documented in this file.
9
9
 
10
10
  ### Features
11
11
  - **Process Types**: Added `PyrolysisProcess` and `DistillationProcess`.
12
- - **ToolInstance**: Added `specs` (flexible map for capacity, material, etc.) and `components` (nested tools) to support complex equipment hierarchies like pyrolysis reactors.
13
- - **Process**: Added `parameters` to `GenericProcess` for capturing real-time or run-specific data (pressure, speed, etc.).
12
+ - **Process**: Added `notes` to `GenericProcess` for capturing real-time or run-specific data (pressure, speed, etc.).
14
13
  - **Icons**: Added icons for new processes (`local_fire_department` for Pyrolysis, `science` for Distillation).
15
14
 
16
15
  ## [0.3.0] - 2026-01-19
@@ -0,0 +1,108 @@
1
+ field,parent,category,type,labels
2
+ errorMessage,FetchError,support,string,supply-chain tracking
3
+ notes,Pokedex,support,string,"supply-chain tracking, selling it online"
4
+ roles,Pokedex,support,string,supply-chain tracking
5
+ token,Pokedex,support,string,supply-chain tracking
6
+ typesVersion,Pokedex,support,string,selling it online
7
+ instance,Pokedex,support,ProductInstance,supply-chain tracking
8
+ label,Facility,support,string,supply-chain tracking
9
+ location,Facility,support,Location,supply-chain tracking
10
+ timestamp,GenericProcess,process,number,"estimate carbon footprint, supply-chain tracking"
11
+ duration,GenericProcess,process,number,estimate carbon footprint
12
+ facility,GenericProcess,process,Facility,"estimate carbon footprint, supply-chain tracking"
13
+ temperatureRange,GenericProcess,process,TemperatureRange,estimate carbon footprint
14
+ inputInstances,GenericProcess,process,(TransportedInputInstance | LocalInputInstance)[],"estimate carbon footprint, supply-chain tracking"
15
+ impacts,GenericProcess,process,Impact[],estimate carbon footprint
16
+ price,GenericProcess,process,Price,selling it online
17
+ hr,GenericProcess,process,Hr,"estimate carbon footprint, supply-chain tracking"
18
+ notes,GenericProcess,process,"Record<string, string | number | boolean>","supply-chain tracking, selling it online"
19
+ type,PrintingProcess,process,"""printing""",selling it online
20
+ toolInstance,PrintingProcess,process,TokenIdOr<ToolInstance>,"estimate carbon footprint, supply-chain tracking"
21
+ knowHow,PrintingProcess,process,TokenIdOr<KnowHow>,supply-chain tracking
22
+ shape,PrintingProcess,process,string /* URL */,"estimate carbon footprint, supply-chain tracking"
23
+ type,MillingProcess,process,"""milling""",selling it online
24
+ knowHow,MillingProcess,process,TokenIdOr<KnowHow>,supply-chain tracking
25
+ toolInstance,MillingProcess,process,TokenIdOr<ToolInstance>,"estimate carbon footprint, supply-chain tracking"
26
+ type,FreezeDryingProcess,process,"""freezedrying""",selling it online
27
+ knowHow,FreezeDryingProcess,process,TokenIdOr<KnowHow>,supply-chain tracking
28
+ toolInstance,FreezeDryingProcess,process,TokenIdOr<ToolInstance>,"estimate carbon footprint, supply-chain tracking"
29
+ type,BlendingProcess,process,"""blending""",selling it online
30
+ toolInstance,BlendingProcess,process,TokenIdOr<ToolInstance>,"estimate carbon footprint, supply-chain tracking"
31
+ knowHow,BlendingProcess,process,TokenIdOr<KnowHow>,supply-chain tracking
32
+ type,SaleProcess,process,"""sale""",selling it online
33
+ price,SaleProcess,process,Price,selling it online
34
+ type,HarvestProcess,process,"""harvest""",selling it online
35
+ type,CookingProcess,process,"""cooking""",selling it online
36
+ method,CookingProcess,process,"""baking"" | ""boiling"" | ""frying"" | ""steaming"" | ""roasting"" | ""sous-vide"" | ""grilling""","estimate carbon footprint, supply-chain tracking"
37
+ toolInstance,CookingProcess,process,TokenIdOr<ToolInstance>,"estimate carbon footprint, supply-chain tracking"
38
+ knowHow,CookingProcess,process,TokenIdOr<KnowHow>,supply-chain tracking
39
+ type,PyrolysisProcess,process,"""pyrolysis""",selling it online
40
+ toolInstance,PyrolysisProcess,process,TokenIdOr<ToolInstance>,"estimate carbon footprint, supply-chain tracking"
41
+ knowHow,PyrolysisProcess,process,TokenIdOr<KnowHow>,supply-chain tracking
42
+ type,DistillationProcess,process,"""distillation""",selling it online
43
+ toolInstance,DistillationProcess,process,TokenIdOr<ToolInstance>,"estimate carbon footprint, supply-chain tracking"
44
+ knowHow,DistillationProcess,process,TokenIdOr<KnowHow>,supply-chain tracking
45
+ amount,Price,support,number,supply-chain tracking
46
+ currency,Price,support,string,supply-chain tracking
47
+ type,Price,support,"""budget"" | ""is"" | ""%"" | ""payin30days"" | ""payin60days""",selling it online
48
+ instance,GenericInputInstance,product,TokenIdOr<ProductInstance>,supply-chain tracking
49
+ quantity,GenericInputInstance,product,number,estimate carbon footprint
50
+ type,LocalInputInstance,product,"""local""",selling it online
51
+ type,TransportedInputInstance,product,"""transported""","estimate carbon footprint, supply-chain tracking, selling it online"
52
+ transport,TransportedInputInstance,product,Transport,"estimate carbon footprint, supply-chain tracking"
53
+ method,Transport,support,TransportMethod,"estimate carbon footprint, supply-chain tracking"
54
+ fuelType,Transport,support,"""hydrogen"" | ""electric"" | ""diesel"" | ""petrol"" | ""kerosene""","estimate carbon footprint, selling it online"
55
+ weight,Transport,support,number,estimate carbon footprint
56
+ deparetureTime,Transport,support,number,supply-chain tracking
57
+ duration,Transport,support,number,estimate carbon footprint
58
+ type,ProductInstanceBase,product,string,selling it online
59
+ ownerId,ProductInstanceBase,product,string,supply-chain tracking
60
+ expiryDate,ProductInstanceBase,product,number,"selling it online, supply-chain tracking"
61
+ bio,ProductInstanceBase,product,boolean,"selling it online, supply-chain tracking"
62
+ quantity,ProductInstanceBase,product,number,estimate carbon footprint
63
+ price,ProductInstanceBase,product,Price,selling it online
64
+ title,ProductInstanceBase,product,string,selling it online
65
+ notes,ProductInstanceBase,product,string,"supply-chain tracking, selling it online"
66
+ pictureURL,ProductInstanceBase,product,string,selling it online
67
+ category,FoodInstance,product,"""food""","supply-chain tracking, selling it online"
68
+ iDs,FoodInstance,product,ID[],supply-chain tracking
69
+ nutrients,FoodInstance,product,FallbackFoodNutrient[],"selling it online, supply-chain tracking"
70
+ format,FoodInstance,product,string,selling it online
71
+ grade,FoodInstance,product,string,selling it online
72
+ size,FoodInstance,product,string,selling it online
73
+ process,FoodInstance,product,Process,"estimate carbon footprint, supply-chain tracking"
74
+ labels,FoodInstance,product,string[],selling it online
75
+ category,NonFoodInstance,product,"""non-food""","supply-chain tracking, selling it online"
76
+ grade,NonFoodInstance,product,string,selling it online
77
+ size,NonFoodInstance,product,string,selling it online
78
+ labels,NonFoodInstance,product,string[],selling it online
79
+ category,PackagingInstance,product,"""packaging""","supply-chain tracking, selling it online"
80
+ material,PackagingInstance,product,string,"selling it online, supply-chain tracking"
81
+ labels,PackagingInstance,product,string[],selling it online
82
+ amount,FallbackFoodNutrient,product,number,"selling it online, supply-chain tracking"
83
+ iD,FallbackFoodNutrient,product,ID,supply-chain tracking
84
+ category,ToolInstance,product,string,"supply-chain tracking, selling it online"
85
+ ownerId,ToolInstance,product,string,supply-chain tracking
86
+ quantity,ToolInstance,product,number,estimate carbon footprint
87
+ size,ToolInstance,product,string,selling it online
88
+ ratedPowerKW,ToolInstance,product,number,estimate carbon footprint
89
+ providerSDomain,ToolInstance,product,string,supply-chain tracking
90
+ hash,ToolInstance,product,string,supply-chain tracking
91
+ tasks,Hr,support,string[],supply-chain tracking
92
+ assignee,Hr,support,string,supply-chain tracking
93
+ min,TemperatureRange,support,number,supply-chain tracking
94
+ max,TemperatureRange,support,number,supply-chain tracking
95
+ owner,KnowHow,support,string,supply-chain tracking
96
+ hash,KnowHow,support,string,supply-chain tracking
97
+ inputs,KnowHow,support,string,"estimate carbon footprint, supply-chain tracking"
98
+ outputs,KnowHow,support,string | object,supply-chain tracking
99
+ licenseFee,KnowHow,support,Price,"supply-chain tracking, selling it online"
100
+ note,KnowHow,support,string | object,supply-chain tracking
101
+ logoURL,KnowHow,support,string,selling it online
102
+ ownerId,GenericImpact,impact,string,supply-chain tracking
103
+ format,GenericImpact,impact,string,selling it online
104
+ quantity,GenericImpact,impact,number,estimate carbon footprint
105
+ category,CarbonImpact,impact,"""carbon""","estimate carbon footprint, supply-chain tracking, selling it online"
106
+ category,WaterImpact,impact,"""water""","estimate carbon footprint, supply-chain tracking, selling it online"
107
+ registry,ID,support,string,supply-chain tracking
108
+ id,ID,support,string,supply-chain tracking
@@ -0,0 +1,100 @@
1
+ # TM Types Usage Audit Prompt
2
+
3
+ Use this prompt with each agent/team who owns a microservice or module.
4
+
5
+ ---
6
+
7
+ ## Goal
8
+ Identify which `tm-types` are used by each microservice/module **and** what each service/module can do so we can:
9
+ - **Containerize** them logically
10
+ - **Reduce redundancy** (overlaps)
11
+ - Plan roadmap from **current** to **target** usage
12
+ - Monetize each container as APIs/SDKs/GUIs
13
+
14
+ ---
15
+
16
+ ## Please return the following JSON
17
+
18
+ ```json
19
+ {
20
+ "service": {
21
+ "name": "<service name>",
22
+ "status": "current | target",
23
+ "description": "<what this service does>",
24
+ "features": {
25
+ "gui": ["<feature exposed in UI>", "..."],
26
+ "api": ["<feature exposed programmatically>", "..."],
27
+ "mcp": ["<feature exposed via MCP>", "..."]
28
+ },
29
+ "modules": [
30
+ {
31
+ "name": "<module name>",
32
+ "status": "current | target",
33
+ "description": "<module purpose>",
34
+ "features": {
35
+ "gui": ["<feature exposed in UI>", "..."],
36
+ "api": ["<feature exposed programmatically>", "..."],
37
+ "mcp": ["<feature exposed via MCP>", "..."]
38
+ },
39
+ "types": [
40
+ "<tm-type-1>",
41
+ "<tm-type-2>",
42
+ "..."
43
+ ]
44
+ }
45
+ ]
46
+ }
47
+ }
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Guidance
53
+ - **List every `tm-type`** your module uses (interfaces or types).
54
+ - **List features** for both GUI and programmatic surfaces (API/SDK/MCP).
55
+ - Mark **status** as `current` for today’s usage and `target` for your ideal future usage.
56
+ - If a module is planned but not live, still list it as `target`.
57
+ - If unsure about a type name, include your best guess and a note.
58
+
59
+ ---
60
+
61
+ ## Examples
62
+
63
+ ```json
64
+ {
65
+ "service": {
66
+ "name": "Pricing Service",
67
+ "status": "current",
68
+ "description": "Calculates price quotes and promotions",
69
+ "features": {
70
+ "gui": ["Quote preview", "Promo simulator"],
71
+ "api": ["Quote calculation", "Discount eligibility"],
72
+ "mcp": ["Quote intent", "Promotion suggestion"]
73
+ },
74
+ "modules": [
75
+ {
76
+ "name": "Quote Engine",
77
+ "status": "current",
78
+ "description": "Builds live quotes from inputs",
79
+ "features": {
80
+ "gui": ["Live quote panel"],
81
+ "api": ["/quotes/preview"],
82
+ "mcp": ["quote.generate"]
83
+ },
84
+ "types": ["Price", "Money", "Discount", "ProductInstance"]
85
+ },
86
+ {
87
+ "name": "Promo Simulator",
88
+ "status": "target",
89
+ "description": "What-if promo analysis",
90
+ "features": {
91
+ "gui": ["Scenario builder"],
92
+ "api": ["/promos/simulate"],
93
+ "mcp": ["promo.simulate"]
94
+ },
95
+ "types": ["Price", "Promotion", "Scenario"]
96
+ }
97
+ ]
98
+ }
99
+ }
100
+ ```