clikit-plugin 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +46 -0
- package/README.md +282 -0
- package/command/commit.md +137 -0
- package/command/create.md +150 -0
- package/command/debug.md +185 -0
- package/command/design.md +82 -0
- package/command/handoff.md +95 -0
- package/command/import-plan.md +175 -0
- package/command/init.md +112 -0
- package/command/issue.md +110 -0
- package/command/plan.md +205 -0
- package/command/pr.md +174 -0
- package/command/research.md +103 -0
- package/command/resume.md +80 -0
- package/command/review-codebase.md +228 -0
- package/command/review.md +135 -0
- package/command/ship.md +109 -0
- package/command/start.md +77 -0
- package/command/status.md +123 -0
- package/command/verify.md +79 -0
- package/command/vision.md +142 -0
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +103 -0
- package/dist/clikit.schema.json +423 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/config.d.ts +118 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/hooks/auto-format.d.ts +30 -0
- package/dist/hooks/auto-format.d.ts.map +1 -0
- package/dist/hooks/comment-checker.d.ts +17 -0
- package/dist/hooks/comment-checker.d.ts.map +1 -0
- package/dist/hooks/compaction.d.ts +60 -0
- package/dist/hooks/compaction.d.ts.map +1 -0
- package/dist/hooks/empty-message-sanitizer.d.ts +9 -0
- package/dist/hooks/empty-message-sanitizer.d.ts.map +1 -0
- package/dist/hooks/env-context.d.ts +43 -0
- package/dist/hooks/env-context.d.ts.map +1 -0
- package/dist/hooks/git-guard.d.ts +14 -0
- package/dist/hooks/git-guard.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +35 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/ritual-enforcer.d.ts +29 -0
- package/dist/hooks/ritual-enforcer.d.ts.map +1 -0
- package/dist/hooks/security-check.d.ts +20 -0
- package/dist/hooks/security-check.d.ts.map +1 -0
- package/dist/hooks/session-notification.d.ts +23 -0
- package/dist/hooks/session-notification.d.ts.map +1 -0
- package/dist/hooks/subagent-question-blocker.d.ts +11 -0
- package/dist/hooks/subagent-question-blocker.d.ts.map +1 -0
- package/dist/hooks/swarm-enforcer.d.ts +31 -0
- package/dist/hooks/swarm-enforcer.d.ts.map +1 -0
- package/dist/hooks/todo-enforcer.d.ts +19 -0
- package/dist/hooks/todo-enforcer.d.ts.map +1 -0
- package/dist/hooks/truncator.d.ts +28 -0
- package/dist/hooks/truncator.d.ts.map +1 -0
- package/dist/hooks/typecheck-gate.d.ts +31 -0
- package/dist/hooks/typecheck-gate.d.ts.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5785 -0
- package/dist/skills/index.d.ts +9 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/tools/beads-memory-sync.d.ts +17 -0
- package/dist/tools/beads-memory-sync.d.ts.map +1 -0
- package/dist/tools/context-summary.d.ts +21 -0
- package/dist/tools/context-summary.d.ts.map +1 -0
- package/dist/tools/index.d.ts +7 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/memory.d.ts +56 -0
- package/dist/tools/memory.d.ts.map +1 -0
- package/dist/tools/observation.d.ts +28 -0
- package/dist/tools/observation.d.ts.map +1 -0
- package/dist/tools/quick-research.d.ts +16 -0
- package/dist/tools/quick-research.d.ts.map +1 -0
- package/dist/tools/swarm.d.ts +57 -0
- package/dist/tools/swarm.d.ts.map +1 -0
- package/dist/types.d.ts +32 -0
- package/dist/types.d.ts.map +1 -0
- package/memory/_templates/handoff.md +114 -0
- package/memory/_templates/plan.md +135 -0
- package/memory/_templates/prd.md +147 -0
- package/memory/_templates/research.md +108 -0
- package/memory/_templates/review.md +117 -0
- package/memory/_templates/spec.md +116 -0
- package/memory/beads/.gitkeep +0 -0
- package/memory/handoffs/.gitkeep +0 -0
- package/memory/plans/.gitkeep +0 -0
- package/memory/prds/.gitkeep +0 -0
- package/memory/research/.gitkeep +0 -0
- package/memory/reviews/.gitkeep +0 -0
- package/memory/specs/.gitkeep +0 -0
- package/package.json +64 -0
- package/skill/accessibility-audit/SKILL.md +115 -0
- package/skill/beads/SKILL.md +56 -0
- package/skill/beads-bridge/SKILL.md +45 -0
- package/skill/brainstorming/SKILL.md +41 -0
- package/skill/chrome-devtools/SKILL.md +36 -0
- package/skill/cloudflare/SKILL.md +96 -0
- package/skill/condition-based-waiting/SKILL.md +92 -0
- package/skill/deep-research/SKILL.md +130 -0
- package/skill/defense-in-depth/SKILL.md +89 -0
- package/skill/design-system-audit/SKILL.md +136 -0
- package/skill/development-lifecycle/SKILL.md +58 -0
- package/skill/dispatching-parallel-agents/SKILL.md +94 -0
- package/skill/executing-plans/SKILL.md +54 -0
- package/skill/figma/SKILL.md +34 -0
- package/skill/finishing-a-development-branch/SKILL.md +127 -0
- package/skill/frontend-aesthetics/SKILL.md +63 -0
- package/skill/gemini-large-context/SKILL.md +80 -0
- package/skill/mockup-to-code/SKILL.md +98 -0
- package/skill/mqdh/SKILL.md +54 -0
- package/skill/notebooklm/SKILL.md +71 -0
- package/skill/playwright/SKILL.md +37 -0
- package/skill/playwriter/SKILL.md +56 -0
- package/skill/polar/SKILL.md +39 -0
- package/skill/receiving-code-review/SKILL.md +47 -0
- package/skill/requesting-code-review/SKILL.md +47 -0
- package/skill/resend/SKILL.md +85 -0
- package/skill/ritual-workflow/SKILL.md +101 -0
- package/skill/root-cause-tracing/SKILL.md +73 -0
- package/skill/session-management/SKILL.md +53 -0
- package/skill/sharing-skills/SKILL.md +50 -0
- package/skill/source-code-research/SKILL.md +138 -0
- package/skill/subagent-driven-development/SKILL.md +69 -0
- package/skill/supabase/SKILL.md +80 -0
- package/skill/supabase-postgres-best-practices/SKILL.md +168 -0
- package/skill/swarm-coordination/SKILL.md +54 -0
- package/skill/systematic-debugging/SKILL.md +58 -0
- package/skill/test-driven-development/SKILL.md +53 -0
- package/skill/testing-anti-patterns/SKILL.md +100 -0
- package/skill/testing-skills-with-subagents/SKILL.md +102 -0
- package/skill/ui-ux-research/SKILL.md +93 -0
- package/skill/using-git-worktrees/SKILL.md +129 -0
- package/skill/v0/SKILL.md +67 -0
- package/skill/v1-run/SKILL.md +85 -0
- package/skill/vercel-react-best-practices/SKILL.md +174 -0
- package/skill/verification-before-completion/SKILL.md +55 -0
- package/skill/visual-analysis/SKILL.md +113 -0
- package/skill/writing-plans/SKILL.md +55 -0
- package/skill/writing-skills/SKILL.md +68 -0
- package/src/agents/AGENTS.md +46 -0
- package/src/agents/build.md +170 -0
- package/src/agents/explore.md +113 -0
- package/src/agents/general.md +92 -0
- package/src/agents/index.ts +64 -0
- package/src/agents/librarian.md +116 -0
- package/src/agents/looker.md +107 -0
- package/src/agents/oracle.md +138 -0
- package/src/agents/plan.md +78 -0
- package/src/agents/review.md +98 -0
- package/src/agents/scout.md +84 -0
- package/src/agents/vision.md +159 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: chrome-devtools
|
|
3
|
+
description: Use for web debugging, performance analysis, network inspection, and runtime diagnostics.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Chrome DevTools Skill
|
|
7
|
+
|
|
8
|
+
You are running the **chrome-devtools** skill. Deep debugging via embedded Chrome DevTools MCP.
|
|
9
|
+
|
|
10
|
+
## Capabilities
|
|
11
|
+
|
|
12
|
+
| Action | Description |
|
|
13
|
+
|--------|-------------|
|
|
14
|
+
| Inspect network | Request/response headers, timing, payloads |
|
|
15
|
+
| Debug web apps | Breakpoints, call stacks, variable inspection |
|
|
16
|
+
| Analyze performance | Lighthouse audits, Core Web Vitals, profiling |
|
|
17
|
+
| Console access | Execute JS, log analysis, error tracing |
|
|
18
|
+
| DOM inspection | Element selection, computed styles, layout |
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
|
|
22
|
+
1. Connect to target page (URL or local dev server)
|
|
23
|
+
2. Select tool: Network, Performance, Console, Elements
|
|
24
|
+
3. Perform inspection or profiling
|
|
25
|
+
4. Export results for analysis
|
|
26
|
+
|
|
27
|
+
## MCP Loading
|
|
28
|
+
|
|
29
|
+
This skill uses an embedded Chrome DevTools protocol connection. No external MCP server required.
|
|
30
|
+
|
|
31
|
+
## Best Practices
|
|
32
|
+
|
|
33
|
+
- Profile before optimizing to identify real bottlenecks
|
|
34
|
+
- Use network throttling to test slow connections
|
|
35
|
+
- Check both desktop and mobile viewports
|
|
36
|
+
- Export HAR files for network analysis
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cloudflare
|
|
3
|
+
description: Use when deploying to Cloudflare Workers, managing Pages projects, using storage (KV, D1, R2), or configuring Cloudflare infrastructure.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Cloudflare Skill
|
|
7
|
+
|
|
8
|
+
Comprehensive Cloudflare platform skill covering Workers, Pages, storage services (KV, D1, R2), AI services (Workers AI, Vectorize), and infrastructure-as-code management.
|
|
9
|
+
|
|
10
|
+
## Capabilities
|
|
11
|
+
|
|
12
|
+
- **Workers**: Deploy, manage, debug serverless functions
|
|
13
|
+
- **Pages**: Static site deployment with functions
|
|
14
|
+
- **KV Storage**: Key-value data operations
|
|
15
|
+
- **D1 Database**: SQLite at the edge
|
|
16
|
+
- **R2 Storage**: Object storage (S3-compatible)
|
|
17
|
+
- **Workers AI**: Run ML models at the edge
|
|
18
|
+
- **Vectorize**: Vector database for embeddings
|
|
19
|
+
- **Infrastructure-as-Code**: Wrangler configuration
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
- Deploying serverless functions to the edge
|
|
24
|
+
- Setting up static sites with edge functions
|
|
25
|
+
- Managing edge storage (KV, D1, R2)
|
|
26
|
+
- Running AI models at the edge
|
|
27
|
+
- Building real-time applications
|
|
28
|
+
- Configuring Cloudflare infrastructure
|
|
29
|
+
|
|
30
|
+
## Key Tools
|
|
31
|
+
|
|
32
|
+
- `worker_deploy`: Deploy Worker script
|
|
33
|
+
- `pages_deploy`: Deploy Pages project
|
|
34
|
+
- `kv_get/set/delete`: KV namespace operations
|
|
35
|
+
- `d1_query`: Execute D1 SQL queries
|
|
36
|
+
- `r2_upload/download`: R2 object operations
|
|
37
|
+
- `ai_run`: Execute Workers AI models
|
|
38
|
+
- `vectorize_query`: Vector similarity search
|
|
39
|
+
|
|
40
|
+
## Example Usage
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
// Deploy worker
|
|
44
|
+
worker_deploy({
|
|
45
|
+
name: "api-proxy",
|
|
46
|
+
script: "./workers/proxy.ts",
|
|
47
|
+
compatibility_date: "2024-01-01"
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
// KV operations
|
|
51
|
+
kv_set({
|
|
52
|
+
namespace: "cache",
|
|
53
|
+
key: "user:123",
|
|
54
|
+
value: { name: "Alice", role: "admin" }
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
// D1 query
|
|
58
|
+
d1_query({
|
|
59
|
+
database: "app-db",
|
|
60
|
+
sql: "SELECT * FROM products WHERE category = ?",
|
|
61
|
+
params: ["electronics"]
|
|
62
|
+
})
|
|
63
|
+
|
|
64
|
+
// Workers AI
|
|
65
|
+
ai_run({
|
|
66
|
+
model: "@cf/meta/llama-2-7b-chat-int8",
|
|
67
|
+
prompt: "Explain edge computing"
|
|
68
|
+
})
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Wrangler Configuration
|
|
72
|
+
|
|
73
|
+
```toml
|
|
74
|
+
# wrangler.toml
|
|
75
|
+
name = "my-worker"
|
|
76
|
+
main = "src/index.ts"
|
|
77
|
+
compatibility_date = "2024-01-01"
|
|
78
|
+
|
|
79
|
+
[[kv_namespaces]]
|
|
80
|
+
binding = "CACHE"
|
|
81
|
+
id = "abc123"
|
|
82
|
+
|
|
83
|
+
[[d1_databases]]
|
|
84
|
+
binding = "DB"
|
|
85
|
+
database_name = "app-db"
|
|
86
|
+
|
|
87
|
+
[ai]
|
|
88
|
+
binding = "AI"
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Notes
|
|
92
|
+
|
|
93
|
+
- Requires Cloudflare API token
|
|
94
|
+
- Supports wrangler CLI integration
|
|
95
|
+
- Free tier available for most services
|
|
96
|
+
- Global edge network deployment
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: condition-based-waiting
|
|
3
|
+
description: Replace arbitrary timeouts with condition polling. Wait for actual state changes. Eliminates flaky tests from race conditions.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Condition-Based Waiting Skill
|
|
7
|
+
|
|
8
|
+
You are running the **condition-based-waiting** skill. Never use arbitrary sleeps. Always wait for conditions.
|
|
9
|
+
|
|
10
|
+
## The Problem
|
|
11
|
+
|
|
12
|
+
```javascript
|
|
13
|
+
// BAD: Arbitrary timeout
|
|
14
|
+
await sleep(2000);
|
|
15
|
+
expect(element.isVisible).toBe(true);
|
|
16
|
+
|
|
17
|
+
// Why it fails:
|
|
18
|
+
// - Too short: Flaky on slow CI
|
|
19
|
+
// - Too long: Wastes time on fast machines
|
|
20
|
+
// - Never correct: Race condition waiting to happen
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## The Solution
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
// GOOD: Wait for condition
|
|
27
|
+
await waitFor(() => expect(element.isVisible).toBe(true), { timeout: 5000 });
|
|
28
|
+
|
|
29
|
+
// Why it works:
|
|
30
|
+
// - Passes immediately when ready
|
|
31
|
+
// - Fails fast with clear error
|
|
32
|
+
// - No wasted time
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Patterns
|
|
36
|
+
|
|
37
|
+
### UI Waiting
|
|
38
|
+
```javascript
|
|
39
|
+
// Wait for element
|
|
40
|
+
await page.waitForSelector('.loaded');
|
|
41
|
+
|
|
42
|
+
// Wait for text
|
|
43
|
+
await waitFor(() => page.textContent('.status') === 'Ready');
|
|
44
|
+
|
|
45
|
+
// Wait for visibility
|
|
46
|
+
await waitFor(() => element.isVisible());
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### API Waiting
|
|
50
|
+
```javascript
|
|
51
|
+
// Wait for response
|
|
52
|
+
await waitFor(async () => {
|
|
53
|
+
const res = await fetch('/status');
|
|
54
|
+
const data = await res.json();
|
|
55
|
+
return data.ready === true;
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
// Wait for state
|
|
59
|
+
await waitFor(() => store.getState().loaded === true);
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Database Waiting
|
|
63
|
+
```javascript
|
|
64
|
+
// Wait for record
|
|
65
|
+
await waitFor(async () => {
|
|
66
|
+
const record = await db.find(id);
|
|
67
|
+
return record !== null;
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Rules
|
|
72
|
+
|
|
73
|
+
| Pattern | Verdict |
|
|
74
|
+
|---------|---------|
|
|
75
|
+
| `sleep(n)` or `wait(n)` | DELETE. Replace with condition. |
|
|
76
|
+
| `setTimeout` in tests | DELETE. Use polling. |
|
|
77
|
+
| "It works on my machine" | Race condition. Fix with condition. |
|
|
78
|
+
| Fixed delay "to be safe" | Not safe. Use condition. |
|
|
79
|
+
|
|
80
|
+
## Timeout Strategy
|
|
81
|
+
|
|
82
|
+
1. Set reasonable timeout (default: 5000ms)
|
|
83
|
+
2. Poll frequently (default: 50ms intervals)
|
|
84
|
+
3. Include state in error message
|
|
85
|
+
4. Consider exponential backoff for external services
|
|
86
|
+
|
|
87
|
+
## Red Flags
|
|
88
|
+
|
|
89
|
+
- Any hardcoded delay in test code
|
|
90
|
+
- Comments explaining why timeout is needed
|
|
91
|
+
- Tests that pass locally but fail in CI
|
|
92
|
+
- "Flaky" test label without investigation
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deep-research
|
|
3
|
+
description: Use when exploring unfamiliar code or implementing complex features. Structured LSP exploration with memory-first protocol.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Deep Research Skill
|
|
7
|
+
|
|
8
|
+
You are running the **deep-research** skill. Systematic codebase exploration with confidence-scored findings.
|
|
9
|
+
|
|
10
|
+
## When to Use
|
|
11
|
+
|
|
12
|
+
- Exploring unfamiliar code
|
|
13
|
+
- Implementing complex features
|
|
14
|
+
- Understanding architecture before changes
|
|
15
|
+
- Debugging across multiple files
|
|
16
|
+
|
|
17
|
+
## Memory-First Protocol
|
|
18
|
+
|
|
19
|
+
Always save findings to `.opencode/memory/research/`:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
memory/research/
|
|
23
|
+
├── [topic]-findings.md
|
|
24
|
+
├── [topic]-architecture.md
|
|
25
|
+
└── [topic]-decisions.md
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## LSP Operations
|
|
29
|
+
|
|
30
|
+
Use all 9 LSP operations systematically:
|
|
31
|
+
|
|
32
|
+
### 1. Go to Definition
|
|
33
|
+
- Trace symbol origins
|
|
34
|
+
- Understand type definitions
|
|
35
|
+
- Find implementation details
|
|
36
|
+
|
|
37
|
+
### 2. Find References
|
|
38
|
+
- Locate all usages
|
|
39
|
+
- Understand impact of changes
|
|
40
|
+
- Identify consumers
|
|
41
|
+
|
|
42
|
+
### 3. Go to Type Definition
|
|
43
|
+
- Understand data structures
|
|
44
|
+
- Trace interface contracts
|
|
45
|
+
- Find source types
|
|
46
|
+
|
|
47
|
+
### 4. Find Implementations
|
|
48
|
+
- Locate concrete implementations
|
|
49
|
+
- Understand polymorphism
|
|
50
|
+
- Find all variants
|
|
51
|
+
|
|
52
|
+
### 5. Document Symbol
|
|
53
|
+
- Get file overview
|
|
54
|
+
- Understand exports
|
|
55
|
+
- Quick navigation
|
|
56
|
+
|
|
57
|
+
### 6. Workspace Symbol
|
|
58
|
+
- Find symbols across project
|
|
59
|
+
- Locate related code
|
|
60
|
+
- Cross-file navigation
|
|
61
|
+
|
|
62
|
+
### 7. Call Hierarchy (Incoming)
|
|
63
|
+
- Find callers
|
|
64
|
+
- Understand entry points
|
|
65
|
+
- Trace data flow up
|
|
66
|
+
|
|
67
|
+
### 8. Call Hierarchy (Outgoing)
|
|
68
|
+
- Find callees
|
|
69
|
+
- Understand dependencies
|
|
70
|
+
- Trace data flow down
|
|
71
|
+
|
|
72
|
+
### 9. Rename
|
|
73
|
+
- Preview changes
|
|
74
|
+
- Understand scope
|
|
75
|
+
- Safe refactoring
|
|
76
|
+
|
|
77
|
+
## Research Workflow
|
|
78
|
+
|
|
79
|
+
```
|
|
80
|
+
1. Define research question
|
|
81
|
+
2. Start with workspace symbol search
|
|
82
|
+
3. Navigate via go to definition
|
|
83
|
+
4. Trace references for coverage
|
|
84
|
+
5. Map call hierarchy for flow
|
|
85
|
+
6. Document findings with confidence score
|
|
86
|
+
7. Save to memory
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Confidence Scoring
|
|
90
|
+
|
|
91
|
+
Score each finding 1-10:
|
|
92
|
+
|
|
93
|
+
| Score | Meaning |
|
|
94
|
+
|-------|---------|
|
|
95
|
+
| 1-3 | Speculation, needs verification |
|
|
96
|
+
| 4-6 | Probable, partial evidence |
|
|
97
|
+
| 7-9 | Confident, strong evidence |
|
|
98
|
+
| 10 | Certain, verified in code |
|
|
99
|
+
|
|
100
|
+
## Output Format
|
|
101
|
+
|
|
102
|
+
```markdown
|
|
103
|
+
# [Topic] Research Findings
|
|
104
|
+
|
|
105
|
+
## Summary
|
|
106
|
+
[Brief overview]
|
|
107
|
+
|
|
108
|
+
## Key Findings
|
|
109
|
+
|
|
110
|
+
### Finding 1: [Title]
|
|
111
|
+
- **Confidence**: 8/10
|
|
112
|
+
- **Evidence**: [Code references]
|
|
113
|
+
- **Notes**: [Additional context]
|
|
114
|
+
|
|
115
|
+
## Architecture
|
|
116
|
+
[Diagram or description]
|
|
117
|
+
|
|
118
|
+
## Open Questions
|
|
119
|
+
[What needs more investigation]
|
|
120
|
+
|
|
121
|
+
## Recommendations
|
|
122
|
+
[Based on findings]
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Anti-Patterns
|
|
126
|
+
|
|
127
|
+
- Skipping LSP operations
|
|
128
|
+
- Not saving to memory
|
|
129
|
+
- Low confidence assertions
|
|
130
|
+
- Missing evidence for claims
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: defense-in-depth
|
|
3
|
+
description: Validate at every layer. Makes bugs structurally impossible through layered guards.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Defense in Depth Skill
|
|
7
|
+
|
|
8
|
+
You are running the **defense-in-depth** skill. Trust nothing. Validate everything.
|
|
9
|
+
|
|
10
|
+
## Core Principle
|
|
11
|
+
|
|
12
|
+
Bugs slip through single validation. Multiple validation layers catch what one misses.
|
|
13
|
+
|
|
14
|
+
## Validation Layers
|
|
15
|
+
|
|
16
|
+
### Layer 1: Entry Point Validation
|
|
17
|
+
```javascript
|
|
18
|
+
// API endpoint, CLI input, user form
|
|
19
|
+
function handler(input) {
|
|
20
|
+
if (!input || typeof input !== 'object') {
|
|
21
|
+
throw new Error('Invalid input: expected object');
|
|
22
|
+
}
|
|
23
|
+
if (!input.id || typeof input.id !== 'string') {
|
|
24
|
+
throw new Error('Invalid input: id required');
|
|
25
|
+
}
|
|
26
|
+
// ... continue
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Layer 2: Business Logic Validation
|
|
31
|
+
```javascript
|
|
32
|
+
// Domain rules, invariants
|
|
33
|
+
function processOrder(order) {
|
|
34
|
+
if (order.items.length === 0) {
|
|
35
|
+
throw new Error('Order must have items');
|
|
36
|
+
}
|
|
37
|
+
if (order.total < 0) {
|
|
38
|
+
throw new Error('Order total cannot be negative');
|
|
39
|
+
}
|
|
40
|
+
// ... continue
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### Layer 3: Environment Guards
|
|
45
|
+
```javascript
|
|
46
|
+
// Runtime environment checks
|
|
47
|
+
if (process.env.NODE_ENV === 'production' && !process.env.DATABASE_URL) {
|
|
48
|
+
throw new Error('DATABASE_URL required in production');
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Layer 4: Debug Instrumentation
|
|
53
|
+
```javascript
|
|
54
|
+
// Developer sanity checks (removed in production)
|
|
55
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
56
|
+
console.error('[DEBUG] State:', JSON.stringify(state));
|
|
57
|
+
console.error('[DEBUG] Stack:', new Error().stack);
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Validation Checklist
|
|
62
|
+
|
|
63
|
+
| Layer | Validated | Confidence |
|
|
64
|
+
|-------|-----------|------------|
|
|
65
|
+
| Entry point | Input shape, types | High |
|
|
66
|
+
| Business logic | Domain rules | Higher |
|
|
67
|
+
| Environment | Config, secrets | Highest |
|
|
68
|
+
| Debug | State snapshots | Debug only |
|
|
69
|
+
|
|
70
|
+
## When to Add Each Layer
|
|
71
|
+
|
|
72
|
+
| Scenario | Add Layer |
|
|
73
|
+
|----------|-----------|
|
|
74
|
+
| New API endpoint | Entry point + Business |
|
|
75
|
+
| New function with external callers | Entry point |
|
|
76
|
+
| Production deployment | Environment guards |
|
|
77
|
+
| Debugging session | Debug instrumentation |
|
|
78
|
+
| Test polluter suspected | Debug instrumentation |
|
|
79
|
+
|
|
80
|
+
## Red Flags
|
|
81
|
+
|
|
82
|
+
- Assuming caller provides valid input
|
|
83
|
+
- Skipping validation "for performance"
|
|
84
|
+
- Only validating at one layer
|
|
85
|
+
- Removing validation to "fix" tests
|
|
86
|
+
|
|
87
|
+
## Rule
|
|
88
|
+
|
|
89
|
+
**Validate at every layer. Make bugs structurally impossible.**
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-system-audit
|
|
3
|
+
description: Use when auditing design systems for consistency, documenting tokens, or identifying design debt.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Design System Audit Skill
|
|
7
|
+
|
|
8
|
+
You are running the **design-system-audit** skill. Consistency is currency.
|
|
9
|
+
|
|
10
|
+
## Audit Scope
|
|
11
|
+
|
|
12
|
+
| Area | What to Check |
|
|
13
|
+
|------|---------------|
|
|
14
|
+
| Tokens | Definition, usage, gaps |
|
|
15
|
+
| Components | Documentation, variants, states |
|
|
16
|
+
| Patterns | Consistency, duplication |
|
|
17
|
+
| Documentation | Completeness, accuracy |
|
|
18
|
+
|
|
19
|
+
## Process
|
|
20
|
+
|
|
21
|
+
### 1. Token Audit
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Extract tokens from codebase
|
|
25
|
+
grep -r "var(--" src/ --include="*.css" | sort | uniq
|
|
26
|
+
|
|
27
|
+
# Compare with documented tokens
|
|
28
|
+
diff <(grep "export" tokens.ts) <(cat tokens.md)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Check:
|
|
32
|
+
- [ ] All tokens documented
|
|
33
|
+
- [ ] No hardcoded values bypassing tokens
|
|
34
|
+
- [ ] Semantic tokens exist (not just primitive)
|
|
35
|
+
- [ ] Token naming follows convention
|
|
36
|
+
|
|
37
|
+
### 2. Component Audit
|
|
38
|
+
|
|
39
|
+
For each component:
|
|
40
|
+
```markdown
|
|
41
|
+
## [Component Name]
|
|
42
|
+
- File: [path]
|
|
43
|
+
- Props: [documented?] [types?]
|
|
44
|
+
- Variants: [list] [documented?]
|
|
45
|
+
- States: [default, hover, focus, disabled, error, loading]
|
|
46
|
+
- Accessibility: [attributes] [tested?]
|
|
47
|
+
- Usage examples: [present?]
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Red flags:
|
|
51
|
+
- Undocumented props
|
|
52
|
+
- Missing states
|
|
53
|
+
- No accessibility attributes
|
|
54
|
+
- Hardcoded colors/spacing
|
|
55
|
+
- Duplicate patterns
|
|
56
|
+
|
|
57
|
+
### 3. Pattern Inventory
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Find repeated patterns
|
|
61
|
+
gemini -p "Identify duplicate or inconsistent UI patterns in these components: $(cat components/*.tsx)"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Look for:
|
|
65
|
+
- Multiple button implementations
|
|
66
|
+
- Inconsistent spacing patterns
|
|
67
|
+
- Different shadow definitions
|
|
68
|
+
- Duplicate utility classes
|
|
69
|
+
|
|
70
|
+
### 4. Design Debt Score
|
|
71
|
+
|
|
72
|
+
| Category | Weight | Scoring |
|
|
73
|
+
|----------|--------|---------|
|
|
74
|
+
| Undocumented tokens | High | Count × 2 |
|
|
75
|
+
| Missing component states | Medium | Count × 1 |
|
|
76
|
+
| Hardcoded values | High | Count × 3 |
|
|
77
|
+
| Duplicate patterns | Medium | Count × 2 |
|
|
78
|
+
| Outdated docs | Low | Count × 1 |
|
|
79
|
+
|
|
80
|
+
## Comparison: Implementation vs Design Specs
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Compare Figma export with implementation
|
|
84
|
+
gemini -p "Compare this design spec with the implemented component: Spec: $(cat spec.png) Code: $(cat component.tsx)"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Check:
|
|
88
|
+
- [ ] Colors match tokens
|
|
89
|
+
- [ ] Spacing matches grid
|
|
90
|
+
- [ ] Typography matches scale
|
|
91
|
+
- [ ] Components match variants
|
|
92
|
+
- [ ] States match specifications
|
|
93
|
+
|
|
94
|
+
## Output Template
|
|
95
|
+
|
|
96
|
+
```markdown
|
|
97
|
+
## Design System Audit Report
|
|
98
|
+
|
|
99
|
+
### Summary
|
|
100
|
+
- Total components: [N]
|
|
101
|
+
- Documented: [N] ([%])
|
|
102
|
+
- Design debt score: [N]
|
|
103
|
+
|
|
104
|
+
### Token Gaps
|
|
105
|
+
| Token | Used | Documented | Action |
|
|
106
|
+
|-------|------|------------|--------|
|
|
107
|
+
| --color-primary | Yes | No | Document |
|
|
108
|
+
|
|
109
|
+
### Component Issues
|
|
110
|
+
| Component | Issue | Priority | Fix |
|
|
111
|
+
|-----------|-------|----------|-----|
|
|
112
|
+
| Button | Missing disabled state | High | Add state |
|
|
113
|
+
|
|
114
|
+
### Design Debt Items
|
|
115
|
+
1. [Item] - [Location] - [Recommended fix]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Checklist
|
|
119
|
+
|
|
120
|
+
- [ ] All tokens inventoried
|
|
121
|
+
- [ ] Token documentation gaps identified
|
|
122
|
+
- [ ] Components catalogued with states
|
|
123
|
+
- [ ] Hardcoded values flagged
|
|
124
|
+
- [ ] Duplicate patterns found
|
|
125
|
+
- [ ] Design debt scored
|
|
126
|
+
- [ ] Report saved to `.opencode/memory/reviews/`
|
|
127
|
+
|
|
128
|
+
## Red Flags
|
|
129
|
+
|
|
130
|
+
- Tokens defined but never used
|
|
131
|
+
- Components without documentation
|
|
132
|
+
- Multiple implementations of same pattern
|
|
133
|
+
- Hardcoded values overriding tokens
|
|
134
|
+
- Outdated documentation
|
|
135
|
+
- Missing accessibility documentation
|
|
136
|
+
- No contribution guidelines
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: development-lifecycle
|
|
3
|
+
description: Use when building a complete feature from scratch. Orchestrates full lifecycle from ideation to verification.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Development Lifecycle Skill
|
|
7
|
+
|
|
8
|
+
You are running the **development-lifecycle** skill. Guide features from idea to production.
|
|
9
|
+
|
|
10
|
+
## Phases
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
IDEATION → DESIGN → SPECIFICATION → PLANNING → IMPLEMENTATION → VERIFICATION
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Phase 1: Ideation
|
|
17
|
+
- Load: brainstorming skill
|
|
18
|
+
- Goal: Understand the "why" and "what"
|
|
19
|
+
- Output: Clear problem statement, success criteria
|
|
20
|
+
|
|
21
|
+
### Phase 2: Design
|
|
22
|
+
- Explore architecture options
|
|
23
|
+
- Consider constraints (time, resources, tech stack)
|
|
24
|
+
- Output: Chosen approach, key decisions documented
|
|
25
|
+
|
|
26
|
+
### Phase 3: Specification
|
|
27
|
+
- Define exact requirements
|
|
28
|
+
- List acceptance criteria
|
|
29
|
+
- Output: spec.md in `.opencode/memory/specs/`
|
|
30
|
+
|
|
31
|
+
### Phase 4: Planning
|
|
32
|
+
- Load: writing-plans skill
|
|
33
|
+
- Break into 2-5 min tasks
|
|
34
|
+
- Output: plan.md in `.opencode/memory/plans/`
|
|
35
|
+
|
|
36
|
+
### Phase 5: Implementation
|
|
37
|
+
- Load: executing-plans skill
|
|
38
|
+
- Execute batch by batch
|
|
39
|
+
- Checkpoint after each batch
|
|
40
|
+
|
|
41
|
+
### Phase 6: Verification
|
|
42
|
+
- Run all tests
|
|
43
|
+
- Type check
|
|
44
|
+
- Lint
|
|
45
|
+
- Build
|
|
46
|
+
- Output: Verification report
|
|
47
|
+
|
|
48
|
+
## Phase Transitions
|
|
49
|
+
|
|
50
|
+
Always confirm before moving to next phase:
|
|
51
|
+
- "I've completed [phase]. Ready to move to [next phase]?"
|
|
52
|
+
|
|
53
|
+
## Rollback
|
|
54
|
+
|
|
55
|
+
If issues found in later phases:
|
|
56
|
+
1. Document the issue
|
|
57
|
+
2. Roll back to relevant phase
|
|
58
|
+
3. Fix and re-verify downstream
|