claude-cli-advanced-starter-pack 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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/OVERVIEW.md +597 -0
  3. package/README.md +439 -0
  4. package/bin/gtask.js +282 -0
  5. package/bin/postinstall.js +53 -0
  6. package/package.json +69 -0
  7. package/src/agents/phase-dev-templates.js +1011 -0
  8. package/src/agents/templates.js +668 -0
  9. package/src/analysis/checklist-parser.js +414 -0
  10. package/src/analysis/codebase.js +481 -0
  11. package/src/cli/menu.js +958 -0
  12. package/src/commands/claude-audit.js +1482 -0
  13. package/src/commands/claude-settings.js +2243 -0
  14. package/src/commands/create-agent.js +681 -0
  15. package/src/commands/create-command.js +337 -0
  16. package/src/commands/create-hook.js +262 -0
  17. package/src/commands/create-phase-dev/codebase-analyzer.js +813 -0
  18. package/src/commands/create-phase-dev/documentation-generator.js +352 -0
  19. package/src/commands/create-phase-dev/post-completion.js +404 -0
  20. package/src/commands/create-phase-dev/scale-calculator.js +344 -0
  21. package/src/commands/create-phase-dev/wizard.js +492 -0
  22. package/src/commands/create-phase-dev.js +481 -0
  23. package/src/commands/create-skill.js +313 -0
  24. package/src/commands/create.js +446 -0
  25. package/src/commands/decompose.js +392 -0
  26. package/src/commands/detect-tech-stack.js +768 -0
  27. package/src/commands/explore-mcp/claude-md-updater.js +252 -0
  28. package/src/commands/explore-mcp/mcp-installer.js +346 -0
  29. package/src/commands/explore-mcp/mcp-registry.js +438 -0
  30. package/src/commands/explore-mcp.js +638 -0
  31. package/src/commands/gtask-init.js +641 -0
  32. package/src/commands/help.js +128 -0
  33. package/src/commands/init.js +1890 -0
  34. package/src/commands/install.js +250 -0
  35. package/src/commands/list.js +116 -0
  36. package/src/commands/roadmap.js +750 -0
  37. package/src/commands/setup-wizard.js +482 -0
  38. package/src/commands/setup.js +351 -0
  39. package/src/commands/sync.js +534 -0
  40. package/src/commands/test-run.js +456 -0
  41. package/src/commands/test-setup.js +456 -0
  42. package/src/commands/validate.js +67 -0
  43. package/src/config/tech-stack.defaults.json +182 -0
  44. package/src/config/tech-stack.schema.json +502 -0
  45. package/src/github/client.js +359 -0
  46. package/src/index.js +84 -0
  47. package/src/templates/claude-command.js +244 -0
  48. package/src/templates/issue-body.js +284 -0
  49. package/src/testing/config.js +411 -0
  50. package/src/utils/template-engine.js +398 -0
  51. package/src/utils/validate-templates.js +223 -0
  52. package/src/utils.js +396 -0
  53. package/templates/commands/ccasp-setup.template.md +113 -0
  54. package/templates/commands/context-audit.template.md +97 -0
  55. package/templates/commands/create-task-list.template.md +382 -0
  56. package/templates/commands/deploy-full.template.md +261 -0
  57. package/templates/commands/github-task-start.template.md +99 -0
  58. package/templates/commands/github-update.template.md +69 -0
  59. package/templates/commands/happy-start.template.md +117 -0
  60. package/templates/commands/phase-track.template.md +142 -0
  61. package/templates/commands/tunnel-start.template.md +127 -0
  62. package/templates/commands/tunnel-stop.template.md +106 -0
  63. package/templates/hooks/context-guardian.template.js +173 -0
  64. package/templates/hooks/deployment-orchestrator.template.js +219 -0
  65. package/templates/hooks/github-progress-hook.template.js +197 -0
  66. package/templates/hooks/happy-checkpoint-manager.template.js +222 -0
  67. package/templates/hooks/phase-dev-enforcer.template.js +183 -0
