@codeharbor/agent-playbook 0.1.0 → 0.1.1
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/package.json +5 -2
- package/skills/api-designer/README.md +36 -0
- package/skills/api-designer/SKILL.md +232 -0
- package/skills/api-designer/references/graphql-patterns.md +12 -0
- package/skills/api-designer/references/rest-patterns.md +17 -0
- package/skills/api-designer/scripts/generate_api.py +87 -0
- package/skills/api-designer/scripts/validate_api.py +48 -0
- package/skills/api-documenter/README.md +41 -0
- package/skills/api-documenter/SKILL.md +209 -0
- package/skills/api-documenter/references/examples/README.md +3 -0
- package/skills/api-documenter/references/examples/openapi-example.yaml +10 -0
- package/skills/api-documenter/references/openapi-template.yaml +5 -0
- package/skills/api-documenter/scripts/generate_openapi.py +84 -0
- package/skills/api-documenter/scripts/validate_openapi.py +45 -0
- package/skills/architecting-solutions/README.md +22 -0
- package/skills/architecting-solutions/SKILL.md +459 -0
- package/skills/auto-trigger/README.md +23 -0
- package/skills/auto-trigger/SKILL.md +183 -0
- package/skills/code-reviewer/README.md +59 -0
- package/skills/code-reviewer/SKILL.md +220 -0
- package/skills/code-reviewer/references/checklist.md +80 -0
- package/skills/code-reviewer/references/patterns.md +226 -0
- package/skills/code-reviewer/references/security.md +88 -0
- package/skills/code-reviewer/scripts/review_checklist.py +191 -0
- package/skills/commit-helper/README.md +58 -0
- package/skills/commit-helper/SKILL.md +159 -0
- package/skills/commit-helper/references/conventional-commits.md +68 -0
- package/skills/commit-helper/references/examples.md +125 -0
- package/skills/commit-helper/references/scopes.md +49 -0
- package/skills/commit-helper/scripts/validate_commit.py +70 -0
- package/skills/create-pr/README.md +182 -0
- package/skills/create-pr/SKILL.md +340 -0
- package/skills/debugger/README.md +53 -0
- package/skills/debugger/SKILL.md +239 -0
- package/skills/debugger/references/checklist.md +7 -0
- package/skills/debugger/references/errors.md +6 -0
- package/skills/debugger/references/patterns.md +5 -0
- package/skills/debugger/scripts/debug_report.py +77 -0
- package/skills/deployment-engineer/README.md +40 -0
- package/skills/deployment-engineer/SKILL.md +242 -0
- package/skills/deployment-engineer/references/kubernetes.md +23 -0
- package/skills/deployment-engineer/references/monitoring.md +14 -0
- package/skills/deployment-engineer/references/pipelines.md +12 -0
- package/skills/deployment-engineer/scripts/generate_deploy.py +72 -0
- package/skills/deployment-engineer/scripts/validate_deploy.py +46 -0
- package/skills/documentation-engineer/README.md +41 -0
- package/skills/documentation-engineer/SKILL.md +164 -0
- package/skills/documentation-engineer/references/api-template.md +22 -0
- package/skills/documentation-engineer/references/readme-template.md +25 -0
- package/skills/documentation-engineer/references/style-guide.md +13 -0
- package/skills/documentation-engineer/scripts/generate_docs.py +68 -0
- package/skills/documentation-engineer/scripts/validate_docs.py +46 -0
- package/skills/figma-designer/README.md +222 -0
- package/skills/figma-designer/SKILL.md +407 -0
- package/skills/figma-designer/references/example-output.md +86 -0
- package/skills/performance-engineer/README.md +42 -0
- package/skills/performance-engineer/SKILL.md +236 -0
- package/skills/performance-engineer/references/checklist.md +6 -0
- package/skills/performance-engineer/references/monitoring.md +5 -0
- package/skills/performance-engineer/references/optimization.md +7 -0
- package/skills/performance-engineer/scripts/perf_report.py +64 -0
- package/skills/performance-engineer/scripts/profile.py +63 -0
- package/skills/planning-with-files/README.md +27 -0
- package/skills/planning-with-files/SKILL.md +103 -0
- package/skills/prd-implementation-precheck/README.md +97 -0
- package/skills/prd-implementation-precheck/SKILL.md +112 -0
- package/skills/prd-planner/README.md +102 -0
- package/skills/prd-planner/SKILL.md +449 -0
- package/skills/prd-planner/references/edge-case-analysis.md +111 -0
- package/skills/qa-expert/README.md +37 -0
- package/skills/qa-expert/SKILL.md +225 -0
- package/skills/qa-expert/references/gates.md +11 -0
- package/skills/qa-expert/references/metrics.md +6 -0
- package/skills/qa-expert/references/strategy.md +11 -0
- package/skills/qa-expert/scripts/coverage_analysis.py +61 -0
- package/skills/qa-expert/scripts/generate_test_plan.py +68 -0
- package/skills/refactoring-specialist/README.md +37 -0
- package/skills/refactoring-specialist/SKILL.md +283 -0
- package/skills/refactoring-specialist/references/checklist.md +6 -0
- package/skills/refactoring-specialist/references/smells.md +6 -0
- package/skills/refactoring-specialist/references/techniques.md +6 -0
- package/skills/security-auditor/README.md +48 -0
- package/skills/security-auditor/SKILL.md +256 -0
- package/skills/security-auditor/references/checklist.md +7 -0
- package/skills/security-auditor/references/owasp.md +12 -0
- package/skills/security-auditor/references/remediation.md +7 -0
- package/skills/security-auditor/scripts/find_secrets.py +58 -0
- package/skills/security-auditor/scripts/security_audit.py +64 -0
- package/skills/self-improving-agent/README.md +136 -0
- package/skills/self-improving-agent/SKILL.md +407 -0
- package/skills/self-improving-agent/hooks/post-bash.sh +10 -0
- package/skills/self-improving-agent/hooks/pre-tool.sh +10 -0
- package/skills/self-improving-agent/hooks/session-end.sh +4 -0
- package/skills/self-improving-agent/memory/semantic-patterns.json +288 -0
- package/skills/self-improving-agent/references/appendix.md +131 -0
- package/skills/self-improving-agent/templates/correction-template.md +11 -0
- package/skills/self-improving-agent/templates/pattern-template.md +15 -0
- package/skills/self-improving-agent/templates/validation-template.md +14 -0
- package/skills/session-logger/README.md +50 -0
- package/skills/session-logger/SKILL.md +156 -0
- package/skills/skill-router/README.md +155 -0
- package/skills/skill-router/SKILL.md +215 -0
- package/skills/test-automator/README.md +41 -0
- package/skills/test-automator/SKILL.md +202 -0
- package/skills/test-automator/references/best-practices.md +6 -0
- package/skills/test-automator/references/examples/README.md +3 -0
- package/skills/test-automator/references/examples/unit-test-example.md +8 -0
- package/skills/test-automator/references/mocking.md +5 -0
- package/skills/test-automator/scripts/coverage_report.py +59 -0
- package/skills/test-automator/scripts/generate_test.py +66 -0
- package/skills/workflow-orchestrator/README.md +20 -0
- package/skills/workflow-orchestrator/SKILL.md +342 -0
- package/src/cli.js +25 -10
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: performance-engineer
|
|
3
|
+
description: Performance optimization specialist for improving application speed and efficiency. Use when investigating performance issues or optimizing code.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Performance Engineer
|
|
8
|
+
|
|
9
|
+
Specialist in analyzing and optimizing application performance, identifying bottlenecks, and implementing efficiency improvements.
|
|
10
|
+
|
|
11
|
+
## When This Skill Activates
|
|
12
|
+
|
|
13
|
+
Activates when you:
|
|
14
|
+
- Report performance issues
|
|
15
|
+
- Need performance optimization
|
|
16
|
+
- Mention "slow" or "latency"
|
|
17
|
+
- Want to improve efficiency
|
|
18
|
+
|
|
19
|
+
## Performance Analysis Process
|
|
20
|
+
|
|
21
|
+
### Phase 1: Identify the Problem
|
|
22
|
+
|
|
23
|
+
1. **Define metrics**
|
|
24
|
+
- What's the baseline?
|
|
25
|
+
- What's the target?
|
|
26
|
+
- What's acceptable?
|
|
27
|
+
|
|
28
|
+
2. **Measure current performance**
|
|
29
|
+
```bash
|
|
30
|
+
# Response time
|
|
31
|
+
curl -w "@curl-format.txt" -o /dev/null -s https://example.com/users
|
|
32
|
+
|
|
33
|
+
# Database query time
|
|
34
|
+
# Add timing logs to queries
|
|
35
|
+
|
|
36
|
+
# Memory usage
|
|
37
|
+
# Use profiler
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
3. **Profile the application**
|
|
41
|
+
```bash
|
|
42
|
+
# Node.js
|
|
43
|
+
node --prof app.js
|
|
44
|
+
|
|
45
|
+
# Python
|
|
46
|
+
python -m cProfile app.py
|
|
47
|
+
|
|
48
|
+
# Go
|
|
49
|
+
go test -cpuprofile=cpu.prof
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Phase 2: Find the Bottleneck
|
|
53
|
+
|
|
54
|
+
Common bottleneck locations:
|
|
55
|
+
|
|
56
|
+
| Layer | Common Issues |
|
|
57
|
+
|-------|---------------|
|
|
58
|
+
| **Database** | N+1 queries, missing indexes, large result sets |
|
|
59
|
+
| **API** | Over-fetching, no caching, serial requests |
|
|
60
|
+
| **Application** | Inefficient algorithms, excessive logging |
|
|
61
|
+
| **Frontend** | Large bundles, re-renders, no lazy loading |
|
|
62
|
+
| **Network** | Too many requests, large payloads, no compression |
|
|
63
|
+
|
|
64
|
+
### Phase 3: Optimize
|
|
65
|
+
|
|
66
|
+
#### Database Optimization
|
|
67
|
+
|
|
68
|
+
**N+1 Queries:**
|
|
69
|
+
```typescript
|
|
70
|
+
// Bad: N+1 queries
|
|
71
|
+
const users = await User.findAll();
|
|
72
|
+
for (const user of users) {
|
|
73
|
+
user.posts = await Post.findAll({ where: { userId: user.id } });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Good: Eager loading
|
|
77
|
+
const users = await User.findAll({
|
|
78
|
+
include: [{ model: Post, as: 'posts' }]
|
|
79
|
+
});
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
**Missing Indexes:**
|
|
83
|
+
```sql
|
|
84
|
+
-- Add index on frequently queried columns
|
|
85
|
+
CREATE INDEX idx_user_email ON users(email);
|
|
86
|
+
CREATE INDEX idx_post_user_id ON posts(user_id);
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
#### API Optimization
|
|
90
|
+
|
|
91
|
+
**Pagination:**
|
|
92
|
+
```typescript
|
|
93
|
+
// Always paginate large result sets
|
|
94
|
+
const users = await User.findAll({
|
|
95
|
+
limit: 100,
|
|
96
|
+
offset: page * 100
|
|
97
|
+
});
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Field Selection:**
|
|
101
|
+
```typescript
|
|
102
|
+
// Select only needed fields
|
|
103
|
+
const users = await User.findAll({
|
|
104
|
+
attributes: ['id', 'name', 'email']
|
|
105
|
+
});
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Compression:**
|
|
109
|
+
```typescript
|
|
110
|
+
// Enable gzip compression
|
|
111
|
+
app.use(compression());
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
#### Frontend Optimization
|
|
115
|
+
|
|
116
|
+
**Code Splitting:**
|
|
117
|
+
```typescript
|
|
118
|
+
// Lazy load routes
|
|
119
|
+
const Dashboard = lazy(() => import('./Dashboard'));
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Memoization:**
|
|
123
|
+
```typescript
|
|
124
|
+
// Use useMemo for expensive calculations
|
|
125
|
+
const filtered = useMemo(() =>
|
|
126
|
+
items.filter(item => item.active),
|
|
127
|
+
[items]
|
|
128
|
+
);
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**Image Optimization:**
|
|
132
|
+
- Use WebP format
|
|
133
|
+
- Lazy load images
|
|
134
|
+
- Use responsive images
|
|
135
|
+
- Compress images
|
|
136
|
+
|
|
137
|
+
### Phase 4: Verify
|
|
138
|
+
|
|
139
|
+
1. **Measure again**
|
|
140
|
+
2. **Compare to baseline**
|
|
141
|
+
3. **Ensure no regressions**
|
|
142
|
+
4. **Document the improvement**
|
|
143
|
+
|
|
144
|
+
## Performance Targets
|
|
145
|
+
|
|
146
|
+
| Metric | Target | Critical Threshold |
|
|
147
|
+
|--------|--------|-------------------|
|
|
148
|
+
| API Response (p50) | < 100ms | < 500ms |
|
|
149
|
+
| API Response (p95) | < 500ms | < 1s |
|
|
150
|
+
| API Response (p99) | < 1s | < 2s |
|
|
151
|
+
| Database Query | < 50ms | < 200ms |
|
|
152
|
+
| Page Load (FMP) | < 2s | < 3s |
|
|
153
|
+
| Time to Interactive | < 3s | < 5s |
|
|
154
|
+
| Memory Usage | < 512MB | < 1GB |
|
|
155
|
+
|
|
156
|
+
## Common Optimizations
|
|
157
|
+
|
|
158
|
+
### Caching Strategy
|
|
159
|
+
|
|
160
|
+
```typescript
|
|
161
|
+
// Cache expensive computations
|
|
162
|
+
const cache = new Map();
|
|
163
|
+
|
|
164
|
+
async function getUserStats(userId: string) {
|
|
165
|
+
if (cache.has(userId)) {
|
|
166
|
+
return cache.get(userId);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
const stats = await calculateUserStats(userId);
|
|
170
|
+
cache.set(userId, stats);
|
|
171
|
+
|
|
172
|
+
// Invalidate after 5 minutes
|
|
173
|
+
setTimeout(() => cache.delete(userId), 5 * 60 * 1000);
|
|
174
|
+
|
|
175
|
+
return stats;
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Batch Processing
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Bad: Individual requests
|
|
183
|
+
for (const id of userIds) {
|
|
184
|
+
await fetchUser(id);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// Good: Batch request
|
|
188
|
+
await fetchUsers(userIds);
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### Debouncing/Throttling
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
// Debounce search input
|
|
195
|
+
const debouncedSearch = debounce(search, 300);
|
|
196
|
+
|
|
197
|
+
// Throttle scroll events
|
|
198
|
+
const throttledScroll = throttle(handleScroll, 100);
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Performance Monitoring
|
|
202
|
+
|
|
203
|
+
### Key Metrics
|
|
204
|
+
|
|
205
|
+
- **Response Time**: Time to process request
|
|
206
|
+
- **Throughput**: Requests per second
|
|
207
|
+
- **Error Rate**: Failed requests percentage
|
|
208
|
+
- **Memory Usage**: Heap/RAM used
|
|
209
|
+
- **CPU Usage**: Processor utilization
|
|
210
|
+
|
|
211
|
+
### Monitoring Tools
|
|
212
|
+
|
|
213
|
+
| Tool | Purpose |
|
|
214
|
+
|------|---------|
|
|
215
|
+
| Lighthouse | Frontend performance |
|
|
216
|
+
| New Relic | APM monitoring |
|
|
217
|
+
| Datadog | Infrastructure monitoring |
|
|
218
|
+
| Prometheus | Metrics collection |
|
|
219
|
+
|
|
220
|
+
## Scripts
|
|
221
|
+
|
|
222
|
+
Profile application:
|
|
223
|
+
```bash
|
|
224
|
+
python scripts/profile.py
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
Generate performance report:
|
|
228
|
+
```bash
|
|
229
|
+
python scripts/perf_report.py
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
## References
|
|
233
|
+
|
|
234
|
+
- `references/optimization.md` - Optimization techniques
|
|
235
|
+
- `references/monitoring.md` - Monitoring setup
|
|
236
|
+
- `references/checklist.md` - Performance checklist
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# Template generator for performance report.
|
|
3
|
+
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import argparse
|
|
6
|
+
import textwrap
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def write_output(path: Path, content: str, force: bool) -> bool:
|
|
10
|
+
if path.exists() and not force:
|
|
11
|
+
print(f"{path} already exists (use --force to overwrite)")
|
|
12
|
+
return False
|
|
13
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
14
|
+
path.write_text(content, encoding="utf-8")
|
|
15
|
+
return True
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def main() -> int:
|
|
19
|
+
parser = argparse.ArgumentParser(description="Generate a performance report.")
|
|
20
|
+
parser.add_argument("--output", default="perf-report.md", help="Output file path")
|
|
21
|
+
parser.add_argument("--name", default="example", help="System or endpoint name")
|
|
22
|
+
parser.add_argument("--owner", default="team", help="Owning team")
|
|
23
|
+
parser.add_argument("--force", action="store_true", help="Overwrite existing file")
|
|
24
|
+
args = parser.parse_args()
|
|
25
|
+
|
|
26
|
+
content = textwrap.dedent(
|
|
27
|
+
f"""\
|
|
28
|
+
# Performance Report
|
|
29
|
+
|
|
30
|
+
## Summary
|
|
31
|
+
{args.name}
|
|
32
|
+
|
|
33
|
+
## Ownership
|
|
34
|
+
- Owner: {args.owner}
|
|
35
|
+
|
|
36
|
+
## Baseline Metrics
|
|
37
|
+
- p50 latency:
|
|
38
|
+
- p95 latency:
|
|
39
|
+
- error rate:
|
|
40
|
+
- throughput:
|
|
41
|
+
|
|
42
|
+
## Findings
|
|
43
|
+
- Top bottlenecks
|
|
44
|
+
- Resource saturation
|
|
45
|
+
|
|
46
|
+
## Recommendations
|
|
47
|
+
- Short-term fixes
|
|
48
|
+
- Long-term optimizations
|
|
49
|
+
|
|
50
|
+
## Validation
|
|
51
|
+
- Benchmark commands
|
|
52
|
+
- Regression checks
|
|
53
|
+
"""
|
|
54
|
+
).strip() + "\n"
|
|
55
|
+
|
|
56
|
+
output = Path(args.output)
|
|
57
|
+
if not write_output(output, content, args.force):
|
|
58
|
+
return 1
|
|
59
|
+
print(f"Wrote {output}")
|
|
60
|
+
return 0
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if __name__ == "__main__":
|
|
64
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# Template generator for performance profile.
|
|
3
|
+
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
import argparse
|
|
6
|
+
import textwrap
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def write_output(path: Path, content: str, force: bool) -> bool:
|
|
10
|
+
if path.exists() and not force:
|
|
11
|
+
print(f"{path} already exists (use --force to overwrite)")
|
|
12
|
+
return False
|
|
13
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
14
|
+
path.write_text(content, encoding="utf-8")
|
|
15
|
+
return True
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def main() -> int:
|
|
19
|
+
parser = argparse.ArgumentParser(description="Generate a performance profile.")
|
|
20
|
+
parser.add_argument("--output", default="perf-profile.txt", help="Output file path")
|
|
21
|
+
parser.add_argument("--name", default="example", help="Scenario name")
|
|
22
|
+
parser.add_argument("--tool", default="perf", help="Profiling tool")
|
|
23
|
+
parser.add_argument("--command", default="run-benchmark.sh", help="Command profiled")
|
|
24
|
+
parser.add_argument("--duration", default="60s", help="Profile duration")
|
|
25
|
+
parser.add_argument("--force", action="store_true", help="Overwrite existing file")
|
|
26
|
+
args = parser.parse_args()
|
|
27
|
+
|
|
28
|
+
content = textwrap.dedent(
|
|
29
|
+
f"""\
|
|
30
|
+
Profile: {args.name}
|
|
31
|
+
Tool: {args.tool}
|
|
32
|
+
Command: {args.command}
|
|
33
|
+
Duration: {args.duration}
|
|
34
|
+
|
|
35
|
+
Environment:
|
|
36
|
+
- CPU:
|
|
37
|
+
- Memory:
|
|
38
|
+
- OS:
|
|
39
|
+
- Build:
|
|
40
|
+
|
|
41
|
+
Workload:
|
|
42
|
+
- Input size:
|
|
43
|
+
- Concurrency:
|
|
44
|
+
- Dataset:
|
|
45
|
+
|
|
46
|
+
Top Hotspots:
|
|
47
|
+
- function_a: 0.00%
|
|
48
|
+
- function_b: 0.00%
|
|
49
|
+
|
|
50
|
+
Notes:
|
|
51
|
+
- Findings summary
|
|
52
|
+
"""
|
|
53
|
+
).strip() + "\n"
|
|
54
|
+
|
|
55
|
+
output = Path(args.output)
|
|
56
|
+
if not write_output(output, content, args.force):
|
|
57
|
+
return 1
|
|
58
|
+
print(f"Wrote {output}")
|
|
59
|
+
return 0
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
if __name__ == "__main__":
|
|
63
|
+
raise SystemExit(main())
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Planning With Files
|
|
2
|
+
|
|
3
|
+
> A Claude Code skill for file-based planning and progress tracking.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
This skill is part of the [agent-playbook](https://github.com/Charon-Fan/agent-playbook) collection.
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
You: Plan a multi-step migration and track progress in files
|
|
13
|
+
You: Create a research plan and save notes and deliverables
|
|
14
|
+
You: Organize this project with persistent task files
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Core Pattern
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/task_plan.md -> Phases and progress
|
|
21
|
+
/notes.md -> Research and findings
|
|
22
|
+
/output.md -> Final deliverable
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Notes
|
|
26
|
+
|
|
27
|
+
If you prefer the original standalone workflow, see the upstream project linked in the skill documentation.
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: planning-with-files
|
|
3
|
+
description: Uses persistent markdown files for general planning, progress tracking, and knowledge storage (Manus-style workflow). Use for multi-step tasks, research projects, or general organization WITHOUT mentioning PRD. For PRD-specific work, use prd-planner skill instead.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Bash, Grep, Glob
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Planning with Files
|
|
8
|
+
|
|
9
|
+
> "Work like Manus" — Uses persistent markdown files for planning, progress tracking, and knowledge storage.
|
|
10
|
+
|
|
11
|
+
## Description
|
|
12
|
+
|
|
13
|
+
A Claude Code skill that transforms your workflow to use persistent markdown files for planning and progress tracking — the pattern that made Manus AI worth billions.
|
|
14
|
+
|
|
15
|
+
## The Problem
|
|
16
|
+
|
|
17
|
+
Claude Code (and most AI agents) suffer from:
|
|
18
|
+
- **Volatile memory** — TodoWrite tool disappears on context reset
|
|
19
|
+
- **Goal drift** — Original goals get forgotten after many tool calls
|
|
20
|
+
- **Hidden errors** — Failures aren't tracked, mistakes repeat
|
|
21
|
+
- **Context stuffing** — Everything crammed into context instead of stored
|
|
22
|
+
|
|
23
|
+
## The Solution: 3-File Pattern
|
|
24
|
+
|
|
25
|
+
For every complex task, create THREE files:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
task_plan.md → Track phases and progress
|
|
29
|
+
notes.md → Store research and findings
|
|
30
|
+
[deliverable].md → Final output
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### The Workflow Loop
|
|
34
|
+
|
|
35
|
+
```text
|
|
36
|
+
1. Create task_plan.md with goal and phases
|
|
37
|
+
2. Research → save to notes.md → update task_plan.md
|
|
38
|
+
3. Read notes.md → create deliverable → update task_plan.md
|
|
39
|
+
4. Deliver final output
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## When to Use
|
|
43
|
+
|
|
44
|
+
**Use this pattern for:**
|
|
45
|
+
- Multi-step tasks (3+ steps)
|
|
46
|
+
- Research tasks
|
|
47
|
+
- Building/creating projects
|
|
48
|
+
- Tasks spanning many tool calls
|
|
49
|
+
- Anything requiring organization
|
|
50
|
+
|
|
51
|
+
**Skip for:**
|
|
52
|
+
- Simple questions
|
|
53
|
+
- Single-file edits
|
|
54
|
+
- Quick lookups
|
|
55
|
+
|
|
56
|
+
## Installation
|
|
57
|
+
|
|
58
|
+
This skill is typically installed globally at `~/.claude/skills/planning-with-files/`.
|
|
59
|
+
|
|
60
|
+
From this repository:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ln -s /path/to/agent-playbook/skills/planning-with-files ~/.claude/skills/planning-with-files
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
If you prefer the standalone workflow, see the upstream repository in the Links section.
|
|
67
|
+
|
|
68
|
+
## The Manus Principles
|
|
69
|
+
|
|
70
|
+
| Principle | Implementation |
|
|
71
|
+
|-----------|----------------|
|
|
72
|
+
| Filesystem as memory | Store in files, not context |
|
|
73
|
+
| Attention manipulation | Re-read plan before decisions |
|
|
74
|
+
| Error persistence | Log failures in plan file |
|
|
75
|
+
| Goal tracking | Checkboxes show progress |
|
|
76
|
+
| Append-only context | Never modify history |
|
|
77
|
+
|
|
78
|
+
## Example
|
|
79
|
+
|
|
80
|
+
**You:** "Research the benefits of TypeScript and write a summary"
|
|
81
|
+
|
|
82
|
+
**Claude creates:**
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
# Task Plan: TypeScript Benefits Research
|
|
86
|
+
|
|
87
|
+
## Goal
|
|
88
|
+
Create a research summary on TypeScript benefits.
|
|
89
|
+
|
|
90
|
+
## Phases
|
|
91
|
+
- [x] Phase 1: Create plan ✓
|
|
92
|
+
- [ ] Phase 2: Research and gather sources (CURRENT)
|
|
93
|
+
- [ ] Phase 3: Synthesize findings
|
|
94
|
+
- [ ] Phase 4: Deliver summary
|
|
95
|
+
|
|
96
|
+
## Status
|
|
97
|
+
**Currently in Phase 2** - Searching for sources
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
## Links
|
|
101
|
+
|
|
102
|
+
- [GitHub Repository](https://github.com/OthmanAdi/planning-with-files)
|
|
103
|
+
- [Context Engineering for AI Agents](https://manus.im/de/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# PRD Implementation Precheck
|
|
2
|
+
|
|
3
|
+
A skill that performs mandatory preflight review before implementing PRDs, ensuring issues are caught before coding begins.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Instead of blindly implementing a PRD, this skill:
|
|
8
|
+
1. Reviews the PRD for scope, alignment, dependencies, and risks
|
|
9
|
+
2. Presents findings and questions to the user
|
|
10
|
+
3. Waits for confirmation before proceeding
|
|
11
|
+
4. Implements with minimal, consistent changes
|
|
12
|
+
|
|
13
|
+
## Installation
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# Create symbolic link to global skills directory
|
|
17
|
+
ln -s ~/Documents/code/GitHub/agent-playbook/skills/prd-implementation-precheck/SKILL.md ~/.claude/skills/prd-implementation-precheck.md
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Ask to implement a PRD
|
|
24
|
+
"Implement the PRD at docs/feature-prd.md"
|
|
25
|
+
|
|
26
|
+
# The skill will:
|
|
27
|
+
# 1. Read and analyze the PRD
|
|
28
|
+
# 2. Present precheck report with questions
|
|
29
|
+
# 3. Wait for your confirmation
|
|
30
|
+
# 4. Implement after approval
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Precheck Checklist
|
|
34
|
+
|
|
35
|
+
| Category | What's Checked |
|
|
36
|
+
|----------|---------------|
|
|
37
|
+
| **Scope** | Over-broad changes? Suggest targeted approach |
|
|
38
|
+
| **Alignment** | Conflicts with existing patterns? Propose alternatives |
|
|
39
|
+
| **Dependencies** | Missing hooks/providers/data sources? |
|
|
40
|
+
| **Behavior** | Flows and edge cases specified? |
|
|
41
|
+
| **Risks** | Performance, regression, migration issues? |
|
|
42
|
+
| **Testing** | Success criteria and test coverage clear? |
|
|
43
|
+
|
|
44
|
+
## Workflow
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
48
|
+
│ PRD Implementation │
|
|
49
|
+
├─────────────────────────────────────────────────────────────┤
|
|
50
|
+
│ │
|
|
51
|
+
│ 1. Locate PRD → Read all referenced files │
|
|
52
|
+
│ 2. Precheck → Run checklist, identify issues │
|
|
53
|
+
│ 3. Present → Show findings, ask questions │
|
|
54
|
+
│ 4. Confirm → User approves or updates PRD │
|
|
55
|
+
│ 5. Implement → Minimal, consistent changes │
|
|
56
|
+
│ 6. Validate → Tests or manual verification │
|
|
57
|
+
│ │
|
|
58
|
+
└─────────────────────────────────────────────────────────────┘
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Output Example
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
## Precheck Report for {PRD}
|
|
65
|
+
|
|
66
|
+
### Intent
|
|
67
|
+
{1-2 sentence summary}
|
|
68
|
+
|
|
69
|
+
### Blockers
|
|
70
|
+
- [ ] Blocker 1
|
|
71
|
+
- [ ] Blocker 2
|
|
72
|
+
|
|
73
|
+
### Questions
|
|
74
|
+
1. Question about scope?
|
|
75
|
+
2. Question about dependencies?
|
|
76
|
+
|
|
77
|
+
### Risks
|
|
78
|
+
- Risk 1
|
|
79
|
+
- Risk 2
|
|
80
|
+
|
|
81
|
+
### Recommendation
|
|
82
|
+
Proceed as-is, or update the PRD first?
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Benefits
|
|
86
|
+
|
|
87
|
+
| Problem | Solution |
|
|
88
|
+
|---------|----------|
|
|
89
|
+
| Implementing unclear PRDs | Precheck catches gaps |
|
|
90
|
+
| Scope creep | Identified early |
|
|
91
|
+
| Breaking existing patterns | Flagged before coding |
|
|
92
|
+
| Missing dependencies | Found before implementation |
|
|
93
|
+
| Unclear success criteria | Clarified upfront |
|
|
94
|
+
|
|
95
|
+
## License
|
|
96
|
+
|
|
97
|
+
MIT
|