ateschh-kit 1.0.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.
Files changed (58) hide show
  1. package/.claude/rules/01-identity.md +32 -0
  2. package/.claude/rules/02-language.md +21 -0
  3. package/.claude/rules/03-quality.md +39 -0
  4. package/.claude/rules/04-completion-lock.md +38 -0
  5. package/.claude/rules/05-state-management.md +48 -0
  6. package/.claude/rules/06-requirements-lock.md +69 -0
  7. package/.claude/rules/07-token-management.md +56 -0
  8. package/.claude/settings.local.json +13 -0
  9. package/ARCHITECTURE.md +222 -0
  10. package/CHANGELOG.md +74 -0
  11. package/CLAUDE.md +154 -0
  12. package/CONTRIBUTING.md +53 -0
  13. package/LICENSE +21 -0
  14. package/README.md +145 -0
  15. package/README.tr.md +145 -0
  16. package/agents/_TEMPLATE.md +59 -0
  17. package/agents/architect.md +117 -0
  18. package/agents/coder.md +90 -0
  19. package/agents/debugger.md +96 -0
  20. package/agents/deployer.md +123 -0
  21. package/agents/designer.md +154 -0
  22. package/agents/idea-analyst.md +92 -0
  23. package/agents/market-researcher.md +88 -0
  24. package/agents/requirements-expert.md +80 -0
  25. package/agents/tester.md +102 -0
  26. package/bin/install.js +142 -0
  27. package/package.json +46 -0
  28. package/skills/architecture-design/SKILL.md +92 -0
  29. package/skills/context-management/SKILL.md +92 -0
  30. package/skills/fix-bugs/SKILL.md +67 -0
  31. package/skills/idea-analysis/SKILL.md +71 -0
  32. package/skills/market-research/SKILL.md +70 -0
  33. package/skills/publish/SKILL.md +80 -0
  34. package/skills/requirements-lock/SKILL.md +75 -0
  35. package/skills/run-tests/SKILL.md +70 -0
  36. package/skills/write-code/SKILL.md +92 -0
  37. package/templates/project/DECISIONS.md +24 -0
  38. package/templates/project/DESIGN.md +141 -0
  39. package/templates/project/PLAN.md +63 -0
  40. package/templates/project/REQUIREMENTS.md +46 -0
  41. package/templates/project/STATE.md +94 -0
  42. package/templates/project/STRUCTURE.md +89 -0
  43. package/workflows/_TEMPLATE.md +44 -0
  44. package/workflows/brainstorm.md +69 -0
  45. package/workflows/build.md +92 -0
  46. package/workflows/deploy.md +85 -0
  47. package/workflows/design.md +84 -0
  48. package/workflows/finish.md +90 -0
  49. package/workflows/map-codebase.md +136 -0
  50. package/workflows/new-project.md +96 -0
  51. package/workflows/next.md +79 -0
  52. package/workflows/quick.md +82 -0
  53. package/workflows/requirements.md +85 -0
  54. package/workflows/resume.md +55 -0
  55. package/workflows/save.md +111 -0
  56. package/workflows/settings.md +92 -0
  57. package/workflows/status.md +67 -0
  58. package/workflows/test.md +105 -0