@@ -0,0 +1,502 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/evan043/claude-cli-advanced-starter-pack/tech-stack.schema.json",
4
+ "title": "Tech Stack Configuration",
5
+ "description": "Platform-agnostic configuration for any development environment",
6
+ "type": "object",
7
+ "required": ["version", "project"],
8
+ "properties": {
9
+ "version": {
10
+ "type": "string",
11
+ "description": "Schema version",
12
+ "default": "1.0.0"
13
+ },
14
+ "project": {
15
+ "type": "object",
16
+ "required": ["name"],
17
+ "properties": {
18
+ "name": { "type": "string", "description": "Project name" },
19
+ "description": { "type": "string" },
20
+ "rootPath": { "type": "string", "description": "Relative path to project root" }
21
+ }
22
+ },
23
+ "frontend": {
24
+ "type": "object",
25
+ "properties": {
26
+ "framework": {
27
+ "type": "string",
28
+ "enum": ["react", "vue", "angular", "svelte", "nextjs", "nuxt", "astro", "solid", "qwik", "remix", "gatsby", "vanilla", "none", "other"],
29
+ "description": "Frontend framework"
30
+ },
31
+ "buildTool": {
32
+ "type": "string",
33
+ "enum": ["vite", "webpack", "esbuild", "parcel", "rollup", "turbopack", "rspack", "snowpack", "none", "other"]
34
+ },
35
+ "stateManager": {
36
+ "type": "string",
37
+ "enum": ["zustand", "redux", "mobx", "jotai", "recoil", "pinia", "vuex", "ngrx", "xstate", "none", "other"]
38
+ },
39
+ "styling": {
40
+ "type": "string",
41
+ "enum": ["tailwind", "css-modules", "styled-components", "emotion", "sass", "less", "vanilla-css", "other"]
42
+ },
43
+ "port": { "type": "integer", "default": 5173 },
44
+ "devCommand": { "type": "string", "default": "npm run dev" },
45
+ "buildCommand": { "type": "string", "default": "npm run build" },
46
+ "distDir": { "type": "string", "default": "dist" }
47
+ }
48
+ },
49
+ "backend": {
50
+ "type": "object",
51
+ "properties": {
52
+ "language": {
53
+ "type": "string",
54
+ "enum": ["python", "node", "typescript", "go", "rust", "java", "kotlin", "csharp", "ruby", "php", "elixir", "none", "other"]
55
+ },
56
+ "framework": {
57
+ "type": "string",
58
+ "enum": ["fastapi", "express", "nestjs", "django", "flask", "gin", "actix", "axum", "spring", "rails", "laravel", "phoenix", "hono", "koa", "none", "other"]
59
+ },
60
+ "apiStyle": {
61
+ "type": "string",
62
+ "enum": ["rest", "graphql", "grpc", "trpc", "other"]
63
+ },
64
+ "port": { "type": "integer", "default": 8000 },
65
+ "devCommand": { "type": "string" },
66
+ "healthEndpoint": { "type": "string", "default": "/api/health" }
67
+ }
68
+ },
69
+ "database": {
70
+ "type": "object",
71
+ "properties": {
72
+ "primary": {
73
+ "type": "string",
74
+ "enum": ["postgresql", "mysql", "mongodb", "sqlite", "mariadb", "mssql", "oracle", "dynamodb", "firestore", "supabase", "planetscale", "neon", "cockroachdb", "redis", "none", "other"]
75
+ },
76
+ "orm": {
77
+ "type": "string",
78
+ "enum": ["prisma", "drizzle", "typeorm", "sequelize", "sqlalchemy", "diesel", "gorm", "ent", "activerecord", "eloquent", "ecto", "none", "other"]
79
+ },
80
+ "host": { "type": "string" },
81
+ "port": { "type": "integer" }
82
+ }
83
+ },
84
+ "deployment": {
85
+ "type": "object",
86
+ "properties": {
87
+ "frontend": {
88
+ "type": "object",
89
+ "properties": {
90
+ "platform": {
91
+ "type": "string",
92
+ "enum": ["cloudflare", "vercel", "netlify", "aws-amplify", "firebase", "github-pages", "railway", "render", "fly", "digitalocean", "self-hosted", "none", "other"]
93
+ },
94
+ "projectName": { "type": "string" },
95
+ "productionUrl": { "type": "string" },
96
+ "deployCommand": { "type": "string" }
97
+ }
98
+ },
99
+ "backend": {
100
+ "type": "object",
101
+ "properties": {
102
+ "platform": {
103
+ "type": "string",
104
+ "enum": ["railway", "heroku", "aws", "gcp", "azure", "digitalocean", "render", "fly", "vercel", "self-hosted", "none", "other"]
105
+ },
106
+ "projectId": { "type": "string" },
107
+ "serviceId": { "type": "string" },
108
+ "environmentId": { "type": "string" },
109
+ "productionUrl": { "type": "string" },
110
+ "selfHostedConfig": {
111
+ "type": "object",
112
+ "description": "Configuration for self-hosted deployments",
113
+ "properties": {
114
+ "sshUser": { "type": "string" },
115
+ "sshHost": { "type": "string" },
116
+ "sshPort": { "type": "integer", "default": 22 },
117
+ "deployScript": { "type": "string", "description": "Remote script to run for deployment" },
118
+ "appPath": { "type": "string", "description": "Path to app on remote server" }
119
+ }
120
+ }
121
+ }
122
+ },
123
+ "cicd": {
124
+ "type": "string",
125
+ "enum": ["github-actions", "gitlab-ci", "circleci", "jenkins", "azure-devops", "bitbucket-pipelines", "travis", "none", "other"]
126
+ }
127
+ }
128
+ },
129
+ "devEnvironment": {
130
+ "type": "object",
131
+ "properties": {
132
+ "tunnel": {
133
+ "type": "object",
134
+ "properties": {
135
+ "service": {
136
+ "type": "string",
137
+ "enum": ["ngrok", "localtunnel", "cloudflare-tunnel", "serveo", "expose", "none", "other"]
138
+ },
139
+ "url": { "type": "string", "description": "Full tunnel URL when active" },
140
+ "subdomain": { "type": "string" },
141
+ "startCommand": { "type": "string" },
142
+ "adminPort": { "type": "integer", "description": "Tunnel admin API port (e.g., 4040 for ngrok)" }
143
+ }
144
+ },
145
+ "container": {
146
+ "type": "string",
147
+ "enum": ["docker", "podman", "colima", "orbstack", "none", "other"]
148
+ },
149
+ "packageManager": {
150
+ "type": "string",
151
+ "enum": ["npm", "yarn", "pnpm", "bun", "pip", "poetry", "pipenv", "cargo", "go-mod", "maven", "gradle", "composer", "bundler", "mix", "other"]
152
+ }
153
+ }
154
+ },
155
+ "testing": {
156
+ "type": "object",
157
+ "properties": {
158
+ "e2e": {
159
+ "type": "object",
160
+ "properties": {
161
+ "framework": {
162
+ "type": "string",
163
+ "enum": ["playwright", "cypress", "puppeteer", "selenium", "testcafe", "webdriverio", "none", "other"]
164
+ },
165
+ "configFile": { "type": "string" },
166
+ "testCommand": { "type": "string" },
167
+ "browsers": {
168
+ "type": "array",
169
+ "items": { "type": "string", "enum": ["chromium", "firefox", "webkit", "chrome", "edge"] }
170
+ },
171
+ "headless": { "type": "boolean", "default": true },
172
+ "timeout": { "type": "integer", "default": 30000 }
173
+ }
174
+ },
175
+ "unit": {
176
+ "type": "object",
177
+ "properties": {
178
+ "framework": {
179
+ "type": "string",
180
+ "enum": ["vitest", "jest", "mocha", "ava", "pytest", "unittest", "rspec", "phpunit", "go-test", "cargo-test", "none", "other"]
181
+ },
182
+ "testCommand": { "type": "string" },
183
+ "coverageTarget": { "type": "integer", "default": 80 }
184
+ }
185
+ },
186
+ "selectors": {
187
+ "type": "object",
188
+ "description": "CSS selectors for login form automation",
189
+ "properties": {
190
+ "strategy": {
191
+ "type": "string",
192
+ "enum": ["data-testid", "name", "id", "class", "xpath", "other"],
193
+ "default": "data-testid"
194
+ },
195
+ "username": { "type": "string", "default": "[data-testid=\"username-input\"]" },
196
+ "password": { "type": "string", "default": "[data-testid=\"password-input\"]" },
197
+ "loginButton": { "type": "string", "default": "[data-testid=\"login-submit\"]" },
198
+ "loginSuccess": { "type": "string", "default": "[data-testid=\"dashboard\"]" }
199
+ }
200
+ },
201
+ "credentials": {
202
+ "type": "object",
203
+ "properties": {
204
+ "usernameEnvVar": { "type": "string", "default": "TEST_USER_USERNAME" },
205
+ "passwordEnvVar": { "type": "string", "default": "TEST_USER_PASSWORD" }
206
+ }
207
+ }
208
+ }
209
+ },
210
+ "versionControl": {
211
+ "type": "object",
212
+ "properties": {
213
+ "provider": {
214
+ "type": "string",
215
+ "enum": ["github", "gitlab", "bitbucket", "azure-devops", "gitea", "self-hosted", "other"]
216
+ },
217
+ "owner": { "type": "string" },
218
+ "repo": { "type": "string" },
219
+ "defaultBranch": { "type": "string", "default": "main" },
220
+ "projectBoard": {
221
+ "type": "object",
222
+ "properties": {
223
+ "type": {
224
+ "type": "string",
225
+ "enum": ["github-projects", "jira", "linear", "trello", "asana", "notion", "clickup", "monday", "shortcut", "youtrack", "none", "other"]
226
+ },
227
+ "number": { "type": "integer" },
228
+ "id": { "type": "string" },
229
+ "url": { "type": "string" }
230
+ }
231
+ }
232
+ }
233
+ },
234
+ "urls": {
235
+ "type": "object",
236
+ "description": "Environment-specific URLs",
237
+ "properties": {
238
+ "local": {
239
+ "type": "object",
240
+ "properties": {
241
+ "frontend": { "type": "string" },
242
+ "backend": { "type": "string" },
243
+ "api": { "type": "string" }
244
+ }
245
+ },
246
+ "tunnel": {
247
+ "type": "object",
248
+ "properties": {
249
+ "frontend": { "type": "string" },
250
+ "backend": { "type": "string" }
251
+ }
252
+ },
253
+ "staging": {
254
+ "type": "object",
255
+ "properties": {
256
+ "frontend": { "type": "string" },
257
+ "backend": { "type": "string" }
258
+ }
259
+ },
260
+ "production": {
261
+ "type": "object",
262
+ "properties": {
263
+ "frontend": { "type": "string" },
264
+ "backend": { "type": "string" }
265
+ }
266
+ }
267
+ }
268
+ },
269
+ "mcp": {
270
+ "type": "object",
271
+ "description": "MCP server configurations",
272
+ "properties": {
273
+ "servers": {
274
+ "type": "array",
275
+ "items": {
276
+ "type": "object",
277
+ "properties": {
278
+ "name": { "type": "string" },
279
+ "type": { "type": "string" },
280
+ "enabled": { "type": "boolean", "default": true },
281
+ "config": { "type": "object" }
282
+ }
283
+ }
284
+ }
285
+ }
286
+ },
287
+ "tokenManagement": {
288
+ "type": "object",
289
+ "description": "Token budget management for Claude API usage tracking",
290
+ "properties": {
291
+ "enabled": { "type": "boolean", "default": false },
292
+ "dailyBudget": {
293
+ "type": "integer",
294
+ "description": "Daily token budget limit",
295
+ "default": 200000
296
+ },
297
+ "thresholds": {
298
+ "type": "object",
299
+ "description": "Percentage thresholds for token usage actions",
300
+ "properties": {
301
+ "compact": {
302
+ "type": "number",
303
+ "description": "Threshold to suggest context compaction (0-1)",
304
+ "default": 0.75
305
+ },
306
+ "archive": {
307
+ "type": "number",
308
+ "description": "Threshold to suggest archiving session (0-1)",
309
+ "default": 0.85
310
+ },
311
+ "respawn": {
312
+ "type": "number",
313
+ "description": "Threshold to force respawn (0-1)",
314
+ "default": 0.90
315
+ }
316
+ }
317
+ },
318
+ "trackingFile": {
319
+ "type": "string",
320
+ "description": "Path to token tracking JSON file",
321
+ "default": ".claude/hooks/cache/token-usage.json"
322
+ }
323
+ }
324
+ },
325
+ "happyMode": {
326
+ "type": "object",
327
+ "description": "Happy Engineering mobile app integration for remote session control",
328
+ "properties": {
329
+ "enabled": { "type": "boolean", "default": false },
330
+ "dashboardUrl": {
331
+ "type": ["string", "null"],
332
+ "description": "URL to Happy Coder dashboard (if self-hosted)",
333
+ "default": null
334
+ },
335
+ "checkpointInterval": {
336
+ "type": "integer",
337
+ "description": "Minutes between automatic checkpoints",
338
+ "default": 10
339
+ },
340
+ "verbosity": {
341
+ "type": "string",
342
+ "enum": ["full", "condensed", "minimal"],
343
+ "description": "Response verbosity level for mobile optimization",
344
+ "default": "condensed"
345
+ },
346
+ "notifications": {
347
+ "type": "object",
348
+ "properties": {
349
+ "onTaskComplete": { "type": "boolean", "default": true },
350
+ "onError": { "type": "boolean", "default": true },
351
+ "onCheckpoint": { "type": "boolean", "default": false }
352
+ }
353
+ }
354
+ }
355
+ },
356
+ "agents": {
357
+ "type": "object",
358
+ "description": "Agent hierarchy configuration for Claude Code",
359
+ "properties": {
360
+ "enabled": { "type": "boolean", "default": true },
361
+ "l1": {
362
+ "type": "object",
363
+ "description": "L1 Orchestrator agent configuration",
364
+ "properties": {
365
+ "model": {
366
+ "type": "string",
367
+ "enum": ["opus", "sonnet", "haiku"],
368
+ "default": "sonnet"
369
+ },
370
+ "tools": {
371
+ "type": "array",
372
+ "items": { "type": "string" },
373
+ "default": ["Task", "Read", "Grep", "Glob", "WebSearch"]
374
+ },
375
+ "maxTokens": { "type": "integer", "default": 16000 }
376
+ }
377
+ },
378
+ "l2": {
379
+ "type": "object",
380
+ "description": "L2 Specialist agent configuration",
381
+ "properties": {
382
+ "model": {
383
+ "type": "string",
384
+ "enum": ["opus", "sonnet", "haiku"],
385
+ "default": "sonnet"
386
+ },
387
+ "tools": {
388
+ "type": "array",
389
+ "items": { "type": "string" },
390
+ "default": ["Read", "Edit", "Write", "Bash", "Grep", "Glob"]
391
+ },
392
+ "maxTokens": { "type": "integer", "default": 8000 }
393
+ }
394
+ },
395
+ "l3": {
396
+ "type": "object",
397
+ "description": "L3 Worker agent configuration",
398
+ "properties": {
399
+ "model": {
400
+ "type": "string",
401
+ "enum": ["opus", "sonnet", "haiku"],
402
+ "default": "haiku"
403
+ },
404
+ "tools": {
405
+ "type": "array",
406
+ "items": { "type": "string" },
407
+ "default": ["Read", "Grep"]
408
+ },
409
+ "maxTokens": { "type": "integer", "default": 500 }
410
+ }
411
+ },
412
+ "maxConcurrent": {
413
+ "type": "integer",
414
+ "description": "Maximum concurrent agent tasks",
415
+ "default": 4
416
+ }
417
+ }
418
+ },
419
+ "phasedDevelopment": {
420
+ "type": "object",
421
+ "description": "Phased development planning configuration",
422
+ "properties": {
423
+ "enabled": { "type": "boolean", "default": true },
424
+ "defaultScale": {
425
+ "type": "string",
426
+ "enum": ["S", "M", "L"],
427
+ "description": "Default project scale (S=1-2 phases, M=3-4 phases, L=5+ phases)",
428
+ "default": "M"
429
+ },
430
+ "successTarget": {
431
+ "type": "number",
432
+ "description": "Target success probability (0-1)",
433
+ "default": 0.95
434
+ },
435
+ "progressFile": {
436
+ "type": "string",
437
+ "description": "Path to progress tracking JSON",
438
+ "default": ".claude/docs/{project-slug}/PROGRESS.json"
439
+ },
440
+ "generateArtifacts": {
441
+ "type": "object",
442
+ "description": "Which artifacts to generate with phase plans",
443
+ "properties": {
444
+ "executiveSummary": { "type": "boolean", "default": true },
445
+ "deploymentRunbook": { "type": "boolean", "default": true },
446
+ "rollbackPlan": { "type": "boolean", "default": true },
447
+ "testPlan": { "type": "boolean", "default": true }
448
+ }
449
+ }
450
+ }
451
+ },
452
+ "hooks": {
453
+ "type": "object",
454
+ "description": "Hook system configuration",
455
+ "properties": {
456
+ "enabled": { "type": "boolean", "default": true },
457
+ "priorities": {
458
+ "type": "object",
459
+ "description": "Default priority levels for hook categories",
460
+ "properties": {
461
+ "lifecycle": {
462
+ "type": "integer",
463
+ "description": "Priority for lifecycle hooks (lower = higher priority)",
464
+ "default": 100
465
+ },
466
+ "tools": {
467
+ "type": "integer",
468
+ "description": "Priority for tool-related hooks",
469
+ "default": 1000
470
+ },
471
+ "automation": {
472
+ "type": "integer",
473
+ "description": "Priority for automation hooks",
474
+ "default": 2000
475
+ }
476
+ }
477
+ },
478
+ "errorBehavior": {
479
+ "type": "string",
480
+ "enum": ["approve", "deny", "ask"],
481
+ "description": "Default behavior when a hook encounters an error",
482
+ "default": "approve"
483
+ },
484
+ "cacheDir": {
485
+ "type": "string",
486
+ "description": "Directory for hook cache files",
487
+ "default": ".claude/hooks/cache"
488
+ },
489
+ "configDir": {
490
+ "type": "string",
491
+ "description": "Directory for hook configuration files",
492
+ "default": ".claude/hooks/config"
493
+ }
494
+ }
495
+ },
496
+ "extensions": {
497
+ "type": "object",
498
+ "description": "Project-specific custom fields",
499
+ "additionalProperties": true
500
+ }
501
+ }
502
+ }