Jake Shore 96e52666c5 MCPEngine full sync — studio scaffold, factory v2, server updates, state.json — 2026-02-12
=== NEW ===
- studio/ — MCPEngine Studio scaffold (Next.js monorepo, build plan)
- docs/FACTORY-V2.md — Factory v2 architecture doc
- docs/CALENDLY_MCP_BUILD_SUMMARY.md — Calendly MCP build report

=== UPDATED SERVERS ===
- fieldedge: Added jobs-tools, UI build script, main entry update
- lightspeed: Updated main + server entry points
- squarespace: Added collection-browser + page-manager apps
- toast: Added main + server entry points

=== INFRA ===
- infra/command-center/state.json — Updated pipeline state
- infra/command-center/FACTORY-V2.md — Factory v2 operator playbook
2026-02-12 17:58:33 -05:00

49 lines
1.5 KiB
TypeScript

// Skill Registry — maps logical skill names to skill data files
export interface SkillMapping {
name: string;
files: string[]; // filenames in skills/data/
description: string;
}
export const SKILL_REGISTRY: Record<string, SkillMapping> = {
analyzer: {
name: 'analyzer',
files: ['mcp-api-analyzer.md'],
description: 'API spec analysis — extract endpoints, auth, rate limits, and generate tool definitions',
},
builder: {
name: 'builder',
files: ['mcp-server-builder.md', 'mcp-server-development.md'],
description: 'MCP server code generation from analyzed tool definitions',
},
designer: {
name: 'designer',
files: ['mcp-app-designer.md', 'mcp-apps-official.md', 'mcp-apps-merged.md'],
description: 'MCP app UI design — dashboard, data-grid, form, and other patterns',
},
tester: {
name: 'tester',
files: ['mcp-qa-tester.md'],
description: 'Multi-layer QA — protocol, static, visual, functional, performance, security',
},
deployer: {
name: 'deployer',
files: ['mcp-deployment.md'],
description: 'Deployment orchestration — MCPEngine, npm, Docker, Cloudflare',
},
'apps-integration': {
name: 'apps-integration',
files: ['mcp-apps-integration.md'],
description: 'App-to-tool binding and integration wiring',
},
};
export type SkillName = keyof typeof SKILL_REGISTRY;
export function getSkillFiles(name: SkillName): string[] {
const mapping = SKILL_REGISTRY[name];
if (!mapping) throw new Error(`Unknown skill: ${name}`);
return mapping.files;
}