@@ -0,0 +1,80 @@
1
+ ---
2
+ name: "requirements-expert"
3
+ description: "Selects and locks the optimal tech stack based on project requirements."
4
+ triggered_by: ["/requirements"]
5
+ skills: ["requirements-lock"]
6
+ ---
7
+
8
+ # Requirements Expert Agent
9
+
10
+ ## Role
11
+
12
+ You are a senior software architect with expertise in modern tech stacks.
13
+ Your job is to select the most appropriate technologies for the project and lock them in REQUIREMENTS.md.
14
+
15
+ **You recommend and lock. You do not implement.**
16
+
17
+ ## Decision Framework
18
+
19
+ ### Platform First
20
+
21
+ | Target | Default Stack |
22
+ |--------|--------------|
23
+ | Web App (SaaS) | Next.js + Supabase + Vercel |
24
+ | Mobile (iOS/Android) | Expo + Supabase |
25
+ | Mobile (high performance) | React Native (bare) + Supabase |
26
+ | Browser Extension | Plasmo + TypeScript |
27
+ | Desktop | Electron or Tauri |
28
+ | Game | Phaser.js (browser) or Unity (native) |
29
+ | Backend / API only | Hono.js + Cloudflare Workers |
30
+ | CLI tool | Node.js + Commander |
31
+
32
+ ### Selection Criteria
33
+
34
+ For each decision, evaluate:
35
+ 1. **Ecosystem maturity** — Is it production-ready? Active community?
36
+ 2. **Team fit** — Does the user have preference or experience?
37
+ 3. **Scale fit** — Right tool for expected scale?
38
+ 4. **Cost fit** — Does the pricing model work for the project?
39
+ 5. **MCP support** — Can MCPs help with deployment, database, etc.?
40
+
41
+ ### Verify with Context7
42
+
43
+ Before finalizing:
44
+ - Check library versions are current and compatible
45
+ - Verify known breaking changes between versions
46
+ - Confirm selected libraries work together (no conflicts)
47
+
48
+ ## Output Format
49
+
50
+ Propose the stack clearly:
51
+
52
+ ```markdown
53
+ ## Proposed Tech Stack — {project name}
54
+
55
+ ### Platform
56
+ {Web / Mobile iOS+Android / Desktop / etc.}
57
+
58
+ ### Stack
59
+
60
+ | Category | Technology | Version | Why |
61
+ |----------|-----------|---------|-----|
62
+ | Framework | Next.js | 14.x | Best for SEO + API routes built-in |
63
+ | Database | Supabase | latest | Postgres + auth + realtime + storage |
64
+ | Auth | Supabase Auth | latest | Included in Supabase, full OAuth support |
65
+ | UI Components | shadcn/ui | latest | Headless, fully customizable |
66
+ | Styling | Tailwind CSS | 3.x | Utility-first, pairs with shadcn |
67
+ | State | Zustand | 4.x | Minimal, no boilerplate |
68
+ | Deploy | Vercel | latest | One-click Next.js deploys |
69
+
70
+ ### Out of Scope (v1)
71
+ - {feature or technology explicitly excluded}
72
+ - {reason}
73
+
74
+ ### Known Constraints
75
+ - {any version pins or compatibility notes}
76
+ ```
77
+
78
+ Ask: "Does this stack work for you? Once confirmed, it goes into REQUIREMENTS.md and is locked."
79
+
80
+ After approval, use the `requirements-lock` skill to write and lock REQUIREMENTS.md.
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: "tester"
3
+ description: "Runs L1-L4 quality checks across the full application before deployment."
4
+ triggered_by: ["/test"]
5
+ skills: ["run-tests"]
6
+ ---
7
+
8
+ # Tester Agent
9
+
10
+ ## Role
11
+
12
+ You are a QA engineer and quality assurance specialist.
13
+ Your job is to find and document every defect before the application goes live.
14
+
15
+ **You test. You do not deploy (unless you're also the deployer).**
16
+
17
+ ## Testing Methodology
18
+
19
+ ### L1 — Syntax & Build
20
+ Primary check: nothing broken statically.
21
+
22
+ ```bash
23
+ # Run these (adapt to the project's package manager):
24
+ npm run build
25
+ npm run typecheck # or tsc --noEmit
26
+ npm run lint
27
+ ```
28
+
29
+ Pass criteria:
30
+ - [ ] Build exits with code 0
31
+ - [ ] Zero TypeScript errors
32
+ - [ ] Zero ESLint errors (warnings OK)
33
+
34
+ ### L2 — Feature Functionality
35
+ Test each feature in STRUCTURE.md.
36
+
37
+ For each feature:
38
+ 1. Describe what "working" means
39
+ 2. Try the happy path
40
+ 3. Try the failure path (bad input, network error, empty state)
41
+ 4. Check edge cases
42
+
43
+ Common failures to look for:
44
+ - Empty state not handled (shows blank or crashes instead of "no data" message)
45
+ - Form submits with invalid data
46
+ - Navigation doesn't update correctly
47
+ - Auth check missing on protected route
48
+
49
+ ### L3 — Integration
50
+ Test features working together as a system.
51
+
52
+ Scenarios to test:
53
+ 1. **New user flow**: Sign up → verify → first action → see expected result
54
+ 2. **Returning user flow**: Sign in → pick up where they left off
55
+ 3. **Data flow**: Create → list → update → delete (full CRUD if applicable)
56
+ 4. **Auth gates**: Try accessing protected routes without being signed in
57
+ 5. **API error handling**: What happens when the server is slow or returns an error?
58
+
59
+ ### L4 — Quality
60
+ Final polish checks before deploy.
61
+
62
+ - [ ] Mobile responsive (test at 375px, 768px, 1280px if web)
63
+ - [ ] Loading states visible during async operations
64
+ - [ ] Error messages are user-friendly (not stack traces)
65
+ - [ ] No `console.log` in production code
66
+ - [ ] Environment variables use `.env` (not hardcoded)
67
+ - [ ] No credentials in code
68
+ - [ ] Images have alt text
69
+ - [ ] Buttons have accessible labels
70
+
71
+ ## Defect Reporting
72
+
73
+ For each issue found:
74
+
75
+ ```
76
+ [{Level}] {Short description}
77
+
78
+ File: {file path}:{line number}
79
+ Steps to reproduce:
80
+ 1. {step}
81
+ 2. {step}
82
+
83
+ Expected: {what should happen}
84
+ Actual: {what happened}
85
+
86
+ Severity: Critical / High / Medium / Low
87
+ Fix: {suggested fix if obvious}
88
+ ```
89
+
90
+ ## Test Report
91
+
92
+ After all levels complete, generate a full test report (see `/test` workflow for format).
93
+
94
+ ## Working with Debugger
95
+
96
+ When a bug needs fixing:
97
+ 1. Write the defect report
98
+ 2. Spawn the `debugger` agent with the full defect report
99
+ 3. Wait for fix
100
+ 4. Re-test the specific issue to confirm fix
101
+
102
+ Do not fix bugs yourself — that's the debugger's domain.
package/bin/install.js ADDED
@@ -0,0 +1,142 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * ateschh-kit installer
5
+ * Usage: npx ateschh-kit [target-directory]
6
+ */
7
+
8
+ const fs = require('fs')
9
+ const path = require('path')
10
+ const { execSync } = require('child_process')
11
+
12
+ // ── Helpers ─────────────────────────────────────────────────────────────────
13
+
14
+ function log(msg) { console.log(msg) }
15
+ function success(msg) { console.log(`\x1b[32m✅ ${msg}\x1b[0m`) }
16
+ function info(msg) { console.log(`\x1b[36mℹ ${msg}\x1b[0m`) }
17
+ function warn(msg) { console.log(`\x1b[33m⚠ ${msg}\x1b[0m`) }
18
+ function error(msg) { console.error(`\x1b[31m✗ ${msg}\x1b[0m`) }
19
+
20
+ function copyDir(src, dest) {
21
+ if (!fs.existsSync(dest)) {
22
+ fs.mkdirSync(dest, { recursive: true })
23
+ }
24
+ const entries = fs.readdirSync(src, { withFileTypes: true })
25
+ for (const entry of entries) {
26
+ const srcPath = path.join(src, entry.name)
27
+ const destPath = path.join(dest, entry.name)
28
+ if (entry.isDirectory()) {
29
+ copyDir(srcPath, destPath)
30
+ } else {
31
+ fs.copyFileSync(srcPath, destPath)
32
+ }
33
+ }
34
+ }
35
+
36
+ function copyFile(src, dest) {
37
+ const destDir = path.dirname(dest)
38
+ if (!fs.existsSync(destDir)) {
39
+ fs.mkdirSync(destDir, { recursive: true })
40
+ }
41
+ fs.copyFileSync(src, dest)
42
+ }
43
+
44
+ // ── Main ─────────────────────────────────────────────────────────────────────
45
+
46
+ async function main() {
47
+ const args = process.argv.slice(2)
48
+ const targetDir = args[0] ? path.resolve(args[0]) : process.cwd()
49
+ const kitDir = path.resolve(__dirname, '..')
50
+
51
+ log('')
52
+ log('\x1b[1m🚀 ateschh-kit installer\x1b[0m')
53
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━')
54
+ log(`Installing to: ${targetDir}`)
55
+ log('')
56
+
57
+ // Check if already installed
58
+ if (fs.existsSync(path.join(targetDir, 'CLAUDE.md'))) {
59
+ warn('CLAUDE.md already exists in this directory.')
60
+ warn('Use --force to overwrite.')
61
+ if (!args.includes('--force')) {
62
+ process.exit(0)
63
+ }
64
+ }
65
+
66
+ try {
67
+ // Copy core files
68
+ info('Copying CLAUDE.md...')
69
+ copyFile(path.join(kitDir, 'CLAUDE.md'), path.join(targetDir, 'CLAUDE.md'))
70
+
71
+ info('Copying .claude/rules/ ...')
72
+ copyDir(path.join(kitDir, '.claude'), path.join(targetDir, '.claude'))
73
+
74
+ info('Copying workflows/ ...')
75
+ copyDir(path.join(kitDir, 'workflows'), path.join(targetDir, 'workflows'))
76
+
77
+ info('Copying agents/ ...')
78
+ copyDir(path.join(kitDir, 'agents'), path.join(targetDir, 'agents'))
79
+
80
+ info('Copying skills/ ...')
81
+ copyDir(path.join(kitDir, 'skills'), path.join(targetDir, 'skills'))
82
+
83
+ info('Copying templates/ ...')
84
+ copyDir(path.join(kitDir, 'templates'), path.join(targetDir, 'templates'))
85
+
86
+ // Create runtime directories
87
+ const dirs = ['.state', 'projects', 'archive']
88
+ for (const dir of dirs) {
89
+ const dirPath = path.join(targetDir, dir)
90
+ if (!fs.existsSync(dirPath)) {
91
+ fs.mkdirSync(dirPath, { recursive: true })
92
+ info(`Created ${dir}/`)
93
+ }
94
+ }
95
+
96
+ // Create .gitignore additions
97
+ const gitignorePath = path.join(targetDir, '.gitignore')
98
+ const gitignoreAdditions = `
99
+ # ateschh-kit runtime files
100
+ .state/
101
+ projects/
102
+ archive/
103
+ `
104
+ if (fs.existsSync(gitignorePath)) {
105
+ const existing = fs.readFileSync(gitignorePath, 'utf8')
106
+ if (!existing.includes('.state/')) {
107
+ fs.appendFileSync(gitignorePath, gitignoreAdditions)
108
+ info('Updated .gitignore')
109
+ }
110
+ } else {
111
+ fs.writeFileSync(gitignorePath, gitignoreAdditions.trim() + '\n')
112
+ info('Created .gitignore')
113
+ }
114
+
115
+ // Create initial ACTIVE-PROJECT.md
116
+ const activeProjectPath = path.join(targetDir, '.state', 'ACTIVE-PROJECT.md')
117
+ if (!fs.existsSync(activeProjectPath)) {
118
+ fs.writeFileSync(activeProjectPath, `# Active Project\n\n(No active project)\n\nRun \`/new-project\` to get started.\n`)
119
+ }
120
+
121
+ log('')
122
+ log('━━━━━━━━━━━━━━━━━━━━━━━━━')
123
+ success('ateschh-kit installed!')
124
+ log('')
125
+ log('Next steps:')
126
+ log(' 1. Open this directory in Claude Code or Antigravity')
127
+ log(' 2. Type: /new-project')
128
+ log(' 3. Describe your idea')
129
+ log('')
130
+ log('Available commands:')
131
+ log(' /new-project /brainstorm /requirements')
132
+ log(' /design /build /test /deploy')
133
+ log(' /next /quick /status /map-codebase')
134
+ log('')
135
+
136
+ } catch (err) {
137
+ error(`Installation failed: ${err.message}`)
138
+ process.exit(1)
139
+ }
140
+ }
141
+
142
+ main()
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "ateschh-kit",
3
+ "version": "1.0.0",
4
+ "description": "A structured AI development system for Claude Code and Antigravity",
5
+ "keywords": [
6
+ "claude",
7
+ "claude-code",
8
+ "antigravity",
9
+ "ai",
10
+ "development",
11
+ "workflow",
12
+ "agents",
13
+ "cursor",
14
+ "windsurf"
15
+ ],
16
+ "homepage": "https://github.com/ateschh/ateschh-kit",
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/ateschh/ateschh-kit.git"
20
+ },
21
+ "license": "MIT",
22
+ "bin": {
23
+ "ateschh-kit": "bin/install.js"
24
+ },
25
+ "scripts": {
26
+ "test": "echo \"No automated tests yet\""
27
+ },
28
+ "engines": {
29
+ "node": ">=18.0.0"
30
+ },
31
+ "files": [
32
+ "bin/",
33
+ "agents/",
34
+ "skills/",
35
+ "workflows/",
36
+ "templates/",
37
+ ".claude/",
38
+ "CLAUDE.md",
39
+ "ARCHITECTURE.md",
40
+ "README.md",
41
+ "README.tr.md",
42
+ "CHANGELOG.md",
43
+ "CONTRIBUTING.md",
44
+ "LICENSE"
45
+ ]
46
+ }
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: "architecture-design"
3
+ description: "Creates STRUCTURE.md (pages/features) and DESIGN.md (visual system), and PLAN.md (task list)"
4
+ used_by: ["architect", "designer"]
5
+ ---
6
+
7
+ # Skill: Architecture & Design
8
+
9
+ ## Purpose
10
+
11
+ Produce three locked documents that define what will be built and how it will look.
12
+
13
+ ## Outputs
14
+
15
+ 1. **STRUCTURE.md** — App structure, pages, features, navigation (architect produces this)
16
+ 2. **DESIGN.md** — Colors, typography, spacing, component style (designer produces this)
17
+ 3. **PLAN.md** — Ordered task list derived from STRUCTURE.md (architect produces this)
18
+
19
+ ## STRUCTURE.md Template
20
+
21
+ ```markdown
22
+ # App Structure — {project name}
23
+
24
+ **Status**: APPROVED ✅
25
+ **Approved on**: {date}
26
+
27
+ ## Golden Path
28
+ {start screen} → {core action} → {success state}
29
+
30
+ ## Auth Boundary
31
+ - **Public**: {list of public pages}
32
+ - **Protected**: {list of protected pages}
33
+
34
+ ## Pages
35
+
36
+ ### {page-name}
37
+ **Route**: /{route} (or Screen: {name} for mobile)
38
+ **Purpose**: {one sentence}
39
+
40
+ **Must-have (MVP)**:
41
+ - {feature}
42
+ - {feature}
43
+
44
+ **Nice-to-have (v2)**:
45
+ - {feature}
46
+
47
+ **Data**:
48
+ - Reads: {data sources}
49
+ - Writes: {what is created/modified}
50
+
51
+ ---
52
+ {repeat for each page}
53
+
54
+ ## Navigation
55
+ {Describe how pages connect — list or diagram}
56
+
57
+ ## API Routes (if applicable)
58
+ - `GET /api/{resource}` — {purpose}
59
+ - `POST /api/{resource}` — {purpose}
60
+ ```
61
+
62
+ ## PLAN.md Template
63
+
64
+ ```markdown
65
+ # Build Plan — {project name}
66
+
67
+ **Status**: APPROVED ✅
68
+ **Approved on**: {date}
69
+
70
+ ## Phase 4 — Build Tasks
71
+
72
+ ### 🛠 Setup
73
+ - [ ] Initialize {framework} project
74
+ - [ ] Install all dependencies from REQUIREMENTS.md
75
+ - [ ] Configure environment variables
76
+ - [ ] Set up database schema
77
+
78
+ ### 📄 {Page/Feature Name} — {S/M/L}
79
+ - [ ] {specific task}
80
+ - [ ] {specific task}
81
+
82
+ ### 📄 {Page/Feature Name}
83
+ - [ ] {specific task}
84
+
85
+ ### 🔗 Integration
86
+ - [ ] End-to-end auth flow
87
+ - [ ] API connections tested
88
+ - [ ] Final responsive pass
89
+
90
+ ## Sizing Guide
91
+ S = ~15 min | M = ~30 min | L = ~1 hour
92
+ ```
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: "context-management"
3
+ description: "Save and restore project context across sessions and platforms"
4
+ used_by: ["orchestrator (main session)"]
5
+ ---
6
+
7
+ # Skill: Context Management
8
+
9
+ ## Purpose
10
+
11
+ Prevent context rot and enable seamless continuation across sessions or platforms.
12
+
13
+ ## Save Protocol
14
+
15
+ ### When to Save
16
+
17
+ - Before ending a session
18
+ - When context > 50% full (DEGRADING zone)
19
+ - Before switching to another AI platform
20
+
21
+ ### What to Save
22
+
23
+ 1. **Session file** (`projects/{name}/sessions/session-NNN.md`):
24
+ - What was done this session
25
+ - Current phase and task
26
+ - Files changed
27
+ - Decisions made
28
+ - Blockers or open questions
29
+
30
+ 2. **Active context** (`.state/ACTIVE_CONTEXT.md`):
31
+ - 1-page summary of current project state
32
+ - Written for a fresh session to pick up immediately
33
+
34
+ 3. **Session log** (`.state/SESSION-LOG.md`):
35
+ - One-line entry per session
36
+ - Running history of all work
37
+
38
+ ### ACTIVE_CONTEXT.md Format
39
+
40
+ ```markdown
41
+ # Active Context — {date} {time}
42
+
43
+ **Project**: {name}
44
+ **Phase**: {N}/6 — {phase name}
45
+
46
+ ## Status in 3 lines
47
+ - Done: {last completed task}
48
+ - Next: {very next task}
49
+ - Blocked: {blocker or "None"}
50
+
51
+ ## What's been built
52
+ {bullet list of completed features}
53
+
54
+ ## Key decisions (don't re-discuss)
55
+ - {decision}: {why}
56
+
57
+ ## Important file locations
58
+ - Requirements: projects/{name}/REQUIREMENTS.md
59
+ - Design: projects/{name}/DESIGN.md
60
+ - Plan: projects/{name}/PLAN.md
61
+ ```
62
+
63
+ ## Restore Protocol
64
+
65
+ ### On `/resume`
66
+
67
+ 1. Read `.state/ACTIVE_CONTEXT.md` (primary source)
68
+ 2. Read `projects/{name}/STATE.md` (current progress)
69
+ 3. Read latest session file (recent decisions)
70
+ 4. Summarize to user in 3 lines
71
+ 5. Ask: "Continue with {next task}?"
72
+
73
+ ### Cross-Platform (Claude Code ↔ Antigravity)
74
+
75
+ Both platforms read the same file system.
76
+ The only difference is `MEMORY.md` behavior:
77
+ - **Claude Code**: add `MEMORY.md` path to Claude's memory
78
+ - **Antigravity**: the context-agent handles memory automatically
79
+
80
+ Either way, `/save` + `/resume` handles the transition.
81
+
82
+ ## Context Health Monitoring
83
+
84
+ | Zone | Token Usage | Action |
85
+ |------|------------|--------|
86
+ | PEAK | 0–30% | Normal |
87
+ | GOOD | 30–50% | Prefer delegation |
88
+ | DEGRADING | 50–70% | Warn user, checkpoint |
89
+ | POOR | 70%+ | `/save` immediately |
90
+
91
+ At DEGRADING: "Context window is getting full — I recommend running `/save` soon."
92
+ At POOR: Stop, run `/save`, ask user to start new session.
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: "fix-bugs"
3
+ description: "Root cause diagnosis and minimal targeted fix for reported defects"
4
+ used_by: ["debugger"]
5
+ ---
6
+
7
+ # Skill: Fix Bugs
8
+
9
+ ## Process
10
+
11
+ ### 1. Reproduce
12
+
13
+ Follow the exact steps from the defect report.
14
+ If you can't reproduce: ask for more context. Never fix what you can't see.
15
+
16
+ ### 2. Isolate
17
+
18
+ | Question | Why it matters |
19
+ |----------|---------------|
20
+ | Frontend or backend? | Narrows search space |
21
+ | Every time or sometimes? | Suggests race condition or state issue |
22
+ | After what action? | Points to the trigger |
23
+ | Only for certain users? | Suggests auth/permission problem |
24
+
25
+ ### 3. Diagnose
26
+
27
+ Common patterns:
28
+
29
+ | Symptom | Root cause |
30
+ |---------|-----------|
31
+ | `undefined is not an object` | Missing null check or async race |
32
+ | `401 Unauthorized` | Token expired or header wrong |
33
+ | Infinite re-render | `useEffect` dependency instability |
34
+ | Data doesn't update | Cache stale, state not invalidated |
35
+ | CORS error | Server missing CORS header |
36
+ | Build fails | Env var missing, version conflict |
37
+ | Hydration mismatch | Server vs client render difference |
38
+
39
+ ### 4. Fix
40
+
41
+ Minimal and targeted:
42
+ - Fix the root cause (not a workaround)
43
+ - Touch as few files as possible
44
+ - Don't add features or refactor while fixing
45
+
46
+ ### 5. Verify
47
+
48
+ - Re-run reproduction steps → bug gone
49
+ - Run L1 → build still clean
50
+ - Check adjacent code for same pattern
51
+
52
+ ### 6. Escalate if Stuck
53
+
54
+ After 2 attempts with no fix:
55
+ ```
56
+ I've tried:
57
+ 1. {attempt}: {result}
58
+ 2. {attempt}: {result}
59
+
60
+ The issue appears to be: {hypothesis}
61
+
62
+ Options:
63
+ A. {option}: {tradeoff}
64
+ B. {option}: {tradeoff}
65
+
66
+ Which should I try?
67
+ ```
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: "idea-analysis"
3
+ description: "5-question Socratic analysis to validate an idea before building"
4
+ used_by: ["idea-analyst"]
5
+ ---
6
+
7
+ # Skill: Idea Analysis
8
+
9
+ ## Purpose
10
+
11
+ Deeply understand an idea before committing to any technology or design decisions.
12
+
13
+ ## The 5 Questions
14
+
15
+ Ask one at a time. Read the answer carefully before asking the next.
16
+
17
+ ```
18
+ Q1 — PROBLEM
19
+ "What specific problem does this solve? Who experiences this daily?"
20
+
21
+ Q2 — ROOT CAUSE
22
+ "Why does this problem exist? Why hasn't someone already fixed it?"
23
+
24
+ Q3 — SOLUTION
25
+ "Why is your approach better than current alternatives?"
26
+
27
+ Q4 — TARGET USER
28
+ "Who is the exact person who would use this? Describe them specifically."
29
+
30
+ Q5 — SUCCESS
31
+ "What does success look like in 6 months? How would you measure it?"
32
+ ```
33
+
34
+ ## Evaluation Criteria
35
+
36
+ After all 5 answers:
37
+
38
+ | Signal | Green | Red |
39
+ |--------|-------|-----|
40
+ | Problem clarity | Specific, real pain | Vague, hypothetical |
41
+ | Market | Users exist now | "Everyone would want this" |
42
+ | Differentiation | Clear advantage | "Like X but better" |
43
+ | Success | Measurable metric | "Lots of users" |
44
+ | Scope | Achievable v1 | Requires everything at once |
45
+
46
+ ## Output Template
47
+
48
+ ```markdown
49
+ ## Idea Analysis — {date}
50
+
51
+ **Verdict**: ✅ Strong / ⚠️ Needs clarity / ❌ Fundamental issue
52
+
53
+ ### Core Problem
54
+ {1-2 sentences}
55
+
56
+ ### Target User
57
+ {specific persona with pain point}
58
+
59
+ ### Solution
60
+ {what this does differently}
61
+
62
+ ### Value Proposition
63
+ {why users will choose this}
64
+
65
+ ### Success Metrics
66
+ {measurable outcomes}
67
+
68
+ ### Key Risks
69
+ 1. {risk}
70
+ 2. {risk}
71
+ ```