solo-cto-agent 0.5.1
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/CHANGELOG +46 -0
- package/LICENSE +21 -0
- package/README.md +409 -0
- package/bin/cli.js +177 -0
- package/docs/demo.svg +14 -0
- package/docs/skill-slimming.md +76 -0
- package/failure-catalog.json +62 -0
- package/failure-catalog.schema.json +26 -0
- package/package.json +29 -0
- package/skills/build/SKILL.md +377 -0
- package/skills/craft/SKILL.md +258 -0
- package/skills/memory/SKILL.md +234 -0
- package/skills/orchestrate/SKILL.md +141 -0
- package/skills/review/SKILL.md +195 -0
- package/skills/ship/SKILL.md +282 -0
- package/skills/spark/SKILL.md +269 -0
- package/templates/context.md +29 -0
- package/templates/project.md +38 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Skill Slimming — the references/ pattern
|
|
2
|
+
|
|
3
|
+
## Why this matters
|
|
4
|
+
|
|
5
|
+
Every skill activation dumps the full `SKILL.md` into the context window. A 500-line skill eats ~6,000 tokens just by triggering. Two skills in one session and you've burned 12K tokens before doing anything useful.
|
|
6
|
+
|
|
7
|
+
The fix is obvious once you see it: most of that content isn't needed on every activation. Templates, full error catalogs, CSS blocks, API specs — the agent only reads those when it's actually doing that specific subtask.
|
|
8
|
+
|
|
9
|
+
## How it works
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
my-skill/
|
|
13
|
+
├── SKILL.md ← Always loaded: routing, rules, checklists (~80-120 lines)
|
|
14
|
+
└── references/
|
|
15
|
+
├── error-catalog.md ← Loaded on demand
|
|
16
|
+
├── templates.md ← Loaded on demand
|
|
17
|
+
└── api-reference.md ← Loaded on demand
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
SKILL.md keeps only what the agent needs to decide *what to do*: routing tables, anti-pattern lists, quick-reference summaries, and pointers like `> Full error catalog → references/error-catalog.md`. The agent reads references/ files only when the task actually requires them.
|
|
21
|
+
|
|
22
|
+
## Measured results
|
|
23
|
+
|
|
24
|
+
Three production skills, before and after applying this pattern:
|
|
25
|
+
|
|
26
|
+
| Skill type | Before | After | Saved |
|
|
27
|
+
|------------|--------|-------|-------|
|
|
28
|
+
| Project/event management | 573 lines / ~6,600 tok | 122 lines / ~1,800 tok | 79% |
|
|
29
|
+
| Design system orchestrator | 318 lines / ~3,600 tok | 77 lines / ~1,000 tok | 76% |
|
|
30
|
+
| Platform dev guide | 203 lines / ~2,500 tok | 86 lines / ~1,000 tok | 58% |
|
|
31
|
+
|
|
32
|
+
Average session went from ~12K tokens on skill loading to ~3,800. That's 8K tokens freed up per session for actual work.
|
|
33
|
+
|
|
34
|
+
Over 50 sessions, the difference adds up to roughly 400K tokens — real context space that would otherwise be wasted on reference text the agent never reads.
|
|
35
|
+
|
|
36
|
+
## What stays inline vs. what moves
|
|
37
|
+
|
|
38
|
+
**Keep in SKILL.md:**
|
|
39
|
+
- Routing table (which tool/sub-skill for which task type)
|
|
40
|
+
- Anti-pattern list (condensed, no long examples)
|
|
41
|
+
- 1-line summaries with `→ references/filename.md` pointers
|
|
42
|
+
- Decision logic the agent needs every time
|
|
43
|
+
- Pre-flight checklists
|
|
44
|
+
|
|
45
|
+
**Move to references/:**
|
|
46
|
+
- Document templates and report structures
|
|
47
|
+
- CSS/code blocks (design tokens, color definitions, shadow systems)
|
|
48
|
+
- Full error catalogs with solutions
|
|
49
|
+
- API endpoint specs
|
|
50
|
+
- Dev history and changelogs
|
|
51
|
+
- Per-project component guides
|
|
52
|
+
|
|
53
|
+
Rule of thumb: if a section is 20+ lines of reference data that's only needed for specific subtasks, it belongs in references/.
|
|
54
|
+
|
|
55
|
+
## Applying this to your skills
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
1. Count SKILL.md lines (target: under 150)
|
|
59
|
+
2. Find sections that are reference data, not decision logic
|
|
60
|
+
3. Create references/ and move those sections
|
|
61
|
+
4. Replace with 1-line pointers in SKILL.md
|
|
62
|
+
5. Test that the skill still triggers and references/ loads when needed
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## solo-cto-agent integration
|
|
66
|
+
|
|
67
|
+
`npx solo-cto-agent init` scaffolds with references/ by default:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
.claude/skills/{skill-name}/
|
|
71
|
+
├── SKILL.md
|
|
72
|
+
└── references/
|
|
73
|
+
└── .gitkeep
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Future: `npx solo-cto-agent lint` will flag skills where SKILL.md exceeds 150 lines or has large inline code blocks that should be in references/.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"updated_at": "2026-04-13",
|
|
4
|
+
"items": [
|
|
5
|
+
{
|
|
6
|
+
"id": "ERR-001",
|
|
7
|
+
"category": "build",
|
|
8
|
+
"pattern": "Module not found",
|
|
9
|
+
"description": "Import path missing or dependency not installed.",
|
|
10
|
+
"fix": "Verify file path or install missing dependency."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"id": "ERR-002",
|
|
14
|
+
"category": "build",
|
|
15
|
+
"pattern": "prisma generate did not create",
|
|
16
|
+
"description": "Prisma client not generated or output path mismatched.",
|
|
17
|
+
"fix": "Run prisma generate and confirm output path."
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"id": "ERR-003",
|
|
21
|
+
"category": "build",
|
|
22
|
+
"pattern": "@apply unknown utility",
|
|
23
|
+
"description": "Tailwind config mismatch or wrong version syntax.",
|
|
24
|
+
"fix": "Verify Tailwind version and update @apply usage."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "ERR-004",
|
|
28
|
+
"category": "deploy",
|
|
29
|
+
"pattern": "Build completed in 14ms",
|
|
30
|
+
"description": "Wrong root directory or build command skipped real build.",
|
|
31
|
+
"fix": "Check project root and build command configuration."
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"id": "ERR-005",
|
|
35
|
+
"category": "deploy",
|
|
36
|
+
"pattern": "No output directory found",
|
|
37
|
+
"description": "Build output directory not produced or misconfigured.",
|
|
38
|
+
"fix": "Confirm framework preset and output directory."
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "ERR-006",
|
|
42
|
+
"category": "runtime",
|
|
43
|
+
"pattern": "NEXTAUTH_URL is not set",
|
|
44
|
+
"description": "Auth runtime missing required environment variable.",
|
|
45
|
+
"fix": "Set NEXTAUTH_URL and redeploy."
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "ERR-007",
|
|
49
|
+
"category": "runtime",
|
|
50
|
+
"pattern": "PrismaClientInitializationError",
|
|
51
|
+
"description": "DB connection or schema mismatch at runtime.",
|
|
52
|
+
"fix": "Verify DATABASE_URL and schema compatibility."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "ERR-008",
|
|
56
|
+
"category": "runtime",
|
|
57
|
+
"pattern": "Cannot find module '/var/task'",
|
|
58
|
+
"description": "Serverless packaging missing build artifacts.",
|
|
59
|
+
"fix": "Ensure build output is included in deployment."
|
|
60
|
+
}
|
|
61
|
+
]
|
|
62
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"required": ["version", "updated_at", "items"],
|
|
5
|
+
"properties": {
|
|
6
|
+
"version": { "type": "number" },
|
|
7
|
+
"updated_at": { "type": "string" },
|
|
8
|
+
"items": {
|
|
9
|
+
"type": "array",
|
|
10
|
+
"minItems": 1,
|
|
11
|
+
"items": {
|
|
12
|
+
"type": "object",
|
|
13
|
+
"required": ["id", "category", "pattern", "description", "fix"],
|
|
14
|
+
"properties": {
|
|
15
|
+
"id": { "type": "string", "pattern": "^ERR-\\d{3}$" },
|
|
16
|
+
"category": { "type": "string", "enum": ["build", "deploy", "runtime"] },
|
|
17
|
+
"pattern": { "type": "string" },
|
|
18
|
+
"description": { "type": "string" },
|
|
19
|
+
"fix": { "type": "string" }
|
|
20
|
+
},
|
|
21
|
+
"additionalProperties": false
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"additionalProperties": false
|
|
26
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "solo-cto-agent",
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "Opinionated skill pack for AI coding agents with CTO-grade operating rules.",
|
|
6
|
+
"bin": {
|
|
7
|
+
"solo-cto-agent": "bin/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "vitest run",
|
|
11
|
+
"lint": "node scripts/validate-package.js",
|
|
12
|
+
"validate": "bash scripts/validate.sh"
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"bin",
|
|
16
|
+
"templates",
|
|
17
|
+
"skills",
|
|
18
|
+
"docs",
|
|
19
|
+
"failure-catalog.json",
|
|
20
|
+
"failure-catalog.schema.json",
|
|
21
|
+
"README.md",
|
|
22
|
+
"LICENSE",
|
|
23
|
+
"CHANGELOG"
|
|
24
|
+
],
|
|
25
|
+
"devDependencies": {
|
|
26
|
+
"ajv": "^8.12.0",
|
|
27
|
+
"vitest": "^1.6.0"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build
|
|
3
|
+
description: "Development pipeline orchestrator. Architect -> Build -> Review -> Deploy with pre-flight checks, pre-req scanning, and bounded error recovery. Activates on: code, dev, deploy, build, error, bug, fix, API, DB, git, npm, TypeScript, component, feature, debug, hotfix, patch, schema, migration, auth."
|
|
4
|
+
user-invocable: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Build — Development Pipeline Orchestrator
|
|
8
|
+
|
|
9
|
+
This skill is for the part of software work that usually gets bounced back to the founder:
|
|
10
|
+
|
|
11
|
+
* missing env vars
|
|
12
|
+
* package mismatches
|
|
13
|
+
* half-finished migrations
|
|
14
|
+
* repeated build failures
|
|
15
|
+
* hidden setup work discovered too late
|
|
16
|
+
|
|
17
|
+
The goal is not “maximum autonomy at any cost.”
|
|
18
|
+
The goal is to reduce repetitive operational work while keeping risky decisions explicit.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Principle 0 — Agent handles routine work. User approves risky work.
|
|
23
|
+
|
|
24
|
+
The agent should take initiative where it is safe and useful.
|
|
25
|
+
|
|
26
|
+
* Write files directly when the environment allows it.
|
|
27
|
+
* Reuse known context instead of asking the same setup questions again.
|
|
28
|
+
* Batch setup requests into one clear request when direct access is not available.
|
|
29
|
+
* Avoid offloading obvious routine work back to the user too early.
|
|
30
|
+
|
|
31
|
+
Preferred behavior:
|
|
32
|
+
|
|
33
|
+
1. scan first
|
|
34
|
+
2. identify what is missing
|
|
35
|
+
3. ask once if something truly requires user input or restricted access
|
|
36
|
+
4. then continue the task without repeated interruptions
|
|
37
|
+
|
|
38
|
+
Do not pretend direct configuration is possible when access is not available.
|
|
39
|
+
Do not ask the user to do the same manual step repeatedly across repos or environments.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Your Stack (customize this section)
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
OS: {{YOUR_OS}} # e.g. Windows 11, macOS, Linux
|
|
47
|
+
Editor: {{YOUR_EDITOR}} # e.g. VSCode, Cursor
|
|
48
|
+
Deploy: {{YOUR_DEPLOY}} # e.g. Vercel, Netlify, Railway
|
|
49
|
+
DB: {{YOUR_DB}} # e.g. Supabase PostgreSQL, PlanetScale
|
|
50
|
+
ORM: {{YOUR_ORM}} # e.g. Prisma, Drizzle, TypeORM
|
|
51
|
+
Framework: {{YOUR_FRAMEWORK}} # e.g. Next.js 14, Next.js 15, Remix, SvelteKit
|
|
52
|
+
Style: {{YOUR_STYLE}} # e.g. Tailwind CSS + shadcn/ui
|
|
53
|
+
Git: {{YOUR_GIT_USER}}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Stack-Specific Warnings (edit these for your real stack)
|
|
57
|
+
|
|
58
|
+
* Next.js 14: `params` is not a Promise. Do not `await` it.
|
|
59
|
+
* Next.js 15: `params` is a Promise. `await` it.
|
|
60
|
+
* React 18: confirm compatible package versions before adopting examples blindly.
|
|
61
|
+
* Prisma: run `prisma generate` before `next build` when relevant.
|
|
62
|
+
* Tailwind v4: use the correct import and utility model for v4. Do not assume old syntax.
|
|
63
|
+
|
|
64
|
+
Keep this section grounded in the actual stack, not generic internet advice.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Working model
|
|
69
|
+
|
|
70
|
+
The pipeline is:
|
|
71
|
+
|
|
72
|
+
**Architect -> Build -> Review -> Deploy**
|
|
73
|
+
|
|
74
|
+
Each phase has a job.
|
|
75
|
+
Do not skip straight to coding if setup risks are obvious.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 1) Architect
|
|
80
|
+
|
|
81
|
+
Before changing code:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
1. Identify the project and the exact task
|
|
85
|
+
2. Separate "what to change" from "why it matters"
|
|
86
|
+
3. Estimate impact:
|
|
87
|
+
- files
|
|
88
|
+
- routes
|
|
89
|
+
- APIs
|
|
90
|
+
- DB tables
|
|
91
|
+
- env vars
|
|
92
|
+
- deploy behavior
|
|
93
|
+
4. Check prerequisites before coding
|
|
94
|
+
5. Lock scope:
|
|
95
|
+
- do the requested task
|
|
96
|
+
- note adjacent issues separately instead of expanding scope silently
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Questions to resolve early:
|
|
100
|
+
|
|
101
|
+
* Is there a migration involved?
|
|
102
|
+
* Is there a new environment variable?
|
|
103
|
+
* Is there a new dependency?
|
|
104
|
+
* Is there a platform or webhook configuration change?
|
|
105
|
+
* Is the build command still valid after this change?
|
|
106
|
+
* Is there a deployment risk that should be surfaced before coding?
|
|
107
|
+
|
|
108
|
+
If the answer is yes, handle it early.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 2) Build
|
|
113
|
+
|
|
114
|
+
When coding:
|
|
115
|
+
|
|
116
|
+
```text
|
|
117
|
+
1. Make the smallest safe change that solves the task
|
|
118
|
+
2. Keep imports real and local
|
|
119
|
+
3. Avoid unnecessary refactors unless they remove direct risk
|
|
120
|
+
4. Run type checks / build checks where appropriate
|
|
121
|
+
5. Record changed files and why they changed
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Practical rules:
|
|
125
|
+
|
|
126
|
+
* Prefer boring code that is easy to verify over clever code.
|
|
127
|
+
* Do not introduce new abstractions unless they pay for themselves immediately.
|
|
128
|
+
* If the environment cannot run a full build safely, do the highest-signal validation available and say so clearly.
|
|
129
|
+
* If a fix touches a risky area, leave a short risk note.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 3) Review
|
|
134
|
+
|
|
135
|
+
Before calling the task done, check:
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
□ Does the implementation match the request exactly?
|
|
139
|
+
□ Are imports pointing to real files?
|
|
140
|
+
□ Are types explicit where they need to be?
|
|
141
|
+
□ Are error states handled where failure is likely?
|
|
142
|
+
□ Do API methods and response shapes still make sense?
|
|
143
|
+
□ Do DB queries match the actual schema?
|
|
144
|
+
□ Are any new env vars or platform settings required?
|
|
145
|
+
□ Did this introduce auth / security / permission risk?
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Also check for these anti-patterns:
|
|
149
|
+
|
|
150
|
+
* hidden scope expansion
|
|
151
|
+
* “temporary” fixes with no exit plan
|
|
152
|
+
* hand-wavy TODOs in critical paths
|
|
153
|
+
* type assertions used to silence uncertainty
|
|
154
|
+
* retries or loops without a stop condition
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 4) Deploy
|
|
159
|
+
|
|
160
|
+
The task is not fully done until the deploy story is understood.
|
|
161
|
+
|
|
162
|
+
Deploy loop:
|
|
163
|
+
|
|
164
|
+
```text
|
|
165
|
+
1. Prepare the code and config needed for deploy
|
|
166
|
+
2. Push or propose changes through the available workflow
|
|
167
|
+
3. Watch the build if the environment supports it
|
|
168
|
+
4. If it fails, read the logs before changing anything
|
|
169
|
+
5. Attempt reasonable fixes only
|
|
170
|
+
6. Stop when the circuit breaker is reached
|
|
171
|
+
7. Report clearly instead of spiraling
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Do not treat deployment failure as “someone else’s problem” if the work caused it.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Circuit Breaker
|
|
179
|
+
|
|
180
|
+
Bound the loop.
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
CB_NO_PROGRESS = 3 same error, no real progress -> stop and report
|
|
184
|
+
CB_SAME_ERROR = 5 same error repeated -> hard stop
|
|
185
|
+
CB_CASCADE = 3 one fix causes 3+ new breakages -> stop
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
When the breaker trips, report:
|
|
189
|
+
|
|
190
|
+
* what was attempted
|
|
191
|
+
* what changed
|
|
192
|
+
* what is still failing
|
|
193
|
+
* what likely needs human judgment
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Pre-flight Checklist
|
|
198
|
+
|
|
199
|
+
Customize this to the actual deployment environment.
|
|
200
|
+
|
|
201
|
+
```text
|
|
202
|
+
□ Build command is still valid
|
|
203
|
+
□ Required env vars are known
|
|
204
|
+
□ DB connection target is correct for the environment
|
|
205
|
+
□ Auth callback / redirect settings match the target domain
|
|
206
|
+
□ ORM generate / migration steps are included when needed
|
|
207
|
+
□ Package manager configuration is compatible with the repo
|
|
208
|
+
□ Git identity and deployment target are aligned
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Do not assume production and local setup are interchangeable.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Pre-Requisite Scan Protocol
|
|
216
|
+
|
|
217
|
+
### Principle
|
|
218
|
+
|
|
219
|
+
Scan before coding.
|
|
220
|
+
Ask once if required.
|
|
221
|
+
Do not surprise the user halfway through the task.
|
|
222
|
+
|
|
223
|
+
### What to scan
|
|
224
|
+
|
|
225
|
+
Before starting any meaningful code or deploy work, check for:
|
|
226
|
+
|
|
227
|
+
```text
|
|
228
|
+
□ Env vars
|
|
229
|
+
□ API keys / tokens
|
|
230
|
+
□ Secrets in CI / deploy platform
|
|
231
|
+
□ Webhooks and callback URLs
|
|
232
|
+
□ DB schema / migrations
|
|
233
|
+
□ Package additions or version constraints
|
|
234
|
+
□ Access scope / permissions
|
|
235
|
+
□ Domain / DNS assumptions
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### How to handle missing requirements
|
|
239
|
+
|
|
240
|
+
If something is missing:
|
|
241
|
+
|
|
242
|
+
* collect the missing items
|
|
243
|
+
* ask in one grouped request
|
|
244
|
+
* proceed after the required values or decisions are provided
|
|
245
|
+
|
|
246
|
+
Bad behavior:
|
|
247
|
+
|
|
248
|
+
* asking the same question repo by repo
|
|
249
|
+
* discovering a required key halfway through the task
|
|
250
|
+
* turning one missing input into five separate messages
|
|
251
|
+
|
|
252
|
+
Good behavior:
|
|
253
|
+
|
|
254
|
+
* one clear grouped request
|
|
255
|
+
* one explanation of why it is needed
|
|
256
|
+
* one place to continue from once resolved
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Batch Automation Guidance
|
|
261
|
+
|
|
262
|
+
When access is available, apply configuration directly.
|
|
263
|
+
|
|
264
|
+
Examples:
|
|
265
|
+
|
|
266
|
+
* env vars on the deploy platform
|
|
267
|
+
* local `.env` updates
|
|
268
|
+
* CI secret insertion where the environment allows it
|
|
269
|
+
* repeated config across multiple repos
|
|
270
|
+
|
|
271
|
+
When access is not available:
|
|
272
|
+
|
|
273
|
+
* ask once
|
|
274
|
+
* state exactly what is missing
|
|
275
|
+
* group the required setup into one batch
|
|
276
|
+
* avoid vague “please configure this somewhere” guidance
|
|
277
|
+
|
|
278
|
+
Preferred summary format:
|
|
279
|
+
|
|
280
|
+
| target | item | action | status |
|
|
281
|
+
| ------ | -------------- | ----------------- | ------- |
|
|
282
|
+
| repo-a | `DATABASE_URL` | set in deploy env | done |
|
|
283
|
+
| repo-b | `DATABASE_URL` | waiting on access | blocked |
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Avoid these patterns
|
|
288
|
+
|
|
289
|
+
```text
|
|
290
|
+
- Asking for the same setup value multiple times
|
|
291
|
+
- Discovering required env vars halfway through the task
|
|
292
|
+
- Giving one-repo-at-a-time setup instructions when the same change applies everywhere
|
|
293
|
+
- Offloading obvious routine work back to the user too early
|
|
294
|
+
- Pretending direct configuration is possible when access is not available
|
|
295
|
+
- Repeating the same failed fix without changing the diagnosis
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
Preferred behavior:
|
|
299
|
+
|
|
300
|
+
```text
|
|
301
|
+
scan first
|
|
302
|
+
ask once
|
|
303
|
+
apply broadly where possible
|
|
304
|
+
stop loops early
|
|
305
|
+
report clearly when access or policy prevents automation
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## Build Error Quick Fix Catalog
|
|
311
|
+
|
|
312
|
+
| Error pattern | First check |
|
|
313
|
+
| ------------------------- | --------------------------------------------------------- |
|
|
314
|
+
| Module not found | Verify the import path and that the file exists |
|
|
315
|
+
| Type error | Fix to match real types instead of bypassing with `any` |
|
|
316
|
+
| ORM generate missing | Add the required generate step before build |
|
|
317
|
+
| Params / routing mismatch | Check framework version and route conventions |
|
|
318
|
+
| CSS utility issue | Confirm framework version and syntax model |
|
|
319
|
+
| Instant deploy fail | Check framework preset, root directory, and build command |
|
|
320
|
+
| Auth failure after deploy | Check env vars, callback URLs, and deployment domain |
|
|
321
|
+
|
|
322
|
+
Treat this as a starting catalog, not a substitute for reading logs.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Session reuse
|
|
327
|
+
|
|
328
|
+
If values or decisions were already established in the session:
|
|
329
|
+
|
|
330
|
+
* reuse them
|
|
331
|
+
* mention reuse briefly
|
|
332
|
+
* avoid asking again unless the value is ambiguous or risky
|
|
333
|
+
|
|
334
|
+
Examples of reusable context:
|
|
335
|
+
|
|
336
|
+
* deploy platform token already provided
|
|
337
|
+
* bot token already confirmed
|
|
338
|
+
* repo naming convention already established
|
|
339
|
+
* framework/version already known
|
|
340
|
+
* migration policy already decided
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Platform notes
|
|
345
|
+
|
|
346
|
+
### Windows PowerShell
|
|
347
|
+
|
|
348
|
+
* Be careful with file writing methods and encoding.
|
|
349
|
+
* Paths with special characters or route syntax should be quoted carefully.
|
|
350
|
+
|
|
351
|
+
### macOS / Linux
|
|
352
|
+
|
|
353
|
+
* File permissions and executable bits can matter in deploy scripts.
|
|
354
|
+
* Shell assumptions should be kept conservative.
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## Output expectations
|
|
359
|
+
|
|
360
|
+
When this skill is applied to a real task, the final report should usually include:
|
|
361
|
+
|
|
362
|
+
```text
|
|
363
|
+
- what changed
|
|
364
|
+
- what prerequisites were detected
|
|
365
|
+
- what was configured directly
|
|
366
|
+
- what still needs access or approval
|
|
367
|
+
- build/deploy status
|
|
368
|
+
- risks or rollback notes
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
This skill should make the user feel like the setup burden got lighter, not heavier.
|
|
372
|
+
|
|
373
|
+
## Execution Examples
|
|
374
|
+
|
|
375
|
+
- "Use build to fix a Prisma generate failure before deploy."
|
|
376
|
+
- "Use build to add a missing env var and re-run the build."
|
|
377
|
+
- "Use build to debug a TypeScript error in an API route."
|