Skip to content

Commit a33fc49

Browse files
mcp-tool-shopclaude
andcommitted
Add targeting block to MarketIR schema + seed data for zip-meta-map
Schema: targetingBlock, targetingOrgType, targetingSeedRepo added to tool properties. Validator extended with seedRepo/exclusion checks and targeting info in log output. zip-meta-map targeting: 6 keywords, 6 topics, 3 languages, 2 exclusions, 2 seed repos (aider-chat/aider, paul-gauthier/aider). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 0090092 commit a33fc49

4 files changed

Lines changed: 101 additions & 7 deletions

File tree

marketing/data/tools/zip-meta-map.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,5 +175,15 @@
175175
"description": "Pre-release access to new index formats and plan structures before public release."
176176
}
177177
]
178+
},
179+
"targeting": {
180+
"keywords": ["repo index", "repo metadata", "LLM context", "code map", "deterministic build", "CI gating"],
181+
"topics": ["ci", "github-actions", "devtools", "llm", "developer-tools", "code-analysis"],
182+
"languages": ["Python", "TypeScript", "JavaScript"],
183+
"exclusions": ["mcp-tool-shop-org", "mcp-tool-shop"],
184+
"seedRepos": [
185+
{ "owner": "aider-chat", "repo": "aider", "notes": "LLM coding agent, needs repo context" },
186+
{ "owner": "paul-gauthier", "repo": "aider", "notes": "Alternate org for aider" }
187+
]
178188
}
179189
}

marketing/manifests/marketing.lock.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"schemaVersion": "1.0.0",
3-
"generatedAt": "2026-02-15T22:55:51.343Z",
3+
"generatedAt": "2026-02-15T23:24:46.143Z",
44
"generator": "gen-lock.mjs",
55
"files": [
66
{
@@ -25,8 +25,8 @@
2525
},
2626
{
2727
"path": "marketing/data/tools/zip-meta-map.json",
28-
"sha256": "7b62c662704e6aedf8d9d9f698cbcae64f5f8fabd669a73db804aac3282cedc2",
29-
"bytes": 7680
28+
"sha256": "7bbf650961ec3bcb4ef1c38c95d9c30e00df863f299b4badcc7a5afeca5798c6",
29+
"bytes": 8236
3030
},
3131
{
3232
"path": "marketing/manifests/evidence.manifest.json",
@@ -35,8 +35,8 @@
3535
},
3636
{
3737
"path": "marketing/schema/marketing.schema.json",
38-
"sha256": "97dc4f550b714b5875f0bba698a0106dca66891011dabcf28a65a3705954622d",
39-
"bytes": 13542
38+
"sha256": "0f0832a0616c3e9df39a0dbb3aee9a07a5c8804a5cd10ea409f867900245a894",
39+
"bytes": 15564
4040
}
4141
]
4242
}

marketing/schema/marketing.schema.json

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,70 @@
139139
"additionalProperties": false
140140
},
141141

142+
"targetingOrgType": {
143+
"type": "string",
144+
"enum": ["org", "user"]
145+
},
146+
147+
"targetingSeedRepo": {
148+
"type": "object",
149+
"required": ["owner", "repo"],
150+
"properties": {
151+
"owner": {
152+
"type": "string",
153+
"minLength": 1,
154+
"description": "GitHub owner (org or user)."
155+
},
156+
"repo": {
157+
"type": "string",
158+
"minLength": 1,
159+
"description": "GitHub repo name."
160+
},
161+
"notes": { "type": "string" }
162+
},
163+
"additionalProperties": false
164+
},
165+
166+
"targetingBlock": {
167+
"type": "object",
168+
"description": "Optional targeting spec for partner/integrator discovery. Drives the target list generator.",
169+
"properties": {
170+
"keywords": {
171+
"type": "array",
172+
"items": { "type": "string", "minLength": 1 },
173+
"minItems": 1,
174+
"description": "Search keywords for GitHub readme/description matching."
175+
},
176+
"topics": {
177+
"type": "array",
178+
"items": { "type": "string", "minLength": 1 },
179+
"minItems": 1,
180+
"description": "GitHub repo topics to search for."
181+
},
182+
"languages": {
183+
"type": "array",
184+
"items": { "type": "string", "minLength": 1 },
185+
"description": "Programming languages to filter by."
186+
},
187+
"orgTypes": {
188+
"type": "array",
189+
"items": { "$ref": "#/$defs/targetingOrgType" },
190+
"description": "Filter by GitHub owner type."
191+
},
192+
"exclusions": {
193+
"type": "array",
194+
"items": { "type": "string", "minLength": 1 },
195+
"description": "GitHub owners or repos to exclude from results."
196+
},
197+
"seedRepos": {
198+
"type": "array",
199+
"items": { "$ref": "#/$defs/targetingSeedRepo" },
200+
"description": "Known repos to use for similarity expansion."
201+
}
202+
},
203+
"additionalProperties": false
204+
},
205+
142206
"pressBlock": {
143207
"type": "object",
144208
"description": "Optional press/partner data for a tool. Enables press pages, outreach packs, and partner bundles.",
@@ -333,7 +397,8 @@
333397
"items": { "$ref": "#/$defs/message" },
334398
"minItems": 1
335399
},
336-
"press": { "$ref": "#/$defs/pressBlock" }
400+
"press": { "$ref": "#/$defs/pressBlock" },
401+
"targeting": { "$ref": "#/$defs/targetingBlock" }
337402
},
338403
"additionalProperties": false
339404
},

marketing/scripts/validate.mjs

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,8 +158,27 @@ for (const { ref } of index.tools) {
158158
}
159159
}
160160

161+
// Check targeting seedRepos have non-empty owner+repo
162+
if (tool.targeting?.seedRepos) {
163+
for (const seed of tool.targeting.seedRepos) {
164+
if (!seed.owner || !seed.repo) {
165+
fail(`${ref}: targeting seedRepo has empty owner or repo`);
166+
}
167+
}
168+
}
169+
170+
// Check targeting exclusions contain no empty strings
171+
if (tool.targeting?.exclusions) {
172+
for (const exc of tool.targeting.exclusions) {
173+
if (!exc || exc.trim().length === 0) {
174+
fail(`${ref}: targeting exclusion contains empty string`);
175+
}
176+
}
177+
}
178+
161179
const pressInfo = tool.press ? `, press: ${tool.press.quotes?.length || 0} quotes` : "";
162-
console.log(` OK: ${tool.id} (${tool.claims.length} claims, ${tool.messages.length} messages${pressInfo})`);
180+
const targetingInfo = tool.targeting ? `, targeting: ${tool.targeting.keywords?.length || 0} keywords, ${tool.targeting.topics?.length || 0} topics` : "";
181+
console.log(` OK: ${tool.id} (${tool.claims.length} claims, ${tool.messages.length} messages${pressInfo}${targetingInfo})`);
163182
}
164183

165184
// Load campaigns

0 commit comments

Comments
 (0)