start-vibing 1.1.2 → 1.1.3
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 +1 -1
- package/template/.claude/CLAUDE.md +129 -168
- package/template/.claude/README.md +135 -126
- package/template/.claude/agents/analyzer.md +0 -14
- package/template/.claude/agents/commit-manager.md +0 -19
- package/template/.claude/agents/documenter.md +0 -10
- package/template/.claude/agents/domain-updater.md +194 -200
- package/template/.claude/agents/final-validator.md +0 -18
- package/template/.claude/agents/orchestrator.md +0 -12
- package/template/.claude/agents/quality-checker.md +0 -24
- package/template/.claude/agents/research.md +251 -262
- package/template/.claude/agents/security-auditor.md +1 -14
- package/template/.claude/agents/tester.md +0 -8
- package/template/.claude/agents/ui-ux-reviewer.md +0 -8
- package/template/.claude/commands/feature.md +48 -102
- package/template/.claude/config/README.md +30 -30
- package/template/.claude/config/domain-mapping.json +55 -26
- package/template/.claude/config/project-config.json +56 -53
- package/template/.claude/config/quality-gates.json +46 -46
- package/template/.claude/config/security-rules.json +45 -45
- package/template/.claude/config/testing-config.json +168 -168
- package/template/.claude/hooks/SETUP.md +52 -181
- package/template/.claude/hooks/user-prompt-submit.py +37 -246
- package/template/.claude/settings.json +39 -267
- package/template/.claude/skills/codebase-knowledge/SKILL.md +71 -145
- package/template/.claude/skills/codebase-knowledge/domains/claude-system.md +54 -321
- package/template/.claude/skills/docs-tracker/SKILL.md +63 -239
- package/template/.claude/skills/final-check/SKILL.md +72 -284
- package/template/.claude/skills/quality-gate/SKILL.md +71 -278
- package/template/.claude/skills/research-cache/SKILL.md +73 -207
- package/template/.claude/skills/security-scan/SKILL.md +75 -206
- package/template/.claude/skills/test-coverage/SKILL.md +66 -441
- package/template/.claude/skills/ui-ux-audit/SKILL.md +68 -254
- package/template/.claude/hooks/post-tool-use.py +0 -155
- package/template/.claude/hooks/pre-tool-use.py +0 -159
- package/template/.claude/hooks/stop-validation.py +0 -155
- package/template/.claude/hooks/validate-commit.py +0 -200
- package/template/.claude/hooks/workflow-manager.py +0 -350
- package/template/.claude/workflow-state.schema.json +0 -200
|
@@ -1,278 +1,71 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: quality-gate
|
|
3
|
-
description:
|
|
4
|
-
allowed-tools: Bash, Read, Grep
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Quality Gate
|
|
8
|
-
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
#
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
1. TYPECHECK → If fail: STOP and list errors
|
|
73
|
-
↓
|
|
74
|
-
2. LINT → If fail: STOP and list errors
|
|
75
|
-
↓
|
|
76
|
-
3. UNIT TESTS → If fail: STOP and list failures
|
|
77
|
-
↓
|
|
78
|
-
4. E2E TESTS → If fail: STOP and list failures
|
|
79
|
-
↓
|
|
80
|
-
5. BUILD → If fail: STOP and list errors
|
|
81
|
-
↓
|
|
82
|
-
RESULT: ✅ APPROVED or ❌ REJECTED
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Common TypeScript Errors
|
|
88
|
-
|
|
89
|
-
### Type 'X' is not assignable to type 'Y'
|
|
90
|
-
|
|
91
|
-
```typescript
|
|
92
|
-
// ERROR
|
|
93
|
-
const value: string = 123;
|
|
94
|
-
|
|
95
|
-
// FIX
|
|
96
|
-
const value: number = 123;
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
### Object is possibly 'undefined'
|
|
100
|
-
|
|
101
|
-
```typescript
|
|
102
|
-
// ERROR
|
|
103
|
-
const name = user.name.toUpperCase();
|
|
104
|
-
|
|
105
|
-
// FIX
|
|
106
|
-
const name = user?.name?.toUpperCase() ?? '';
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### Property 'X' does not exist on type 'Y'
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
// ERROR
|
|
113
|
-
const age = user.age; // age doesn't exist
|
|
114
|
-
|
|
115
|
-
// FIX
|
|
116
|
-
interface User {
|
|
117
|
-
name: string;
|
|
118
|
-
age?: number;
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Common ESLint Errors
|
|
125
|
-
|
|
126
|
-
### @typescript-eslint/no-explicit-any
|
|
127
|
-
|
|
128
|
-
```typescript
|
|
129
|
-
// ERROR
|
|
130
|
-
function parse(data: any) {}
|
|
131
|
-
|
|
132
|
-
// FIX
|
|
133
|
-
function parse(data: unknown) {}
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### @typescript-eslint/no-unused-vars
|
|
137
|
-
|
|
138
|
-
```typescript
|
|
139
|
-
// ERROR
|
|
140
|
-
const unused = 'value';
|
|
141
|
-
|
|
142
|
-
// FIX - remove or prefix with _
|
|
143
|
-
const _unused = 'value';
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### react-hooks/exhaustive-deps
|
|
147
|
-
|
|
148
|
-
```typescript
|
|
149
|
-
// ERROR
|
|
150
|
-
useEffect(() => {
|
|
151
|
-
fetchData(userId);
|
|
152
|
-
}, []); // missing userId
|
|
153
|
-
|
|
154
|
-
// FIX
|
|
155
|
-
useEffect(() => {
|
|
156
|
-
fetchData(userId);
|
|
157
|
-
}, [userId]);
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## Output Format
|
|
163
|
-
|
|
164
|
-
### Approved
|
|
165
|
-
|
|
166
|
-
```markdown
|
|
167
|
-
## QUALITY GATE - APPROVED
|
|
168
|
-
|
|
169
|
-
### Checks Executed
|
|
170
|
-
|
|
171
|
-
| Check | Status | Time |
|
|
172
|
-
| ---------- | ------------- | ----- |
|
|
173
|
-
| TypeScript | ✅ Pass | 3.2s |
|
|
174
|
-
| ESLint | ✅ Pass | 5.1s |
|
|
175
|
-
| Unit Tests | ✅ 42/42 Pass | 8.3s |
|
|
176
|
-
| E2E Tests | ✅ 15/15 Pass | 45.2s |
|
|
177
|
-
| Build | ✅ Pass | 32.1s |
|
|
178
|
-
|
|
179
|
-
**STATUS: APPROVED** - Ready to commit
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
### Rejected
|
|
183
|
-
|
|
184
|
-
```markdown
|
|
185
|
-
## QUALITY GATE - REJECTED
|
|
186
|
-
|
|
187
|
-
### Checks Executed
|
|
188
|
-
|
|
189
|
-
| Check | Status |
|
|
190
|
-
| ---------- | ----------- |
|
|
191
|
-
| TypeScript | ❌ 3 errors |
|
|
192
|
-
|
|
193
|
-
### TypeScript Errors
|
|
194
|
-
|
|
195
|
-
#### Error 1: server/routers/example.ts:45
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
Type 'string | undefined' is not assignable to type 'string'.
|
|
199
|
-
|
|
200
|
-
````
|
|
201
|
-
|
|
202
|
-
**Suggested fix:**
|
|
203
|
-
```typescript
|
|
204
|
-
const name: string = input.name ?? "";
|
|
205
|
-
````
|
|
206
|
-
|
|
207
|
-
**STATUS: REJECTED** - Fix 3 errors before commit
|
|
208
|
-
|
|
209
|
-
````
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
## Quick Checks
|
|
214
|
-
|
|
215
|
-
### Fast Check (typecheck + lint only)
|
|
216
|
-
```bash
|
|
217
|
-
bun run typecheck && bun run lint
|
|
218
|
-
````
|
|
219
|
-
|
|
220
|
-
### Full Check (everything)
|
|
221
|
-
|
|
222
|
-
```bash
|
|
223
|
-
bun run typecheck && bun run lint && bun run test && bun run test:e2e && bun run build
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### Modified Files Only
|
|
227
|
-
|
|
228
|
-
```bash
|
|
229
|
-
git diff --name-only | grep -E "\.(ts|tsx)$" | xargs bunx eslint
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
## Pre-Commit Checklist
|
|
235
|
-
|
|
236
|
-
- [ ] `bun run typecheck` passes?
|
|
237
|
-
- [ ] `bun run lint` passes?
|
|
238
|
-
- [ ] `bun run test` passes?
|
|
239
|
-
- [ ] `bun run test:e2e` passes?
|
|
240
|
-
- [ ] `bun run build` passes?
|
|
241
|
-
- [ ] No `any` in code?
|
|
242
|
-
- [ ] No unused variables?
|
|
243
|
-
- [ ] No debug console.log?
|
|
244
|
-
|
|
245
|
-
---
|
|
246
|
-
|
|
247
|
-
## Scripts (package.json)
|
|
248
|
-
|
|
249
|
-
```json
|
|
250
|
-
{
|
|
251
|
-
"scripts": {
|
|
252
|
-
"typecheck": "tsc --noEmit",
|
|
253
|
-
"lint": "eslint . --ext .ts,.tsx",
|
|
254
|
-
"lint:fix": "eslint . --ext .ts,.tsx --fix",
|
|
255
|
-
"test": "vitest run",
|
|
256
|
-
"test:watch": "vitest",
|
|
257
|
-
"test:e2e": "playwright test",
|
|
258
|
-
"test:e2e:ui": "playwright test --ui",
|
|
259
|
-
"test:all": "bun run typecheck && bun run lint && bun run test && bun run test:e2e",
|
|
260
|
-
"build": "next build"
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
---
|
|
266
|
-
|
|
267
|
-
## Critical Rules
|
|
268
|
-
|
|
269
|
-
1. **NEVER commit with errors** - All checks must pass
|
|
270
|
-
2. **RUN IN ORDER** - typecheck → lint → test → e2e → build
|
|
271
|
-
3. **FIX IMMEDIATELY** - Errors cannot accumulate
|
|
272
|
-
4. **DON'T USE --force** - Solve problems, don't ignore
|
|
273
|
-
|
|
274
|
-
---
|
|
275
|
-
|
|
276
|
-
## Version
|
|
277
|
-
|
|
278
|
-
- **v2.0.0** - Generic template
|
|
1
|
+
---
|
|
2
|
+
name: quality-gate
|
|
3
|
+
description: Runs code quality checks (typecheck, lint, tests, build). Activates when user says 'check quality', 'run tests', 'typecheck', 'lint', 'build', or before any commit to validate code passes all gates.
|
|
4
|
+
allowed-tools: Bash, Read, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Quality Gate
|
|
8
|
+
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
- Before committing changes
|
|
12
|
+
- After implementation
|
|
13
|
+
- When user asks to "check", "validate", or "run tests"
|
|
14
|
+
|
|
15
|
+
## Commands (Run in Order)
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
# 1. TypeScript
|
|
19
|
+
bun run typecheck
|
|
20
|
+
|
|
21
|
+
# 2. ESLint
|
|
22
|
+
bun run lint
|
|
23
|
+
|
|
24
|
+
# 3. Unit Tests
|
|
25
|
+
bun run test
|
|
26
|
+
|
|
27
|
+
# 4. E2E Tests
|
|
28
|
+
bun run test:e2e
|
|
29
|
+
|
|
30
|
+
# 5. Build
|
|
31
|
+
bun run build
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### All at Once
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
bun run typecheck && bun run lint && bun run test && bun run test:e2e && bun run build
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Execution Flow
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
TYPECHECK → LINT → TESTS → E2E → BUILD
|
|
44
|
+
↓ fail ↓ fail ↓ fail ↓ fail ↓ fail
|
|
45
|
+
STOP STOP STOP STOP STOP
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Common Fixes
|
|
49
|
+
|
|
50
|
+
### TypeScript: Object possibly undefined
|
|
51
|
+
```typescript
|
|
52
|
+
// Fix: use optional chaining
|
|
53
|
+
const name = user?.name ?? '';
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### ESLint: no-explicit-any
|
|
57
|
+
```typescript
|
|
58
|
+
// Fix: use unknown
|
|
59
|
+
function parse(data: unknown) {}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Output
|
|
63
|
+
|
|
64
|
+
**APPROVED:** All checks pass → ready to commit
|
|
65
|
+
**REJECTED:** Fix errors before proceeding
|
|
66
|
+
|
|
67
|
+
## Rules
|
|
68
|
+
|
|
69
|
+
1. **Never commit with errors**
|
|
70
|
+
2. **Run in order** - stop at first failure
|
|
71
|
+
3. **Don't use --force** - solve problems properly
|
|
@@ -1,207 +1,73 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: research-cache
|
|
3
|
-
description:
|
|
4
|
-
allowed-tools: Read, Write, Glob, Grep
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Research Cache
|
|
8
|
-
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
## Structure
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
.claude/skills/research-cache/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
###
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
**Code Example:**
|
|
75
|
-
```[language]
|
|
76
|
-
[code]
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Applies When:**
|
|
80
|
-
- [condition 1]
|
|
81
|
-
- [condition 2]
|
|
82
|
-
|
|
83
|
-
### Finding 2: [Title]
|
|
84
|
-
...
|
|
85
|
-
|
|
86
|
-
## Recommendations
|
|
87
|
-
|
|
88
|
-
### DO
|
|
89
|
-
1. [Best practice 1]
|
|
90
|
-
2. [Best practice 2]
|
|
91
|
-
|
|
92
|
-
### AVOID
|
|
93
|
-
1. [Anti-pattern 1]
|
|
94
|
-
2. [Anti-pattern 2]
|
|
95
|
-
|
|
96
|
-
### CONSIDER
|
|
97
|
-
1. [Alternative approach 1]
|
|
98
|
-
2. [Alternative approach 2]
|
|
99
|
-
|
|
100
|
-
## Implementation Notes
|
|
101
|
-
|
|
102
|
-
### For This Project
|
|
103
|
-
- [Specific note for your project]
|
|
104
|
-
- [Integration point]
|
|
105
|
-
|
|
106
|
-
### Gotchas
|
|
107
|
-
- [Warning 1]
|
|
108
|
-
- [Warning 2]
|
|
109
|
-
|
|
110
|
-
## Sources
|
|
111
|
-
|
|
112
|
-
| Title | URL | Date | Relevance |
|
|
113
|
-
|-------|-----|------|-----------|
|
|
114
|
-
| [Source 1] | [url] | [date] | [high/med/low] |
|
|
115
|
-
| [Source 2] | [url] | [date] | [high/med/low] |
|
|
116
|
-
|
|
117
|
-
## Related Topics
|
|
118
|
-
- [[related-topic-1]]
|
|
119
|
-
- [[related-topic-2]]
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
---
|
|
123
|
-
|
|
124
|
-
## Usage Patterns
|
|
125
|
-
|
|
126
|
-
### Quick Lookup
|
|
127
|
-
|
|
128
|
-
```bash
|
|
129
|
-
# Check if research exists
|
|
130
|
-
ls .claude/skills/research-cache/cache/
|
|
131
|
-
|
|
132
|
-
# Read specific research
|
|
133
|
-
cat .claude/skills/research-cache/cache/[topic].md
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
### Search Cached Research
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
# Find all research mentioning a term
|
|
140
|
-
grep -r "websocket" .claude/skills/research-cache/cache/
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### Check Freshness
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
# Find research older than 6 months
|
|
147
|
-
find .claude/skills/research-cache/cache/ -mtime +180
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## Integration with Research Agent
|
|
153
|
-
|
|
154
|
-
The **research agent** uses this skill to:
|
|
155
|
-
|
|
156
|
-
1. **Check existing research** before web searching
|
|
157
|
-
2. **Store new findings** after web research
|
|
158
|
-
3. **Update stale research** when patterns change
|
|
159
|
-
4. **Cross-reference** findings across topics
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## Freshness Guidelines
|
|
164
|
-
|
|
165
|
-
| Age | Status | Action |
|
|
166
|
-
|-----|--------|--------|
|
|
167
|
-
| < 3 months | Fresh | Use directly |
|
|
168
|
-
| 3-6 months | Aging | Verify still valid |
|
|
169
|
-
| 6-12 months | Stale | Update recommended |
|
|
170
|
-
| > 12 months | Outdated | Full re-research needed |
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## Topic Naming Convention
|
|
175
|
-
|
|
176
|
-
Use kebab-case descriptive names:
|
|
177
|
-
|
|
178
|
-
```
|
|
179
|
-
react-server-components.md # Technology + feature
|
|
180
|
-
typescript-strict-mode.md # Language + specific setting
|
|
181
|
-
mongodb-indexes.md # Database + concept
|
|
182
|
-
bun-docker-deploy.md # Runtime + deployment context
|
|
183
|
-
error-handling-patterns.md # Generic pattern
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
---
|
|
187
|
-
|
|
188
|
-
## Rules
|
|
189
|
-
|
|
190
|
-
### MANDATORY
|
|
191
|
-
|
|
192
|
-
1. **Always check cache first** - Don't duplicate research
|
|
193
|
-
2. **Always include sources** - No unsourced recommendations
|
|
194
|
-
3. **Always date entries** - Freshness matters
|
|
195
|
-
4. **Always follow template** - Consistency helps retrieval
|
|
196
|
-
|
|
197
|
-
### FORBIDDEN
|
|
198
|
-
|
|
199
|
-
1. **Cache without sources** - All findings need citations
|
|
200
|
-
2. **Ignore freshness** - Old research may be wrong
|
|
201
|
-
3. **Duplicate topics** - One file per topic, update existing
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
## Version
|
|
206
|
-
|
|
207
|
-
- **v1.0.0** - Initial implementation
|
|
1
|
+
---
|
|
2
|
+
name: research-cache
|
|
3
|
+
description: Stores and retrieves research findings about best practices. Activates before web searching to check existing knowledge, or after researching to cache new findings. Use when user asks about patterns, best practices, or how to implement something.
|
|
4
|
+
allowed-tools: Read, Write, Glob, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Research Cache
|
|
8
|
+
|
|
9
|
+
## When to Use
|
|
10
|
+
|
|
11
|
+
- Before web searching: check if research exists
|
|
12
|
+
- After web searching: cache findings
|
|
13
|
+
- When implementing: apply cached patterns
|
|
14
|
+
|
|
15
|
+
## Structure
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
.claude/skills/research-cache/cache/
|
|
19
|
+
└── [topic-name].md
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Workflow
|
|
23
|
+
|
|
24
|
+
### Check Cache First
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
ls .claude/skills/research-cache/cache/
|
|
28
|
+
grep -r "keyword" .claude/skills/research-cache/cache/
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### After Research
|
|
32
|
+
|
|
33
|
+
Create `cache/[topic].md`:
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
# Research: [Topic]
|
|
37
|
+
|
|
38
|
+
## Metadata
|
|
39
|
+
- **Date:** YYYY-MM-DD
|
|
40
|
+
- **Freshness:** fresh|stale|outdated
|
|
41
|
+
|
|
42
|
+
## Key Findings
|
|
43
|
+
|
|
44
|
+
### Finding 1
|
|
45
|
+
**Source:** [URL]
|
|
46
|
+
[Summary and code example]
|
|
47
|
+
|
|
48
|
+
## Recommendations
|
|
49
|
+
|
|
50
|
+
### DO
|
|
51
|
+
- [Best practice]
|
|
52
|
+
|
|
53
|
+
### AVOID
|
|
54
|
+
- [Anti-pattern]
|
|
55
|
+
|
|
56
|
+
## Sources
|
|
57
|
+
| Title | URL | Date |
|
|
58
|
+
|-------|-----|------|
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Freshness Guidelines
|
|
62
|
+
|
|
63
|
+
| Age | Status | Action |
|
|
64
|
+
|-----|--------|--------|
|
|
65
|
+
| < 3 months | Fresh | Use directly |
|
|
66
|
+
| 3-6 months | Stale | Verify still valid |
|
|
67
|
+
| > 6 months | Outdated | Re-research |
|
|
68
|
+
|
|
69
|
+
## Rules
|
|
70
|
+
|
|
71
|
+
1. **Check cache first** - don't duplicate research
|
|
72
|
+
2. **Include sources** - all findings need citations
|
|
73
|
+
3. **Date entries** - freshness matters
|