wogiflow 1.0.21 → 1.0.22
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/commands/wogi-bug.md +43 -0
- package/.claude/commands/wogi-bulk.md +144 -0
- package/.claude/commands/wogi-changelog.md +36 -0
- package/.claude/commands/wogi-compact.md +99 -0
- package/.claude/commands/wogi-config.md +50 -0
- package/.claude/commands/wogi-context.md +68 -0
- package/.claude/commands/wogi-correction.md +73 -0
- package/.claude/commands/wogi-debt.md +128 -0
- package/.claude/commands/wogi-deps.md +32 -0
- package/.claude/commands/wogi-epics.md +145 -0
- package/.claude/commands/wogi-export.md +100 -0
- package/.claude/commands/wogi-feature.md +149 -0
- package/.claude/commands/wogi-guided-edit.md +83 -0
- package/.claude/commands/wogi-health.md +43 -0
- package/.claude/commands/wogi-help.md +96 -0
- package/.claude/commands/wogi-hybrid-edit.md +36 -0
- package/.claude/commands/wogi-hybrid-off.md +24 -0
- package/.claude/commands/wogi-hybrid-setup.md +79 -0
- package/.claude/commands/wogi-hybrid-status.md +45 -0
- package/.claude/commands/wogi-hybrid.md +54 -0
- package/.claude/commands/wogi-import.md +44 -0
- package/.claude/commands/wogi-init.md +618 -0
- package/.claude/commands/wogi-log.md +38 -0
- package/.claude/commands/wogi-map-add.md +29 -0
- package/.claude/commands/wogi-map-check.md +35 -0
- package/.claude/commands/wogi-map-index.md +98 -0
- package/.claude/commands/wogi-map-scan.md +38 -0
- package/.claude/commands/wogi-map-sync.md +91 -0
- package/.claude/commands/wogi-map.md +33 -0
- package/.claude/commands/wogi-morning.md +65 -0
- package/.claude/commands/wogi-onboard.md +99 -0
- package/.claude/commands/wogi-plan.md +173 -0
- package/.claude/commands/wogi-ready.md +84 -0
- package/.claude/commands/wogi-resume.md +95 -0
- package/.claude/commands/wogi-review.md +636 -0
- package/.claude/commands/wogi-roadmap.md +241 -0
- package/.claude/commands/wogi-rules.md +104 -0
- package/.claude/commands/wogi-search.md +33 -0
- package/.claude/commands/wogi-session-end.md +49 -0
- package/.claude/commands/wogi-setup-stack.md +151 -0
- package/.claude/commands/wogi-skill-learn.md +66 -0
- package/.claude/commands/wogi-skills.md +87 -0
- package/.claude/commands/wogi-standup.md +28 -0
- package/.claude/commands/wogi-start.md +465 -0
- package/.claude/commands/wogi-status.md +41 -0
- package/.claude/commands/wogi-statusline-setup/skill.md +109 -0
- package/.claude/commands/wogi-story.md +98 -0
- package/.claude/commands/wogi-suspend.md +87 -0
- package/.claude/commands/wogi-test-browser.md +43 -0
- package/.claude/commands/wogi-trace.md +198 -0
- package/.claude/docs/architecture.md +37 -0
- package/.claude/docs/commands.md +343 -0
- package/.claude/docs/knowledge-base/01-setup-onboarding/README.md +177 -0
- package/.claude/docs/knowledge-base/01-setup-onboarding/component-indexing.md +341 -0
- package/.claude/docs/knowledge-base/01-setup-onboarding/framework-detection.md +269 -0
- package/.claude/docs/knowledge-base/01-setup-onboarding/installation.md +146 -0
- package/.claude/docs/knowledge-base/01-setup-onboarding/onboarding-existing.md +317 -0
- package/.claude/docs/knowledge-base/01-setup-onboarding/team-setup.md +346 -0
- package/.claude/docs/knowledge-base/02-task-execution/01-task-planning.md +259 -0
- package/.claude/docs/knowledge-base/02-task-execution/02-execution-loop.md +443 -0
- package/.claude/docs/knowledge-base/02-task-execution/03-verification.md +417 -0
- package/.claude/docs/knowledge-base/02-task-execution/04-completion.md +374 -0
- package/.claude/docs/knowledge-base/02-task-execution/05-session-review.md +170 -0
- package/.claude/docs/knowledge-base/02-task-execution/README.md +173 -0
- package/.claude/docs/knowledge-base/02-task-execution/external-integrations.md +133 -0
- package/.claude/docs/knowledge-base/02-task-execution/model-management.md +202 -0
- package/.claude/docs/knowledge-base/02-task-execution/specification-mode.md +292 -0
- package/.claude/docs/knowledge-base/02-task-execution/sync-daemon.md +96 -0
- package/.claude/docs/knowledge-base/02-task-execution/trade-offs.md +345 -0
- package/.claude/docs/knowledge-base/02-task-execution/workflow-steps.md +357 -0
- package/.claude/docs/knowledge-base/03-self-improvement/README.md +199 -0
- package/.claude/docs/knowledge-base/03-self-improvement/long-input-processing.md +160 -0
- package/.claude/docs/knowledge-base/03-self-improvement/model-learning.md +334 -0
- package/.claude/docs/knowledge-base/03-self-improvement/project-learning.md +301 -0
- package/.claude/docs/knowledge-base/03-self-improvement/skill-learning.md +372 -0
- package/.claude/docs/knowledge-base/03-self-improvement/skill-matching.md +304 -0
- package/.claude/docs/knowledge-base/03-self-improvement/team-learning.md +342 -0
- package/.claude/docs/knowledge-base/04-memory-context/README.md +189 -0
- package/.claude/docs/knowledge-base/04-memory-context/context-management.md +308 -0
- package/.claude/docs/knowledge-base/04-memory-context/memory-commands.md +176 -0
- package/.claude/docs/knowledge-base/04-memory-context/memory-systems.md +359 -0
- package/.claude/docs/knowledge-base/04-memory-context/prd-management.md +115 -0
- package/.claude/docs/knowledge-base/04-memory-context/session-persistence.md +359 -0
- package/.claude/docs/knowledge-base/04-memory-context/team-history.md +317 -0
- package/.claude/docs/knowledge-base/05-development-tools/README.md +84 -0
- package/.claude/docs/knowledge-base/05-development-tools/code-traces.md +278 -0
- package/.claude/docs/knowledge-base/05-development-tools/figma-analyzer.md +253 -0
- package/.claude/docs/knowledge-base/05-development-tools/guided-edit.md +173 -0
- package/.claude/docs/knowledge-base/05-development-tools/mcp-integrations.md +286 -0
- package/.claude/docs/knowledge-base/06-safety-guardrails/README.md +153 -0
- package/.claude/docs/knowledge-base/06-safety-guardrails/checkpoint-rollback.md +302 -0
- package/.claude/docs/knowledge-base/06-safety-guardrails/commit-gates.md +309 -0
- package/.claude/docs/knowledge-base/06-safety-guardrails/damage-control.md +292 -0
- package/.claude/docs/knowledge-base/06-safety-guardrails/security-scanning.md +291 -0
- package/.claude/docs/knowledge-base/README.md +92 -0
- package/.claude/docs/knowledge-base/configuration/README.md +228 -0
- package/.claude/docs/knowledge-base/configuration/all-options.md +1632 -0
- package/.claude/docs/knowledge-base/future-features.md +277 -0
- package/.claude/docs/stack.md +25 -0
- package/.claude/docs/testing.md +71 -0
- package/.claude/rules/README.md +60 -0
- package/.claude/rules/architecture/component-reuse.md +38 -0
- package/.claude/rules/architecture/document-structure.md +76 -0
- package/.claude/rules/architecture/feature-refactoring-cleanup.md +87 -0
- package/.claude/rules/architecture/model-management.md +35 -0
- package/.claude/rules/code-style/naming-conventions.md +55 -0
- package/.claude/rules/security/security-patterns.md +116 -0
- package/.claude/skills/.gitkeep +0 -0
- package/.claude/skills/README.md +131 -0
- package/.claude/skills/_template/commands/.gitkeep +0 -0
- package/.claude/skills/_template/knowledge/anti-patterns.md +49 -0
- package/.claude/skills/_template/knowledge/learnings.md +60 -0
- package/.claude/skills/_template/knowledge/patterns.md +45 -0
- package/.claude/skills/_template/rules/.gitkeep +0 -0
- package/.claude/skills/_template/skill.md +99 -0
- package/.claude/skills/_template/templates/.gitkeep +0 -0
- package/.claude/skills/figma-analyzer/knowledge/anti-patterns.md +216 -0
- package/.claude/skills/figma-analyzer/knowledge/patterns.md +144 -0
- package/.claude/skills/figma-analyzer/skill.md +236 -0
- package/lib/installer.js +59 -19
- package/package.json +5 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
alwaysApply: true
|
|
3
|
+
description: "Naming conventions for files and code variants"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Naming Conventions
|
|
7
|
+
|
|
8
|
+
## File Names
|
|
9
|
+
|
|
10
|
+
Use **kebab-case** for all file names in this project.
|
|
11
|
+
|
|
12
|
+
Examples:
|
|
13
|
+
- `flow-health.js` (correct)
|
|
14
|
+
- `flowHealth.js` (incorrect)
|
|
15
|
+
- `flow_health.js` (incorrect)
|
|
16
|
+
|
|
17
|
+
## Variant Names
|
|
18
|
+
|
|
19
|
+
Use consistent variant names for components:
|
|
20
|
+
|
|
21
|
+
| Category | Values |
|
|
22
|
+
|----------|--------|
|
|
23
|
+
| Size | `sm`, `md`, `lg`, `xl` |
|
|
24
|
+
| Intent | `primary`, `secondary`, `danger`, `success`, `warning` |
|
|
25
|
+
| State | `default`, `hover`, `active`, `disabled` |
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
```jsx
|
|
29
|
+
<Button size="sm" intent="primary" />
|
|
30
|
+
<Badge variant="warning" />
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Catch Block Variables
|
|
34
|
+
|
|
35
|
+
Use `err` for all catch blocks in this codebase.
|
|
36
|
+
|
|
37
|
+
**Avoid**: `e`, `error`, `ex`, `exception` - these cause confusion with loop variables.
|
|
38
|
+
|
|
39
|
+
```javascript
|
|
40
|
+
// Good
|
|
41
|
+
try {
|
|
42
|
+
doSomething();
|
|
43
|
+
} catch (err) {
|
|
44
|
+
console.error(err.message);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Bad - 'e' conflicts with common iterator variables
|
|
48
|
+
try {
|
|
49
|
+
items.map(e => e.value); // 'e' used as iterator
|
|
50
|
+
} catch (e) {
|
|
51
|
+
console.error(e.message); // Easy to confuse with iterator 'e'
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Reason**: Standardizing on `err` prevents mix-ups when `.map(e => ...)` is used nearby.
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
---
|
|
2
|
+
alwaysApply: true
|
|
3
|
+
description: "Security patterns for file operations, JSON parsing, and path handling"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Security Patterns
|
|
7
|
+
|
|
8
|
+
Critical security patterns for this project.
|
|
9
|
+
|
|
10
|
+
## 1. File Read Safety
|
|
11
|
+
|
|
12
|
+
Always wrap `fs.readFileSync()` in try-catch, even after `fileExists()` check.
|
|
13
|
+
|
|
14
|
+
**Reason**: Race conditions, permission changes, symlink issues can still cause failures.
|
|
15
|
+
|
|
16
|
+
```javascript
|
|
17
|
+
// Good
|
|
18
|
+
try {
|
|
19
|
+
const content = fs.readFileSync(path, 'utf-8');
|
|
20
|
+
} catch (err) {
|
|
21
|
+
// Handle gracefully
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Bad - can still throw even if file existed
|
|
25
|
+
if (fs.existsSync(path)) {
|
|
26
|
+
const content = fs.readFileSync(path, 'utf-8');
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 2. JSON Parsing Safety
|
|
31
|
+
|
|
32
|
+
Use `safeJsonParse()` from flow-utils.js instead of raw `JSON.parse()`.
|
|
33
|
+
|
|
34
|
+
- Check for `__proto__`, `constructor`, `prototype` injection
|
|
35
|
+
- Validate parsed structure has expected fields before use
|
|
36
|
+
- Located in: `scripts/flow-utils.js`
|
|
37
|
+
|
|
38
|
+
```javascript
|
|
39
|
+
// Good
|
|
40
|
+
const config = safeJsonParse(filePath, {});
|
|
41
|
+
|
|
42
|
+
// Bad - vulnerable to prototype pollution
|
|
43
|
+
const config = JSON.parse(fs.readFileSync(filePath));
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 3. Template Substitution Safety
|
|
47
|
+
|
|
48
|
+
When implementing template substitution:
|
|
49
|
+
- Block access to `__proto__`, `constructor`, `prototype` keys
|
|
50
|
+
- Use `Object.prototype.hasOwnProperty.call()` for property access
|
|
51
|
+
- Example: See `applyTemplate()` in flow-prompt-composer.js
|
|
52
|
+
|
|
53
|
+
## 4. Path Safety
|
|
54
|
+
|
|
55
|
+
- Validate patterns before `path.join()` with user/config data
|
|
56
|
+
- Use `isPathWithinProject()` for defense-in-depth
|
|
57
|
+
- Glob-to-regex: Use `[^/]*` not `.*` to prevent path separator matching
|
|
58
|
+
|
|
59
|
+
```javascript
|
|
60
|
+
// Good
|
|
61
|
+
if (!isPathWithinProject(targetPath)) {
|
|
62
|
+
throw new Error('Path outside project');
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Bad - allows path traversal
|
|
66
|
+
const fullPath = path.join(baseDir, userInput);
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## 5. Module Dependencies
|
|
70
|
+
|
|
71
|
+
- Check for circular dependencies when refactoring shared functions
|
|
72
|
+
- Node.js handles circular deps but can cause undefined exports during load
|
|
73
|
+
|
|
74
|
+
## 6. Claude Code Permission Patterns (2.1.7+)
|
|
75
|
+
|
|
76
|
+
When configuring permission rules in Claude Code, avoid overly permissive wildcards.
|
|
77
|
+
|
|
78
|
+
**Vulnerability fixed in 2.1.7**: Wildcard permission rules could match compound commands containing shell operators (`;`, `&&`, `||`, `|`).
|
|
79
|
+
|
|
80
|
+
```javascript
|
|
81
|
+
// DANGEROUS - could match "npm test && rm -rf /"
|
|
82
|
+
"allow": "npm *"
|
|
83
|
+
|
|
84
|
+
// SAFER - be specific about allowed commands
|
|
85
|
+
"allow": "npm test"
|
|
86
|
+
"allow": "npm run build"
|
|
87
|
+
"allow": "npm install"
|
|
88
|
+
|
|
89
|
+
// BEST - use semantic prompts instead of wildcards
|
|
90
|
+
// In ExitPlanMode allowedPrompts:
|
|
91
|
+
{ "tool": "Bash", "prompt": "run tests" }
|
|
92
|
+
{ "tool": "Bash", "prompt": "install dependencies" }
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Best practices:**
|
|
96
|
+
- Avoid `*` wildcards in permission rules
|
|
97
|
+
- Use specific command patterns
|
|
98
|
+
- Prefer semantic permission prompts over literal command matching
|
|
99
|
+
- Never allow broad patterns like `rm *` or `git *`
|
|
100
|
+
- Review permission rules after Claude Code updates
|
|
101
|
+
|
|
102
|
+
## 7. Windows Path Safety
|
|
103
|
+
|
|
104
|
+
On Windows, be aware of path-related issues:
|
|
105
|
+
|
|
106
|
+
- Temp directory paths may contain characters like `\t` or `\n` that could be misinterpreted as escape sequences
|
|
107
|
+
- Use raw strings or proper escaping when constructing paths
|
|
108
|
+
- Cloud sync tools (OneDrive, Dropbox) and antivirus may touch file timestamps without changing content
|
|
109
|
+
|
|
110
|
+
```javascript
|
|
111
|
+
// Good - use path.join() which handles platform differences
|
|
112
|
+
const tempPath = path.join(os.tmpdir(), 'myfile.txt');
|
|
113
|
+
|
|
114
|
+
// Bad - manual concatenation can break on Windows
|
|
115
|
+
const tempPath = os.tmpdir() + '/myfile.txt';
|
|
116
|
+
```
|
|
File without changes
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# WogiFlow Skills
|
|
2
|
+
|
|
3
|
+
Skills are modular add-ons that extend WogiFlow with specialized commands, templates, and rules for specific tech stacks.
|
|
4
|
+
|
|
5
|
+
## Available Skills
|
|
6
|
+
|
|
7
|
+
| Skill | Description |
|
|
8
|
+
|-------|-------------|
|
|
9
|
+
| `nestjs` | NestJS module builder with TypeORM |
|
|
10
|
+
| `react` | React component patterns (coming soon) |
|
|
11
|
+
| `python` | Python/FastAPI patterns (coming soon) |
|
|
12
|
+
|
|
13
|
+
## Installing Skills
|
|
14
|
+
|
|
15
|
+
After installing WogiFlow:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
/wogi-skills add nestjs
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or manually:
|
|
22
|
+
1. Copy skill folder to `.claude/skills/`
|
|
23
|
+
2. Add skill name to `config.json` → `skills.installed`
|
|
24
|
+
|
|
25
|
+
## Using Skills
|
|
26
|
+
|
|
27
|
+
Once installed, skill commands are available:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
# NestJS skill
|
|
31
|
+
/nestjs-scaffold users # Create complete module
|
|
32
|
+
/nestjs-entity User # Create entity
|
|
33
|
+
/nestjs-db migrate # Run migrations
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Skill Structure
|
|
37
|
+
|
|
38
|
+
Each skill follows this structure:
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
.claude/skills/[name]/
|
|
42
|
+
├── skill.md # Description, when to use, commands list
|
|
43
|
+
├── rules/ # Coding conventions (auto-loaded)
|
|
44
|
+
│ ├── conventions.md
|
|
45
|
+
│ └── [topic].md
|
|
46
|
+
├── commands/ # Slash commands
|
|
47
|
+
│ ├── scaffold.md # Becomes /[name]-scaffold
|
|
48
|
+
│ └── [action].md
|
|
49
|
+
└── templates/ # Code templates
|
|
50
|
+
├── entity.template.ts
|
|
51
|
+
└── [type].template.ts
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Creating Custom Skills
|
|
55
|
+
|
|
56
|
+
### 1. Create Skill Directory
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
mkdir -p .claude/skills/my-skill/{rules,commands,templates}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 2. Create skill.md
|
|
63
|
+
|
|
64
|
+
```markdown
|
|
65
|
+
# My Skill
|
|
66
|
+
|
|
67
|
+
Description of what this skill does.
|
|
68
|
+
|
|
69
|
+
## When to Use
|
|
70
|
+
|
|
71
|
+
- Creating [type] components
|
|
72
|
+
- Working with [technology]
|
|
73
|
+
|
|
74
|
+
## Commands Added
|
|
75
|
+
|
|
76
|
+
| Command | Description |
|
|
77
|
+
|---------|-------------|
|
|
78
|
+
| `/my-skill-action` | Does something |
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 3. Add Commands
|
|
82
|
+
|
|
83
|
+
Create `.claude/skills/my-skill/commands/action.md`:
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
Do the action for my skill.
|
|
87
|
+
|
|
88
|
+
Usage: `/my-skill-action [args]`
|
|
89
|
+
|
|
90
|
+
## Steps
|
|
91
|
+
|
|
92
|
+
1. Read templates from skill folder
|
|
93
|
+
2. Generate files
|
|
94
|
+
3. Report results
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 4. Add Rules
|
|
98
|
+
|
|
99
|
+
Create `.claude/skills/my-skill/rules/conventions.md`:
|
|
100
|
+
|
|
101
|
+
```markdown
|
|
102
|
+
# My Skill Conventions
|
|
103
|
+
|
|
104
|
+
## Pattern 1
|
|
105
|
+
|
|
106
|
+
Always do X when Y.
|
|
107
|
+
|
|
108
|
+
## Pattern 2
|
|
109
|
+
|
|
110
|
+
Never do A because B.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 5. Add Templates
|
|
114
|
+
|
|
115
|
+
Create template files that commands will use.
|
|
116
|
+
|
|
117
|
+
### 6. Register Skill
|
|
118
|
+
|
|
119
|
+
Add to `config.json`:
|
|
120
|
+
```json
|
|
121
|
+
"skills": {
|
|
122
|
+
"installed": ["my-skill"]
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Sharing Skills
|
|
127
|
+
|
|
128
|
+
Skills can be:
|
|
129
|
+
- Included in project repo
|
|
130
|
+
- Shared via `/wogi-export` profile
|
|
131
|
+
- Published to skill repository (coming soon)
|
|
File without changes
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Anti-Patterns
|
|
2
|
+
|
|
3
|
+
Things that DON'T work. Learn from past mistakes.
|
|
4
|
+
This file is automatically updated when errors occur.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Code Anti-Patterns
|
|
9
|
+
|
|
10
|
+
_No anti-patterns recorded yet._
|
|
11
|
+
|
|
12
|
+
<!--
|
|
13
|
+
Example anti-pattern entry:
|
|
14
|
+
|
|
15
|
+
### Anti-Pattern: Descriptive Name
|
|
16
|
+
|
|
17
|
+
**What happened**: Description of the mistake
|
|
18
|
+
**Why it's wrong**: Explanation
|
|
19
|
+
**What to do instead**: Correct approach
|
|
20
|
+
**First encountered**: YYYY-MM-DD
|
|
21
|
+
**Occurrence count**: N times
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
// BAD - Don't do this
|
|
25
|
+
badCode();
|
|
26
|
+
|
|
27
|
+
// GOOD - Do this instead
|
|
28
|
+
goodCode();
|
|
29
|
+
```
|
|
30
|
+
-->
|
|
31
|
+
|
|
32
|
+
## Workflow Anti-Patterns
|
|
33
|
+
|
|
34
|
+
_No workflow anti-patterns recorded yet._
|
|
35
|
+
|
|
36
|
+
## Common Errors
|
|
37
|
+
|
|
38
|
+
_No common errors recorded yet._
|
|
39
|
+
|
|
40
|
+
<!--
|
|
41
|
+
Example:
|
|
42
|
+
|
|
43
|
+
### Error: TypeScript error TS2345
|
|
44
|
+
|
|
45
|
+
**When it occurs**: Passing wrong type to function X
|
|
46
|
+
**Root cause**: Usually because...
|
|
47
|
+
**Fix**: Cast the type or use...
|
|
48
|
+
**Prevention**: Always check types before...
|
|
49
|
+
-->
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Learnings Log
|
|
2
|
+
|
|
3
|
+
This file is automatically updated when corrections or insights occur.
|
|
4
|
+
Each entry captures context, what happened, and what to remember.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## What to Capture Here
|
|
9
|
+
|
|
10
|
+
Capture learnings when:
|
|
11
|
+
- **User corrects you** - They say "no, do X instead" or "that's wrong"
|
|
12
|
+
- **Something breaks** - Build fails, tests fail, runtime error
|
|
13
|
+
- **You discover a project convention** - "Ah, this project uses X pattern"
|
|
14
|
+
- **A workaround is needed** - Library bug, platform limitation, edge case
|
|
15
|
+
- **Something works unexpectedly well** - Shortcut that's now a pattern
|
|
16
|
+
|
|
17
|
+
## Good Learning vs Noise
|
|
18
|
+
|
|
19
|
+
**Worth capturing:**
|
|
20
|
+
- "Module imports must use `.js` extension in this ESM project"
|
|
21
|
+
- "The auth middleware expects `req.user.id`, not `req.userId`"
|
|
22
|
+
- "Tests fail if database isn't seeded first"
|
|
23
|
+
|
|
24
|
+
**Not worth capturing:**
|
|
25
|
+
- "Fixed typo in variable name" (too trivial)
|
|
26
|
+
- "Added console.log for debugging" (temporary)
|
|
27
|
+
- "Used different CSS color" (preference, not pattern)
|
|
28
|
+
|
|
29
|
+
## When to Promote to patterns.md or anti-patterns.md
|
|
30
|
+
|
|
31
|
+
A learning should be promoted when:
|
|
32
|
+
1. **Same issue occurs 3+ times** - It's a pattern, not a one-off
|
|
33
|
+
2. **It affects multiple files** - Project-wide concern
|
|
34
|
+
3. **It cost significant time** - Worth preventing in future
|
|
35
|
+
|
|
36
|
+
To promote:
|
|
37
|
+
1. Move the core insight to `patterns.md` (if positive) or `anti-patterns.md` (if negative)
|
|
38
|
+
2. Add code examples if relevant
|
|
39
|
+
3. Keep the original learning entry as history
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Entry Format
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
### YYYY-MM-DD - Brief title
|
|
47
|
+
|
|
48
|
+
**Context**: What was being done
|
|
49
|
+
**Trigger**: commit | task-complete | correction | manual
|
|
50
|
+
**Issue**: What went wrong (or worked well)
|
|
51
|
+
**Learning**: Pattern to remember for future
|
|
52
|
+
**Files**: Affected files (if any)
|
|
53
|
+
**Related**: Link to request-log entry (if any)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Recent Learnings
|
|
59
|
+
|
|
60
|
+
_No learnings recorded yet. This file will be updated automatically as you work._
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Successful Patterns
|
|
2
|
+
|
|
3
|
+
Patterns that have proven to work well in this project.
|
|
4
|
+
These are extracted from successful task completions.
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Code Patterns
|
|
9
|
+
|
|
10
|
+
_No patterns recorded yet._
|
|
11
|
+
|
|
12
|
+
<!--
|
|
13
|
+
Example pattern entry:
|
|
14
|
+
|
|
15
|
+
### Pattern: Descriptive Name
|
|
16
|
+
|
|
17
|
+
**Context**: When this pattern applies
|
|
18
|
+
**Example**:
|
|
19
|
+
```typescript
|
|
20
|
+
// Code example here
|
|
21
|
+
```
|
|
22
|
+
**Why it works**: Explanation
|
|
23
|
+
**First seen**: YYYY-MM-DD
|
|
24
|
+
**Usage count**: N times
|
|
25
|
+
-->
|
|
26
|
+
|
|
27
|
+
## Workflow Patterns
|
|
28
|
+
|
|
29
|
+
_No workflow patterns recorded yet._
|
|
30
|
+
|
|
31
|
+
<!--
|
|
32
|
+
Example:
|
|
33
|
+
|
|
34
|
+
### Pattern: Always run X before Y
|
|
35
|
+
|
|
36
|
+
**Context**: When doing Z
|
|
37
|
+
**Steps**:
|
|
38
|
+
1. First do X
|
|
39
|
+
2. Then do Y
|
|
40
|
+
**Why**: Prevents issues with...
|
|
41
|
+
-->
|
|
42
|
+
|
|
43
|
+
## Testing Patterns
|
|
44
|
+
|
|
45
|
+
_No testing patterns recorded yet._
|
|
File without changes
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: _template
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Template for creating new skills - DO NOT LOAD
|
|
5
|
+
scope: project
|
|
6
|
+
user-invocable: false
|
|
7
|
+
context: inline
|
|
8
|
+
agent: developer
|
|
9
|
+
allowed-tools:
|
|
10
|
+
- Read
|
|
11
|
+
- Glob
|
|
12
|
+
- Grep
|
|
13
|
+
- Edit
|
|
14
|
+
- Write
|
|
15
|
+
lastUpdated: {{DATE}}
|
|
16
|
+
learningCount: 0
|
|
17
|
+
successRate: 0
|
|
18
|
+
template: true
|
|
19
|
+
loadable: false
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
<!--
|
|
23
|
+
⚠️ THIS IS A TEMPLATE - DO NOT LOAD THIS SKILL
|
|
24
|
+
|
|
25
|
+
To create a new skill, copy this directory and replace:
|
|
26
|
+
- {{SKILL_NAME}} with your skill name
|
|
27
|
+
- {{SHORT_DESCRIPTION}} with a brief description
|
|
28
|
+
- {{USE_CASE_*}} with actual use cases
|
|
29
|
+
- {{FILE_PATTERN_*}} with file globs
|
|
30
|
+
- {{DATE}} with current date
|
|
31
|
+
|
|
32
|
+
## Frontmatter Fields (Claude Code 2.1.x aligned)
|
|
33
|
+
|
|
34
|
+
Required:
|
|
35
|
+
- name: Skill identifier (kebab-case)
|
|
36
|
+
- description: Short description shown in slash command menu
|
|
37
|
+
- scope: project | user (where skill applies)
|
|
38
|
+
|
|
39
|
+
Claude Code 2.1.x fields:
|
|
40
|
+
- user-invocable: true | false (controls /slash command visibility)
|
|
41
|
+
- context: inline | fork (fork = isolated execution context)
|
|
42
|
+
- agent: orchestrator | developer | reviewer | tester (persona mapping)
|
|
43
|
+
- allowed-tools: YAML list of tools the skill can use
|
|
44
|
+
Example: [Read, Glob, Grep, Edit, Write, Bash(npm *), Bash(git *)]
|
|
45
|
+
|
|
46
|
+
Optional:
|
|
47
|
+
- lastUpdated: ISO date string
|
|
48
|
+
- learningCount: Number of learnings captured
|
|
49
|
+
- successRate: Historical success rate (0-1)
|
|
50
|
+
- loadable: true | false (whether skill can be loaded)
|
|
51
|
+
- template: true (only for _template skill)
|
|
52
|
+
-->
|
|
53
|
+
|
|
54
|
+
# {{SKILL_NAME}} Skill
|
|
55
|
+
|
|
56
|
+
## When to Use
|
|
57
|
+
|
|
58
|
+
- {{USE_CASE_1}}
|
|
59
|
+
- {{USE_CASE_2}}
|
|
60
|
+
|
|
61
|
+
## Quick Reference
|
|
62
|
+
|
|
63
|
+
### Key Patterns
|
|
64
|
+
- Pattern 1: Description
|
|
65
|
+
- Pattern 2: Description
|
|
66
|
+
|
|
67
|
+
### Common Mistakes to Avoid
|
|
68
|
+
- See `knowledge/anti-patterns.md` for details
|
|
69
|
+
|
|
70
|
+
## Progressive Content
|
|
71
|
+
|
|
72
|
+
Load these files when relevant:
|
|
73
|
+
|
|
74
|
+
| File | When to Load |
|
|
75
|
+
|------|--------------|
|
|
76
|
+
| `knowledge/learnings.md` | Starting a task with this skill |
|
|
77
|
+
| `knowledge/patterns.md` | Looking for examples |
|
|
78
|
+
| `knowledge/anti-patterns.md` | Reviewing code or fixing issues |
|
|
79
|
+
| `rules/conventions.md` | Writing new code |
|
|
80
|
+
|
|
81
|
+
## File Patterns
|
|
82
|
+
|
|
83
|
+
This skill applies to files matching:
|
|
84
|
+
- `{{FILE_PATTERN_1}}`
|
|
85
|
+
- `{{FILE_PATTERN_2}}`
|
|
86
|
+
|
|
87
|
+
## Commands
|
|
88
|
+
|
|
89
|
+
| Command | Description |
|
|
90
|
+
|---------|-------------|
|
|
91
|
+
| `/{{SKILL_NAME}}-{{ACTION}}` | Description |
|
|
92
|
+
|
|
93
|
+
## Integration
|
|
94
|
+
|
|
95
|
+
### Dependencies
|
|
96
|
+
- None
|
|
97
|
+
|
|
98
|
+
### Related Skills
|
|
99
|
+
- None
|
|
File without changes
|