claude-code-toolkit 1.0.10 → 1.0.12
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/README.md +16 -71
- package/dist/commands/template.js +132 -94
- package/dist/commands/template.js.map +1 -1
- package/package.json +1 -1
- package/templates/.claude/skills/claude-code-hooks-master/SKILL.md +1 -1
- package/templates/.claude/skills/mobile-ui-ux-master/SKILL.md +1 -1
- package/templates/.claude/skills/persistent-memory-system/SKILL.md +229 -0
- package/templates/.claude/skills/persistent-memory-system/memory-templates.md +152 -0
- package/templates/.claude/skills/professional-documentation-writer/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -34,97 +34,50 @@ Transform any project into a professional, AI-powered development workspace with
|
|
|
34
34
|
|
|
35
35
|
## 🚀 Quick Start
|
|
36
36
|
|
|
37
|
-
### Option 1: Install
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Clone or navigate to the toolkit directory
|
|
41
|
-
cd claude-code-toolkit
|
|
42
|
-
|
|
43
|
-
# Install dependencies
|
|
44
|
-
npm install
|
|
45
|
-
|
|
46
|
-
# Build the TypeScript
|
|
47
|
-
npm run build
|
|
48
|
-
|
|
49
|
-
# Link globally for local development
|
|
50
|
-
npm link
|
|
51
|
-
|
|
52
|
-
# Now you can use claude-toolkit anywhere
|
|
53
|
-
claude-toolkit --version
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Option 2: Install from npm (When Published)
|
|
37
|
+
### Option 1: Install in Existing Project
|
|
57
38
|
|
|
58
39
|
```bash
|
|
59
40
|
# Install globally
|
|
60
41
|
npm install -g claude-code-toolkit
|
|
61
42
|
|
|
62
|
-
#
|
|
63
|
-
claude-toolkit --version
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### Option 3: Install in Existing Project
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# Navigate to your project
|
|
70
|
-
cd your-project
|
|
71
|
-
|
|
72
|
-
# Install toolkit
|
|
43
|
+
# Install in current project
|
|
73
44
|
claude-toolkit install
|
|
74
45
|
|
|
75
|
-
# Set up hooks
|
|
46
|
+
# Set up hooks
|
|
76
47
|
.claude/hooks/hook-manager.sh setup
|
|
77
48
|
.claude/hooks/hook-manager.sh install
|
|
78
49
|
```
|
|
79
50
|
|
|
80
|
-
### Option
|
|
51
|
+
### Option 2: Create New Project with Toolkit
|
|
81
52
|
|
|
82
53
|
```bash
|
|
54
|
+
# Install globally
|
|
55
|
+
npm install -g claude-code-toolkit
|
|
56
|
+
|
|
83
57
|
# Create new React project
|
|
84
58
|
claude-toolkit template my-awesome-app --type react
|
|
85
59
|
|
|
86
60
|
# Create new Node.js API
|
|
87
61
|
claude-toolkit template my-api --type node
|
|
88
62
|
|
|
89
|
-
# Create new Vue.js app
|
|
90
|
-
claude-toolkit template my-vue-app --type vue
|
|
91
|
-
|
|
92
63
|
# Create new Python service
|
|
93
64
|
claude-toolkit template my-service --type python
|
|
94
65
|
```
|
|
95
66
|
|
|
96
|
-
### Option
|
|
97
|
-
|
|
98
|
-
If you prefer manual setup, copy the `templates/.claude` directory to your project root, along with `templates/AGENTS.md` and `templates/CLAUDE.md`.
|
|
67
|
+
### Option 3: Manual Setup (Copy & Paste)
|
|
99
68
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
To publish this package to npm:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
# Login to npm (one-time)
|
|
106
|
-
npm login
|
|
107
|
-
|
|
108
|
-
# Build the package
|
|
109
|
-
npm run build
|
|
110
|
-
|
|
111
|
-
# Publish to npm
|
|
112
|
-
npm publish
|
|
113
|
-
|
|
114
|
-
# Or publish with public access (for scoped packages)
|
|
115
|
-
npm publish --access public
|
|
116
|
-
```
|
|
69
|
+
If you prefer manual setup, copy the `.claude` directory from this repository to any project root.
|
|
117
70
|
|
|
118
71
|
## 📋 Detailed Setup Guide
|
|
119
72
|
|
|
120
73
|
### Step 1: Install the Toolkit
|
|
121
74
|
|
|
122
75
|
```bash
|
|
123
|
-
#
|
|
124
|
-
cd claude-code-toolkit && npm install && npm run build && npm link
|
|
125
|
-
|
|
126
|
-
# Or from npm (when published)
|
|
76
|
+
# Install globally (recommended)
|
|
127
77
|
npm install -g claude-code-toolkit
|
|
78
|
+
|
|
79
|
+
# Or install locally in a project
|
|
80
|
+
npm install claude-code-toolkit --save-dev
|
|
128
81
|
```
|
|
129
82
|
|
|
130
83
|
### Step 2: Install in Your Project
|
|
@@ -331,7 +284,7 @@ The hooks system integrates seamlessly with existing CI/CD:
|
|
|
331
284
|
## 🎨 Customization
|
|
332
285
|
|
|
333
286
|
### Agent Configuration
|
|
334
|
-
Edit
|
|
287
|
+
Edit `AGENTS.md` in your project root to customize agent behaviors:
|
|
335
288
|
|
|
336
289
|
```markdown
|
|
337
290
|
## custom-agent
|
|
@@ -463,14 +416,6 @@ MIT License - See [LICENSE](LICENSE) for details.
|
|
|
463
416
|
|
|
464
417
|
**🎉 Ready to supercharge your development workflow?**
|
|
465
418
|
|
|
466
|
-
|
|
467
|
-
```bash
|
|
468
|
-
cd claude-code-toolkit && npm install && npm run build && npm link && claude-toolkit install
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
**From npm (when published):**
|
|
472
|
-
```bash
|
|
473
|
-
npm install -g claude-code-toolkit && claude-toolkit install
|
|
474
|
-
```
|
|
419
|
+
Start with: `npm install -g claude-code-toolkit && claude-toolkit install`
|
|
475
420
|
|
|
476
|
-
Then experience AI-enhanced development like never before!
|
|
421
|
+
Then experience AI-enhanced development like never before! 🚀
|
|
@@ -102,39 +102,39 @@ async function createBasicStructure(projectPath, type) {
|
|
|
102
102
|
'typescript': '^5.0.0'
|
|
103
103
|
};
|
|
104
104
|
// Create basic React files
|
|
105
|
-
await fs.writeFile(path.join(projectPath, 'index.html'), `<!DOCTYPE html>
|
|
106
|
-
<html lang="en">
|
|
107
|
-
<head>
|
|
108
|
-
<meta charset="UTF-8" />
|
|
109
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
110
|
-
<title>${packageJson.name}</title>
|
|
111
|
-
</head>
|
|
112
|
-
<body>
|
|
113
|
-
<div id="root"></div>
|
|
114
|
-
<script type="module" src="/src/main.tsx"></script>
|
|
115
|
-
</body>
|
|
105
|
+
await fs.writeFile(path.join(projectPath, 'index.html'), `<!DOCTYPE html>
|
|
106
|
+
<html lang="en">
|
|
107
|
+
<head>
|
|
108
|
+
<meta charset="UTF-8" />
|
|
109
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
110
|
+
<title>${packageJson.name}</title>
|
|
111
|
+
</head>
|
|
112
|
+
<body>
|
|
113
|
+
<div id="root"></div>
|
|
114
|
+
<script type="module" src="/src/main.tsx"></script>
|
|
115
|
+
</body>
|
|
116
116
|
</html>`);
|
|
117
117
|
await fs.ensureDir(path.join(projectPath, 'src'));
|
|
118
|
-
await fs.writeFile(path.join(projectPath, 'src/main.tsx'), `import React from 'react'
|
|
119
|
-
import ReactDOM from 'react-dom/client'
|
|
120
|
-
import App from './App.tsx'
|
|
121
|
-
|
|
122
|
-
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
123
|
-
<React.StrictMode>
|
|
124
|
-
<App />
|
|
125
|
-
</React.StrictMode>,
|
|
118
|
+
await fs.writeFile(path.join(projectPath, 'src/main.tsx'), `import React from 'react'
|
|
119
|
+
import ReactDOM from 'react-dom/client'
|
|
120
|
+
import App from './App.tsx'
|
|
121
|
+
|
|
122
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
123
|
+
<React.StrictMode>
|
|
124
|
+
<App />
|
|
125
|
+
</React.StrictMode>,
|
|
126
126
|
)`);
|
|
127
|
-
await fs.writeFile(path.join(projectPath, 'src/App.tsx'), `import React from 'react'
|
|
128
|
-
|
|
129
|
-
function App() {
|
|
130
|
-
return (
|
|
131
|
-
<div>
|
|
132
|
-
<h1>Welcome to ${packageJson.name}</h1>
|
|
133
|
-
<p>Built with Claude Code toolkit</p>
|
|
134
|
-
</div>
|
|
135
|
-
)
|
|
136
|
-
}
|
|
137
|
-
|
|
127
|
+
await fs.writeFile(path.join(projectPath, 'src/App.tsx'), `import React from 'react'
|
|
128
|
+
|
|
129
|
+
function App() {
|
|
130
|
+
return (
|
|
131
|
+
<div>
|
|
132
|
+
<h1>Welcome to ${packageJson.name}</h1>
|
|
133
|
+
<p>Built with Claude Code toolkit</p>
|
|
134
|
+
</div>
|
|
135
|
+
)
|
|
136
|
+
}
|
|
137
|
+
|
|
138
138
|
export default App`);
|
|
139
139
|
break;
|
|
140
140
|
case 'vue':
|
|
@@ -166,16 +166,16 @@ export default App`);
|
|
|
166
166
|
'jest': '^29.0.0'
|
|
167
167
|
};
|
|
168
168
|
await fs.ensureDir(path.join(projectPath, 'src'));
|
|
169
|
-
await fs.writeFile(path.join(projectPath, 'src/index.js'), `const express = require('express');
|
|
170
|
-
const app = express();
|
|
171
|
-
const port = process.env.PORT || 3000;
|
|
172
|
-
|
|
173
|
-
app.get('/', (req, res) => {
|
|
174
|
-
res.json({ message: 'Hello from ${packageJson.name}!' });
|
|
175
|
-
});
|
|
176
|
-
|
|
177
|
-
app.listen(port, () => {
|
|
178
|
-
console.log(\`Server running on port \${port}\`);
|
|
169
|
+
await fs.writeFile(path.join(projectPath, 'src/index.js'), `const express = require('express');
|
|
170
|
+
const app = express();
|
|
171
|
+
const port = process.env.PORT || 3000;
|
|
172
|
+
|
|
173
|
+
app.get('/', (req, res) => {
|
|
174
|
+
res.json({ message: 'Hello from ${packageJson.name}!' });
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
app.listen(port, () => {
|
|
178
|
+
console.log(\`Server running on port \${port}\`);
|
|
179
179
|
});`);
|
|
180
180
|
break;
|
|
181
181
|
case 'python':
|
|
@@ -185,19 +185,19 @@ app.listen(port, () => {
|
|
|
185
185
|
test: 'pytest'
|
|
186
186
|
};
|
|
187
187
|
await fs.ensureDir(path.join(projectPath, 'src'));
|
|
188
|
-
await fs.writeFile(path.join(projectPath, 'src/main.py'), `from fastapi import FastAPI
|
|
189
|
-
|
|
190
|
-
app = FastAPI(title="${packageJson.name}")
|
|
191
|
-
|
|
192
|
-
@app.get("/")
|
|
193
|
-
async def root():
|
|
194
|
-
return {"message": "Hello from ${packageJson.name}!", "toolkit": "Claude Code"}
|
|
195
|
-
|
|
196
|
-
@app.get("/health")
|
|
197
|
-
async def health():
|
|
188
|
+
await fs.writeFile(path.join(projectPath, 'src/main.py'), `from fastapi import FastAPI
|
|
189
|
+
|
|
190
|
+
app = FastAPI(title="${packageJson.name}")
|
|
191
|
+
|
|
192
|
+
@app.get("/")
|
|
193
|
+
async def root():
|
|
194
|
+
return {"message": "Hello from ${packageJson.name}!", "toolkit": "Claude Code"}
|
|
195
|
+
|
|
196
|
+
@app.get("/health")
|
|
197
|
+
async def health():
|
|
198
198
|
return {"status": "healthy"}`);
|
|
199
|
-
await fs.writeFile(path.join(projectPath, 'requirements.txt'), `fastapi==0.104.0
|
|
200
|
-
uvicorn[standard]==0.24.0
|
|
199
|
+
await fs.writeFile(path.join(projectPath, 'requirements.txt'), `fastapi==0.104.0
|
|
200
|
+
uvicorn[standard]==0.24.0
|
|
201
201
|
pytest==7.4.0`);
|
|
202
202
|
break;
|
|
203
203
|
default:
|
|
@@ -206,48 +206,48 @@ pytest==7.4.0`);
|
|
|
206
206
|
// Write package.json
|
|
207
207
|
await fs.writeJson(path.join(projectPath, 'package.json'), packageJson, { spaces: 2 });
|
|
208
208
|
// Create README
|
|
209
|
-
const readme = `# ${packageJson.name}
|
|
210
|
-
|
|
211
|
-
Created with Claude Code toolkit.
|
|
212
|
-
|
|
213
|
-
## Getting Started
|
|
214
|
-
|
|
215
|
-
\`\`\`bash
|
|
216
|
-
npm install
|
|
217
|
-
npm run dev
|
|
218
|
-
\`\`\`
|
|
219
|
-
|
|
220
|
-
## Claude Code Features
|
|
221
|
-
|
|
222
|
-
This project includes:
|
|
223
|
-
- 🤖 Specialized AI agents for development tasks
|
|
224
|
-
- 🛠️ Reusable skills for common workflows
|
|
225
|
-
- 🔄 Automated hooks for quality assurance
|
|
226
|
-
- 📚 Persistent memory system
|
|
227
|
-
- 🎨 Professional UI/UX patterns
|
|
228
|
-
|
|
229
|
-
## Next Steps
|
|
230
|
-
|
|
231
|
-
1. Upload skills to [Claude.ai settings](https://claude.ai/settings)
|
|
232
|
-
2. Set up hooks: \`.claude/hooks/hook-manager.sh setup\`
|
|
233
|
-
3. Install git hooks: \`.claude/hooks/hook-manager.sh install\`
|
|
234
|
-
4. Start developing with AI-enhanced workflows!
|
|
235
|
-
|
|
236
|
-
## Available Agents
|
|
237
|
-
|
|
238
|
-
- **code-reviewer**: Automated code quality checks
|
|
239
|
-
- **doc-writer**: Professional documentation generation
|
|
240
|
-
- **test-generator**: Comprehensive test suite creation
|
|
241
|
-
- **debugger**: Systematic debugging assistance
|
|
242
|
-
- **researcher**: Technical research and insights
|
|
243
|
-
- **mobile-ui-specialist**: Professional mobile UI/UX
|
|
244
|
-
|
|
245
|
-
## Available Skills
|
|
246
|
-
|
|
247
|
-
- **professional-documentation-writer**: Creates comprehensive docs
|
|
248
|
-
- **mobile-ui-ux-master**: Eliminates layout and consistency issues
|
|
249
|
-
- **claude-code-hooks-master**: Automation and workflow enhancement
|
|
250
|
-
- **persistent-memory-system**: Project knowledge management
|
|
209
|
+
const readme = `# ${packageJson.name}
|
|
210
|
+
|
|
211
|
+
Created with Claude Code toolkit.
|
|
212
|
+
|
|
213
|
+
## Getting Started
|
|
214
|
+
|
|
215
|
+
\`\`\`bash
|
|
216
|
+
npm install
|
|
217
|
+
npm run dev
|
|
218
|
+
\`\`\`
|
|
219
|
+
|
|
220
|
+
## Claude Code Features
|
|
221
|
+
|
|
222
|
+
This project includes:
|
|
223
|
+
- 🤖 Specialized AI agents for development tasks
|
|
224
|
+
- 🛠️ Reusable skills for common workflows
|
|
225
|
+
- 🔄 Automated hooks for quality assurance
|
|
226
|
+
- 📚 Persistent memory system
|
|
227
|
+
- 🎨 Professional UI/UX patterns
|
|
228
|
+
|
|
229
|
+
## Next Steps
|
|
230
|
+
|
|
231
|
+
1. Upload skills to [Claude.ai settings](https://claude.ai/settings)
|
|
232
|
+
2. Set up hooks: \`.claude/hooks/hook-manager.sh setup\`
|
|
233
|
+
3. Install git hooks: \`.claude/hooks/hook-manager.sh install\`
|
|
234
|
+
4. Start developing with AI-enhanced workflows!
|
|
235
|
+
|
|
236
|
+
## Available Agents
|
|
237
|
+
|
|
238
|
+
- **code-reviewer**: Automated code quality checks
|
|
239
|
+
- **doc-writer**: Professional documentation generation
|
|
240
|
+
- **test-generator**: Comprehensive test suite creation
|
|
241
|
+
- **debugger**: Systematic debugging assistance
|
|
242
|
+
- **researcher**: Technical research and insights
|
|
243
|
+
- **mobile-ui-specialist**: Professional mobile UI/UX
|
|
244
|
+
|
|
245
|
+
## Available Skills
|
|
246
|
+
|
|
247
|
+
- **professional-documentation-writer**: Creates comprehensive docs
|
|
248
|
+
- **mobile-ui-ux-master**: Eliminates layout and consistency issues
|
|
249
|
+
- **claude-code-hooks-master**: Automation and workflow enhancement
|
|
250
|
+
- **persistent-memory-system**: Project knowledge management
|
|
251
251
|
`;
|
|
252
252
|
await fs.writeFile(path.join(projectPath, 'README.md'), readme);
|
|
253
253
|
}
|
|
@@ -262,6 +262,44 @@ async function installClaudeToolkit(projectPath, toolkitRoot) {
|
|
|
262
262
|
if (await fs.pathExists(claudeSource)) {
|
|
263
263
|
await fs.copy(claudeSource, claudeDest);
|
|
264
264
|
console.log('✅ Claude Code toolkit integrated');
|
|
265
|
+
// Create ZIP files for each skill
|
|
266
|
+
const skillsDir = path.join(claudeDest, 'skills');
|
|
267
|
+
if (await fs.pathExists(skillsDir)) {
|
|
268
|
+
const skills = await fs.readdir(skillsDir);
|
|
269
|
+
for (const skill of skills) {
|
|
270
|
+
const skillPath = path.join(skillsDir, skill);
|
|
271
|
+
if ((await fs.stat(skillPath)).isDirectory()) {
|
|
272
|
+
const zipName = `${skill}.zip`;
|
|
273
|
+
const zipPath = path.join(projectPath, zipName);
|
|
274
|
+
try {
|
|
275
|
+
// Create ZIP with contents at root (not nested in folder)
|
|
276
|
+
const psCommand = `
|
|
277
|
+
$skillPath = '${skillPath.replace(/\\/g, '/')}';
|
|
278
|
+
$zipPath = '${zipPath.replace(/\\/g, '/')}';
|
|
279
|
+
if (Test-Path $zipPath) { Remove-Item $zipPath -Force };
|
|
280
|
+
$tempDir = Join-Path $env:TEMP ('skill_' + [guid]::NewGuid().ToString());
|
|
281
|
+
New-Item -ItemType Directory -Path $tempDir -Force | Out-Null;
|
|
282
|
+
Copy-Item -Path "$skillPath/*" -Destination $tempDir -Recurse;
|
|
283
|
+
Compress-Archive -Path "$tempDir/*" -DestinationPath $zipPath -Force;
|
|
284
|
+
Remove-Item -Path $tempDir -Recurse -Force;
|
|
285
|
+
`.replace(/\n/g, ' ');
|
|
286
|
+
(0, child_process_1.execSync)(`powershell -Command "${psCommand}"`, { stdio: 'pipe' });
|
|
287
|
+
console.log(`📦 ${skill} packaged as ${zipName}`);
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
// Fallback: try tar if available
|
|
291
|
+
try {
|
|
292
|
+
const tarCmd = `cd "${skillPath}" && tar -acf "${zipPath}" *`;
|
|
293
|
+
(0, child_process_1.execSync)(tarCmd, { stdio: 'pipe', shell: 'bash' });
|
|
294
|
+
console.log(`📦 ${skill} packaged as ${zipName}`);
|
|
295
|
+
}
|
|
296
|
+
catch {
|
|
297
|
+
console.log(`⚠️ Could not create ZIP for ${skill} - create manually`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
265
303
|
}
|
|
266
304
|
else {
|
|
267
305
|
console.log('⚠️ Claude configuration templates not found at:', claudeSource);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/commands/template.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: memory-system
|
|
3
|
+
description: Intelligent project knowledge management with context tracking, decision logging, pattern recognition, and learning accumulation across development sessions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Claude Code Skill: Persistent Memory System
|
|
7
|
+
|
|
8
|
+
## When to Use This Skill
|
|
9
|
+
Use this skill when you need to:
|
|
10
|
+
- Track project decisions and their rationale
|
|
11
|
+
- Maintain context across development sessions
|
|
12
|
+
- Log learnings and insights from development work
|
|
13
|
+
- Record user preferences and working styles
|
|
14
|
+
- Identify and document common patterns and solutions
|
|
15
|
+
- Ensure continuity in long-term projects
|
|
16
|
+
|
|
17
|
+
## Core Concepts: Memory Architecture
|
|
18
|
+
|
|
19
|
+
### What Is the Persistent Memory System?
|
|
20
|
+
The memory system is a structured knowledge base that maintains project context, tracks decisions, accumulates learnings, and preserves important information across development sessions. Unlike conversation history that gets lost, the memory system persists in files that are always available.
|
|
21
|
+
|
|
22
|
+
### Memory Directory Structure
|
|
23
|
+
```
|
|
24
|
+
.claude/memory/
|
|
25
|
+
├── context.md # Current project state and active focus
|
|
26
|
+
├── decisions.md # Architectural decisions with rationale
|
|
27
|
+
├── learnings.md # Development insights and discoveries
|
|
28
|
+
├── patterns.md # Common solutions and code patterns
|
|
29
|
+
└── preferences.md # User preferences and working styles
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Memory File Specifications
|
|
33
|
+
|
|
34
|
+
### 1. Context File (`context.md`)
|
|
35
|
+
**Purpose**: Maintains current project state and active focus areas
|
|
36
|
+
|
|
37
|
+
**Structure**:
|
|
38
|
+
```markdown
|
|
39
|
+
# Current Project Context
|
|
40
|
+
|
|
41
|
+
## Project Overview
|
|
42
|
+
**Name**: [Project name]
|
|
43
|
+
**Type**: [Project type - web app, API, mobile, etc.]
|
|
44
|
+
**Status**: [Current phase - setup, development, testing, production]
|
|
45
|
+
|
|
46
|
+
## Active Components
|
|
47
|
+
- [List of active features/skills/agents]
|
|
48
|
+
|
|
49
|
+
## Current Focus
|
|
50
|
+
- [What is currently being worked on]
|
|
51
|
+
- [Immediate priorities]
|
|
52
|
+
|
|
53
|
+
## Next Steps
|
|
54
|
+
1. [Prioritized action items]
|
|
55
|
+
2. [Upcoming tasks]
|
|
56
|
+
|
|
57
|
+
## Recent Changes
|
|
58
|
+
- [Date]: [Change description]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**When to Update**:
|
|
62
|
+
- Project phase changes
|
|
63
|
+
- New features or components added
|
|
64
|
+
- Focus area shifts
|
|
65
|
+
- After significant milestones
|
|
66
|
+
|
|
67
|
+
### 2. Decisions File (`decisions.md`)
|
|
68
|
+
**Purpose**: Logs architectural and technical decisions with full context
|
|
69
|
+
|
|
70
|
+
**Structure**:
|
|
71
|
+
```markdown
|
|
72
|
+
# Major Project Decisions
|
|
73
|
+
|
|
74
|
+
## [Date] - [Decision Title]
|
|
75
|
+
**Context**: [What prompted this decision]
|
|
76
|
+
**Decision**: [What was decided]
|
|
77
|
+
**Rationale**: [Why this choice was made]
|
|
78
|
+
**Alternatives Considered**: [Other options that were evaluated]
|
|
79
|
+
**Expected Impact**: [Anticipated effects of this decision]
|
|
80
|
+
**Status**: [Active/Superseded/Under Review]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**When to Update**:
|
|
84
|
+
- Technology stack choices
|
|
85
|
+
- Architecture patterns selected
|
|
86
|
+
- Library/framework decisions
|
|
87
|
+
- Breaking changes introduced
|
|
88
|
+
- API design decisions
|
|
89
|
+
- Database schema changes
|
|
90
|
+
|
|
91
|
+
### 3. Learnings File (`learnings.md`)
|
|
92
|
+
**Purpose**: Captures development insights and discoveries
|
|
93
|
+
|
|
94
|
+
**Structure**:
|
|
95
|
+
```markdown
|
|
96
|
+
# Key Learnings and Insights
|
|
97
|
+
|
|
98
|
+
## [Date] - [Learning Title]
|
|
99
|
+
**Insight**: [What was learned]
|
|
100
|
+
**Context**: [How this was discovered]
|
|
101
|
+
**Application**: [How to apply this learning]
|
|
102
|
+
**Evidence**: [Supporting information or references]
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**When to Update**:
|
|
106
|
+
- Bug root causes discovered
|
|
107
|
+
- Performance optimizations found
|
|
108
|
+
- Best practices identified
|
|
109
|
+
- Gotchas and edge cases encountered
|
|
110
|
+
- Successful patterns recognized
|
|
111
|
+
|
|
112
|
+
### 4. Patterns File (`patterns.md`)
|
|
113
|
+
**Purpose**: Documents reusable code patterns and solutions
|
|
114
|
+
|
|
115
|
+
**Structure**:
|
|
116
|
+
```markdown
|
|
117
|
+
# Common Patterns and Solutions
|
|
118
|
+
|
|
119
|
+
## [Pattern Name]
|
|
120
|
+
**Use Case**: [When to use this pattern]
|
|
121
|
+
**Implementation**:
|
|
122
|
+
```[language]
|
|
123
|
+
[Code example]
|
|
124
|
+
```
|
|
125
|
+
**Notes**: [Important considerations]
|
|
126
|
+
**Related Patterns**: [Links to related patterns]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**When to Update**:
|
|
130
|
+
- Reusable solution created
|
|
131
|
+
- Error handling approach established
|
|
132
|
+
- API response format defined
|
|
133
|
+
- Component structure standardized
|
|
134
|
+
- Testing approach documented
|
|
135
|
+
|
|
136
|
+
### 5. Preferences File (`preferences.md`)
|
|
137
|
+
**Purpose**: Records user preferences and working styles
|
|
138
|
+
|
|
139
|
+
**Structure**:
|
|
140
|
+
```markdown
|
|
141
|
+
# User Preferences and Working Styles
|
|
142
|
+
|
|
143
|
+
## Development Environment
|
|
144
|
+
**IDE**: [Preferred IDE/editor]
|
|
145
|
+
**Theme**: [UI preferences]
|
|
146
|
+
**Tools**: [Preferred tools and utilities]
|
|
147
|
+
|
|
148
|
+
## Code Style Preferences
|
|
149
|
+
**Language**: [Preferred languages]
|
|
150
|
+
**Architecture**: [Preferred patterns]
|
|
151
|
+
**Naming**: [Naming conventions]
|
|
152
|
+
**Documentation**: [Documentation style]
|
|
153
|
+
|
|
154
|
+
## Communication Style
|
|
155
|
+
**Feedback**: [How user prefers feedback]
|
|
156
|
+
**Documentation**: [Preferred documentation tone]
|
|
157
|
+
**Decision Making**: [How decisions should be presented]
|
|
158
|
+
|
|
159
|
+
## Tool Preferences
|
|
160
|
+
**Version Control**: [Git preferences]
|
|
161
|
+
**Testing**: [Testing framework preferences]
|
|
162
|
+
**Linting**: [Code quality tools]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**When to Update**:
|
|
166
|
+
- User expresses preferences
|
|
167
|
+
- Working patterns emerge
|
|
168
|
+
- Tool choices made
|
|
169
|
+
- Communication style preferences noted
|
|
170
|
+
|
|
171
|
+
## Memory Operations
|
|
172
|
+
|
|
173
|
+
### Reading Memory
|
|
174
|
+
Before making decisions or providing recommendations:
|
|
175
|
+
1. Check `context.md` for current project state
|
|
176
|
+
2. Review `decisions.md` for relevant past decisions
|
|
177
|
+
3. Consult `learnings.md` for applicable insights
|
|
178
|
+
4. Reference `patterns.md` for established solutions
|
|
179
|
+
5. Consider `preferences.md` for user preferences
|
|
180
|
+
|
|
181
|
+
### Writing to Memory
|
|
182
|
+
When updating memory files:
|
|
183
|
+
1. Use consistent date format (YYYY-MM-DD)
|
|
184
|
+
2. Provide complete context for each entry
|
|
185
|
+
3. Link related entries across files
|
|
186
|
+
4. Keep entries concise but comprehensive
|
|
187
|
+
5. Include actionable information
|
|
188
|
+
|
|
189
|
+
### Memory Integration with Hooks
|
|
190
|
+
Post-commit hooks can automatically update memory:
|
|
191
|
+
```bash
|
|
192
|
+
# Example: Auto-log decisions from commit messages
|
|
193
|
+
if echo "$COMMIT_MSG" | grep -i "decision\|architecture"; then
|
|
194
|
+
echo "## $(date) - $COMMIT_MSG" >> .claude/memory/decisions.md
|
|
195
|
+
fi
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Best Practices
|
|
199
|
+
|
|
200
|
+
### Memory Hygiene
|
|
201
|
+
- Review memory files periodically for relevance
|
|
202
|
+
- Archive outdated decisions (mark as superseded)
|
|
203
|
+
- Keep context.md current with project state
|
|
204
|
+
- Prune learnings that no longer apply
|
|
205
|
+
|
|
206
|
+
### Cross-referencing
|
|
207
|
+
- Reference decision IDs in code comments
|
|
208
|
+
- Link patterns to decisions that created them
|
|
209
|
+
- Connect learnings to specific implementations
|
|
210
|
+
|
|
211
|
+
### Team Collaboration
|
|
212
|
+
- Memory files should be committed to version control
|
|
213
|
+
- Team members can add to shared learnings
|
|
214
|
+
- Decisions provide onboarding context for new members
|
|
215
|
+
|
|
216
|
+
## Input Requirements
|
|
217
|
+
- Project context and current state
|
|
218
|
+
- Decisions being made with rationale
|
|
219
|
+
- Insights and learnings discovered
|
|
220
|
+
- User preferences as they emerge
|
|
221
|
+
- Patterns and solutions developed
|
|
222
|
+
|
|
223
|
+
## Output Format
|
|
224
|
+
Return memory updates in clean markdown format with:
|
|
225
|
+
- Consistent date formatting
|
|
226
|
+
- Clear section headers
|
|
227
|
+
- Complete context for each entry
|
|
228
|
+
- Links to related information
|
|
229
|
+
- Actionable recommendations
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Memory File Templates
|
|
2
|
+
|
|
3
|
+
## Quick Reference Templates for Memory System Files
|
|
4
|
+
|
|
5
|
+
### Context Entry Template
|
|
6
|
+
```markdown
|
|
7
|
+
## Project Overview
|
|
8
|
+
**Name**: [PROJECT_NAME]
|
|
9
|
+
**Type**: [web app | API | mobile app | library | CLI tool]
|
|
10
|
+
**Status**: [setup | development | testing | staging | production]
|
|
11
|
+
**Started**: [YYYY-MM-DD]
|
|
12
|
+
|
|
13
|
+
## Active Components
|
|
14
|
+
- [ ] Component 1
|
|
15
|
+
- [ ] Component 2
|
|
16
|
+
|
|
17
|
+
## Current Focus
|
|
18
|
+
- Primary: [Main focus area]
|
|
19
|
+
- Secondary: [Supporting work]
|
|
20
|
+
|
|
21
|
+
## Blockers
|
|
22
|
+
- [Any current blockers]
|
|
23
|
+
|
|
24
|
+
## Next Steps
|
|
25
|
+
1. [Priority 1]
|
|
26
|
+
2. [Priority 2]
|
|
27
|
+
3. [Priority 3]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Decision Entry Template
|
|
31
|
+
```markdown
|
|
32
|
+
## [YYYY-MM-DD] - [Decision Title]
|
|
33
|
+
|
|
34
|
+
**Context**:
|
|
35
|
+
[What situation prompted this decision? What problem are we solving?]
|
|
36
|
+
|
|
37
|
+
**Decision**:
|
|
38
|
+
[What was decided? Be specific and actionable.]
|
|
39
|
+
|
|
40
|
+
**Rationale**:
|
|
41
|
+
[Why this choice over alternatives? What factors influenced the decision?]
|
|
42
|
+
|
|
43
|
+
**Alternatives Considered**:
|
|
44
|
+
1. [Alternative 1] - [Why rejected]
|
|
45
|
+
2. [Alternative 2] - [Why rejected]
|
|
46
|
+
|
|
47
|
+
**Expected Impact**:
|
|
48
|
+
- [Impact 1]
|
|
49
|
+
- [Impact 2]
|
|
50
|
+
|
|
51
|
+
**Review Date**: [When to revisit this decision]
|
|
52
|
+
**Status**: [Active | Superseded | Under Review]
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Learning Entry Template
|
|
56
|
+
```markdown
|
|
57
|
+
## [YYYY-MM-DD] - [Learning Title]
|
|
58
|
+
|
|
59
|
+
**Insight**:
|
|
60
|
+
[One-sentence summary of what was learned]
|
|
61
|
+
|
|
62
|
+
**Context**:
|
|
63
|
+
[How was this discovered? What were you working on?]
|
|
64
|
+
|
|
65
|
+
**Details**:
|
|
66
|
+
[Deeper explanation of the learning]
|
|
67
|
+
|
|
68
|
+
**Application**:
|
|
69
|
+
[How should this be applied going forward?]
|
|
70
|
+
|
|
71
|
+
**Evidence**:
|
|
72
|
+
[Links, references, or examples that support this]
|
|
73
|
+
|
|
74
|
+
**Tags**: [tag1, tag2, tag3]
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Pattern Entry Template
|
|
78
|
+
```markdown
|
|
79
|
+
## [Pattern Name]
|
|
80
|
+
|
|
81
|
+
**Category**: [Error Handling | Data Fetching | State Management | Testing | etc.]
|
|
82
|
+
|
|
83
|
+
**Use Case**:
|
|
84
|
+
[When should this pattern be used?]
|
|
85
|
+
|
|
86
|
+
**Problem**:
|
|
87
|
+
[What problem does this solve?]
|
|
88
|
+
|
|
89
|
+
**Solution**:
|
|
90
|
+
```[language]
|
|
91
|
+
// Code implementation
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Example Usage**:
|
|
95
|
+
```[language]
|
|
96
|
+
// Real-world example
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Pros**:
|
|
100
|
+
- [Advantage 1]
|
|
101
|
+
- [Advantage 2]
|
|
102
|
+
|
|
103
|
+
**Cons**:
|
|
104
|
+
- [Tradeoff 1]
|
|
105
|
+
- [Tradeoff 2]
|
|
106
|
+
|
|
107
|
+
**Related Patterns**:
|
|
108
|
+
- [Link to related pattern 1]
|
|
109
|
+
- [Link to related pattern 2]
|
|
110
|
+
|
|
111
|
+
**References**:
|
|
112
|
+
- [External resource or documentation]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Preference Entry Template
|
|
116
|
+
```markdown
|
|
117
|
+
## [Category] Preferences
|
|
118
|
+
|
|
119
|
+
### [Subcategory]
|
|
120
|
+
**Preference**: [What is preferred]
|
|
121
|
+
**Reason**: [Why this preference exists]
|
|
122
|
+
**Exceptions**: [When to deviate from this preference]
|
|
123
|
+
|
|
124
|
+
### Examples
|
|
125
|
+
- Preferred: [Example of preferred approach]
|
|
126
|
+
- Avoid: [Example of what to avoid]
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Memory Update Checklist
|
|
130
|
+
|
|
131
|
+
### After Major Decisions
|
|
132
|
+
- [ ] Add entry to decisions.md
|
|
133
|
+
- [ ] Update context.md if project direction changed
|
|
134
|
+
- [ ] Check if patterns.md needs new pattern
|
|
135
|
+
- [ ] Note any learnings discovered
|
|
136
|
+
|
|
137
|
+
### After Bug Fixes
|
|
138
|
+
- [ ] Add root cause to learnings.md
|
|
139
|
+
- [ ] Document fix pattern in patterns.md if reusable
|
|
140
|
+
- [ ] Update context.md with current focus
|
|
141
|
+
|
|
142
|
+
### After Feature Completion
|
|
143
|
+
- [ ] Update context.md with new components
|
|
144
|
+
- [ ] Document any new patterns discovered
|
|
145
|
+
- [ ] Log architectural decisions made
|
|
146
|
+
- [ ] Capture learnings from implementation
|
|
147
|
+
|
|
148
|
+
### Weekly Review
|
|
149
|
+
- [ ] Is context.md accurate?
|
|
150
|
+
- [ ] Are there decisions that should be reviewed?
|
|
151
|
+
- [ ] Any learnings to add from recent work?
|
|
152
|
+
- [ ] New patterns worth documenting?
|