rebar-mcp 2.0.0
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.
- package/.claude/agents/template-writer.md +43 -0
- package/.claude/agents/test-runner.md +47 -0
- package/.claude/mcp.json +9 -0
- package/.claude/settings.json +29 -0
- package/.claude/skills/ /SKILL.md +21 -0
- package/.claude/skills/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/SKILL.md +21 -0
- package/.claude/skills/bmmibwetxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmibwjgvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmibwsesxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmibwxufxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmibx3r9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmji0lrkxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmjiniphxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmjio86zxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmjiolfbxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmjit1lvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bmmjita1qxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/SKILL.md +21 -0
- package/.claude/skills/bnd-mmibweu3/SKILL.md +21 -0
- package/.claude/skills/bnd-mmibwjh4/SKILL.md +21 -0
- package/.claude/skills/bnd-mmibwsey/SKILL.md +21 -0
- package/.claude/skills/bnd-mmibwxup/SKILL.md +21 -0
- package/.claude/skills/bnd-mmibx3rg/SKILL.md +21 -0
- package/.claude/skills/bnd-mmji0lrp/SKILL.md +21 -0
- package/.claude/skills/bnd-mmjinipm/SKILL.md +21 -0
- package/.claude/skills/bnd-mmjio875/SKILL.md +21 -0
- package/.claude/skills/bnd-mmjiolfg/SKILL.md +21 -0
- package/.claude/skills/bnd-mmjit1m3/SKILL.md +21 -0
- package/.claude/skills/bnd-mmjita1x/SKILL.md +21 -0
- package/.claude/skills/coercion-test/SKILL.md +50 -0
- package/.claude/skills/large-skill/SKILL.md +21 -0
- package/.claude/skills/long-desc-skill/SKILL.md +21 -0
- package/.claude/skills/mcp-dev/SKILL.md +61 -0
- package/.claude/skills/nl-mmibweus/SKILL.md +25 -0
- package/.claude/skills/nl-mmibwjhf/SKILL.md +25 -0
- package/.claude/skills/nl-mmibwsf7/SKILL.md +25 -0
- package/.claude/skills/nl-mmibwxvq/SKILL.md +25 -0
- package/.claude/skills/nl-mmibx3rt/SKILL.md +25 -0
- package/.claude/skills/nl-mmji0lrz/SKILL.md +25 -0
- package/.claude/skills/nl-mmjinipx/SKILL.md +25 -0
- package/.claude/skills/nl-mmjio87f/SKILL.md +25 -0
- package/.claude/skills/nl-mmjiolfs/SKILL.md +25 -0
- package/.claude/skills/nl-mmjit1mc/SKILL.md +25 -0
- package/.claude/skills/nl-mmjita26/SKILL.md +25 -0
- package/.claude/skills/rapid-1/SKILL.md +21 -0
- package/.claude/skills/rapid-2/SKILL.md +21 -0
- package/.claude/skills/rapid-3/SKILL.md +21 -0
- package/.claude/skills/rapid-4/SKILL.md +21 -0
- package/.claude/skills/rapid-5/SKILL.md +21 -0
- package/.claude/skills/test/", /"malicious/": /"true/SKILL.md" +69 -0
- package/.claude/skills/test-emoji-/360/237/230/200-skill/SKILL.md +69 -0
- package/.claude/skills/test-skill/SKILL.md +69 -0
- package/.claude/skills/test; rm -rf /; skill/SKILL.md +69 -0
- package/.claude/skills/test<script>alert(1)</script>skill/SKILL.md +69 -0
- package/.claudeignore +5 -0
- package/.mcp.json +3 -0
- package/CHANGELOG.md +29 -0
- package/CLAUDE.md +76 -0
- package/LICENSE +21 -0
- package/README.md +149 -0
- package/ROADMAP.md +526 -0
- package/ccboot-PRD-v1.0.docx.md +732 -0
- package/ccboot-v1.2.0-enforcement-spec.md +1272 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +674 -0
- package/dist/cli.js.map +1 -0
- package/dist/constants.d.ts +25 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +118 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/common.d.ts +62 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +15 -0
- package/dist/schemas/common.js.map +1 -0
- package/dist/schemas/scaffolding.d.ts +277 -0
- package/dist/schemas/scaffolding.d.ts.map +1 -0
- package/dist/schemas/scaffolding.js +133 -0
- package/dist/schemas/scaffolding.js.map +1 -0
- package/dist/services/claudemd-generator.d.ts +16 -0
- package/dist/services/claudemd-generator.d.ts.map +1 -0
- package/dist/services/claudemd-generator.js +426 -0
- package/dist/services/claudemd-generator.js.map +1 -0
- package/dist/services/codex-generator.d.ts +6 -0
- package/dist/services/codex-generator.d.ts.map +1 -0
- package/dist/services/codex-generator.js +35 -0
- package/dist/services/codex-generator.js.map +1 -0
- package/dist/services/cursor-generator.d.ts +15 -0
- package/dist/services/cursor-generator.d.ts.map +1 -0
- package/dist/services/cursor-generator.js +134 -0
- package/dist/services/cursor-generator.js.map +1 -0
- package/dist/services/file-ops.d.ts +48 -0
- package/dist/services/file-ops.d.ts.map +1 -0
- package/dist/services/file-ops.js +153 -0
- package/dist/services/file-ops.js.map +1 -0
- package/dist/services/output-formatter.d.ts +57 -0
- package/dist/services/output-formatter.d.ts.map +1 -0
- package/dist/services/output-formatter.js +88 -0
- package/dist/services/output-formatter.js.map +1 -0
- package/dist/services/platform-detect.d.ts +14 -0
- package/dist/services/platform-detect.d.ts.map +1 -0
- package/dist/services/platform-detect.js +63 -0
- package/dist/services/platform-detect.js.map +1 -0
- package/dist/services/project-analyzer.d.ts +71 -0
- package/dist/services/project-analyzer.d.ts.map +1 -0
- package/dist/services/project-analyzer.js +595 -0
- package/dist/services/project-analyzer.js.map +1 -0
- package/dist/services/rules-engine.d.ts +41 -0
- package/dist/services/rules-engine.d.ts.map +1 -0
- package/dist/services/rules-engine.js +304 -0
- package/dist/services/rules-engine.js.map +1 -0
- package/dist/services/strictness.d.ts +37 -0
- package/dist/services/strictness.d.ts.map +1 -0
- package/dist/services/strictness.js +182 -0
- package/dist/services/strictness.js.map +1 -0
- package/dist/services/template-engine.d.ts +16 -0
- package/dist/services/template-engine.d.ts.map +1 -0
- package/dist/services/template-engine.js +85 -0
- package/dist/services/template-engine.js.map +1 -0
- package/dist/services/validation.d.ts +41 -0
- package/dist/services/validation.d.ts.map +1 -0
- package/dist/services/validation.js +104 -0
- package/dist/services/validation.js.map +1 -0
- package/dist/services/windsurf-generator.d.ts +15 -0
- package/dist/services/windsurf-generator.d.ts.map +1 -0
- package/dist/services/windsurf-generator.js +127 -0
- package/dist/services/windsurf-generator.js.map +1 -0
- package/dist/tests/enforcement.test.d.ts +2 -0
- package/dist/tests/enforcement.test.d.ts.map +1 -0
- package/dist/tests/enforcement.test.js +541 -0
- package/dist/tests/enforcement.test.js.map +1 -0
- package/dist/tests/enterprise.test.d.ts +2 -0
- package/dist/tests/enterprise.test.d.ts.map +1 -0
- package/dist/tests/enterprise.test.js +353 -0
- package/dist/tests/enterprise.test.js.map +1 -0
- package/dist/tests/fuzzing.test.d.ts +2 -0
- package/dist/tests/fuzzing.test.d.ts.map +1 -0
- package/dist/tests/fuzzing.test.js +596 -0
- package/dist/tests/fuzzing.test.js.map +1 -0
- package/dist/tests/knowledge.test.d.ts +2 -0
- package/dist/tests/knowledge.test.d.ts.map +1 -0
- package/dist/tests/knowledge.test.js +292 -0
- package/dist/tests/knowledge.test.js.map +1 -0
- package/dist/tests/management.test.d.ts +2 -0
- package/dist/tests/management.test.d.ts.map +1 -0
- package/dist/tests/management.test.js +338 -0
- package/dist/tests/management.test.js.map +1 -0
- package/dist/tests/scaffolding.test.d.ts +2 -0
- package/dist/tests/scaffolding.test.d.ts.map +1 -0
- package/dist/tests/scaffolding.test.js +419 -0
- package/dist/tests/scaffolding.test.js.map +1 -0
- package/dist/tests/test-utils.d.ts +76 -0
- package/dist/tests/test-utils.d.ts.map +1 -0
- package/dist/tests/test-utils.js +171 -0
- package/dist/tests/test-utils.js.map +1 -0
- package/dist/tests/tool-harness.d.ts +18 -0
- package/dist/tests/tool-harness.d.ts.map +1 -0
- package/dist/tests/tool-harness.js +51 -0
- package/dist/tests/tool-harness.js.map +1 -0
- package/dist/tools/enterprise.d.ts +8 -0
- package/dist/tools/enterprise.d.ts.map +1 -0
- package/dist/tools/enterprise.js +571 -0
- package/dist/tools/enterprise.js.map +1 -0
- package/dist/tools/knowledge.d.ts +7 -0
- package/dist/tools/knowledge.d.ts.map +1 -0
- package/dist/tools/knowledge.js +120 -0
- package/dist/tools/knowledge.js.map +1 -0
- package/dist/tools/management.d.ts +10 -0
- package/dist/tools/management.d.ts.map +1 -0
- package/dist/tools/management.js +1541 -0
- package/dist/tools/management.js.map +1 -0
- package/dist/tools/scaffolding.d.ts +8 -0
- package/dist/tools/scaffolding.d.ts.map +1 -0
- package/dist/tools/scaffolding.js +736 -0
- package/dist/tools/scaffolding.js.map +1 -0
- package/dist/types.d.ts +54 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/landing/app/layout.tsx +30 -0
- package/landing/app/page.tsx +944 -0
- package/landing/next-env.d.ts +6 -0
- package/landing/next.config.js +6 -0
- package/landing/package-lock.json +896 -0
- package/landing/package.json +20 -0
- package/landing/tsconfig.json +40 -0
- package/package.json +49 -0
- package/rebar-v2.0.0-platform-spec.md +1567 -0
- package/server.json +20 -0
- package/src/cli.ts +735 -0
- package/src/constants.ts +131 -0
- package/src/index.ts +54 -0
- package/src/schemas/common.ts +22 -0
- package/src/schemas/scaffolding.ts +161 -0
- package/src/services/claudemd-generator.ts +481 -0
- package/src/services/codex-generator.ts +44 -0
- package/src/services/cursor-generator.ts +153 -0
- package/src/services/file-ops.ts +172 -0
- package/src/services/platform-detect.ts +80 -0
- package/src/services/project-analyzer.ts +690 -0
- package/src/services/rules-engine.ts +353 -0
- package/src/services/strictness.ts +202 -0
- package/src/services/template-engine.ts +119 -0
- package/src/services/validation.ts +138 -0
- package/src/services/windsurf-generator.ts +145 -0
- package/src/tests/enforcement.test.ts +794 -0
- package/src/tests/enterprise.test.ts +483 -0
- package/src/tests/fuzzing.test.ts +690 -0
- package/src/tests/knowledge.test.ts +371 -0
- package/src/tests/management.test.ts +451 -0
- package/src/tests/scaffolding.test.ts +575 -0
- package/src/tests/test-utils.ts +206 -0
- package/src/tests/tool-harness.ts +70 -0
- package/src/tools/enterprise.ts +666 -0
- package/src/tools/knowledge.ts +162 -0
- package/src/tools/management.ts +1706 -0
- package/src/tools/scaffolding.ts +909 -0
- package/src/types.ts +93 -0
- package/supabase/.temp/cli-latest +1 -0
- package/supabase/.temp/gotrue-version +1 -0
- package/supabase/.temp/pooler-url +1 -0
- package/supabase/.temp/postgres-version +1 -0
- package/supabase/.temp/project-ref +1 -0
- package/supabase/.temp/rest-version +1 -0
- package/supabase/.temp/storage-migration +1 -0
- package/supabase/.temp/storage-version +1 -0
- package/templates/agents/explore.md +41 -0
- package/templates/agents/plan.md +73 -0
- package/templates/agents/security-auditor.md +77 -0
- package/templates/agents/test-runner.md +60 -0
- package/templates/claudemd/fastapi.md +49 -0
- package/templates/claudemd/monorepo.md +48 -0
- package/templates/claudemd/nextjs.md +52 -0
- package/templates/claudemd/react-spa.md +50 -0
- package/templates/claudemd/springboot.md +50 -0
- package/templates/hooks/danger-blocker.json +11 -0
- package/templates/hooks/format-on-write.json +17 -0
- package/templates/hooks/lint-on-write.json +16 -0
- package/templates/hooks/secret-detector.json +11 -0
- package/templates/skills/code-review.md +68 -0
- package/templates/skills/documentation.md +62 -0
- package/templates/skills/performance-audit.md +80 -0
- package/templates/skills/security-scan.md +66 -0
- package/templates/skills/test-writer.md +56 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1,732 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
**PRODUCT REQUIREMENTS**
|
|
4
|
+
|
|
5
|
+
**DOCUMENT**
|
|
6
|
+
|
|
7
|
+
ccboot-mcp-server
|
|
8
|
+
|
|
9
|
+
*Claude Code Bootstrapper MCP Server*
|
|
10
|
+
|
|
11
|
+
Version 1.0 — March 2026
|
|
12
|
+
|
|
13
|
+
Vaspera Capital
|
|
14
|
+
|
|
15
|
+
*Includes: Claude Code Setup Guide • Architecture • Tool Specifications • CLAUDE.md • Implementation Plan*
|
|
16
|
+
|
|
17
|
+
# **Table of Contents**
|
|
18
|
+
|
|
19
|
+
# **1\. Product Overview**
|
|
20
|
+
|
|
21
|
+
## **1.1 Product Name**
|
|
22
|
+
|
|
23
|
+
ccboot-mcp-server (npm package: @vaspera/ccboot-mcp-server)
|
|
24
|
+
|
|
25
|
+
## **1.2 Problem Statement**
|
|
26
|
+
|
|
27
|
+
Claude Code is the most customizable AI coding tool available, with seven distinct configuration artifact types: CLAUDE.md files, skills, subagents, hooks, slash commands, MCP configurations, and knowledge base documents. However, setting up these artifacts correctly for enterprise-grade development requires deep knowledge of Claude Code internals, MCP protocol conventions, and software engineering best practices. Most teams either skip configuration entirely (getting mediocre results) or spend days manually crafting these files (wasting engineering time).
|
|
28
|
+
|
|
29
|
+
## **1.3 Solution**
|
|
30
|
+
|
|
31
|
+
An MCP server that Claude Code itself connects to, providing tools that generate, validate, and manage the full suite of Claude Code configuration artifacts. When a developer runs /init-project or asks Claude to bootstrap their workspace, the MCP server generates production-ready configurations tailored to their tech stack, team size, and compliance requirements.
|
|
32
|
+
|
|
33
|
+
## **1.4 Target Users**
|
|
34
|
+
|
|
35
|
+
* **Primary:** Engineering leads and staff engineers at companies with 10–200 developers using Claude Code, who need standardized AI coding configurations across their team.
|
|
36
|
+
|
|
37
|
+
* **Secondary:** Individual developers who want enterprise-quality Claude Code setups without spending hours on manual configuration.
|
|
38
|
+
|
|
39
|
+
* **Tertiary:** Regulated industry teams (fintech, healthtech, defense) who need compliance-aware AI coding configurations.
|
|
40
|
+
|
|
41
|
+
# **2\. Claude Code Environment Setup**
|
|
42
|
+
|
|
43
|
+
| Purpose This section provides the exact steps to set up your Claude Code development environment before starting implementation. Follow these steps in order. |
|
|
44
|
+
| :---- |
|
|
45
|
+
|
|
46
|
+
## **2.1 Prerequisites**
|
|
47
|
+
|
|
48
|
+
**Required Accounts**
|
|
49
|
+
|
|
50
|
+
* Claude Pro ($20/month) or Claude Max ($100–$200/month) subscription, OR an Anthropic API key with credits
|
|
51
|
+
|
|
52
|
+
* GitHub account with SSH keys configured
|
|
53
|
+
|
|
54
|
+
* npm account (for publishing the package later)
|
|
55
|
+
|
|
56
|
+
**Required Software**
|
|
57
|
+
|
|
58
|
+
* Node.js 18+ (LTS recommended — download from nodejs.org)
|
|
59
|
+
|
|
60
|
+
* Git for version control
|
|
61
|
+
|
|
62
|
+
* A code editor (VS Code recommended, with Claude Code extension)
|
|
63
|
+
|
|
64
|
+
## **2.2 Install Claude Code**
|
|
65
|
+
|
|
66
|
+
Run the native installer (no Node.js dependency for the CLI itself):
|
|
67
|
+
|
|
68
|
+
\# macOS / Linux
|
|
69
|
+
|
|
70
|
+
curl \-fsSL https://claude.ai/install.sh | sh
|
|
71
|
+
|
|
72
|
+
\# Windows (PowerShell)
|
|
73
|
+
|
|
74
|
+
irm https://claude.ai/install.ps1 | iex
|
|
75
|
+
|
|
76
|
+
\# Alternative: install via npm
|
|
77
|
+
|
|
78
|
+
npm install \-g @anthropic-ai/claude-code
|
|
79
|
+
|
|
80
|
+
Authenticate by running claude in your terminal and following the browser OAuth flow, or set your API key:
|
|
81
|
+
|
|
82
|
+
export ANTHROPIC\_API\_KEY="your-api-key-here"
|
|
83
|
+
|
|
84
|
+
Verify installation:
|
|
85
|
+
|
|
86
|
+
claude \--version
|
|
87
|
+
|
|
88
|
+
claude /doctor
|
|
89
|
+
|
|
90
|
+
## **2.3 Create the Project Repository**
|
|
91
|
+
|
|
92
|
+
mkdir ccboot-mcp-server && cd ccboot-mcp-server
|
|
93
|
+
|
|
94
|
+
git init
|
|
95
|
+
|
|
96
|
+
npm init \-y
|
|
97
|
+
|
|
98
|
+
Install dependencies:
|
|
99
|
+
|
|
100
|
+
npm install @modelcontextprotocol/sdk zod
|
|
101
|
+
|
|
102
|
+
npm install \-D typescript @types/node tsx
|
|
103
|
+
|
|
104
|
+
## **2.4 Create tsconfig.json**
|
|
105
|
+
|
|
106
|
+
{
|
|
107
|
+
|
|
108
|
+
"compilerOptions": {
|
|
109
|
+
|
|
110
|
+
"target": "ES2022",
|
|
111
|
+
|
|
112
|
+
"module": "Node16",
|
|
113
|
+
|
|
114
|
+
"moduleResolution": "Node16",
|
|
115
|
+
|
|
116
|
+
"outDir": "./dist",
|
|
117
|
+
|
|
118
|
+
"rootDir": "./src",
|
|
119
|
+
|
|
120
|
+
"strict": true,
|
|
121
|
+
|
|
122
|
+
"esModuleInterop": true,
|
|
123
|
+
|
|
124
|
+
"skipLibCheck": true,
|
|
125
|
+
|
|
126
|
+
"forceConsistentCasingInFileNames": true,
|
|
127
|
+
|
|
128
|
+
"resolveJsonModule": true,
|
|
129
|
+
|
|
130
|
+
"declaration": true,
|
|
131
|
+
|
|
132
|
+
"declarationMap": true,
|
|
133
|
+
|
|
134
|
+
"sourceMap": true
|
|
135
|
+
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
"include": \["src/\*\*/\*"\],
|
|
139
|
+
|
|
140
|
+
"exclude": \["node\_modules", "dist"\]
|
|
141
|
+
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
## **2.5 Configure package.json Scripts**
|
|
145
|
+
|
|
146
|
+
Update your package.json with these fields:
|
|
147
|
+
|
|
148
|
+
"type": "module",
|
|
149
|
+
|
|
150
|
+
"main": "dist/index.js",
|
|
151
|
+
|
|
152
|
+
"bin": { "ccboot-mcp-server": "dist/index.js" },
|
|
153
|
+
|
|
154
|
+
"scripts": {
|
|
155
|
+
|
|
156
|
+
"build": "tsc",
|
|
157
|
+
|
|
158
|
+
"dev": "tsx watch src/index.ts",
|
|
159
|
+
|
|
160
|
+
"start": "node dist/index.js",
|
|
161
|
+
|
|
162
|
+
"lint": "tsc \--noEmit",
|
|
163
|
+
|
|
164
|
+
"test": "node \--test dist/\*\*/\*.test.js"
|
|
165
|
+
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
## **2.6 Create the Project CLAUDE.md**
|
|
169
|
+
|
|
170
|
+
| Critical Step This is the most important configuration for your Claude Code development session. Place this file at the project root. The full CLAUDE.md content is provided in Section 7 of this document. |
|
|
171
|
+
| :---- |
|
|
172
|
+
|
|
173
|
+
## **2.7 Create Project Directory Structure**
|
|
174
|
+
|
|
175
|
+
ccboot-mcp-server/
|
|
176
|
+
|
|
177
|
+
├── CLAUDE.md
|
|
178
|
+
|
|
179
|
+
├── package.json
|
|
180
|
+
|
|
181
|
+
├── tsconfig.json
|
|
182
|
+
|
|
183
|
+
├── .claudeignore
|
|
184
|
+
|
|
185
|
+
├── .mcp.json
|
|
186
|
+
|
|
187
|
+
├── .claude/
|
|
188
|
+
|
|
189
|
+
│ ├── settings.json
|
|
190
|
+
|
|
191
|
+
│ ├── agents/
|
|
192
|
+
|
|
193
|
+
│ │ ├── template-writer.md
|
|
194
|
+
|
|
195
|
+
│ │ └── test-runner.md
|
|
196
|
+
|
|
197
|
+
│ └── skills/
|
|
198
|
+
|
|
199
|
+
│ └── mcp-dev/
|
|
200
|
+
|
|
201
|
+
│ └── SKILL.md
|
|
202
|
+
|
|
203
|
+
├── src/
|
|
204
|
+
|
|
205
|
+
│ ├── index.ts
|
|
206
|
+
|
|
207
|
+
│ ├── types.ts
|
|
208
|
+
|
|
209
|
+
│ ├── constants.ts
|
|
210
|
+
|
|
211
|
+
│ ├── tools/
|
|
212
|
+
|
|
213
|
+
│ │ ├── scaffolding.ts
|
|
214
|
+
|
|
215
|
+
│ │ ├── knowledge.ts
|
|
216
|
+
|
|
217
|
+
│ │ ├── management.ts
|
|
218
|
+
|
|
219
|
+
│ │ └── enterprise.ts
|
|
220
|
+
|
|
221
|
+
│ ├── templates/
|
|
222
|
+
|
|
223
|
+
│ │ ├── claudemd/
|
|
224
|
+
|
|
225
|
+
│ │ ├── skills/
|
|
226
|
+
|
|
227
|
+
│ │ ├── agents/
|
|
228
|
+
|
|
229
|
+
│ │ ├── hooks/
|
|
230
|
+
|
|
231
|
+
│ │ └── knowledge/
|
|
232
|
+
|
|
233
|
+
│ ├── services/
|
|
234
|
+
|
|
235
|
+
│ │ ├── file-ops.ts
|
|
236
|
+
|
|
237
|
+
│ │ ├── template-engine.ts
|
|
238
|
+
|
|
239
|
+
│ │ └── validation.ts
|
|
240
|
+
|
|
241
|
+
│ └── schemas/
|
|
242
|
+
|
|
243
|
+
│ ├── scaffolding.ts
|
|
244
|
+
|
|
245
|
+
│ └── common.ts
|
|
246
|
+
|
|
247
|
+
├── templates/ (raw template files)
|
|
248
|
+
|
|
249
|
+
│ ├── claudemd/
|
|
250
|
+
|
|
251
|
+
│ ├── skills/
|
|
252
|
+
|
|
253
|
+
│ ├── agents/
|
|
254
|
+
|
|
255
|
+
│ ├── hooks/
|
|
256
|
+
|
|
257
|
+
│ └── knowledge/
|
|
258
|
+
|
|
259
|
+
└── dist/ (compiled output)
|
|
260
|
+
|
|
261
|
+
## **2.8 Configure Claude Code Permissions**
|
|
262
|
+
|
|
263
|
+
Create .claude/settings.json to pre-approve safe development commands:
|
|
264
|
+
|
|
265
|
+
{
|
|
266
|
+
|
|
267
|
+
"permissions": {
|
|
268
|
+
|
|
269
|
+
"allow": \[
|
|
270
|
+
|
|
271
|
+
"Bash(npm run build)", "Bash(npm run lint)",
|
|
272
|
+
|
|
273
|
+
"Bash(npm run test \*)", "Bash(npm run dev)",
|
|
274
|
+
|
|
275
|
+
"Bash(npx tsc \--noEmit)",
|
|
276
|
+
|
|
277
|
+
"Bash(git status)", "Bash(git diff \*)",
|
|
278
|
+
|
|
279
|
+
"Bash(git log \*)", "Bash(git add \*)",
|
|
280
|
+
|
|
281
|
+
"Bash(git commit \*)"
|
|
282
|
+
|
|
283
|
+
\],
|
|
284
|
+
|
|
285
|
+
"deny": \[
|
|
286
|
+
|
|
287
|
+
"Bash(rm \-rf \*)",
|
|
288
|
+
|
|
289
|
+
"Read(./.env)", "Read(./.env.\*)"
|
|
290
|
+
|
|
291
|
+
\]
|
|
292
|
+
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
## **2.9 Create .claudeignore**
|
|
298
|
+
|
|
299
|
+
Exclude irrelevant files from Claude Code context:
|
|
300
|
+
|
|
301
|
+
node\_modules/
|
|
302
|
+
|
|
303
|
+
dist/
|
|
304
|
+
|
|
305
|
+
.git/
|
|
306
|
+
|
|
307
|
+
\*.lock
|
|
308
|
+
|
|
309
|
+
coverage/
|
|
310
|
+
|
|
311
|
+
## **2.10 Register the MCP Server for Local Testing**
|
|
312
|
+
|
|
313
|
+
During development, register your server locally so Claude Code can test it:
|
|
314
|
+
|
|
315
|
+
claude mcp add \--scope local ccboot \-- npx tsx src/index.ts
|
|
316
|
+
|
|
317
|
+
Verify with:
|
|
318
|
+
|
|
319
|
+
claude mcp list
|
|
320
|
+
|
|
321
|
+
/mcp \# inside Claude Code session
|
|
322
|
+
|
|
323
|
+
# **3\. Functional Requirements**
|
|
324
|
+
|
|
325
|
+
## **3.1 Tool Inventory**
|
|
326
|
+
|
|
327
|
+
The MCP server must expose the following tools. All tool names use the ccboot\_ prefix and snake\_case convention per MCP best practices.
|
|
328
|
+
|
|
329
|
+
**Tier 1: Core Scaffolding (MVP)**
|
|
330
|
+
|
|
331
|
+
| Tool Name | Description | Key Inputs | Annotations |
|
|
332
|
+
| :---- | :---- | :---- | :---- |
|
|
333
|
+
| **ccboot\_init\_project** | Full project bootstrap. Generates CLAUDE.md, .claude/ directory, skills, hooks, .mcp.json, .claudeignore, and settings.json tailored to the detected or specified tech stack. | project\_path (string), tech\_stack (enum\[\]), team\_size (number), compliance (enum\[\]) | readOnly: false, destructive: false, idempotent: false |
|
|
334
|
+
| **ccboot\_generate\_claudemd** | Creates or updates a CLAUDE.md file. Analyzes existing codebase for framework detection, build commands, and test patterns. Merges with existing CLAUDE.md if present. | project\_path, scope (root|subdir), tech\_stack?, merge\_existing (bool) | readOnly: false, destructive: false, idempotent: true |
|
|
335
|
+
| **ccboot\_create\_skill** | Scaffolds a new skill directory with SKILL.md, optional scripts/, references/, and assets/ folders. Sets correct YAML frontmatter. | name, description, invocation (user|auto|both), context (inline|fork), agent\_type?, allowed\_tools\[\] | readOnly: false, destructive: false, idempotent: false |
|
|
336
|
+
| **ccboot\_create\_agent** | Scaffolds a subagent definition in .claude/agents/. Configures tools, model preferences, and system prompt. | name, description, role (explore|plan|general|custom), allowed\_tools\[\], model\_hint? | readOnly: false, destructive: false, idempotent: false |
|
|
337
|
+
| **ccboot\_create\_hook** | Generates a hook configuration for settings.json. Supports all 17 Claude Code lifecycle events. | event (enum), matcher?, command, exit\_behavior (block|notify), description | readOnly: false, destructive: false, idempotent: true |
|
|
338
|
+
| **ccboot\_create\_command** | Creates a slash command/prompt template as a skill with user invocation. | name, description, prompt\_body, arguments\[\] | readOnly: false, destructive: false, idempotent: false |
|
|
339
|
+
|
|
340
|
+
**Tier 2: Knowledge Base and Management**
|
|
341
|
+
|
|
342
|
+
| Tool Name | Description | Key Inputs | Annotations |
|
|
343
|
+
| :---- | :---- | :---- | :---- |
|
|
344
|
+
| **ccboot\_create\_knowledge** | Adds a reference document to .claude/docs/ or docs/ directory. Generates properly formatted markdown with frontmatter. | title, category (adr|runbook|api|schema|style), content, tags\[\] | readOnly: false, destructive: false, idempotent: false |
|
|
345
|
+
| **ccboot\_create\_adr** | Generates an Architecture Decision Record following the standard ADR template (context, decision, consequences). | title, status (proposed|accepted|deprecated), context, decision, consequences | readOnly: false, destructive: false, idempotent: false |
|
|
346
|
+
| **ccboot\_list\_artifacts** | Lists all Claude Code configuration artifacts in the current project with type, location, and status. | project\_path, type\_filter? (skill|agent|hook|command|knowledge|all) | readOnly: true, destructive: false, idempotent: true |
|
|
347
|
+
| **ccboot\_validate\_config** | Validates all Claude Code configuration files. Checks YAML frontmatter, JSON structure, file references, and naming conventions. | project\_path, fix\_mode (report|auto\_fix) | readOnly: varies, destructive: false, idempotent: true |
|
|
348
|
+
| **ccboot\_audit\_context** | Analyzes total context window budget consumption across all skills and CLAUDE.md files. Warns if exceeding the 2% skill budget. | project\_path | readOnly: true, destructive: false, idempotent: true |
|
|
349
|
+
|
|
350
|
+
**Tier 3: Enterprise and Compliance**
|
|
351
|
+
|
|
352
|
+
| Tool Name | Description | Key Inputs | Annotations |
|
|
353
|
+
| :---- | :---- | :---- | :---- |
|
|
354
|
+
| **ccboot\_apply\_compliance** | Applies a compliance template pack (HIPAA, SOX, PCI-DSS, SOC2) to the project. Adds appropriate hooks, skills, and CLAUDE.md sections. | project\_path, standard (enum), scope (full|hooks\_only|skills\_only) | readOnly: false, destructive: false, idempotent: true |
|
|
355
|
+
| **ccboot\_create\_ci\_workflow** | Generates a GitHub Actions workflow for Claude Code PR review using @claude mentions. | repo\_path, review\_focus (security|performance|style|all), branch\_pattern | readOnly: false, destructive: false, idempotent: true |
|
|
356
|
+
| **ccboot\_create\_security\_hook** | Generates safety hooks that block dangerous commands (force push, rm \-rf, env exposure, secret leaks). | project\_path, strictness (standard|strict|paranoid) | readOnly: false, destructive: false, idempotent: true |
|
|
357
|
+
| **ccboot\_generate\_mcp\_config** | Creates a .mcp.json file with recommended MCP server configurations for the project stack. | project\_path, services\[\] (github|sentry|postgres|slack|etc), scope (project|user) | readOnly: false, destructive: false, idempotent: true |
|
|
358
|
+
|
|
359
|
+
# **4\. Template Specifications**
|
|
360
|
+
|
|
361
|
+
## **4.1 Template Engine Requirements**
|
|
362
|
+
|
|
363
|
+
* Templates are stored as raw markdown/YAML/JSON files in the templates/ directory
|
|
364
|
+
|
|
365
|
+
* The template engine performs variable substitution using {{variable}} syntax
|
|
366
|
+
|
|
367
|
+
* Conditional sections use {{\#if condition}}...{{/if}} blocks
|
|
368
|
+
|
|
369
|
+
* Templates must be composable — a CLAUDE.md template can include sections from sub-templates
|
|
370
|
+
|
|
371
|
+
* All templates must pass validation against the relevant schema (YAML frontmatter for skills, JSON for hooks)
|
|
372
|
+
|
|
373
|
+
## **4.2 Required Template Packs (MVP)**
|
|
374
|
+
|
|
375
|
+
**CLAUDE.md Templates**
|
|
376
|
+
|
|
377
|
+
* Generic full-stack project (Next.js \+ Prisma \+ Tailwind)
|
|
378
|
+
|
|
379
|
+
* Python/FastAPI backend
|
|
380
|
+
|
|
381
|
+
* Spring Boot / Java enterprise
|
|
382
|
+
|
|
383
|
+
* React SPA with REST or GraphQL
|
|
384
|
+
|
|
385
|
+
* Monorepo with subdirectory CLAUDE.md files
|
|
386
|
+
|
|
387
|
+
**Skill Templates**
|
|
388
|
+
|
|
389
|
+
* Code review skill (auto-invoked on PR-related tasks)
|
|
390
|
+
|
|
391
|
+
* Test writer skill (generates tests for changed files)
|
|
392
|
+
|
|
393
|
+
* Documentation skill (generates/updates docs from code changes)
|
|
394
|
+
|
|
395
|
+
* Security scan skill (runs OWASP checks on code changes)
|
|
396
|
+
|
|
397
|
+
* Performance audit skill (identifies N+1 queries, memory leaks)
|
|
398
|
+
|
|
399
|
+
**Agent Templates**
|
|
400
|
+
|
|
401
|
+
* Explore agent (read-only codebase investigation)
|
|
402
|
+
|
|
403
|
+
* Plan agent (architecture planning without code changes)
|
|
404
|
+
|
|
405
|
+
* Test runner agent (executes and analyzes test suites)
|
|
406
|
+
|
|
407
|
+
* Security auditor agent (scans for vulnerabilities)
|
|
408
|
+
|
|
409
|
+
**Hook Templates**
|
|
410
|
+
|
|
411
|
+
* Format-on-write (Prettier, Black, gofmt based on file extension)
|
|
412
|
+
|
|
413
|
+
* Lint-on-write (ESLint, Ruff, Clippy based on file extension)
|
|
414
|
+
|
|
415
|
+
* Dangerous command blocker (rm \-rf, git push \--force, DROP TABLE)
|
|
416
|
+
|
|
417
|
+
* Secret leak detector (blocks commits with API keys or passwords)
|
|
418
|
+
|
|
419
|
+
# **5\. Non-Functional Requirements**
|
|
420
|
+
|
|
421
|
+
## **5.1 Performance**
|
|
422
|
+
|
|
423
|
+
* ccboot\_init\_project must complete in under 5 seconds for a standard project
|
|
424
|
+
|
|
425
|
+
* Individual tool calls (create\_skill, create\_hook) must complete in under 1 second
|
|
426
|
+
|
|
427
|
+
* Template rendering must not block — use async file I/O throughout
|
|
428
|
+
|
|
429
|
+
## **5.2 Reliability**
|
|
430
|
+
|
|
431
|
+
* All file writes must be atomic — write to temp file, then rename
|
|
432
|
+
|
|
433
|
+
* Never overwrite existing files without explicit merge\_existing or force flag
|
|
434
|
+
|
|
435
|
+
* All tool errors must return actionable messages with suggested fixes
|
|
436
|
+
|
|
437
|
+
## **5.3 Security**
|
|
438
|
+
|
|
439
|
+
* Never read or expose .env files, API keys, or secrets
|
|
440
|
+
|
|
441
|
+
* Sanitize all file paths to prevent directory traversal
|
|
442
|
+
|
|
443
|
+
* Validate all inputs with Zod schemas using .strict() enforcement
|
|
444
|
+
|
|
445
|
+
* Log to stderr only (required for stdio MCP transport)
|
|
446
|
+
|
|
447
|
+
## **5.4 Compatibility**
|
|
448
|
+
|
|
449
|
+
* Must work with Claude Code on macOS, Linux, and Windows (via Git Bash or WSL)
|
|
450
|
+
|
|
451
|
+
* Must support both stdio (local) and streamable HTTP (remote) transports
|
|
452
|
+
|
|
453
|
+
* Generated artifacts must be valid for Claude Code v1.0+
|
|
454
|
+
|
|
455
|
+
* Generated skills must follow the Agent Skills open standard (agentskills.io)
|
|
456
|
+
|
|
457
|
+
## **5.5 Distribution**
|
|
458
|
+
|
|
459
|
+
* Published as an npm package: @vaspera/ccboot-mcp-server
|
|
460
|
+
|
|
461
|
+
* Installable via: claude mcp add ccboot \-- npx @vaspera/ccboot-mcp-server
|
|
462
|
+
|
|
463
|
+
* Must include proper bin entry in package.json
|
|
464
|
+
|
|
465
|
+
* Must include \#\!/usr/bin/env node shebang in compiled entry point
|
|
466
|
+
|
|
467
|
+
# **6\. Technical Architecture**
|
|
468
|
+
|
|
469
|
+
## **6.1 Stack**
|
|
470
|
+
|
|
471
|
+
* **Language:** TypeScript (strict mode)
|
|
472
|
+
|
|
473
|
+
* **Runtime:** Node.js 18+
|
|
474
|
+
|
|
475
|
+
* **MCP SDK:** @modelcontextprotocol/sdk (latest)
|
|
476
|
+
|
|
477
|
+
* **Validation:** Zod with .strict() schemas
|
|
478
|
+
|
|
479
|
+
* **Transport:** stdio (primary) \+ streamable HTTP (optional)
|
|
480
|
+
|
|
481
|
+
* **Template Engine:** Custom lightweight engine (no Handlebars dependency to minimize install size)
|
|
482
|
+
|
|
483
|
+
## **6.2 Architecture Patterns**
|
|
484
|
+
|
|
485
|
+
**Server Initialization (src/index.ts)**
|
|
486
|
+
|
|
487
|
+
The entry point creates the McpServer instance, registers all tools from the tools/ directory, and connects to the transport. Each tool module exports a function that takes the server instance and registers its tools.
|
|
488
|
+
|
|
489
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
490
|
+
|
|
491
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
492
|
+
|
|
493
|
+
import { registerScaffoldingTools } from "./tools/scaffolding.js";
|
|
494
|
+
|
|
495
|
+
import { registerKnowledgeTools } from "./tools/knowledge.js";
|
|
496
|
+
|
|
497
|
+
// ... register all tool modules
|
|
498
|
+
|
|
499
|
+
**Tool Registration Pattern**
|
|
500
|
+
|
|
501
|
+
Each tool uses server.registerTool() with Zod input schemas, comprehensive descriptions, and proper annotations. Never use deprecated APIs like server.tool() or manual handler registration.
|
|
502
|
+
|
|
503
|
+
**Template Rendering Pipeline**
|
|
504
|
+
|
|
505
|
+
1. Load raw template from templates/ directory
|
|
506
|
+
|
|
507
|
+
2. Merge user-provided variables with detected defaults (tech stack, project name)
|
|
508
|
+
|
|
509
|
+
3. Resolve conditional sections (compliance blocks, framework-specific sections)
|
|
510
|
+
|
|
511
|
+
4. Validate output against schema (YAML parse for skills, JSON.parse for hooks)
|
|
512
|
+
|
|
513
|
+
5. Write to target file with atomic file operations
|
|
514
|
+
|
|
515
|
+
**Error Handling**
|
|
516
|
+
|
|
517
|
+
All tools follow the MCP error pattern: return { isError: true, content: \[...\] } for recoverable errors. Use specific, actionable error messages that guide Claude toward the correct usage.
|
|
518
|
+
|
|
519
|
+
# **7\. CLAUDE.md for This Project**
|
|
520
|
+
|
|
521
|
+
| Copy This File Create this file at the root of your ccboot-mcp-server repository as CLAUDE.md before starting your Claude Code session. This is the most critical step for implementation quality. |
|
|
522
|
+
| :---- |
|
|
523
|
+
|
|
524
|
+
Contents of CLAUDE.md:
|
|
525
|
+
|
|
526
|
+
\# ccboot-mcp-server
|
|
527
|
+
|
|
528
|
+
\#\# Project Overview
|
|
529
|
+
|
|
530
|
+
An MCP server that generates, validates, and manages Claude Code
|
|
531
|
+
|
|
532
|
+
configuration artifacts (CLAUDE.md, skills, agents, hooks, commands,
|
|
533
|
+
|
|
534
|
+
MCP configs, knowledge docs) for enterprise-grade development.
|
|
535
|
+
|
|
536
|
+
\#\# Tech Stack
|
|
537
|
+
|
|
538
|
+
\- TypeScript (strict mode) targeting ES2022
|
|
539
|
+
|
|
540
|
+
\- Node.js 18+ runtime
|
|
541
|
+
|
|
542
|
+
\- @modelcontextprotocol/sdk for MCP server
|
|
543
|
+
|
|
544
|
+
\- Zod for input validation
|
|
545
|
+
|
|
546
|
+
\- stdio transport (primary), streamable HTTP (secondary)
|
|
547
|
+
|
|
548
|
+
\#\# Architecture Rules
|
|
549
|
+
|
|
550
|
+
\- ALWAYS use server.registerTool() (never deprecated server.tool())
|
|
551
|
+
|
|
552
|
+
\- All tool names use ccboot\_ prefix with snake\_case
|
|
553
|
+
|
|
554
|
+
\- All Zod schemas use .strict() enforcement
|
|
555
|
+
|
|
556
|
+
\- No use of \`any\` type \- use \`unknown\` or proper types
|
|
557
|
+
|
|
558
|
+
\- All async functions have explicit Promise\<T\> return types
|
|
559
|
+
|
|
560
|
+
\- Log to stderr ONLY (stdout is reserved for MCP protocol)
|
|
561
|
+
|
|
562
|
+
\- Never use console.log() \- use console.error() for debug output
|
|
563
|
+
|
|
564
|
+
\- All file writes are atomic (write to temp, then rename)
|
|
565
|
+
|
|
566
|
+
\- Never overwrite files without checking merge\_existing flag
|
|
567
|
+
|
|
568
|
+
\#\# Tool Annotations
|
|
569
|
+
|
|
570
|
+
Every tool MUST include annotations:
|
|
571
|
+
|
|
572
|
+
\- readOnlyHint: true for read operations, false for writes
|
|
573
|
+
|
|
574
|
+
\- destructiveHint: false (we never delete without explicit request)
|
|
575
|
+
|
|
576
|
+
\- idempotentHint: true if re-running produces same result
|
|
577
|
+
|
|
578
|
+
\- openWorldHint: false (we only touch local filesystem)
|
|
579
|
+
|
|
580
|
+
\#\# File Structure
|
|
581
|
+
|
|
582
|
+
\- src/index.ts \- Entry point, server init, transport
|
|
583
|
+
|
|
584
|
+
\- src/types.ts \- Shared TypeScript interfaces
|
|
585
|
+
|
|
586
|
+
\- src/constants.ts \- Enums, defaults, limits
|
|
587
|
+
|
|
588
|
+
\- src/tools/\*.ts \- Tool implementations (one file per domain)
|
|
589
|
+
|
|
590
|
+
\- src/services/\*.ts \- Shared utilities (file ops, templates, validation)
|
|
591
|
+
|
|
592
|
+
\- src/schemas/\*.ts \- Zod schemas
|
|
593
|
+
|
|
594
|
+
\- templates/\*\*/\*.md \- Raw template files
|
|
595
|
+
|
|
596
|
+
\#\# Build & Test
|
|
597
|
+
|
|
598
|
+
\- Build: npm run build (must pass with zero errors)
|
|
599
|
+
|
|
600
|
+
\- Lint: npx tsc \--noEmit
|
|
601
|
+
|
|
602
|
+
\- Test: npm run test
|
|
603
|
+
|
|
604
|
+
\- Dev: npx tsx src/index.ts (for local MCP testing)
|
|
605
|
+
|
|
606
|
+
\#\# Template Conventions
|
|
607
|
+
|
|
608
|
+
\- Variables: {{variable\_name}} (double curly braces)
|
|
609
|
+
|
|
610
|
+
\- Conditionals: {{\#if condition}}...{{/if}}
|
|
611
|
+
|
|
612
|
+
\- Templates are plain markdown with substitution markers
|
|
613
|
+
|
|
614
|
+
\- All generated YAML must parse cleanly
|
|
615
|
+
|
|
616
|
+
\- All generated JSON must be valid
|
|
617
|
+
|
|
618
|
+
\- Skills MUST have name (max 64 chars) and description (max 200 chars)
|
|
619
|
+
|
|
620
|
+
\#\# Code Quality
|
|
621
|
+
|
|
622
|
+
\- Extract common functionality into src/services/
|
|
623
|
+
|
|
624
|
+
\- DRY: if logic appears twice, extract to a function
|
|
625
|
+
|
|
626
|
+
\- Every tool description includes: purpose, args, return schema, examples
|
|
627
|
+
|
|
628
|
+
\- Error messages suggest next steps (not just what failed)
|
|
629
|
+
|
|
630
|
+
\- No hardcoded paths \- use path.join() and respect project\_path input
|
|
631
|
+
|
|
632
|
+
# **8\. Implementation Plan**
|
|
633
|
+
|
|
634
|
+
## **8.1 Phase 1: Foundation (Days 1–3)**
|
|
635
|
+
|
|
636
|
+
1. **Project scaffolding:** Create repo, install deps, configure tsconfig, package.json, and CLAUDE.md.
|
|
637
|
+
|
|
638
|
+
2. **Server entry point:** Implement src/index.ts with McpServer init, transport selection, and tool module registration pattern.
|
|
639
|
+
|
|
640
|
+
3. **Shared services:** Build src/services/file-ops.ts (atomic writes, directory creation, file existence checks), template-engine.ts (variable substitution, conditionals), and validation.ts (YAML parse, JSON parse, frontmatter check).
|
|
641
|
+
|
|
642
|
+
4. **Types and schemas:** Define all TypeScript interfaces in types.ts, all Zod schemas in schemas/, and all constants/enums in constants.ts.
|
|
643
|
+
|
|
644
|
+
## **8.2 Phase 2: Core Tools (Days 4–8)**
|
|
645
|
+
|
|
646
|
+
1. **ccboot\_init\_project:** The flagship tool. Detects tech stack from existing files (package.json, Cargo.toml, etc.), generates all artifacts, creates directory structure.
|
|
647
|
+
|
|
648
|
+
2. **ccboot\_generate\_claudemd:** Template-based CLAUDE.md generation with merge support for existing files.
|
|
649
|
+
|
|
650
|
+
3. **ccboot\_create\_skill:** Skill scaffolding with correct YAML frontmatter, directory structure, and optional script stubs.
|
|
651
|
+
|
|
652
|
+
4. **ccboot\_create\_agent:** Subagent creation with tool permissions and role-based defaults.
|
|
653
|
+
|
|
654
|
+
5. **ccboot\_create\_hook:** Hook configuration generation supporting all 17 lifecycle events.
|
|
655
|
+
|
|
656
|
+
6. **ccboot\_create\_command:** Slash command creation as a skill with user invocation mode.
|
|
657
|
+
|
|
658
|
+
## **8.3 Phase 3: Templates (Days 9–12)**
|
|
659
|
+
|
|
660
|
+
6. Create 5 CLAUDE.md templates (Next.js, Python/FastAPI, Spring Boot, React SPA, monorepo)
|
|
661
|
+
|
|
662
|
+
7. Create 5 skill templates (code review, test writer, docs, security, performance)
|
|
663
|
+
|
|
664
|
+
8. Create 4 agent templates (explore, plan, test runner, security auditor)
|
|
665
|
+
|
|
666
|
+
9. Create 4 hook templates (format-on-write, lint-on-write, danger blocker, secret detector)
|
|
667
|
+
|
|
668
|
+
## **8.4 Phase 4: Management Tools (Days 13–15)**
|
|
669
|
+
|
|
670
|
+
10. Implement ccboot\_list\_artifacts, ccboot\_validate\_config, ccboot\_audit\_context
|
|
671
|
+
|
|
672
|
+
11. Implement ccboot\_create\_knowledge and ccboot\_create\_adr
|
|
673
|
+
|
|
674
|
+
## **8.5 Phase 5: Enterprise \+ Testing (Days 16–20)**
|
|
675
|
+
|
|
676
|
+
12. Implement ccboot\_apply\_compliance with HIPAA and SOC2 packs
|
|
677
|
+
|
|
678
|
+
13. Implement ccboot\_create\_security\_hook and ccboot\_create\_ci\_workflow
|
|
679
|
+
|
|
680
|
+
14. Implement ccboot\_generate\_mcp\_config
|
|
681
|
+
|
|
682
|
+
15. Write integration tests for all tools
|
|
683
|
+
|
|
684
|
+
16. Build and validate: npm run build must pass cleanly
|
|
685
|
+
|
|
686
|
+
17. Test with MCP Inspector: npx @modelcontextprotocol/inspector
|
|
687
|
+
|
|
688
|
+
# **9\. Acceptance Criteria**
|
|
689
|
+
|
|
690
|
+
## **9.1 MVP Acceptance (Tiers 1–2)**
|
|
691
|
+
|
|
692
|
+
* All 11 Tier 1 and Tier 2 tools are registered and functional
|
|
693
|
+
|
|
694
|
+
* npm run build completes with zero errors
|
|
695
|
+
|
|
696
|
+
* Server starts via stdio transport and responds to tool/list
|
|
697
|
+
|
|
698
|
+
* ccboot\_init\_project generates a valid, complete Claude Code project setup
|
|
699
|
+
|
|
700
|
+
* All generated CLAUDE.md files parse as valid markdown
|
|
701
|
+
|
|
702
|
+
* All generated SKILL.md files have valid YAML frontmatter with name and description
|
|
703
|
+
|
|
704
|
+
* All generated hook configs are valid JSON matching Claude Code settings.json schema
|
|
705
|
+
|
|
706
|
+
* All generated agent definitions are valid markdown with correct placement
|
|
707
|
+
|
|
708
|
+
* ccboot\_validate\_config catches at least: missing name in skill frontmatter, invalid JSON in hooks, CLAUDE.md exceeding 500 lines
|
|
709
|
+
|
|
710
|
+
* ccboot\_audit\_context correctly calculates token estimates and warns at 2% budget
|
|
711
|
+
|
|
712
|
+
## **9.2 Enterprise Acceptance (Tier 3\)**
|
|
713
|
+
|
|
714
|
+
* ccboot\_apply\_compliance generates HIPAA pack with: audit logging hook, PHI handling skill, data classification CLAUDE.md section
|
|
715
|
+
|
|
716
|
+
* ccboot\_create\_security\_hook blocks: rm \-rf, git push \--force, env variable exposure, secret patterns in commits
|
|
717
|
+
|
|
718
|
+
* ccboot\_create\_ci\_workflow produces a working GitHub Actions YAML
|
|
719
|
+
|
|
720
|
+
## **9.3 Distribution Acceptance**
|
|
721
|
+
|
|
722
|
+
* Package published to npm as @vaspera/ccboot-mcp-server
|
|
723
|
+
|
|
724
|
+
* Installable via: claude mcp add ccboot \-- npx @vaspera/ccboot-mcp-server
|
|
725
|
+
|
|
726
|
+
* README.md with installation instructions, tool documentation, and examples
|
|
727
|
+
|
|
728
|
+
* MCP Inspector test passes for all tools
|
|
729
|
+
|
|
730
|
+
*End of Requirements Document*
|
|
731
|
+
|
|
732
|
+
*ccboot-mcp-server v1.0 — Vaspera Capital — March 2026*
|