diff --git a/package.json b/package.json index 3836b5f..e321a0f 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "codecartographer-pi", "version": "0.12.11", "mcpName": "io.github.HuginnIndustries/codecartographer", - "description": "Evidence-backed reverse engineering and human-gated software planning for Pi and MCP coding agents.", + "description": "Turn an unfamiliar codebase into a validated reimplementation spec, then synthesize confirmed specs and a product vision into a traceable plan.", "type": "module", "keywords": [ "pi-package", @@ -13,7 +13,12 @@ "mcp", "software-planning", "code-analysis", - "synthesis" + "synthesis", + "codebase", + "ai-agent", + "context-engineering", + "code-understanding", + "spec-driven" ], "license": "MIT", "author": "James Sesler", diff --git a/tests/release-metadata.test.mjs b/tests/release-metadata.test.mjs index e0be68b..96c2e2a 100644 --- a/tests/release-metadata.test.mjs +++ b/tests/release-metadata.test.mjs @@ -47,8 +47,15 @@ test("MCP Registry metadata identifies the published stdio package", () => { }); test("npm metadata describes both product directions and preserves discovery terms", () => { - assert.match(pkg.description, /evidence-backed reverse engineering/i); - assert.match(pkg.description, /software planning/i); + // Assert on the two product directions, not on exact marketing phrasing — + // pinning the literal sentence means every copy change is a test edit, and + // the description then rots because updating it looks like breaking a test. + assert.match( + pkg.description, + /codebase|reverse[- ]engineer/i, + "description must cover the analysis direction", + ); + assert.match(pkg.description, /plan/i, "description must cover the planning/synthesis direction"); const requiredKeywords = [ "codecartographer", @@ -57,6 +64,13 @@ test("npm metadata describes both product directions and preserves discovery ter "software-planning", "code-analysis", "synthesis", + // Mirror the GitHub repo topics set in #77 so the two discovery + // surfaces stay aligned. + "codebase", + "ai-agent", + "context-engineering", + "code-understanding", + "spec-driven", ]; for (const keyword of requiredKeywords) { assert.ok(pkg.keywords?.includes(keyword), `package.json keywords must include ${keyword}`);