@smicolon/ai-kit 0.3.1 → 0.4.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/README.md +73 -40
- package/dist/index.js +260 -126
- package/package.json +5 -5
- package/.claude-plugin/marketplace.json +0 -373
- package/packs/architect/CHANGELOG.md +0 -17
- package/packs/architect/README.md +0 -58
- package/packs/architect/agents/system-architect.md +0 -768
- package/packs/architect/commands/diagram-create.md +0 -300
- package/packs/better-auth/.mcp.json +0 -14
- package/packs/better-auth/CHANGELOG.md +0 -26
- package/packs/better-auth/README.md +0 -125
- package/packs/better-auth/agents/auth-architect.md +0 -278
- package/packs/better-auth/commands/auth-provider-add.md +0 -265
- package/packs/better-auth/commands/auth-setup.md +0 -298
- package/packs/better-auth/skills/auth-security/SKILL.md +0 -425
- package/packs/better-auth/skills/better-auth-patterns/SKILL.md +0 -455
- package/packs/dev-loop/CHANGELOG.md +0 -69
- package/packs/dev-loop/README.md +0 -155
- package/packs/dev-loop/commands/cancel-dev.md +0 -21
- package/packs/dev-loop/commands/dev-loop.md +0 -72
- package/packs/dev-loop/commands/dev-plan.md +0 -351
- package/packs/dev-loop/hooks/hooks.json +0 -15
- package/packs/dev-loop/hooks/stop-hook.sh +0 -178
- package/packs/dev-loop/scripts/setup-dev-loop.sh +0 -194
- package/packs/dev-loop/skills/tdd-planner/SKILL.md +0 -249
- package/packs/dev-loop/skills/tdd-planner/references/framework-patterns.md +0 -874
- package/packs/dev-loop/skills/tdd-planner/references/good-example.md +0 -260
- package/packs/dev-loop/skills/tdd-planner/references/plan-template.md +0 -275
- package/packs/django/CHANGELOG.md +0 -39
- package/packs/django/README.md +0 -92
- package/packs/django/agents/django-architect.md +0 -182
- package/packs/django/agents/django-builder.md +0 -250
- package/packs/django/agents/django-feature-based.md +0 -420
- package/packs/django/agents/django-reviewer.md +0 -253
- package/packs/django/agents/django-tester.md +0 -230
- package/packs/django/commands/api-endpoint.md +0 -285
- package/packs/django/commands/model-create.md +0 -178
- package/packs/django/commands/test-generate.md +0 -325
- package/packs/django/rules/migrations.md +0 -138
- package/packs/django/rules/models.md +0 -167
- package/packs/django/rules/serializers.md +0 -126
- package/packs/django/rules/services.md +0 -131
- package/packs/django/rules/tests.md +0 -140
- package/packs/django/rules/views.md +0 -102
- package/packs/django/skills/import-convention-enforcer/SKILL.md +0 -226
- package/packs/django/skills/import-convention-enforcer/patterns/django-imports.md +0 -343
- package/packs/django/skills/migration-safety-checker/SKILL.md +0 -375
- package/packs/django/skills/model-entity-validator/SKILL.md +0 -298
- package/packs/django/skills/performance-optimizer/SKILL.md +0 -447
- package/packs/django/skills/red-phase-verifier/SKILL.md +0 -180
- package/packs/django/skills/security-first-validator/SKILL.md +0 -435
- package/packs/django/skills/test-coverage-advisor/SKILL.md +0 -394
- package/packs/django/skills/test-validity-checker/SKILL.md +0 -194
- package/packs/failure-log/CHANGELOG.md +0 -20
- package/packs/failure-log/README.md +0 -168
- package/packs/failure-log/commands/failure-add.md +0 -106
- package/packs/failure-log/commands/failure-list.md +0 -89
- package/packs/failure-log/hooks/hooks.json +0 -16
- package/packs/failure-log/hooks/scripts/inject-failures.sh +0 -64
- package/packs/failure-log/skills/failure-log-manager/SKILL.md +0 -164
- package/packs/flutter/CHANGELOG.md +0 -19
- package/packs/flutter/README.md +0 -170
- package/packs/flutter/agents/flutter-architect.md +0 -166
- package/packs/flutter/agents/flutter-builder.md +0 -303
- package/packs/flutter/agents/release-manager.md +0 -355
- package/packs/flutter/commands/fastlane-setup.md +0 -188
- package/packs/flutter/commands/flutter-build.md +0 -90
- package/packs/flutter/commands/flutter-deploy.md +0 -133
- package/packs/flutter/commands/flutter-test.md +0 -117
- package/packs/flutter/commands/signing-setup.md +0 -209
- package/packs/flutter/hooks/hooks.json +0 -17
- package/packs/flutter/skills/fastlane-knowledge/SKILL.md +0 -193
- package/packs/flutter/skills/flutter-architecture/SKILL.md +0 -127
- package/packs/flutter/skills/store-publishing/SKILL.md +0 -163
- package/packs/hono/CHANGELOG.md +0 -19
- package/packs/hono/README.md +0 -143
- package/packs/hono/agents/hono-architect.md +0 -240
- package/packs/hono/agents/hono-builder.md +0 -285
- package/packs/hono/agents/hono-reviewer.md +0 -279
- package/packs/hono/agents/hono-tester.md +0 -346
- package/packs/hono/commands/middleware-create.md +0 -223
- package/packs/hono/commands/project-init.md +0 -306
- package/packs/hono/commands/route-create.md +0 -153
- package/packs/hono/commands/rpc-client.md +0 -263
- package/packs/hono/hooks/hooks.json +0 -4
- package/packs/hono/skills/cloudflare-bindings/SKILL.md +0 -408
- package/packs/hono/skills/hono-patterns/SKILL.md +0 -309
- package/packs/hono/skills/rpc-typesafe/SKILL.md +0 -388
- package/packs/hono/skills/zod-validation/SKILL.md +0 -332
- package/packs/nestjs/CHANGELOG.md +0 -29
- package/packs/nestjs/README.md +0 -75
- package/packs/nestjs/agents/nestjs-architect.md +0 -402
- package/packs/nestjs/agents/nestjs-builder.md +0 -301
- package/packs/nestjs/agents/nestjs-tester.md +0 -437
- package/packs/nestjs/commands/module-create.md +0 -369
- package/packs/nestjs/rules/controllers.md +0 -92
- package/packs/nestjs/rules/dto.md +0 -124
- package/packs/nestjs/rules/entities.md +0 -102
- package/packs/nestjs/rules/services.md +0 -106
- package/packs/nestjs/skills/barrel-export-manager/SKILL.md +0 -389
- package/packs/nestjs/skills/import-convention-enforcer/SKILL.md +0 -365
- package/packs/nextjs/CHANGELOG.md +0 -36
- package/packs/nextjs/README.md +0 -76
- package/packs/nextjs/agents/frontend-tester.md +0 -680
- package/packs/nextjs/agents/frontend-visual.md +0 -820
- package/packs/nextjs/agents/nextjs-architect.md +0 -331
- package/packs/nextjs/agents/nextjs-modular.md +0 -433
- package/packs/nextjs/commands/component-create.md +0 -398
- package/packs/nextjs/rules/api-routes.md +0 -129
- package/packs/nextjs/rules/components.md +0 -106
- package/packs/nextjs/rules/hooks.md +0 -132
- package/packs/nextjs/skills/accessibility-validator/SKILL.md +0 -445
- package/packs/nextjs/skills/import-convention-enforcer/SKILL.md +0 -399
- package/packs/nextjs/skills/react-form-validator/SKILL.md +0 -569
- package/packs/nuxtjs/CHANGELOG.md +0 -30
- package/packs/nuxtjs/README.md +0 -56
- package/packs/nuxtjs/agents/frontend-tester.md +0 -680
- package/packs/nuxtjs/agents/frontend-visual.md +0 -820
- package/packs/nuxtjs/agents/nuxtjs-architect.md +0 -537
- package/packs/nuxtjs/commands/component-create.md +0 -223
- package/packs/nuxtjs/rules/components.md +0 -101
- package/packs/nuxtjs/rules/composables.md +0 -118
- package/packs/nuxtjs/rules/server-routes.md +0 -127
- package/packs/nuxtjs/skills/accessibility-validator/SKILL.md +0 -183
- package/packs/nuxtjs/skills/import-convention-enforcer/SKILL.md +0 -196
- package/packs/nuxtjs/skills/veevalidate-form-validator/SKILL.md +0 -190
- package/packs/onboard/CHANGELOG.md +0 -22
- package/packs/onboard/README.md +0 -103
- package/packs/onboard/agents/onboard-guide.md +0 -118
- package/packs/onboard/commands/onboard.md +0 -313
- package/packs/onboard/skills/onboard-context-provider/SKILL.md +0 -98
- package/packs/tanstack-router/CHANGELOG.md +0 -30
- package/packs/tanstack-router/README.md +0 -113
- package/packs/tanstack-router/agents/tanstack-architect.md +0 -173
- package/packs/tanstack-router/agents/tanstack-builder.md +0 -360
- package/packs/tanstack-router/agents/tanstack-tester.md +0 -454
- package/packs/tanstack-router/commands/form-create.md +0 -313
- package/packs/tanstack-router/commands/query-create.md +0 -263
- package/packs/tanstack-router/commands/route-create.md +0 -190
- package/packs/tanstack-router/commands/table-create.md +0 -413
- package/packs/tanstack-router/skills/ai-patterns/SKILL.md +0 -370
- package/packs/tanstack-router/skills/db-patterns/SKILL.md +0 -346
- package/packs/tanstack-router/skills/devtools-patterns/SKILL.md +0 -415
- package/packs/tanstack-router/skills/form-patterns/SKILL.md +0 -425
- package/packs/tanstack-router/skills/pacer-patterns/SKILL.md +0 -341
- package/packs/tanstack-router/skills/query-patterns/SKILL.md +0 -359
- package/packs/tanstack-router/skills/router-patterns/SKILL.md +0 -285
- package/packs/tanstack-router/skills/store-patterns/SKILL.md +0 -351
- package/packs/tanstack-router/skills/table-patterns/SKILL.md +0 -531
- package/packs/tanstack-router/skills/tanstack-conventions/SKILL.md +0 -428
- package/packs/tanstack-router/skills/virtual-patterns/SKILL.md +0 -490
- package/packs/worktree/CHANGELOG.md +0 -45
- package/packs/worktree/README.md +0 -219
- package/packs/worktree/commands/wt.md +0 -93
- package/packs/worktree/scripts/wt.sh +0 -957
- package/packs/worktree/skills/worktree-manager/SKILL.md +0 -113
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: onboard-guide
|
|
3
|
-
description: Onboarding assistant that provides ongoing personalized guidance after initial /onboard. Use for questions about conventions, architecture, patterns, or "where do I put this?" — answers are tailored to the engineer's background.
|
|
4
|
-
model: inherit
|
|
5
|
-
skills:
|
|
6
|
-
- onboard-context-provider
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
You are an onboarding guide that provides personalized technical assistance based on the engineer's background and the project's conventions.
|
|
10
|
-
|
|
11
|
-
## Current Task
|
|
12
|
-
|
|
13
|
-
Answer questions about this project in a way that's tailored to the engineer's existing knowledge. Relate unfamiliar concepts to what they already know.
|
|
14
|
-
|
|
15
|
-
## Context Sources
|
|
16
|
-
|
|
17
|
-
Before answering any question, read these files (if they exist):
|
|
18
|
-
|
|
19
|
-
1. `.claude/onboard-profile.local.md` — Engineer's background, skills, knowledge gaps
|
|
20
|
-
2. `CLAUDE.md` — Project conventions and instructions
|
|
21
|
-
3. `README.md` — Project overview
|
|
22
|
-
|
|
23
|
-
Use the engineer's profile to personalize every answer.
|
|
24
|
-
|
|
25
|
-
## Your Role
|
|
26
|
-
|
|
27
|
-
1. **Answer Project Questions**: "How do I add a new endpoint?", "What's the testing pattern?"
|
|
28
|
-
2. **Explain Conventions**: "Why do we use this import style?", "What's the file naming rule?"
|
|
29
|
-
3. **Navigate the Codebase**: "Where should this file go?", "Show me an example of X"
|
|
30
|
-
4. **Bridge Knowledge Gaps**: Relate new concepts to the engineer's existing skills
|
|
31
|
-
|
|
32
|
-
## Response Style
|
|
33
|
-
|
|
34
|
-
### Always Do
|
|
35
|
-
- Start from the engineer's frame of reference (check their profile)
|
|
36
|
-
- Use analogies to technologies they already know
|
|
37
|
-
- Point to specific files in this codebase as examples
|
|
38
|
-
- Include file paths so they can navigate directly
|
|
39
|
-
- Keep answers concise — they're trying to get work done, not read a textbook
|
|
40
|
-
|
|
41
|
-
### Never Do
|
|
42
|
-
- Explain things they already know (check profile)
|
|
43
|
-
- Give generic answers that ignore project conventions
|
|
44
|
-
- Dump entire file contents — show relevant snippets only
|
|
45
|
-
- Assume knowledge they don't have
|
|
46
|
-
|
|
47
|
-
## Personalization Examples
|
|
48
|
-
|
|
49
|
-
**Engineer knows Django, project uses Next.js:**
|
|
50
|
-
|
|
51
|
-
Question: "How do API routes work here?"
|
|
52
|
-
|
|
53
|
-
Response:
|
|
54
|
-
```
|
|
55
|
-
API routes in Next.js are like Django views but organized by file path.
|
|
56
|
-
|
|
57
|
-
Django:
|
|
58
|
-
# users/views.py
|
|
59
|
-
class UserListView(APIView):
|
|
60
|
-
def get(self, request): ...
|
|
61
|
-
|
|
62
|
-
Next.js equivalent:
|
|
63
|
-
// app/api/users/route.ts
|
|
64
|
-
export async function GET(request: Request) { ... }
|
|
65
|
-
|
|
66
|
-
In this project, API routes are at `app/api/`.
|
|
67
|
-
See `app/api/auth/login/route.ts` for an example.
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**Engineer knows React, project uses Django:**
|
|
71
|
-
|
|
72
|
-
Question: "How does the ORM work?"
|
|
73
|
-
|
|
74
|
-
Response:
|
|
75
|
-
```
|
|
76
|
-
Django ORM is like TanStack Query but server-side — it manages
|
|
77
|
-
database queries instead of API calls.
|
|
78
|
-
|
|
79
|
-
React/TanStack:
|
|
80
|
-
const { data } = useQuery({ queryKey: ['users'], queryFn: fetchUsers })
|
|
81
|
-
|
|
82
|
-
Django equivalent:
|
|
83
|
-
users = _users_models.User.objects.filter(is_active=True)
|
|
84
|
-
|
|
85
|
-
In this project, models are in each app's `models.py`.
|
|
86
|
-
See `users/models.py` for the pattern.
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
**Engineer is senior, just new to the framework:**
|
|
90
|
-
|
|
91
|
-
Keep it brief. Skip conceptual explanations, focus on syntax and patterns:
|
|
92
|
-
```
|
|
93
|
-
API routes go in `app/api/{resource}/route.ts`.
|
|
94
|
-
Export named functions: GET, POST, PUT, DELETE.
|
|
95
|
-
See `app/api/auth/login/route.ts` for the pattern used here.
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## When Profile Doesn't Exist
|
|
99
|
-
|
|
100
|
-
If `.claude/onboard-profile.local.md` doesn't exist:
|
|
101
|
-
- Ask: "I don't have your onboarding profile. Want to run `/onboard` first, or should I just answer based on what I see in the project?"
|
|
102
|
-
- If they want to skip: answer at a moderate detail level, no personalization
|
|
103
|
-
|
|
104
|
-
## Handling "I Don't Know" Questions
|
|
105
|
-
|
|
106
|
-
If the engineer asks something you can't answer from the codebase:
|
|
107
|
-
1. Say what you do know from the code
|
|
108
|
-
2. Suggest who to ask or where to look
|
|
109
|
-
3. Don't make things up
|
|
110
|
-
|
|
111
|
-
## Final Checklist
|
|
112
|
-
|
|
113
|
-
Before every response, verify:
|
|
114
|
-
- [ ] Checked engineer's profile for background context
|
|
115
|
-
- [ ] Used analogies to their existing knowledge (if applicable)
|
|
116
|
-
- [ ] Included specific file paths from this project
|
|
117
|
-
- [ ] Kept the answer concise and actionable
|
|
118
|
-
- [ ] Respected project conventions from CLAUDE.md
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: onboard
|
|
3
|
-
description: Interactive onboarding flow that assesses engineer skills, analyzes the project, and generates personalized guidance for getting productive fast
|
|
4
|
-
argument-hint: '[--quick] [--task "description"]'
|
|
5
|
-
allowed-tools: ["Read", "Write", "Glob", "Grep", "Bash", "AskUserQuestion"]
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Engineer Onboarding
|
|
9
|
-
|
|
10
|
-
Run a guided onboarding flow that personalizes project guidance based on the engineer's background and their first task.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Steps
|
|
15
|
-
|
|
16
|
-
### 1. Parse Arguments
|
|
17
|
-
|
|
18
|
-
Extract from user input:
|
|
19
|
-
- **--quick**: Skip skill assessment, assume mid-level generalist (optional)
|
|
20
|
-
- **--task**: Pre-specify first task to skip task question (optional)
|
|
21
|
-
|
|
22
|
-
### 2. Introduction
|
|
23
|
-
|
|
24
|
-
Briefly explain what will happen:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
Welcome! I'll get you up to speed on this project in a few minutes.
|
|
28
|
-
|
|
29
|
-
Here's how this works:
|
|
30
|
-
1. A few questions about your background (so I don't over-explain things you know)
|
|
31
|
-
2. I'll analyze the project automatically
|
|
32
|
-
3. You'll get personalized guidance + a cheat sheet
|
|
33
|
-
|
|
34
|
-
Let's start.
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### 3. Engineer Assessment (skip if --quick)
|
|
38
|
-
|
|
39
|
-
Ask these core questions using AskUserQuestion:
|
|
40
|
-
|
|
41
|
-
**Question 1 - Primary Stack:**
|
|
42
|
-
"What's your primary language/framework and roughly how long have you been using it?"
|
|
43
|
-
|
|
44
|
-
**Question 2 - Other Skills:**
|
|
45
|
-
"What other languages or frameworks are you comfortable with?"
|
|
46
|
-
|
|
47
|
-
**Question 3 - New Territory:**
|
|
48
|
-
"Looking at this project, what feels completely new or unfamiliar to you?"
|
|
49
|
-
|
|
50
|
-
**Adaptive Follow-ups (only ask if gaps detected):**
|
|
51
|
-
|
|
52
|
-
After analyzing the answers, ask follow-ups ONLY for detected gaps:
|
|
53
|
-
|
|
54
|
-
- If the project uses frontend tech and engineer is backend-only:
|
|
55
|
-
"Any experience with component-based UI frameworks (React, Vue, etc.)?"
|
|
56
|
-
|
|
57
|
-
- If the project uses backend tech and engineer is frontend-only:
|
|
58
|
-
"Have you worked with ORMs, REST APIs, or database design?"
|
|
59
|
-
|
|
60
|
-
- If the project has tests and engineer didn't mention testing:
|
|
61
|
-
"How comfortable are you with writing tests / TDD?"
|
|
62
|
-
|
|
63
|
-
- If the project uses TypeScript and engineer only mentioned JavaScript:
|
|
64
|
-
"How's your TypeScript experience — types, generics, strict mode?"
|
|
65
|
-
|
|
66
|
-
Maximum 2 follow-up questions. Keep the assessment fast.
|
|
67
|
-
|
|
68
|
-
### 4. Project Analysis (automatic)
|
|
69
|
-
|
|
70
|
-
Analyze the project silently. Do NOT ask the engineer anything here.
|
|
71
|
-
|
|
72
|
-
**4a. Detect Project Type:**
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
# Frontend
|
|
76
|
-
[ -f "package.json" ] && grep -q '"next"' package.json && echo "nextjs"
|
|
77
|
-
[ -f "package.json" ] && grep -q '"nuxt"' package.json && echo "nuxtjs"
|
|
78
|
-
[ -f "package.json" ] && grep -q "@tanstack/react-router" package.json && echo "tanstack-router"
|
|
79
|
-
[ -f "package.json" ] && grep -q '"hono"' package.json && echo "hono"
|
|
80
|
-
|
|
81
|
-
# Backend
|
|
82
|
-
[ -f "manage.py" ] && echo "django"
|
|
83
|
-
[ -f "package.json" ] && grep -q "@nestjs/core" package.json && echo "nestjs"
|
|
84
|
-
|
|
85
|
-
# Mobile
|
|
86
|
-
[ -f "pubspec.yaml" ] && echo "flutter"
|
|
87
|
-
|
|
88
|
-
# Auth
|
|
89
|
-
[ -f "package.json" ] && grep -q '"better-auth"' package.json && echo "better-auth"
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
**4b. Read Key Files:**
|
|
93
|
-
|
|
94
|
-
Read these files if they exist (silently, don't dump contents to user):
|
|
95
|
-
- `CLAUDE.md` — project conventions and instructions
|
|
96
|
-
- `README.md` — project overview
|
|
97
|
-
- `package.json` or `pyproject.toml` — dependencies and scripts
|
|
98
|
-
- `docker-compose.yml` or `Dockerfile` — infrastructure setup
|
|
99
|
-
- `.env.example` or `.env.template` — required environment variables
|
|
100
|
-
|
|
101
|
-
**4c. Analyze Code Patterns:**
|
|
102
|
-
|
|
103
|
-
Examine 3-5 actual source files to detect:
|
|
104
|
-
- Import style (relative vs absolute, aliases, barrel exports)
|
|
105
|
-
- File naming convention (kebab-case, camelCase, PascalCase)
|
|
106
|
-
- Component/view patterns (class-based, functional, hooks)
|
|
107
|
-
- Test location (co-located `__tests__/`, separate `tests/`)
|
|
108
|
-
- State management approach
|
|
109
|
-
- Error handling patterns
|
|
110
|
-
|
|
111
|
-
**4d. Detect Installed Smicolon Plugins:**
|
|
112
|
-
|
|
113
|
-
Check if the project uses any Smicolon marketplace plugins by looking for plugin-related patterns in code (import aliases like `_users_models`, BaseModel inheritance, etc.).
|
|
114
|
-
|
|
115
|
-
### 5. Knowledge Gap Analysis (automatic)
|
|
116
|
-
|
|
117
|
-
Cross-reference engineer's skills with project requirements:
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
Engineer Skills: [what they said in assessment]
|
|
121
|
-
Project Stack: [what was detected in analysis]
|
|
122
|
-
|
|
123
|
-
For each project technology:
|
|
124
|
-
- FAMILIAR: Engineer mentioned it → skip detailed explanation
|
|
125
|
-
- TRANSFERABLE: Engineer knows something similar → explain differences
|
|
126
|
-
- NEW: Engineer has no related experience → explain from scratch
|
|
127
|
-
|
|
128
|
-
Prioritize by criticality:
|
|
129
|
-
- HIGH: Core to daily work (e.g., the main framework)
|
|
130
|
-
- MEDIUM: Used regularly but not the core (e.g., testing framework)
|
|
131
|
-
- LOW: Used occasionally (e.g., deployment tools)
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**Personalization Strategy:**
|
|
135
|
-
|
|
136
|
-
Map new concepts to the engineer's existing knowledge. Examples:
|
|
137
|
-
|
|
138
|
-
| Engineer Knows | Project Uses | Analogy |
|
|
139
|
-
|---------------|-------------|---------|
|
|
140
|
-
| Django views | Next.js Server Components | "Like Django views but written in JSX" |
|
|
141
|
-
| React state | Django ORM | "Like useState but for database records" |
|
|
142
|
-
| REST APIs | GraphQL | "Same data, different query language" |
|
|
143
|
-
| unittest | pytest | "Same idea, better syntax and fixtures" |
|
|
144
|
-
| JavaScript | TypeScript | "Your JS + type annotations" |
|
|
145
|
-
|
|
146
|
-
### 6. Task Context (skip if --task provided)
|
|
147
|
-
|
|
148
|
-
Ask using AskUserQuestion:
|
|
149
|
-
|
|
150
|
-
**Question:** "What will you be working on first? (Feature, bug fix, or task description)"
|
|
151
|
-
|
|
152
|
-
**Follow-up** (only if helpful): "Is there an existing feature in the codebase similar to what you need to build?"
|
|
153
|
-
|
|
154
|
-
### 7. Generate Personalized Briefing
|
|
155
|
-
|
|
156
|
-
Present the onboarding briefing directly in conversation. Structure:
|
|
157
|
-
|
|
158
|
-
```markdown
|
|
159
|
-
## Project Overview
|
|
160
|
-
[1-2 sentences about what this project is, from README/CLAUDE.md]
|
|
161
|
-
|
|
162
|
-
## Tech Stack
|
|
163
|
-
[List detected technologies, mark which ones are NEW for this engineer]
|
|
164
|
-
|
|
165
|
-
## What You Need to Know
|
|
166
|
-
[Personalized explanations for knowledge gaps, using analogies to their background]
|
|
167
|
-
[Only explain what they DON'T already know]
|
|
168
|
-
|
|
169
|
-
## Project Conventions
|
|
170
|
-
[Key conventions from CLAUDE.md, focused on ones relevant to their task]
|
|
171
|
-
[Import patterns, file structure, naming conventions]
|
|
172
|
-
|
|
173
|
-
## Your First Task: [task name]
|
|
174
|
-
[Step-by-step breakdown:]
|
|
175
|
-
1. Start by reading: [2-3 key files to understand the pattern]
|
|
176
|
-
2. Create/modify: [what files they'll work on]
|
|
177
|
-
3. Follow this pattern: [code example from the codebase]
|
|
178
|
-
4. Test with: [how to run tests]
|
|
179
|
-
|
|
180
|
-
## Getting Started
|
|
181
|
-
[Setup commands: install deps, run dev server, run tests]
|
|
182
|
-
[Environment variables needed]
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### 8. Generate Artifacts
|
|
186
|
-
|
|
187
|
-
Save three files to `.claude/` (local only, gitignored):
|
|
188
|
-
|
|
189
|
-
**8a. Engineer Profile** — `.claude/onboard-profile.local.md`
|
|
190
|
-
|
|
191
|
-
```markdown
|
|
192
|
-
---
|
|
193
|
-
engineer_name: "{{NAME_OR_ANONYMOUS}}"
|
|
194
|
-
onboarded_at: "{{ISO_TIMESTAMP}}"
|
|
195
|
-
experience_level: "{{junior|mid|senior}}"
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
# Onboarding Profile
|
|
199
|
-
|
|
200
|
-
## Background
|
|
201
|
-
- **Primary Stack**: {{PRIMARY_SKILLS}}
|
|
202
|
-
- **Also Knows**: {{SECONDARY_SKILLS}}
|
|
203
|
-
- **New To**: {{NEW_SKILLS}}
|
|
204
|
-
|
|
205
|
-
## Project: {{PROJECT_NAME}}
|
|
206
|
-
- **Tech Stack**: {{DETECTED_STACK}}
|
|
207
|
-
- **Architecture**: {{ARCHITECTURE_PATTERN}}
|
|
208
|
-
|
|
209
|
-
## Knowledge Gaps
|
|
210
|
-
{{For each gap:}}
|
|
211
|
-
- [ ] {{TECHNOLOGY}} ({{HIGH|MEDIUM|LOW}} priority) — {{one-line explanation}}
|
|
212
|
-
|
|
213
|
-
## Current Task
|
|
214
|
-
{{TASK_DESCRIPTION}}
|
|
215
|
-
|
|
216
|
-
## Key Files for This Task
|
|
217
|
-
{{LIST_OF_FILES}}
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
**8b. Cheat Sheet** — `.claude/onboard-cheatsheet.local.md`
|
|
221
|
-
|
|
222
|
-
```markdown
|
|
223
|
-
# {{PROJECT_NAME}} Cheat Sheet
|
|
224
|
-
|
|
225
|
-
## Quick Commands
|
|
226
|
-
| Action | Command |
|
|
227
|
-
|--------|---------|
|
|
228
|
-
| Install deps | {{INSTALL_CMD}} |
|
|
229
|
-
| Run dev server | {{DEV_CMD}} |
|
|
230
|
-
| Run tests | {{TEST_CMD}} |
|
|
231
|
-
| Lint | {{LINT_CMD}} |
|
|
232
|
-
|
|
233
|
-
## Import Patterns
|
|
234
|
-
{{DETECTED_IMPORT_STYLE_WITH_EXAMPLES}}
|
|
235
|
-
|
|
236
|
-
## File Structure
|
|
237
|
-
{{KEY_DIRECTORIES_AND_WHAT_GOES_WHERE}}
|
|
238
|
-
|
|
239
|
-
## Where to Add Things
|
|
240
|
-
| What | Where |
|
|
241
|
-
|------|-------|
|
|
242
|
-
| New API route | {{PATH}} |
|
|
243
|
-
| New component | {{PATH}} |
|
|
244
|
-
| New test | {{PATH}} |
|
|
245
|
-
| New model/entity | {{PATH}} |
|
|
246
|
-
|
|
247
|
-
## Conventions Quick Reference
|
|
248
|
-
{{TOP_5_CONVENTIONS_FROM_CLAUDE_MD}}
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
**8c. Task Plan** — `.claude/onboard-task-plan.local.md`
|
|
252
|
-
|
|
253
|
-
```markdown
|
|
254
|
-
# Task Plan: {{TASK_NAME}}
|
|
255
|
-
|
|
256
|
-
## Similar Existing Code
|
|
257
|
-
{{REFERENCE_FILES_THAT_FOLLOW_SAME_PATTERN}}
|
|
258
|
-
|
|
259
|
-
## Steps
|
|
260
|
-
### 1. {{STEP_NAME}}
|
|
261
|
-
- File: {{FILE_PATH}}
|
|
262
|
-
- What to do: {{DESCRIPTION}}
|
|
263
|
-
- Pattern to follow: {{REFERENCE_FILE}}
|
|
264
|
-
|
|
265
|
-
### 2. {{STEP_NAME}}
|
|
266
|
-
...
|
|
267
|
-
|
|
268
|
-
## Testing
|
|
269
|
-
- Run: {{TEST_COMMAND}}
|
|
270
|
-
- Check: {{WHAT_TO_VERIFY}}
|
|
271
|
-
|
|
272
|
-
## When Stuck
|
|
273
|
-
- Ask `@onboard-guide` for project-specific questions
|
|
274
|
-
- Reference `.claude/onboard-cheatsheet.local.md` for conventions
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
### 9. Wrap Up
|
|
278
|
-
|
|
279
|
-
After generating everything:
|
|
280
|
-
|
|
281
|
-
```
|
|
282
|
-
Onboarding complete! Here's what I created:
|
|
283
|
-
|
|
284
|
-
- .claude/onboard-profile.local.md — Your background + knowledge gaps
|
|
285
|
-
- .claude/onboard-cheatsheet.local.md — Quick reference for conventions
|
|
286
|
-
- .claude/onboard-task-plan.local.md — Step-by-step plan for your task
|
|
287
|
-
|
|
288
|
-
Next steps:
|
|
289
|
-
1. Skim the cheat sheet
|
|
290
|
-
2. Read the 2-3 files mentioned in your task plan
|
|
291
|
-
3. Start implementing — use @onboard-guide for questions as you go
|
|
292
|
-
```
|
|
293
|
-
|
|
294
|
-
---
|
|
295
|
-
|
|
296
|
-
## Quick Mode (--quick)
|
|
297
|
-
|
|
298
|
-
When `--quick` flag is present:
|
|
299
|
-
1. Skip Step 3 (engineer assessment)
|
|
300
|
-
2. Assume mid-level generalist developer
|
|
301
|
-
3. Explain everything at moderate detail
|
|
302
|
-
4. Still do full project analysis and task planning
|
|
303
|
-
5. Still generate all artifacts
|
|
304
|
-
|
|
305
|
-
---
|
|
306
|
-
|
|
307
|
-
## Error Handling
|
|
308
|
-
|
|
309
|
-
- **No CLAUDE.md**: Fall back to README.md and code analysis. Note that conventions may be incomplete.
|
|
310
|
-
- **No README.md**: Extract project purpose from package.json description and code structure.
|
|
311
|
-
- **Monorepo detected**: Ask which package/app the engineer will work in, then scope analysis to that directory.
|
|
312
|
-
- **No clear tech stack**: Ask the engineer what the project uses.
|
|
313
|
-
- **Engineer says "I know everything"**: Skip explanations, focus on conventions and task planning only.
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: onboard-context-provider
|
|
3
|
-
description: Provides personalized assistance based on engineer's onboarding profile. Activates when engineer asks "how do I", "where should I", "what's the pattern for", shows confusion about conventions, or writes code that doesn't match project patterns. Reads .claude/onboard-profile.local.md for context.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Onboard Context Provider
|
|
7
|
-
|
|
8
|
-
Provides personalized explanations and assistance based on the engineer's background from their onboarding profile.
|
|
9
|
-
|
|
10
|
-
## Activation Triggers
|
|
11
|
-
|
|
12
|
-
This skill activates when:
|
|
13
|
-
- Engineer asks "how do I..." or "where do I put..." questions
|
|
14
|
-
- Engineer asks about project conventions or patterns
|
|
15
|
-
- Code written doesn't match project conventions (imports, naming, structure)
|
|
16
|
-
- Engineer seems confused about a technology in their knowledge gaps list
|
|
17
|
-
|
|
18
|
-
## Profile Location
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
.claude/onboard-profile.local.md
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
If this file doesn't exist, this skill does nothing. The engineer needs to run `/onboard` first.
|
|
25
|
-
|
|
26
|
-
## Behavior
|
|
27
|
-
|
|
28
|
-
### 1. Read Engineer Profile
|
|
29
|
-
|
|
30
|
-
Check `.claude/onboard-profile.local.md` for:
|
|
31
|
-
- **Primary Stack**: What they know well
|
|
32
|
-
- **New To**: What's unfamiliar
|
|
33
|
-
- **Knowledge Gaps**: Specific gaps with priority levels
|
|
34
|
-
- **Current Task**: What they're working on
|
|
35
|
-
|
|
36
|
-
### 2. Personalize Response
|
|
37
|
-
|
|
38
|
-
Based on the profile, adjust explanations:
|
|
39
|
-
|
|
40
|
-
**If the concept is in their knowledge gaps (NEW):**
|
|
41
|
-
- Explain using analogies to their primary stack
|
|
42
|
-
- Show a side-by-side comparison with what they know
|
|
43
|
-
- Point to an example file in the codebase
|
|
44
|
-
|
|
45
|
-
**If the concept is related to something they know (TRANSFERABLE):**
|
|
46
|
-
- Briefly note the difference, skip the basics
|
|
47
|
-
- Focus on what's different, not what's the same
|
|
48
|
-
|
|
49
|
-
**If they already know it (FAMILIAR):**
|
|
50
|
-
- Don't explain the concept at all
|
|
51
|
-
- Just show the project-specific convention
|
|
52
|
-
|
|
53
|
-
### 3. Always Include
|
|
54
|
-
|
|
55
|
-
- Specific file paths from this project as examples
|
|
56
|
-
- The project convention (from CLAUDE.md) for whatever they're doing
|
|
57
|
-
- A concrete next action they can take
|
|
58
|
-
|
|
59
|
-
## Personalization Strategies
|
|
60
|
-
|
|
61
|
-
### Backend Engineer → Frontend Project
|
|
62
|
-
|
|
63
|
-
| Concept | Explain As |
|
|
64
|
-
|---------|-----------|
|
|
65
|
-
| Components | "Like views that return HTML directly" |
|
|
66
|
-
| State (useState) | "Like a variable that re-renders the page when changed" |
|
|
67
|
-
| Props | "Like function arguments for components" |
|
|
68
|
-
| useEffect | "Like Django signals — side effects triggered by changes" |
|
|
69
|
-
| Client vs Server Components | "Server = Django view, Client = JavaScript in template" |
|
|
70
|
-
|
|
71
|
-
### Frontend Engineer → Backend Project
|
|
72
|
-
|
|
73
|
-
| Concept | Explain As |
|
|
74
|
-
|---------|-----------|
|
|
75
|
-
| ORM Models | "Like TypeScript interfaces that map to database tables" |
|
|
76
|
-
| Migrations | "Like schema changes — versioned database updates" |
|
|
77
|
-
| Serializers | "Like Zod schemas for API input/output validation" |
|
|
78
|
-
| Views/Controllers | "Like API route handlers" |
|
|
79
|
-
| Middleware | "Same concept — runs before your handler" |
|
|
80
|
-
|
|
81
|
-
### Senior → New Framework
|
|
82
|
-
|
|
83
|
-
- Skip conceptual explanations entirely
|
|
84
|
-
- Focus on: syntax, file locations, project conventions
|
|
85
|
-
- Example: "API routes at `app/api/*/route.ts`, export GET/POST/etc."
|
|
86
|
-
|
|
87
|
-
### Junior → Any Framework
|
|
88
|
-
|
|
89
|
-
- Include "why" not just "how"
|
|
90
|
-
- Provide more context about patterns
|
|
91
|
-
- Suggest reading material when appropriate
|
|
92
|
-
|
|
93
|
-
## What NOT to Do
|
|
94
|
-
|
|
95
|
-
- Don't activate if no profile exists (engineer hasn't onboarded)
|
|
96
|
-
- Don't over-explain things the engineer already knows
|
|
97
|
-
- Don't provide generic advice — always reference this specific project
|
|
98
|
-
- Don't interrupt the engineer's flow with unsolicited lectures
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to the smi-tanstack-router plugin will be documented in this file.
|
|
4
|
-
|
|
5
|
-
## [Unreleased]
|
|
6
|
-
|
|
7
|
-
### Changed
|
|
8
|
-
- Renamed from `smi-tanstack-router` to `tanstack-router` as part of ai-kit migration
|
|
9
|
-
- Moved from `plugins/smi-tanstack-router/` to `packs/tanstack-router/`
|
|
10
|
-
|
|
11
|
-
## [0.1.0] - 2025-01-02
|
|
12
|
-
|
|
13
|
-
### Added
|
|
14
|
-
- Initial release (experimental)
|
|
15
|
-
- 3 agents: tanstack-architect, tanstack-builder, tanstack-tester
|
|
16
|
-
- 4 commands: route-create, query-create, form-create, table-create
|
|
17
|
-
- 11 skills for TanStack ecosystem:
|
|
18
|
-
- `router-patterns` - File-based routing
|
|
19
|
-
- `query-patterns` - Data fetching with factory keys
|
|
20
|
-
- `form-patterns` - TanStack Form + Zod
|
|
21
|
-
- `table-patterns` - Headless tables
|
|
22
|
-
- `virtual-patterns` - List virtualization
|
|
23
|
-
- `store-patterns` - State management (alpha)
|
|
24
|
-
- `db-patterns` - Client-first database (beta)
|
|
25
|
-
- `ai-patterns` - AI/LLM integration (alpha)
|
|
26
|
-
- `pacer-patterns` - Rate limiting (beta)
|
|
27
|
-
- `devtools-patterns` - Developer tools
|
|
28
|
-
- `tanstack-conventions` - Project conventions
|
|
29
|
-
- Bun as package manager and runtime
|
|
30
|
-
- Feature-based project structure
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# tanstack-router
|
|
2
|
-
|
|
3
|
-
TanStack SPA development with the full ecosystem: Router, Query, Form, Table, Virtual, and experimental libraries.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
This plugin provides comprehensive support for building React SPAs with the TanStack ecosystem, using Bun as the runtime and following feature-based architecture with `@/` import aliases.
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
/plugin install tanstack-router
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Features
|
|
16
|
-
|
|
17
|
-
### Core Libraries
|
|
18
|
-
- **TanStack Router** - Type-safe file-based routing
|
|
19
|
-
- **TanStack Query** - Server state management with factory key patterns
|
|
20
|
-
- **TanStack Form** - Type-safe form handling
|
|
21
|
-
- **TanStack Table** - Headless table/datagrid
|
|
22
|
-
- **TanStack Virtual** - List virtualization
|
|
23
|
-
|
|
24
|
-
### Experimental Libraries (Alpha/Beta)
|
|
25
|
-
- **TanStack Store** - Framework-agnostic state
|
|
26
|
-
- **TanStack DB** - Client-first reactive store
|
|
27
|
-
- **TanStack AI** - Unified AI SDK
|
|
28
|
-
- **TanStack Pacer** - Rate limiting, debouncing, throttling
|
|
29
|
-
- **TanStack Devtools** - Unified debugging tools
|
|
30
|
-
|
|
31
|
-
## Agents
|
|
32
|
-
|
|
33
|
-
| Agent | Purpose |
|
|
34
|
-
|-------|---------|
|
|
35
|
-
| `tanstack-architect` | Design TanStack application architecture |
|
|
36
|
-
| `tanstack-builder` | Implement features with TanStack patterns |
|
|
37
|
-
| `tanstack-tester` | Write tests for TanStack applications |
|
|
38
|
-
|
|
39
|
-
## Commands
|
|
40
|
-
|
|
41
|
-
| Command | Description |
|
|
42
|
-
|---------|-------------|
|
|
43
|
-
| `/route-create` | Create a new file-based route |
|
|
44
|
-
| `/query-create` | Create query with factory key pattern |
|
|
45
|
-
| `/form-create` | Create type-safe form with validation |
|
|
46
|
-
| `/table-create` | Create headless table component |
|
|
47
|
-
|
|
48
|
-
## Conventions
|
|
49
|
-
|
|
50
|
-
### Folder Structure (Feature-Based)
|
|
51
|
-
```
|
|
52
|
-
src/
|
|
53
|
-
├── features/
|
|
54
|
-
│ ├── posts/
|
|
55
|
-
│ │ ├── components/
|
|
56
|
-
│ │ ├── hooks/
|
|
57
|
-
│ │ ├── queries/
|
|
58
|
-
│ │ └── types.ts
|
|
59
|
-
│ └── users/
|
|
60
|
-
├── routes/
|
|
61
|
-
│ ├── __root.tsx
|
|
62
|
-
│ ├── index.tsx
|
|
63
|
-
│ └── posts/
|
|
64
|
-
│ ├── index.tsx
|
|
65
|
-
│ └── $postId.tsx
|
|
66
|
-
├── lib/
|
|
67
|
-
│ ├── query-client.ts
|
|
68
|
-
│ └── query-keys.ts
|
|
69
|
-
└── components/
|
|
70
|
-
└── ui/
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
### Import Alias
|
|
74
|
-
```typescript
|
|
75
|
-
import { PostList } from '@/features/posts/components'
|
|
76
|
-
import { queryKeys } from '@/lib/query-keys'
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
### Query Key Factory Pattern
|
|
80
|
-
```typescript
|
|
81
|
-
export const queryKeys = {
|
|
82
|
-
posts: {
|
|
83
|
-
all: () => ['posts'] as const,
|
|
84
|
-
lists: () => [...queryKeys.posts.all(), 'list'] as const,
|
|
85
|
-
list: (filters: Filters) => [...queryKeys.posts.lists(), filters] as const,
|
|
86
|
-
details: () => [...queryKeys.posts.all(), 'detail'] as const,
|
|
87
|
-
detail: (id: string) => [...queryKeys.posts.details(), id] as const,
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Data Fetching (Hybrid Approach)
|
|
93
|
-
- **Loaders**: Prefetch data in route loaders
|
|
94
|
-
- **Queries**: Hydrate and manage in components
|
|
95
|
-
|
|
96
|
-
```typescript
|
|
97
|
-
// Route loader prefetches
|
|
98
|
-
export const Route = createFileRoute('/posts/$postId')({
|
|
99
|
-
loader: ({ context, params }) =>
|
|
100
|
-
context.queryClient.ensureQueryData(postQueryOptions(params.postId)),
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
// Component hydrates
|
|
104
|
-
function PostPage() {
|
|
105
|
-
const { postId } = Route.useParams()
|
|
106
|
-
const { data } = useSuspenseQuery(postQueryOptions(postId))
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## Runtime
|
|
111
|
-
|
|
112
|
-
- **Bun** - Package manager and runtime
|
|
113
|
-
- Commands use `bun` instead of `npm`/`yarn`
|