devlyn-cli 0.0.6 → 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/CLAUDE.md +13 -2
- package/README.md +11 -6
- package/bin/devlyn.js +18 -0
- package/config/commands/{devlyn.ui.md → devlyn.design-ui.md} +5 -0
- package/config/commands/devlyn.implement-ui.md +466 -0
- package/config/commands/devlyn.team-resolve.md +307 -0
- package/config/commands/devlyn.team-review.md +310 -0
- package/config/skills/code-review-standards/SKILL.md +71 -0
- package/config/skills/root-cause-analysis/SKILL.md +70 -0
- package/config/skills/ui-implementation-standards/SKILL.md +74 -0
- package/optional-skills/pyx-scan/SKILL.md +185 -0
- package/package.json +1 -1
- package/config/skills/feature-gap-analysis/SKILL.md +0 -111
- package/config/skills/investigate/SKILL.md +0 -71
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Root Cause Analysis
|
|
2
|
+
|
|
3
|
+
Standard methodology for investigating bugs, issues, and unexpected behavior. Apply this framework whenever diagnosing a problem.
|
|
4
|
+
|
|
5
|
+
## Trigger
|
|
6
|
+
|
|
7
|
+
- User reports a bug or unexpected behavior
|
|
8
|
+
- Error logs or stack traces need diagnosis
|
|
9
|
+
- "Why does X happen?" or "What's causing X?" questions
|
|
10
|
+
- Debugging sessions
|
|
11
|
+
- Any use of `/devlyn.resolve` or `/devlyn.team-resolve`
|
|
12
|
+
|
|
13
|
+
## 5 Whys Protocol
|
|
14
|
+
|
|
15
|
+
For every issue, trace from symptom to root cause:
|
|
16
|
+
|
|
17
|
+
**Why 1**: Why did [symptom] happen?
|
|
18
|
+
→ Because [cause 1]. Evidence: [file:line]
|
|
19
|
+
|
|
20
|
+
**Why 2**: Why did [cause 1] happen?
|
|
21
|
+
→ Because [cause 2]. Evidence: [file:line]
|
|
22
|
+
|
|
23
|
+
**Why 3**: Why did [cause 2] happen?
|
|
24
|
+
→ Because [cause 3]. Evidence: [file:line]
|
|
25
|
+
|
|
26
|
+
Continue until you reach something **actionable** — a code change that prevents the entire chain.
|
|
27
|
+
|
|
28
|
+
### Stop Criteria
|
|
29
|
+
- You've reached a design decision or architectural choice that caused the issue
|
|
30
|
+
- You've found a missing validation, wrong assumption, or incorrect logic
|
|
31
|
+
- Further "whys" leave the codebase (external dependency, infrastructure)
|
|
32
|
+
|
|
33
|
+
**NEVER stop at "the code does X"** — always ask WHY the code does X.
|
|
34
|
+
|
|
35
|
+
## Evidence Standards
|
|
36
|
+
|
|
37
|
+
Every claim MUST reference a specific `file:line`. No speculation about code you haven't read.
|
|
38
|
+
|
|
39
|
+
1. Read the actual code before forming hypotheses
|
|
40
|
+
2. Trace the execution path: entry → intermediate calls → issue location
|
|
41
|
+
3. Check git blame for when/why the problematic code was introduced
|
|
42
|
+
4. Find related tests that cover (or miss) the affected area
|
|
43
|
+
5. Generate 2-3 hypotheses, each with supporting evidence
|
|
44
|
+
|
|
45
|
+
## No-Workaround Rule
|
|
46
|
+
|
|
47
|
+
Every fix MUST address the root cause. Stop immediately if you catch yourself:
|
|
48
|
+
|
|
49
|
+
- Adding `|| defaultValue` to mask null/undefined
|
|
50
|
+
- Adding `try/catch` that swallows errors silently
|
|
51
|
+
- Using `?.` to skip over null when null IS the bug
|
|
52
|
+
- Hard-coding a value for the specific failing case
|
|
53
|
+
- Adding a "just in case" check that shouldn't be needed
|
|
54
|
+
- Suppressing warnings/errors instead of fixing them
|
|
55
|
+
- Adding retry logic instead of fixing why it fails
|
|
56
|
+
|
|
57
|
+
If the real fix requires significant refactoring, present the scope to the user — never ship a workaround "for now".
|
|
58
|
+
|
|
59
|
+
## Test-Driven Validation
|
|
60
|
+
|
|
61
|
+
1. Write a failing test that reproduces the issue
|
|
62
|
+
2. Implement the fix
|
|
63
|
+
3. Run the test — if it still fails, **revert completely** and try the next hypothesis
|
|
64
|
+
4. Never layer fixes on top of failed attempts
|
|
65
|
+
5. Run the full test suite for regressions
|
|
66
|
+
|
|
67
|
+
## Routing
|
|
68
|
+
|
|
69
|
+
- **Simple issue** (single file, obvious cause): Use `/devlyn.resolve`
|
|
70
|
+
- **Complex issue** (multi-module, unclear cause, security implications): Use `/devlyn.team-resolve` for multi-perspective investigation
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# UI Implementation Standards
|
|
2
|
+
|
|
3
|
+
Quality framework for building and improving UI from design systems. Apply these standards whenever implementing or modifying visual components.
|
|
4
|
+
|
|
5
|
+
## Trigger
|
|
6
|
+
|
|
7
|
+
- Building UI components or pages
|
|
8
|
+
- Implementing designs from a design system
|
|
9
|
+
- Improving or refactoring existing UI
|
|
10
|
+
- Any use of `/devlyn.implement-ui`, `/devlyn.design-ui`, or `/devlyn.design-system`
|
|
11
|
+
- Frontend development tasks involving visual design
|
|
12
|
+
|
|
13
|
+
## Design System Fidelity
|
|
14
|
+
|
|
15
|
+
When a design system exists at `docs/design-system.md`:
|
|
16
|
+
|
|
17
|
+
- **Always use design tokens** — never hardcode color, spacing, typography, shadow, or motion values
|
|
18
|
+
- **Match component patterns exactly** — structure, variants, hover/interactive states as defined
|
|
19
|
+
- **Apply interactive states** — use exact easing, duration, and transform values from the design system
|
|
20
|
+
- **Preserve design character** — maintain the theme, shape language, density, and energy defined in the system
|
|
21
|
+
|
|
22
|
+
If a value isn't in the design system, derive it from existing tokens (e.g., a new spacing value should follow the spacing scale pattern).
|
|
23
|
+
|
|
24
|
+
## Accessibility (Non-Negotiable)
|
|
25
|
+
|
|
26
|
+
Every UI component must meet WCAG 2.1 AA:
|
|
27
|
+
|
|
28
|
+
- **Semantic HTML first**: Use `nav`, `main`, `section`, `article`, `button`, `a` — not `div` for everything
|
|
29
|
+
- **Color contrast**: Text on backgrounds must meet 4.5:1 (normal text) or 3:1 (large text). If design tokens fail contrast, adjust while staying close to design intent
|
|
30
|
+
- **Keyboard navigation**: All interactive elements reachable and operable via keyboard. Logical focus order. Visible focus indicators
|
|
31
|
+
- **Screen readers**: Meaningful alt text, ARIA labels for icon-only buttons, aria-live for dynamic content, heading hierarchy (h1→h2→h3, no skipping)
|
|
32
|
+
- **Reduced motion**: Wrap all animations in `prefers-reduced-motion` media query. Decorative animations → remove. Functional animations → simplify to opacity-only
|
|
33
|
+
- **Touch targets**: Minimum 44x44px for all interactive elements on touch devices
|
|
34
|
+
|
|
35
|
+
## UI State Coverage
|
|
36
|
+
|
|
37
|
+
Every interactive component or data-dependent view needs all states:
|
|
38
|
+
|
|
39
|
+
| State | What to show | Common pattern |
|
|
40
|
+
|-------|-------------|----------------|
|
|
41
|
+
| Loading | Skeleton screens or contextual spinner | Skeleton preferred over spinner |
|
|
42
|
+
| Empty | Illustration + descriptive message + CTA | Guide user to populate |
|
|
43
|
+
| Error | Inline error with retry action | Never dead-end the user |
|
|
44
|
+
| Success | Confirmation feedback | Toast, inline message, or redirect |
|
|
45
|
+
| Disabled | Visually muted, cursor not-allowed | Explain why if possible |
|
|
46
|
+
|
|
47
|
+
## Animation Quality
|
|
48
|
+
|
|
49
|
+
- **Page load**: Orchestrated staggered reveals — vary `animation-delay` by 0.05-0.1s increments
|
|
50
|
+
- **Scroll**: `IntersectionObserver` for scroll-triggered reveals (threshold 0.1)
|
|
51
|
+
- **Hover**: Transform + shadow transitions, not just color. Use design system easing
|
|
52
|
+
- **Transitions**: Custom `cubic-bezier` from design system, never default `ease` or `linear`
|
|
53
|
+
- **Restraint**: One dramatic animation sequence beats many small ones. If everything moves, nothing stands out
|
|
54
|
+
|
|
55
|
+
## Responsive Strategy (Web)
|
|
56
|
+
|
|
57
|
+
- **Mobile-first**: Write base styles for mobile, override at larger breakpoints
|
|
58
|
+
- **Fluid where possible**: Use `clamp()` for typography and spacing that scales smoothly
|
|
59
|
+
- **Layout shifts**: Define how grids, navigation, and cards adapt at each breakpoint
|
|
60
|
+
- **Touch adaptation**: Larger tap targets, adequate spacing, no hover-dependent interactions on mobile
|
|
61
|
+
|
|
62
|
+
## Code Quality
|
|
63
|
+
|
|
64
|
+
- Follow the project's existing patterns and conventions
|
|
65
|
+
- Components should be composable and reusable
|
|
66
|
+
- No inline styles — use the token/theme system
|
|
67
|
+
- Server components where possible (Next.js), client components only for interactivity
|
|
68
|
+
- Keep component files focused — one component per file
|
|
69
|
+
|
|
70
|
+
## Routing
|
|
71
|
+
|
|
72
|
+
- **Build new UI or improve existing**: Use `/devlyn.implement-ui` for a full team approach
|
|
73
|
+
- **Add features to existing UI**: Use `/devlyn.team-resolve` with the feature description
|
|
74
|
+
- **Review UI code quality**: Use `/devlyn.team-review` for multi-perspective code review
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pyx-scan
|
|
3
|
+
description: >
|
|
4
|
+
Check whether an AI agent skill is safe before installing or using it.
|
|
5
|
+
Calls the PYX Scanner API to retrieve trust status, risk score, and safety
|
|
6
|
+
recommendation. Use when agent needs to verify skill safety, or user says
|
|
7
|
+
"is this safe", "check skill", "scan skill", "verify tool", "pyx scan".
|
|
8
|
+
allowed-tools: WebFetch, Bash(curl *)
|
|
9
|
+
argument-hint: "[owner/name]"
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# PYX Scan — Agent Skill Safety Check
|
|
13
|
+
|
|
14
|
+
Verify whether an AI agent skill is safe before installing or using it by querying the PYX Scanner API.
|
|
15
|
+
|
|
16
|
+
## Workflow
|
|
17
|
+
|
|
18
|
+
### Step 1: Parse Input
|
|
19
|
+
|
|
20
|
+
Extract `owner` and `name` from `$ARGUMENTS`.
|
|
21
|
+
|
|
22
|
+
- Expected format: `owner/name` (e.g., `anthropic/web-search`)
|
|
23
|
+
- If `$ARGUMENTS` is empty or missing the `/` separator, ask the user:
|
|
24
|
+
*"Which skill do you want to check? Provide it as `owner/name` (e.g., `anthropic/web-search`)."*
|
|
25
|
+
- Trim whitespace. Reject if either part is empty after trimming.
|
|
26
|
+
|
|
27
|
+
### Step 2: Call the PYX Scanner API
|
|
28
|
+
|
|
29
|
+
Fetch the safety data:
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
WebFetch URL: https://scanner.pyxmate.com/api/v1/check/{owner}/{name}
|
|
33
|
+
Prompt: "Return the full JSON response body exactly as-is. Do not summarize."
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
If `WebFetch` fails (tool unavailable, network error), fall back to:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
curl -s "https://scanner.pyxmate.com/api/v1/check/{owner}/{name}"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Step 3: Handle Errors
|
|
43
|
+
|
|
44
|
+
| HTTP Status | Meaning | Action |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| **200** | Skill found | Proceed to Step 4 |
|
|
47
|
+
| **404** | Skill not in database | Verdict = **UNSCANNED** |
|
|
48
|
+
| **429** | Rate limited | Verdict = **ERROR** — "Rate limited. Try again shortly." |
|
|
49
|
+
| **5xx** | Server error | Verdict = **ERROR** — "PYX Scanner is temporarily unavailable." |
|
|
50
|
+
| Network failure | Cannot reach API | Verdict = **ERROR** — "Could not connect to PYX Scanner." |
|
|
51
|
+
|
|
52
|
+
### Step 4: Determine Verdict
|
|
53
|
+
|
|
54
|
+
Use the JSON response fields to determine the verdict:
|
|
55
|
+
|
|
56
|
+
| Condition | Verdict |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `recommendation == "safe"` AND `is_outdated == false` | **SAFE** |
|
|
59
|
+
| `recommendation == "safe"` AND `is_outdated == true` | **OUTDATED** |
|
|
60
|
+
| `recommendation == "caution"` | **CAUTION** |
|
|
61
|
+
| `recommendation == "danger"` | **FAILED** |
|
|
62
|
+
| `recommendation == "unknown"` | **UNSCANNED** |
|
|
63
|
+
|
|
64
|
+
### Step 5: Output Report
|
|
65
|
+
|
|
66
|
+
Format the report as structured markdown. Omit any section where the data is null or empty.
|
|
67
|
+
|
|
68
|
+
**For SAFE verdict:**
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
## PYX Scan: {owner}/{name}
|
|
72
|
+
|
|
73
|
+
**Verdict: SAFE** — This skill has been scanned and verified safe.
|
|
74
|
+
|
|
75
|
+
**Trust Score:** {trust_score}/10 | **Risk Score:** {risk_score}/10 | **Confidence:** {confidence}%
|
|
76
|
+
**Intent:** {intent} | **Status:** {status}
|
|
77
|
+
|
|
78
|
+
### Summary
|
|
79
|
+
{summary}
|
|
80
|
+
|
|
81
|
+
### About
|
|
82
|
+
**Purpose:** {about.purpose}
|
|
83
|
+
**Capabilities:** {about.capabilities as bullet list}
|
|
84
|
+
**Permissions Required:** {about.permissions_required as bullet list}
|
|
85
|
+
|
|
86
|
+
[View full report]({detail_url}) | [Badge]({badge_url})
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**For OUTDATED verdict:**
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
## PYX Scan: {owner}/{name}
|
|
93
|
+
|
|
94
|
+
**Verdict: OUTDATED** — Last scan was safe, but the skill has been updated since.
|
|
95
|
+
|
|
96
|
+
The scanned commit (`{scanned_commit}`) no longer matches the latest (`{latest_commit}`).
|
|
97
|
+
The new version has NOT been reviewed. Proceed with caution.
|
|
98
|
+
|
|
99
|
+
**Trust Score:** {trust_score}/10 | **Risk Score:** {risk_score}/10
|
|
100
|
+
**Last Safe Commit:** {last_safe_commit}
|
|
101
|
+
|
|
102
|
+
### Summary
|
|
103
|
+
{summary}
|
|
104
|
+
|
|
105
|
+
[View full report]({detail_url})
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**For CAUTION verdict:**
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
## PYX Scan: {owner}/{name}
|
|
112
|
+
|
|
113
|
+
**Verdict: CAUTION** — This skill has potential risks that need your attention.
|
|
114
|
+
|
|
115
|
+
**Trust Score:** {trust_score}/10 | **Risk Score:** {risk_score}/10 | **Confidence:** {confidence}%
|
|
116
|
+
**Intent:** {intent} | **Status:** {status}
|
|
117
|
+
|
|
118
|
+
### Summary
|
|
119
|
+
{summary}
|
|
120
|
+
|
|
121
|
+
### About
|
|
122
|
+
**Purpose:** {about.purpose}
|
|
123
|
+
**Permissions Required:** {about.permissions_required as bullet list}
|
|
124
|
+
**Security Notes:** {about.security_notes}
|
|
125
|
+
|
|
126
|
+
**Do you want to proceed despite the caution rating?** Please confirm before installing or using this skill.
|
|
127
|
+
|
|
128
|
+
[View full report]({detail_url})
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**For FAILED verdict:**
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
## PYX Scan: {owner}/{name}
|
|
135
|
+
|
|
136
|
+
**Verdict: FAILED** — This skill has been flagged as dangerous. Do NOT install or use it.
|
|
137
|
+
|
|
138
|
+
**Trust Score:** {trust_score}/10 | **Risk Score:** {risk_score}/10 | **Confidence:** {confidence}%
|
|
139
|
+
**Intent:** {intent} | **Status:** {status}
|
|
140
|
+
|
|
141
|
+
### Summary
|
|
142
|
+
{summary}
|
|
143
|
+
|
|
144
|
+
### About
|
|
145
|
+
**Security Notes:** {about.security_notes}
|
|
146
|
+
|
|
147
|
+
[View full report]({detail_url})
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**For UNSCANNED verdict:**
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
## PYX Scan: {owner}/{name}
|
|
154
|
+
|
|
155
|
+
**Verdict: UNSCANNED** — This skill has not been scanned by PYX Scanner.
|
|
156
|
+
|
|
157
|
+
No safety data is available. You should:
|
|
158
|
+
1. Review the skill's source code manually before use
|
|
159
|
+
2. Check the skill's repository for known issues
|
|
160
|
+
3. Request a scan at https://scanner.pyxmate.com
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**For ERROR verdict:**
|
|
164
|
+
|
|
165
|
+
```
|
|
166
|
+
## PYX Scan: {owner}/{name}
|
|
167
|
+
|
|
168
|
+
**Verdict: ERROR** — {error_message}
|
|
169
|
+
|
|
170
|
+
Safety could not be verified. Treat this skill as unverified until you can confirm its safety.
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Behavioral Rules
|
|
174
|
+
|
|
175
|
+
1. **Always call the API** — never skip the check or return a cached/assumed result.
|
|
176
|
+
2. **Never soften a FAILED verdict** — if the scan says danger, report danger. Do not add qualifiers like "but it might be fine."
|
|
177
|
+
3. **Always ask user confirmation on CAUTION** — the user must explicitly agree before proceeding.
|
|
178
|
+
4. **Keep reports concise** — omit null/empty sections rather than showing "N/A."
|
|
179
|
+
5. **No raw JSON** — always format the response as the structured markdown report above.
|
|
180
|
+
|
|
181
|
+
## Self-Scan Awareness
|
|
182
|
+
|
|
183
|
+
When `$ARGUMENTS` is `pyxmate/pyx-scan`, `pyxmate/pyx-scanner`, or refers to this skill itself, still call the API honestly and report whatever comes back. If the result is UNSCANNED, append:
|
|
184
|
+
|
|
185
|
+
> *"Yes, even the security scanner's own skill hasn't been scanned yet. We practice what we preach — treat unscanned skills with caution."*
|
package/package.json
CHANGED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
# Feature Gap Analysis Skill
|
|
2
|
-
|
|
3
|
-
Use this skill to systematically identify missing features and functionality gaps in the codebase.
|
|
4
|
-
|
|
5
|
-
## Trigger
|
|
6
|
-
|
|
7
|
-
- "What features are missing?"
|
|
8
|
-
- "Analyze gaps in [feature area]"
|
|
9
|
-
- Feature comparison requests
|
|
10
|
-
- "What should we build next?"
|
|
11
|
-
|
|
12
|
-
## Workflow
|
|
13
|
-
|
|
14
|
-
### Phase 1: Define Scope
|
|
15
|
-
1. Identify the feature area to analyze
|
|
16
|
-
2. Establish comparison baseline (competitor, spec, user needs)
|
|
17
|
-
3. Define what "complete" means for this analysis
|
|
18
|
-
|
|
19
|
-
### Phase 2: Parallel Analysis
|
|
20
|
-
Spawn Task agents to investigate simultaneously:
|
|
21
|
-
|
|
22
|
-
```markdown
|
|
23
|
-
Agent 1: Current State Analysis
|
|
24
|
-
- What exists today?
|
|
25
|
-
- How is it implemented?
|
|
26
|
-
- What are its limitations?
|
|
27
|
-
|
|
28
|
-
Agent 2: Standard/Competitor Analysis
|
|
29
|
-
- What do similar products offer?
|
|
30
|
-
- What's the industry standard?
|
|
31
|
-
- What do users expect?
|
|
32
|
-
|
|
33
|
-
Agent 3: User-Facing Gaps
|
|
34
|
-
- What's missing from user perspective?
|
|
35
|
-
- What are common complaints/requests?
|
|
36
|
-
- What workflows are incomplete?
|
|
37
|
-
|
|
38
|
-
Agent 4: Technical Debt
|
|
39
|
-
- What technical limitations block features?
|
|
40
|
-
- What refactoring would enable new capabilities?
|
|
41
|
-
- What dependencies are outdated?
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Phase 3: Synthesize Findings
|
|
45
|
-
Compile findings into prioritized analysis:
|
|
46
|
-
|
|
47
|
-
```markdown
|
|
48
|
-
## Feature Gap Analysis: [Area]
|
|
49
|
-
|
|
50
|
-
### Current State
|
|
51
|
-
| Feature | Status | Implementation | Notes |
|
|
52
|
-
|---------|--------|----------------|-------|
|
|
53
|
-
| Feature A | Complete | `path/to/file.ts` | |
|
|
54
|
-
| Feature B | Partial | `path/to/file.ts` | Missing X |
|
|
55
|
-
| Feature C | Missing | - | Needed for Y |
|
|
56
|
-
|
|
57
|
-
### Gap Prioritization
|
|
58
|
-
|
|
59
|
-
#### High Priority (User Impact + Feasibility)
|
|
60
|
-
1. **[Gap]**
|
|
61
|
-
- Impact: [Why it matters]
|
|
62
|
-
- Complexity: S/M/L
|
|
63
|
-
- Dependencies: [What's needed first]
|
|
64
|
-
- Suggested approach: [Brief technical direction]
|
|
65
|
-
|
|
66
|
-
#### Medium Priority
|
|
67
|
-
2. **[Gap]**
|
|
68
|
-
- ...
|
|
69
|
-
|
|
70
|
-
#### Low Priority / Nice-to-Have
|
|
71
|
-
3. **[Gap]**
|
|
72
|
-
- ...
|
|
73
|
-
|
|
74
|
-
### Technical Debt Blocking Progress
|
|
75
|
-
- [ ] Debt item 1 - blocks [features]
|
|
76
|
-
- [ ] Debt item 2 - blocks [features]
|
|
77
|
-
|
|
78
|
-
### Recommended Roadmap
|
|
79
|
-
1. Phase 1: [Quick wins]
|
|
80
|
-
2. Phase 2: [Core features]
|
|
81
|
-
3. Phase 3: [Advanced features]
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Phase 4: Generate Implementation Plans
|
|
85
|
-
For top priority gaps, draft initial implementation plans:
|
|
86
|
-
|
|
87
|
-
```markdown
|
|
88
|
-
## Implementation Plan: [Top Gap]
|
|
89
|
-
|
|
90
|
-
### Files to Create/Modify
|
|
91
|
-
- `new/file.ts` - [purpose]
|
|
92
|
-
- `existing/file.ts` - [changes needed]
|
|
93
|
-
|
|
94
|
-
### Key Decisions Needed
|
|
95
|
-
- Decision 1: Option A vs Option B
|
|
96
|
-
- Decision 2: ...
|
|
97
|
-
|
|
98
|
-
### Draft Implementation Steps
|
|
99
|
-
1. Step 1
|
|
100
|
-
2. Step 2
|
|
101
|
-
3. ...
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
## Rules
|
|
105
|
-
|
|
106
|
-
- ALWAYS output prioritized, actionable findings
|
|
107
|
-
- Include complexity estimates (S/M/L) for each gap
|
|
108
|
-
- Provide file:line references to existing implementations
|
|
109
|
-
- Don't just list gaps - provide implementation direction
|
|
110
|
-
- Use TodoWrite to checkpoint analysis progress
|
|
111
|
-
- If interrupted, output whatever analysis exists so far
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
# Investigation Skill
|
|
2
|
-
|
|
3
|
-
Use this skill for code investigation, feature gap analysis, or understanding existing functionality.
|
|
4
|
-
|
|
5
|
-
## Trigger
|
|
6
|
-
|
|
7
|
-
- User asks to investigate, analyze, or understand code
|
|
8
|
-
- Feature gap analysis requests
|
|
9
|
-
- "How does X work?" questions
|
|
10
|
-
- Code exploration tasks
|
|
11
|
-
|
|
12
|
-
## Workflow
|
|
13
|
-
|
|
14
|
-
### Phase 1: Define Scope
|
|
15
|
-
Before starting, clarify:
|
|
16
|
-
- What specific question needs answering?
|
|
17
|
-
- What does "complete" look like for this investigation?
|
|
18
|
-
- Are there time constraints?
|
|
19
|
-
|
|
20
|
-
### Phase 2: Parallel Exploration
|
|
21
|
-
Spawn Task agents to explore different areas simultaneously:
|
|
22
|
-
```
|
|
23
|
-
Use Task tool to spawn parallel agents:
|
|
24
|
-
1. Agent for data layer analysis
|
|
25
|
-
2. Agent for API/service layer
|
|
26
|
-
3. Agent for UI/component layer
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Phase 3: Checkpoint Progress
|
|
30
|
-
Every significant finding, use TodoWrite to record:
|
|
31
|
-
- Files examined
|
|
32
|
-
- Patterns discovered
|
|
33
|
-
- Questions raised
|
|
34
|
-
- Hypotheses formed
|
|
35
|
-
|
|
36
|
-
### Phase 4: Synthesize & Report
|
|
37
|
-
ALWAYS output a structured summary before ending:
|
|
38
|
-
|
|
39
|
-
```markdown
|
|
40
|
-
## Investigation Summary: [Topic]
|
|
41
|
-
|
|
42
|
-
### Files Examined
|
|
43
|
-
- `path/to/file.ts` - [what it does]
|
|
44
|
-
- `path/to/other.ts` - [what it does]
|
|
45
|
-
|
|
46
|
-
### Key Findings
|
|
47
|
-
1. [Finding with file:line reference]
|
|
48
|
-
2. [Finding with file:line reference]
|
|
49
|
-
|
|
50
|
-
### Architecture/Flow
|
|
51
|
-
[Brief description or diagram of how components interact]
|
|
52
|
-
|
|
53
|
-
### Gaps/Issues Identified
|
|
54
|
-
- [ ] Gap 1
|
|
55
|
-
- [ ] Gap 2
|
|
56
|
-
|
|
57
|
-
### Remaining Unknowns
|
|
58
|
-
- Question that needs more investigation
|
|
59
|
-
|
|
60
|
-
### Recommended Next Steps
|
|
61
|
-
1. Actionable step
|
|
62
|
-
2. Actionable step
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## Rules
|
|
66
|
-
|
|
67
|
-
- NEVER end mid-investigation without a summary
|
|
68
|
-
- ALWAYS provide file:line references for findings
|
|
69
|
-
- Use TodoWrite to checkpoint progress every 5-10 minutes
|
|
70
|
-
- If interrupted, output whatever findings exist so far
|
|
71
|
-
- Prefer parallel Task agents for large codebases
|