diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 17f9579..10478bf 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -10,6 +10,11 @@ "homepage": "https://github.com/CodeWithJuber/forgekit#readme", "keywords": ["config", "cross-tool", "agents-md", "ai-coding", "claude-code", "cognitive-substrate"], "skills": "./global/tools", - "agents": "./global/crew", + "agents": [ + "./global/crew/frontend-verifier.md", + "./global/crew/independent-reviewer.md", + "./global/crew/scout.md", + "./global/crew/verifier.md" + ], "hooks": "./hooks/hooks.json" } diff --git a/test/channels.test.js b/test/channels.test.js index 607a4bc..0c18218 100644 --- a/test/channels.test.js +++ b/test/channels.test.js @@ -10,7 +10,13 @@ const readJson = (p) => JSON.parse(readFileSync(join(root, p), "utf8")); test("plugin channel points at global/ (no duplication)", () => { const plugin = readJson(".claude-plugin/plugin.json"); assert.equal(plugin.skills, "./global/tools"); - assert.equal(plugin.agents, "./global/crew"); + // The manifest schema requires each `agents` entry to be a path to a .md file + // (pattern ^\.\/.*\.md$), not a directory — so crew agents are listed explicitly. + assert.ok(Array.isArray(plugin.agents), "agents is an array of agent files"); + for (const a of plugin.agents) { + assert.match(a, /^\.\/global\/crew\/.+\.md$/, `agent path ${a} is a ./global/crew/*.md file`); + assert.ok(existsSync(join(root, a)), `${a} exists`); + } assert.ok(existsSync(join(root, "global/tools")), "global/tools exists"); assert.ok(existsSync(join(root, "global/crew")), "global/crew exists"); });