@qazuor/claude-code-config 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1248 -0
- package/dist/bin.cjs +11886 -0
- package/dist/bin.cjs.map +1 -0
- package/dist/bin.d.cts +1 -0
- package/dist/bin.d.ts +1 -0
- package/dist/bin.js +11869 -0
- package/dist/bin.js.map +1 -0
- package/dist/index.cjs +3887 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1325 -0
- package/dist/index.d.ts +1325 -0
- package/dist/index.js +3835 -0
- package/dist/index.js.map +1 -0
- package/package.json +86 -0
- package/templates/.log/notifications.log +1775 -0
- package/templates/agents/README.md +164 -0
- package/templates/agents/_registry.json +443 -0
- package/templates/agents/design/content-writer.md +353 -0
- package/templates/agents/design/ux-ui-designer.md +382 -0
- package/templates/agents/engineering/astro-engineer.md +293 -0
- package/templates/agents/engineering/db-drizzle-engineer.md +360 -0
- package/templates/agents/engineering/express-engineer.md +316 -0
- package/templates/agents/engineering/fastify-engineer.md +399 -0
- package/templates/agents/engineering/hono-engineer.md +263 -0
- package/templates/agents/engineering/mongoose-engineer.md +473 -0
- package/templates/agents/engineering/nestjs-engineer.md +429 -0
- package/templates/agents/engineering/nextjs-engineer.md +451 -0
- package/templates/agents/engineering/node-typescript-engineer.md +347 -0
- package/templates/agents/engineering/prisma-engineer.md +432 -0
- package/templates/agents/engineering/react-senior-dev.md +394 -0
- package/templates/agents/engineering/tanstack-start-engineer.md +447 -0
- package/templates/agents/engineering/tech-lead.md +269 -0
- package/templates/agents/product/product-functional.md +329 -0
- package/templates/agents/product/product-technical.md +578 -0
- package/templates/agents/quality/debugger.md +514 -0
- package/templates/agents/quality/qa-engineer.md +390 -0
- package/templates/agents/specialized/enrichment-agent.md +277 -0
- package/templates/agents/specialized/i18n-specialist.md +322 -0
- package/templates/agents/specialized/seo-ai-specialist.md +387 -0
- package/templates/agents/specialized/tech-writer.md +300 -0
- package/templates/code-style/.editorconfig +27 -0
- package/templates/code-style/.prettierignore +25 -0
- package/templates/code-style/.prettierrc +12 -0
- package/templates/code-style/biome.json +78 -0
- package/templates/code-style/commitlint.config.js +44 -0
- package/templates/commands/README.md +175 -0
- package/templates/commands/_registry.json +420 -0
- package/templates/commands/add-new-entity.md +211 -0
- package/templates/commands/audit/accessibility-audit.md +360 -0
- package/templates/commands/audit/performance-audit.md +290 -0
- package/templates/commands/audit/security-audit.md +231 -0
- package/templates/commands/code-check.md +127 -0
- package/templates/commands/five-why.md +225 -0
- package/templates/commands/formatting/format-markdown.md +197 -0
- package/templates/commands/git/commit.md +247 -0
- package/templates/commands/meta/create-agent.md +257 -0
- package/templates/commands/meta/create-command.md +312 -0
- package/templates/commands/meta/create-skill.md +321 -0
- package/templates/commands/meta/help.md +318 -0
- package/templates/commands/planning/check-completed-tasks.md +224 -0
- package/templates/commands/planning/cleanup-issues.md +248 -0
- package/templates/commands/planning/planning-cleanup.md +251 -0
- package/templates/commands/planning/sync-planning-github.md +133 -0
- package/templates/commands/planning/sync-todos-github.md +203 -0
- package/templates/commands/quality-check.md +211 -0
- package/templates/commands/run-tests.md +159 -0
- package/templates/commands/start-feature-plan.md +232 -0
- package/templates/commands/start-refactor-plan.md +244 -0
- package/templates/commands/sync-planning.md +176 -0
- package/templates/commands/update-docs.md +242 -0
- package/templates/docs/CHECKPOINT-SYSTEM.md +504 -0
- package/templates/docs/INDEX.md +677 -0
- package/templates/docs/RECOMMENDED-HOOKS.md +415 -0
- package/templates/docs/_registry.json +329 -0
- package/templates/docs/diagrams/README.md +220 -0
- package/templates/docs/diagrams/agent-hierarchy.mmd +55 -0
- package/templates/docs/diagrams/documentation-map.mmd +61 -0
- package/templates/docs/diagrams/tools-relationship.mmd +55 -0
- package/templates/docs/diagrams/workflow-decision-tree.mmd +38 -0
- package/templates/docs/doc-sync.md +533 -0
- package/templates/docs/examples/end-to-end-workflow.md +1505 -0
- package/templates/docs/glossary.md +495 -0
- package/templates/docs/guides/mockup-prompt-engineering.md +644 -0
- package/templates/docs/guides/mockup-setup.md +737 -0
- package/templates/docs/learnings/README.md +250 -0
- package/templates/docs/learnings/common-architectural-patterns.md +123 -0
- package/templates/docs/learnings/common-mistakes-to-avoid.md +149 -0
- package/templates/docs/learnings/markdown-formatting-standards.md +104 -0
- package/templates/docs/learnings/monorepo-command-execution.md +64 -0
- package/templates/docs/learnings/optimization-tips.md +146 -0
- package/templates/docs/learnings/planning-linear-sync-workflow.md +70 -0
- package/templates/docs/learnings/shell-compatibility-fish.md +46 -0
- package/templates/docs/learnings/test-organization-structure.md +68 -0
- package/templates/docs/mcp-installation.md +613 -0
- package/templates/docs/mcp-servers.md +989 -0
- package/templates/docs/notification-installation.md +570 -0
- package/templates/docs/quick-start.md +354 -0
- package/templates/docs/standards/architecture-patterns.md +1064 -0
- package/templates/docs/standards/atomic-commits.md +513 -0
- package/templates/docs/standards/code-standards.md +993 -0
- package/templates/docs/standards/design-standards.md +656 -0
- package/templates/docs/standards/documentation-standards.md +1160 -0
- package/templates/docs/standards/testing-standards.md +969 -0
- package/templates/docs/system-maintenance.md +604 -0
- package/templates/docs/templates/PDR-template.md +561 -0
- package/templates/docs/templates/TODOs-template.md +534 -0
- package/templates/docs/templates/tech-analysis-template.md +800 -0
- package/templates/docs/workflows/README.md +519 -0
- package/templates/docs/workflows/atomic-task-protocol.md +955 -0
- package/templates/docs/workflows/decision-tree.md +482 -0
- package/templates/docs/workflows/edge-cases.md +856 -0
- package/templates/docs/workflows/phase-1-planning.md +957 -0
- package/templates/docs/workflows/phase-2-implementation.md +896 -0
- package/templates/docs/workflows/phase-3-validation.md +792 -0
- package/templates/docs/workflows/phase-4-finalization.md +927 -0
- package/templates/docs/workflows/quick-fix-protocol.md +505 -0
- package/templates/docs/workflows/task-atomization.md +537 -0
- package/templates/docs/workflows/task-completion-protocol.md +448 -0
- package/templates/hooks/on-notification.sh +28 -0
- package/templates/schemas/checkpoint.schema.json +97 -0
- package/templates/schemas/code-registry.schema.json +84 -0
- package/templates/schemas/pdr.schema.json +314 -0
- package/templates/schemas/problems.schema.json +55 -0
- package/templates/schemas/tech-analysis.schema.json +404 -0
- package/templates/schemas/telemetry.schema.json +298 -0
- package/templates/schemas/todos.schema.json +234 -0
- package/templates/schemas/workflows.schema.json +69 -0
- package/templates/scripts/add-changelogs.sh +105 -0
- package/templates/scripts/generate-code-registry.ts +270 -0
- package/templates/scripts/health-check.sh +343 -0
- package/templates/scripts/sync-registry.sh +40 -0
- package/templates/scripts/telemetry-report.ts +36 -0
- package/templates/scripts/validate-docs.sh +224 -0
- package/templates/scripts/validate-registry.sh +225 -0
- package/templates/scripts/validate-schemas.ts +283 -0
- package/templates/scripts/validate-structure.sh +165 -0
- package/templates/scripts/worktree-cleanup.sh +81 -0
- package/templates/scripts/worktree-create.sh +63 -0
- package/templates/sessions/planning/.gitkeep +0 -0
- package/templates/sessions/planning/archived/.gitkeep +0 -0
- package/templates/settings.json +202 -0
- package/templates/settings.local.json +138 -0
- package/templates/skills/README.md +197 -0
- package/templates/skills/_registry.json +473 -0
- package/templates/skills/audit/accessibility-audit.md +309 -0
- package/templates/skills/audit/performance-audit.md +257 -0
- package/templates/skills/audit/security-audit.md +217 -0
- package/templates/skills/auth/nextauth-patterns.md +308 -0
- package/templates/skills/brand-guidelines.md +240 -0
- package/templates/skills/documentation/markdown-formatter.md +302 -0
- package/templates/skills/git/git-commit-helper.md +321 -0
- package/templates/skills/i18n/i18n-patterns.md +251 -0
- package/templates/skills/patterns/error-handling-patterns.md +242 -0
- package/templates/skills/patterns/tdd-methodology.md +342 -0
- package/templates/skills/qa/qa-criteria-validator.md +383 -0
- package/templates/skills/qa/web-app-testing.md +398 -0
- package/templates/skills/react/react-hook-form-patterns.md +359 -0
- package/templates/skills/state/redux-toolkit-patterns.md +272 -0
- package/templates/skills/state/tanstack-query-patterns.md +299 -0
- package/templates/skills/state/zustand-patterns.md +301 -0
- package/templates/skills/tech/mermaid-diagram-specialist.md +195 -0
- package/templates/skills/tech/shadcn-specialist.md +252 -0
- package/templates/skills/tech/vercel-specialist.md +297 -0
- package/templates/skills/testing/api-app-testing.md +254 -0
- package/templates/skills/testing/performance-testing.md +275 -0
- package/templates/skills/testing/security-testing.md +348 -0
- package/templates/skills/utils/add-memory.md +295 -0
- package/templates/skills/utils/json-data-auditor.md +283 -0
- package/templates/skills/utils/pdf-creator-editor.md +342 -0
- package/templates/tools/format-markdown.sh +185 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Folder structure preferences based on selected bundles
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Test files location preference
|
|
6
|
+
*/
|
|
7
|
+
type TestFileLocation = 'colocated' | 'test-folder-root' | 'test-folder-src';
|
|
8
|
+
/**
|
|
9
|
+
* Planning files location preference
|
|
10
|
+
*/
|
|
11
|
+
type PlanningFileLocation = 'claude-sessions' | 'docs-planning' | 'root-planning';
|
|
12
|
+
/**
|
|
13
|
+
* Documentation files location preference
|
|
14
|
+
*/
|
|
15
|
+
type DocsFileLocation = 'docs-root' | 'claude-docs' | 'readme-only';
|
|
16
|
+
/**
|
|
17
|
+
* CI/CD configuration location
|
|
18
|
+
*/
|
|
19
|
+
type CiCdLocation = 'github-workflows' | 'gitlab-ci' | 'custom';
|
|
20
|
+
/**
|
|
21
|
+
* Folder structure preferences
|
|
22
|
+
*/
|
|
23
|
+
interface FolderPreferences {
|
|
24
|
+
/** Test files location */
|
|
25
|
+
tests?: {
|
|
26
|
+
location: TestFileLocation;
|
|
27
|
+
/** Test file naming pattern (e.g., "*.test.ts", "*.spec.ts") */
|
|
28
|
+
pattern: string;
|
|
29
|
+
};
|
|
30
|
+
/** Planning/sessions files location */
|
|
31
|
+
planning?: {
|
|
32
|
+
location: PlanningFileLocation;
|
|
33
|
+
/** Whether to commit planning files to git */
|
|
34
|
+
commitToGit: boolean;
|
|
35
|
+
};
|
|
36
|
+
/** Documentation files location */
|
|
37
|
+
docs?: {
|
|
38
|
+
location: DocsFileLocation;
|
|
39
|
+
};
|
|
40
|
+
/** CI/CD configuration */
|
|
41
|
+
cicd?: {
|
|
42
|
+
location: CiCdLocation;
|
|
43
|
+
/** Selected workflow templates */
|
|
44
|
+
workflows: string[];
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* MCP (Model Context Protocol) server types
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* MCP server categories
|
|
53
|
+
*/
|
|
54
|
+
type McpCategory = 'documentation' | 'database' | 'cache' | 'version-control' | 'deployment' | 'infrastructure' | 'project-mgmt' | 'monitoring' | 'testing' | 'security' | 'communication' | 'design' | 'payments' | 'search' | 'ai' | 'custom';
|
|
55
|
+
/**
|
|
56
|
+
* Configuration field for MCP servers that require setup
|
|
57
|
+
*/
|
|
58
|
+
interface McpConfigField {
|
|
59
|
+
/** Field name */
|
|
60
|
+
name: string;
|
|
61
|
+
/** Field type */
|
|
62
|
+
type: 'string' | 'boolean' | 'number';
|
|
63
|
+
/** Whether this field is required */
|
|
64
|
+
required: boolean;
|
|
65
|
+
/** Description for user prompt */
|
|
66
|
+
description: string;
|
|
67
|
+
/** Environment variable to read from (optional) */
|
|
68
|
+
envVar?: string;
|
|
69
|
+
/** Default value (optional) */
|
|
70
|
+
default?: string | boolean | number;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* MCP server definition
|
|
74
|
+
*/
|
|
75
|
+
interface McpServerDefinition {
|
|
76
|
+
/** Unique server identifier */
|
|
77
|
+
id: string;
|
|
78
|
+
/** Display name */
|
|
79
|
+
name: string;
|
|
80
|
+
/** Description of what this server provides */
|
|
81
|
+
description: string;
|
|
82
|
+
/** npm package or command to run */
|
|
83
|
+
package: string;
|
|
84
|
+
/** Server category */
|
|
85
|
+
category: McpCategory;
|
|
86
|
+
/** Whether this server requires configuration */
|
|
87
|
+
requiresConfig: boolean;
|
|
88
|
+
/** Configuration fields (if requiresConfig is true) */
|
|
89
|
+
configFields?: McpConfigField[];
|
|
90
|
+
/** Installation instructions (optional) */
|
|
91
|
+
installInstructions?: string;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* MCP server installation record
|
|
95
|
+
*/
|
|
96
|
+
interface McpInstallation {
|
|
97
|
+
/** Server ID from definition */
|
|
98
|
+
serverId: string;
|
|
99
|
+
/** Installation level */
|
|
100
|
+
level: 'user' | 'project';
|
|
101
|
+
/** Configuration values */
|
|
102
|
+
config: Record<string, unknown>;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Permission configuration types for Claude Code
|
|
107
|
+
*/
|
|
108
|
+
/**
|
|
109
|
+
* Permission preset names
|
|
110
|
+
*/
|
|
111
|
+
type PermissionPreset = 'default' | 'trust' | 'restrictive' | 'custom';
|
|
112
|
+
/**
|
|
113
|
+
* File operation permissions
|
|
114
|
+
*/
|
|
115
|
+
interface FilePermissions {
|
|
116
|
+
/** Allow Read on all files */
|
|
117
|
+
readAll: boolean;
|
|
118
|
+
/** Allow Write on code files (*.ts, *.js, *.tsx, *.jsx) */
|
|
119
|
+
writeCode: boolean;
|
|
120
|
+
/** Allow Write on config files (*.json, *.yaml, *.toml) */
|
|
121
|
+
writeConfig: boolean;
|
|
122
|
+
/** Allow Write on markdown files (*.md) */
|
|
123
|
+
writeMarkdown: boolean;
|
|
124
|
+
/** Allow Write on other file types */
|
|
125
|
+
writeOther: boolean;
|
|
126
|
+
/** Allow Edit tool */
|
|
127
|
+
editTool: boolean;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Git operation permissions
|
|
131
|
+
*/
|
|
132
|
+
interface GitPermissions {
|
|
133
|
+
/** Allow read-only operations (status, diff, log) */
|
|
134
|
+
readOnly: boolean;
|
|
135
|
+
/** Allow staging (git add) */
|
|
136
|
+
staging: boolean;
|
|
137
|
+
/** Allow commit */
|
|
138
|
+
commit: boolean;
|
|
139
|
+
/** Allow push (dangerous) */
|
|
140
|
+
push: boolean;
|
|
141
|
+
/** Allow branching (checkout, branch) */
|
|
142
|
+
branching: boolean;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Bash/Terminal permissions
|
|
146
|
+
*/
|
|
147
|
+
interface BashPermissions {
|
|
148
|
+
/** Allow package manager commands (pnpm, npm, yarn) */
|
|
149
|
+
packageManager: boolean;
|
|
150
|
+
/** Allow test commands (vitest, jest) */
|
|
151
|
+
testing: boolean;
|
|
152
|
+
/** Allow build commands */
|
|
153
|
+
building: boolean;
|
|
154
|
+
/** Allow docker commands */
|
|
155
|
+
docker: boolean;
|
|
156
|
+
/** Allow arbitrary bash commands (dangerous) */
|
|
157
|
+
arbitrary: boolean;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Web operation permissions
|
|
161
|
+
*/
|
|
162
|
+
interface WebPermissions {
|
|
163
|
+
/** Allow WebFetch tool */
|
|
164
|
+
fetch: boolean;
|
|
165
|
+
/** Allow WebSearch tool */
|
|
166
|
+
search: boolean;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Custom permission rules
|
|
170
|
+
*/
|
|
171
|
+
interface CustomPermissions {
|
|
172
|
+
/** Additional allow patterns */
|
|
173
|
+
allow: string[];
|
|
174
|
+
/** Additional deny patterns */
|
|
175
|
+
deny: string[];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Full permissions configuration
|
|
179
|
+
*/
|
|
180
|
+
interface PermissionsConfig {
|
|
181
|
+
/** Selected preset */
|
|
182
|
+
preset: PermissionPreset;
|
|
183
|
+
/** File operation permissions */
|
|
184
|
+
files: FilePermissions;
|
|
185
|
+
/** Git operation permissions */
|
|
186
|
+
git: GitPermissions;
|
|
187
|
+
/** Bash/Terminal permissions */
|
|
188
|
+
bash: BashPermissions;
|
|
189
|
+
/** Web operation permissions */
|
|
190
|
+
web: WebPermissions;
|
|
191
|
+
/** Custom rules */
|
|
192
|
+
custom: CustomPermissions;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Project scaffold types
|
|
197
|
+
*/
|
|
198
|
+
/**
|
|
199
|
+
* Scaffold type options
|
|
200
|
+
*/
|
|
201
|
+
type ScaffoldType = 'claude-only' | 'full-project';
|
|
202
|
+
/**
|
|
203
|
+
* Supported project types for scaffolding
|
|
204
|
+
*/
|
|
205
|
+
type ProjectType = 'node' | 'monorepo' | 'astro' | 'nextjs' | 'vite-react' | 'hono' | 'custom';
|
|
206
|
+
/**
|
|
207
|
+
* Supported package managers
|
|
208
|
+
*/
|
|
209
|
+
type PackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun';
|
|
210
|
+
/**
|
|
211
|
+
* Scaffold options from user selection
|
|
212
|
+
*/
|
|
213
|
+
interface ScaffoldOptions {
|
|
214
|
+
/** Type of scaffold to perform */
|
|
215
|
+
type: ScaffoldType;
|
|
216
|
+
/** Project type (only for full-project) */
|
|
217
|
+
projectType?: ProjectType;
|
|
218
|
+
/** Package manager to use */
|
|
219
|
+
packageManager?: PackageManager;
|
|
220
|
+
/** Initialize git repository */
|
|
221
|
+
initGit?: boolean;
|
|
222
|
+
/** Create README.md */
|
|
223
|
+
createReadme?: boolean;
|
|
224
|
+
/** Create .gitignore */
|
|
225
|
+
createGitignore?: boolean;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Scaffold operation result
|
|
229
|
+
*/
|
|
230
|
+
interface ScaffoldResult {
|
|
231
|
+
/** Files created */
|
|
232
|
+
createdFiles: string[];
|
|
233
|
+
/** Directories created */
|
|
234
|
+
createdDirs: string[];
|
|
235
|
+
/** Post-install instructions */
|
|
236
|
+
instructions: string[];
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Project detection signal
|
|
240
|
+
*/
|
|
241
|
+
interface DetectionSignal {
|
|
242
|
+
/** File or pattern that was found */
|
|
243
|
+
file: string;
|
|
244
|
+
/** Whether it exists */
|
|
245
|
+
exists: boolean;
|
|
246
|
+
/** What it indicates */
|
|
247
|
+
indicates: string;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Project detection result
|
|
251
|
+
*/
|
|
252
|
+
interface ProjectDetectionResult {
|
|
253
|
+
/** Whether a project was detected */
|
|
254
|
+
detected: boolean;
|
|
255
|
+
/** Detected project type */
|
|
256
|
+
projectType?: ProjectType;
|
|
257
|
+
/** Detected package manager */
|
|
258
|
+
packageManager?: PackageManager;
|
|
259
|
+
/** Suggested bundle IDs based on detection */
|
|
260
|
+
suggestedBundles?: string[];
|
|
261
|
+
/** Detected technologies (e.g., ['react', 'typescript', 'tailwind']) */
|
|
262
|
+
detectedTechnologies?: string[];
|
|
263
|
+
/** Overall confidence */
|
|
264
|
+
confidence: 'high' | 'medium' | 'low';
|
|
265
|
+
/** Signals that were found */
|
|
266
|
+
signals: DetectionSignal[];
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/**
|
|
270
|
+
* User's template configuration - Commands
|
|
271
|
+
*/
|
|
272
|
+
interface TemplateConfigCommands {
|
|
273
|
+
typecheck?: string;
|
|
274
|
+
lint?: string;
|
|
275
|
+
test?: string;
|
|
276
|
+
coverage?: string;
|
|
277
|
+
build?: string;
|
|
278
|
+
format?: string;
|
|
279
|
+
securityScan?: string;
|
|
280
|
+
lighthouse?: string;
|
|
281
|
+
bundleAnalyze?: string;
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* User's template configuration - Paths
|
|
285
|
+
*/
|
|
286
|
+
interface TemplateConfigPaths {
|
|
287
|
+
planningPath?: string;
|
|
288
|
+
refactorPath?: string;
|
|
289
|
+
archivePath?: string;
|
|
290
|
+
schemasPath?: string;
|
|
291
|
+
projectRoot?: string;
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* User's template configuration - Targets
|
|
295
|
+
*/
|
|
296
|
+
interface TemplateConfigTargets {
|
|
297
|
+
coverageTarget?: number;
|
|
298
|
+
bundleSizeTarget?: number;
|
|
299
|
+
lcpTarget?: number;
|
|
300
|
+
fidTarget?: number;
|
|
301
|
+
clsTarget?: number;
|
|
302
|
+
apiResponseTarget?: number;
|
|
303
|
+
dbQueryTarget?: number;
|
|
304
|
+
wcagLevel?: 'A' | 'AA' | 'AAA';
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* User's template configuration - Tracking
|
|
308
|
+
*/
|
|
309
|
+
interface TemplateConfigTracking {
|
|
310
|
+
issueTracker?: 'github' | 'linear' | 'jira' | 'none';
|
|
311
|
+
trackingFile?: string;
|
|
312
|
+
registryFile?: string;
|
|
313
|
+
taskCodePattern?: string;
|
|
314
|
+
closedDays?: number;
|
|
315
|
+
staleDays?: number;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* User's template configuration - Tech Stack
|
|
319
|
+
*/
|
|
320
|
+
interface TemplateConfigTechStack {
|
|
321
|
+
frontendFramework?: string;
|
|
322
|
+
databaseOrm?: string;
|
|
323
|
+
validationLibrary?: string;
|
|
324
|
+
authPattern?: string;
|
|
325
|
+
stateManagement?: string;
|
|
326
|
+
testFramework?: string;
|
|
327
|
+
bundler?: string;
|
|
328
|
+
apiFramework?: string;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* User's template configuration - Environment Variables
|
|
332
|
+
*/
|
|
333
|
+
interface TemplateConfigEnvironment {
|
|
334
|
+
githubTokenEnv?: string;
|
|
335
|
+
githubOwnerEnv?: string;
|
|
336
|
+
githubRepoEnv?: string;
|
|
337
|
+
issueTrackerTokenEnv?: string;
|
|
338
|
+
issueTrackerOwnerEnv?: string;
|
|
339
|
+
issueTrackerRepoEnv?: string;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* User's template configuration - Brand
|
|
343
|
+
*/
|
|
344
|
+
interface TemplateConfigBrand {
|
|
345
|
+
brandName?: string;
|
|
346
|
+
primaryColor?: string;
|
|
347
|
+
secondaryColor?: string;
|
|
348
|
+
fontFamily?: string;
|
|
349
|
+
toneOfVoice?: string;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Complete template configuration
|
|
353
|
+
*/
|
|
354
|
+
interface TemplateConfig {
|
|
355
|
+
/** CLI commands */
|
|
356
|
+
commands: TemplateConfigCommands;
|
|
357
|
+
/** Directory paths */
|
|
358
|
+
paths: TemplateConfigPaths;
|
|
359
|
+
/** Quality targets */
|
|
360
|
+
targets: TemplateConfigTargets;
|
|
361
|
+
/** Issue tracking */
|
|
362
|
+
tracking: TemplateConfigTracking;
|
|
363
|
+
/** Technology stack */
|
|
364
|
+
techStack: TemplateConfigTechStack;
|
|
365
|
+
/** Environment variables */
|
|
366
|
+
environment: TemplateConfigEnvironment;
|
|
367
|
+
/** Brand identity */
|
|
368
|
+
brand: TemplateConfigBrand;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
/**
|
|
372
|
+
* Main configuration types for Claude Code config
|
|
373
|
+
*/
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Template source configuration
|
|
377
|
+
*/
|
|
378
|
+
interface TemplateSource {
|
|
379
|
+
/** Whether using local bundled or remote templates */
|
|
380
|
+
type: 'local' | 'remote';
|
|
381
|
+
/** Git repository URL if remote */
|
|
382
|
+
repository?: string;
|
|
383
|
+
/** Branch or tag if remote */
|
|
384
|
+
ref?: string;
|
|
385
|
+
/** When the template was installed */
|
|
386
|
+
installedAt: string;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Project information for placeholder replacement
|
|
390
|
+
*/
|
|
391
|
+
interface ProjectInfo {
|
|
392
|
+
/** Project name */
|
|
393
|
+
name: string;
|
|
394
|
+
/** Brief project description */
|
|
395
|
+
description: string;
|
|
396
|
+
/** GitHub organization or username */
|
|
397
|
+
org: string;
|
|
398
|
+
/** Repository name */
|
|
399
|
+
repo: string;
|
|
400
|
+
/** Project domain (optional) */
|
|
401
|
+
domain?: string;
|
|
402
|
+
/** Primary entity type (singular) */
|
|
403
|
+
entityType: string;
|
|
404
|
+
/** Primary entity type (plural) */
|
|
405
|
+
entityTypePlural: string;
|
|
406
|
+
/** Location for examples (optional) */
|
|
407
|
+
location?: string;
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* User preferences
|
|
411
|
+
*/
|
|
412
|
+
interface Preferences {
|
|
413
|
+
/** Working language */
|
|
414
|
+
language: 'es' | 'en';
|
|
415
|
+
/** Language for Claude responses */
|
|
416
|
+
responseLanguage: 'es' | 'en';
|
|
417
|
+
/** Include Claude as commit co-author */
|
|
418
|
+
includeCoAuthor: boolean;
|
|
419
|
+
/** Preferred package manager */
|
|
420
|
+
packageManager?: PackageManager;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Module selection state
|
|
424
|
+
*/
|
|
425
|
+
interface ModuleSelection {
|
|
426
|
+
/** Selected module IDs */
|
|
427
|
+
selected: string[];
|
|
428
|
+
/** Excluded module IDs */
|
|
429
|
+
excluded: string[];
|
|
430
|
+
}
|
|
431
|
+
/**
|
|
432
|
+
* Hook configuration
|
|
433
|
+
*/
|
|
434
|
+
interface HookConfig {
|
|
435
|
+
/** Whether hooks are enabled */
|
|
436
|
+
enabled: boolean;
|
|
437
|
+
/** Notification hook customizations */
|
|
438
|
+
notification?: {
|
|
439
|
+
/** Enable desktop notifications */
|
|
440
|
+
desktop: boolean;
|
|
441
|
+
/** Enable audio notifications */
|
|
442
|
+
audio: boolean;
|
|
443
|
+
/** Custom notification command */
|
|
444
|
+
customCommand?: string;
|
|
445
|
+
};
|
|
446
|
+
/** Stop hook configuration */
|
|
447
|
+
stop?: {
|
|
448
|
+
/** Play beep sound */
|
|
449
|
+
beep?: boolean;
|
|
450
|
+
/** Custom sound file */
|
|
451
|
+
customSound?: string;
|
|
452
|
+
/** Custom command */
|
|
453
|
+
customCommand?: string;
|
|
454
|
+
};
|
|
455
|
+
/** Subagent stop hook configuration */
|
|
456
|
+
subagentStop?: {
|
|
457
|
+
/** Play beep sound */
|
|
458
|
+
beep?: boolean;
|
|
459
|
+
/** Custom sound file */
|
|
460
|
+
customSound?: string;
|
|
461
|
+
/** Custom command */
|
|
462
|
+
customCommand?: string;
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* MCP configuration
|
|
467
|
+
*/
|
|
468
|
+
interface McpConfig {
|
|
469
|
+
/** Installation level */
|
|
470
|
+
level: 'user' | 'project';
|
|
471
|
+
/** Installed MCP servers */
|
|
472
|
+
servers: McpInstallation[];
|
|
473
|
+
}
|
|
474
|
+
/**
|
|
475
|
+
* Scaffold configuration tracking
|
|
476
|
+
*/
|
|
477
|
+
interface ScaffoldConfig {
|
|
478
|
+
/** What type of scaffold was performed */
|
|
479
|
+
type: 'claude-only' | 'full-project';
|
|
480
|
+
/** List of created directories/files */
|
|
481
|
+
createdStructure: string[];
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Customization tracking
|
|
485
|
+
*/
|
|
486
|
+
interface Customizations {
|
|
487
|
+
/** Whether placeholders were replaced */
|
|
488
|
+
placeholdersReplaced: boolean;
|
|
489
|
+
/** Last update timestamp */
|
|
490
|
+
lastUpdated: string;
|
|
491
|
+
/** Files that were manually modified */
|
|
492
|
+
customFiles: string[];
|
|
493
|
+
/** Permissions configuration (if custom) */
|
|
494
|
+
permissions?: PermissionsConfig;
|
|
495
|
+
/** Selected bundle IDs used during installation */
|
|
496
|
+
selectedBundles?: string[];
|
|
497
|
+
}
|
|
498
|
+
/**
|
|
499
|
+
* Modules configuration
|
|
500
|
+
*/
|
|
501
|
+
interface ModulesConfig {
|
|
502
|
+
/** Installed agents */
|
|
503
|
+
agents: ModuleSelection;
|
|
504
|
+
/** Installed skills */
|
|
505
|
+
skills: ModuleSelection;
|
|
506
|
+
/** Installed commands */
|
|
507
|
+
commands: ModuleSelection;
|
|
508
|
+
/** Installed docs */
|
|
509
|
+
docs: ModuleSelection;
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Indent style options
|
|
513
|
+
*/
|
|
514
|
+
type IndentStyle = 'space' | 'tab';
|
|
515
|
+
/**
|
|
516
|
+
* Quote style options
|
|
517
|
+
*/
|
|
518
|
+
type QuoteStyle = 'single' | 'double';
|
|
519
|
+
/**
|
|
520
|
+
* EditorConfig options
|
|
521
|
+
*/
|
|
522
|
+
interface EditorConfigOptions {
|
|
523
|
+
/** Indent style (tabs or spaces) */
|
|
524
|
+
indentStyle: IndentStyle;
|
|
525
|
+
/** Indent size (number of spaces or tab width) */
|
|
526
|
+
indentSize: number;
|
|
527
|
+
/** Line ending style */
|
|
528
|
+
endOfLine: 'lf' | 'crlf' | 'cr';
|
|
529
|
+
/** Insert final newline */
|
|
530
|
+
insertFinalNewline: boolean;
|
|
531
|
+
/** Trim trailing whitespace */
|
|
532
|
+
trimTrailingWhitespace: boolean;
|
|
533
|
+
/** Character set */
|
|
534
|
+
charset: 'utf-8' | 'utf-8-bom' | 'latin1';
|
|
535
|
+
/** Max line length */
|
|
536
|
+
maxLineLength: number | 'off';
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* Biome formatter options
|
|
540
|
+
*/
|
|
541
|
+
interface BiomeFormatterOptions {
|
|
542
|
+
/** Indent style */
|
|
543
|
+
indentStyle: IndentStyle;
|
|
544
|
+
/** Indent width */
|
|
545
|
+
indentWidth: number;
|
|
546
|
+
/** Line width */
|
|
547
|
+
lineWidth: number;
|
|
548
|
+
/** Quote style for JS/TS */
|
|
549
|
+
quoteStyle: QuoteStyle;
|
|
550
|
+
/** Use semicolons */
|
|
551
|
+
semicolons: 'always' | 'asNeeded';
|
|
552
|
+
/** Trailing commas */
|
|
553
|
+
trailingCommas: 'all' | 'es5' | 'none';
|
|
554
|
+
/** Quote properties */
|
|
555
|
+
quoteProperties: 'asNeeded' | 'preserve';
|
|
556
|
+
/** Bracket spacing */
|
|
557
|
+
bracketSpacing: boolean;
|
|
558
|
+
/** Bracket same line (JSX) */
|
|
559
|
+
bracketSameLine: boolean;
|
|
560
|
+
/** Arrow function parentheses */
|
|
561
|
+
arrowParentheses: 'always' | 'asNeeded';
|
|
562
|
+
}
|
|
563
|
+
/**
|
|
564
|
+
* Biome linter options
|
|
565
|
+
*/
|
|
566
|
+
interface BiomeLinterOptions {
|
|
567
|
+
/** Enable recommended rules */
|
|
568
|
+
recommended: boolean;
|
|
569
|
+
/** Enable correctness rules */
|
|
570
|
+
correctness: boolean;
|
|
571
|
+
/** Enable suspicious code rules */
|
|
572
|
+
suspicious: boolean;
|
|
573
|
+
/** Enable style rules */
|
|
574
|
+
style: boolean;
|
|
575
|
+
/** Enable complexity rules */
|
|
576
|
+
complexity: boolean;
|
|
577
|
+
/** Enable security rules */
|
|
578
|
+
security: boolean;
|
|
579
|
+
/** Enable performance rules */
|
|
580
|
+
performance: boolean;
|
|
581
|
+
/** Enable accessibility rules */
|
|
582
|
+
a11y: boolean;
|
|
583
|
+
}
|
|
584
|
+
/**
|
|
585
|
+
* Biome configuration options
|
|
586
|
+
*/
|
|
587
|
+
interface BiomeOptions {
|
|
588
|
+
/** Formatter options */
|
|
589
|
+
formatter: BiomeFormatterOptions;
|
|
590
|
+
/** Linter options */
|
|
591
|
+
linter: BiomeLinterOptions;
|
|
592
|
+
/** Organize imports */
|
|
593
|
+
organizeImports: boolean;
|
|
594
|
+
/** Files to ignore */
|
|
595
|
+
ignorePatterns: string[];
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* Prettier options
|
|
599
|
+
*/
|
|
600
|
+
interface PrettierOptions {
|
|
601
|
+
/** Print width */
|
|
602
|
+
printWidth: number;
|
|
603
|
+
/** Tab width */
|
|
604
|
+
tabWidth: number;
|
|
605
|
+
/** Use tabs instead of spaces */
|
|
606
|
+
useTabs: boolean;
|
|
607
|
+
/** Use semicolons */
|
|
608
|
+
semi: boolean;
|
|
609
|
+
/** Use single quotes */
|
|
610
|
+
singleQuote: boolean;
|
|
611
|
+
/** JSX single quotes */
|
|
612
|
+
jsxSingleQuote: boolean;
|
|
613
|
+
/** Trailing commas */
|
|
614
|
+
trailingComma: 'all' | 'es5' | 'none';
|
|
615
|
+
/** Bracket spacing */
|
|
616
|
+
bracketSpacing: boolean;
|
|
617
|
+
/** Bracket same line (JSX) */
|
|
618
|
+
bracketSameLine: boolean;
|
|
619
|
+
/** Arrow function parentheses */
|
|
620
|
+
arrowParens: 'always' | 'avoid';
|
|
621
|
+
/** End of line */
|
|
622
|
+
endOfLine: 'lf' | 'crlf' | 'cr' | 'auto';
|
|
623
|
+
/** Prose wrap (for markdown) */
|
|
624
|
+
proseWrap: 'always' | 'never' | 'preserve';
|
|
625
|
+
/** HTML whitespace sensitivity */
|
|
626
|
+
htmlWhitespaceSensitivity: 'css' | 'strict' | 'ignore';
|
|
627
|
+
/** Single attribute per line (HTML/JSX) */
|
|
628
|
+
singleAttributePerLine: boolean;
|
|
629
|
+
}
|
|
630
|
+
/**
|
|
631
|
+
* Commitlint configuration options
|
|
632
|
+
*/
|
|
633
|
+
interface CommitlintOptions {
|
|
634
|
+
/** Extends base config */
|
|
635
|
+
extends: string[];
|
|
636
|
+
/** Commit types allowed */
|
|
637
|
+
types: string[];
|
|
638
|
+
/** Scopes allowed (empty for any) */
|
|
639
|
+
scopes: string[];
|
|
640
|
+
/** Maximum header length */
|
|
641
|
+
headerMaxLength: number;
|
|
642
|
+
/** Require scope */
|
|
643
|
+
scopeRequired: boolean;
|
|
644
|
+
/** Require body */
|
|
645
|
+
bodyRequired: boolean;
|
|
646
|
+
/** Body max line length */
|
|
647
|
+
bodyMaxLineLength: number;
|
|
648
|
+
/** Enable Husky integration */
|
|
649
|
+
huskyIntegration: boolean;
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Code style configuration
|
|
653
|
+
*/
|
|
654
|
+
interface CodeStyleConfig {
|
|
655
|
+
/** Whether code style tools are enabled */
|
|
656
|
+
enabled: boolean;
|
|
657
|
+
/** EditorConfig file installed */
|
|
658
|
+
editorconfig: boolean;
|
|
659
|
+
/** EditorConfig options */
|
|
660
|
+
editorconfigOptions?: EditorConfigOptions;
|
|
661
|
+
/** Commitlint configuration installed */
|
|
662
|
+
commitlint: boolean;
|
|
663
|
+
/** Commitlint options */
|
|
664
|
+
commitlintOptions?: CommitlintOptions;
|
|
665
|
+
/** Biome configuration installed */
|
|
666
|
+
biome: boolean;
|
|
667
|
+
/** Biome options */
|
|
668
|
+
biomeOptions?: BiomeOptions;
|
|
669
|
+
/** Prettier configuration installed */
|
|
670
|
+
prettier: boolean;
|
|
671
|
+
/** Prettier options */
|
|
672
|
+
prettierOptions?: PrettierOptions;
|
|
673
|
+
}
|
|
674
|
+
/**
|
|
675
|
+
* Extra components configuration
|
|
676
|
+
*/
|
|
677
|
+
interface ExtrasConfig {
|
|
678
|
+
/** JSON schemas installed */
|
|
679
|
+
schemas: boolean;
|
|
680
|
+
/** Automation scripts installed */
|
|
681
|
+
scripts: boolean;
|
|
682
|
+
/** Hook configuration */
|
|
683
|
+
hooks: HookConfig;
|
|
684
|
+
/** Planning sessions structure */
|
|
685
|
+
sessions: boolean;
|
|
686
|
+
/** Code style configuration */
|
|
687
|
+
codeStyle?: CodeStyleConfig;
|
|
688
|
+
/** Folder structure preferences */
|
|
689
|
+
folderPreferences?: FolderPreferences;
|
|
690
|
+
}
|
|
691
|
+
/**
|
|
692
|
+
* Main Claude configuration stored in .claude/config.json
|
|
693
|
+
*/
|
|
694
|
+
interface ClaudeConfig {
|
|
695
|
+
/** CLI version that created this config */
|
|
696
|
+
version: string;
|
|
697
|
+
/** Template source information */
|
|
698
|
+
templateSource: TemplateSource;
|
|
699
|
+
/** Project-specific values */
|
|
700
|
+
project: ProjectInfo;
|
|
701
|
+
/** User preferences */
|
|
702
|
+
preferences: Preferences;
|
|
703
|
+
/** MCP configuration */
|
|
704
|
+
mcp: McpConfig;
|
|
705
|
+
/** Installed modules */
|
|
706
|
+
modules: ModulesConfig;
|
|
707
|
+
/** Extra components */
|
|
708
|
+
extras: ExtrasConfig;
|
|
709
|
+
/** Scaffold tracking */
|
|
710
|
+
scaffold: ScaffoldConfig;
|
|
711
|
+
/** Customization tracking */
|
|
712
|
+
customizations: Customizations;
|
|
713
|
+
/** Template placeholder configuration */
|
|
714
|
+
templateConfig?: Partial<TemplateConfig>;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
/**
|
|
718
|
+
* Module registry and definition types
|
|
719
|
+
*/
|
|
720
|
+
/**
|
|
721
|
+
* Module categories
|
|
722
|
+
*/
|
|
723
|
+
type ModuleCategory = 'agents' | 'skills' | 'commands' | 'docs';
|
|
724
|
+
/**
|
|
725
|
+
* Extended description for better user understanding
|
|
726
|
+
*/
|
|
727
|
+
interface ModuleExtendedInfo {
|
|
728
|
+
/** Detailed explanation of what this module does */
|
|
729
|
+
longDescription?: string;
|
|
730
|
+
/** List of specific capabilities or features */
|
|
731
|
+
whatItDoes?: string[];
|
|
732
|
+
/** When/why to use this module */
|
|
733
|
+
whenToUse?: string;
|
|
734
|
+
/** Technology stack this module is designed for */
|
|
735
|
+
techStack?: string[];
|
|
736
|
+
/** Alternative modules (e.g., "prisma" is alternative to "drizzle") */
|
|
737
|
+
alternativeTo?: string[];
|
|
738
|
+
/** Related modules that work well together */
|
|
739
|
+
relatedModules?: string[];
|
|
740
|
+
/** Skill level (beginner, intermediate, advanced) */
|
|
741
|
+
skillLevel?: 'beginner' | 'intermediate' | 'advanced';
|
|
742
|
+
/** Author or source of this module */
|
|
743
|
+
author?: string;
|
|
744
|
+
/** Version of the module */
|
|
745
|
+
version?: string;
|
|
746
|
+
}
|
|
747
|
+
/**
|
|
748
|
+
* Module definition in registry
|
|
749
|
+
*/
|
|
750
|
+
interface ModuleDefinition extends ModuleExtendedInfo {
|
|
751
|
+
/** Unique identifier */
|
|
752
|
+
id: string;
|
|
753
|
+
/** Display name */
|
|
754
|
+
name: string;
|
|
755
|
+
/** Short description (shown in selection lists) */
|
|
756
|
+
description: string;
|
|
757
|
+
/** Category this module belongs to */
|
|
758
|
+
category: ModuleCategory;
|
|
759
|
+
/** File path relative to category directory */
|
|
760
|
+
file: string;
|
|
761
|
+
/** Other modules this depends on */
|
|
762
|
+
dependencies?: string[];
|
|
763
|
+
/** Categorization tags */
|
|
764
|
+
tags?: string[];
|
|
765
|
+
/** Whether this is a core module (always installed) */
|
|
766
|
+
isCore?: boolean;
|
|
767
|
+
/** Bundle IDs that include this module (optional, can be computed) */
|
|
768
|
+
includedInBundles?: string[];
|
|
769
|
+
/** Placeholders used in this module's files */
|
|
770
|
+
placeholders?: string[];
|
|
771
|
+
}
|
|
772
|
+
/**
|
|
773
|
+
* Full module registry - all categories combined
|
|
774
|
+
*/
|
|
775
|
+
interface ModuleRegistry {
|
|
776
|
+
/** Agent modules */
|
|
777
|
+
agents: ModuleDefinition[];
|
|
778
|
+
/** Skill modules */
|
|
779
|
+
skills: ModuleDefinition[];
|
|
780
|
+
/** Command modules */
|
|
781
|
+
commands: ModuleDefinition[];
|
|
782
|
+
/** Documentation modules */
|
|
783
|
+
docs: ModuleDefinition[];
|
|
784
|
+
}
|
|
785
|
+
/**
|
|
786
|
+
* Resolved module ready for installation
|
|
787
|
+
*/
|
|
788
|
+
interface ResolvedModule$1 {
|
|
789
|
+
/** Module category */
|
|
790
|
+
category: ModuleCategory;
|
|
791
|
+
/** Module identifier */
|
|
792
|
+
id: string;
|
|
793
|
+
/** Module definition */
|
|
794
|
+
definition: ModuleDefinition;
|
|
795
|
+
/** Source path (in templates) */
|
|
796
|
+
sourcePath: string;
|
|
797
|
+
/** Target path (in .claude) */
|
|
798
|
+
targetPath: string;
|
|
799
|
+
}
|
|
800
|
+
/**
|
|
801
|
+
* Module selection result from prompts
|
|
802
|
+
*/
|
|
803
|
+
interface ModuleSelectionResult {
|
|
804
|
+
/** Selected agents by id */
|
|
805
|
+
agents: string[];
|
|
806
|
+
/** Selected skills by id */
|
|
807
|
+
skills: string[];
|
|
808
|
+
/** Selected commands by id */
|
|
809
|
+
commands: string[];
|
|
810
|
+
/** Selected docs by id */
|
|
811
|
+
docs: string[];
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
/**
|
|
815
|
+
* Bundle configuration types for grouping related modules
|
|
816
|
+
*/
|
|
817
|
+
|
|
818
|
+
/**
|
|
819
|
+
* Bundle categories for organizing bundles
|
|
820
|
+
*/
|
|
821
|
+
type BundleCategory = 'stack' | 'testing' | 'quality' | 'database' | 'api' | 'frontend' | 'workflow' | 'cicd';
|
|
822
|
+
/**
|
|
823
|
+
* Bundle complexity level
|
|
824
|
+
*/
|
|
825
|
+
type BundleComplexity = 'minimal' | 'standard' | 'comprehensive';
|
|
826
|
+
/**
|
|
827
|
+
* Module reference within a bundle
|
|
828
|
+
*/
|
|
829
|
+
interface BundleModuleRef {
|
|
830
|
+
/** Module ID */
|
|
831
|
+
id: string;
|
|
832
|
+
/** Module category (agents, skills, commands, docs) */
|
|
833
|
+
category: ModuleCategory;
|
|
834
|
+
/** Whether this module is optional in the bundle (nice to have) */
|
|
835
|
+
optional?: boolean;
|
|
836
|
+
/** IDs of modules that require this module to function properly */
|
|
837
|
+
requiredBy?: string[];
|
|
838
|
+
}
|
|
839
|
+
/**
|
|
840
|
+
* Detailed agent information for display
|
|
841
|
+
*/
|
|
842
|
+
interface AgentDetail {
|
|
843
|
+
/** Agent module ID */
|
|
844
|
+
id: string;
|
|
845
|
+
/** Primary role of the agent */
|
|
846
|
+
role: string;
|
|
847
|
+
/** Key responsibilities */
|
|
848
|
+
responsibilities: string[];
|
|
849
|
+
}
|
|
850
|
+
/**
|
|
851
|
+
* Detailed skill information for display
|
|
852
|
+
*/
|
|
853
|
+
interface SkillDetail {
|
|
854
|
+
/** Skill module ID */
|
|
855
|
+
id: string;
|
|
856
|
+
/** Purpose of the skill */
|
|
857
|
+
purpose: string;
|
|
858
|
+
}
|
|
859
|
+
/**
|
|
860
|
+
* Detailed command information for display
|
|
861
|
+
*/
|
|
862
|
+
interface CommandDetail {
|
|
863
|
+
/** Command module ID */
|
|
864
|
+
id: string;
|
|
865
|
+
/** Example usage */
|
|
866
|
+
usage: string;
|
|
867
|
+
}
|
|
868
|
+
/**
|
|
869
|
+
* Detailed doc information for display
|
|
870
|
+
*/
|
|
871
|
+
interface DocDetail {
|
|
872
|
+
/** Doc module ID */
|
|
873
|
+
id: string;
|
|
874
|
+
/** Topic the doc covers */
|
|
875
|
+
topic: string;
|
|
876
|
+
}
|
|
877
|
+
/**
|
|
878
|
+
* Detailed module information for rich display
|
|
879
|
+
*/
|
|
880
|
+
interface BundleModuleDetails {
|
|
881
|
+
/** Agent details with roles and responsibilities */
|
|
882
|
+
agents: AgentDetail[];
|
|
883
|
+
/** Skill details with purposes */
|
|
884
|
+
skills: SkillDetail[];
|
|
885
|
+
/** Command details with usage examples */
|
|
886
|
+
commands: CommandDetail[];
|
|
887
|
+
/** Doc details with topics */
|
|
888
|
+
docs: DocDetail[];
|
|
889
|
+
}
|
|
890
|
+
/**
|
|
891
|
+
* Bundle definition
|
|
892
|
+
*/
|
|
893
|
+
interface BundleDefinition {
|
|
894
|
+
/** Unique bundle identifier */
|
|
895
|
+
id: string;
|
|
896
|
+
/** Display name */
|
|
897
|
+
name: string;
|
|
898
|
+
/** Short description */
|
|
899
|
+
description: string;
|
|
900
|
+
/** Bundle category */
|
|
901
|
+
category: BundleCategory;
|
|
902
|
+
/** Modules included in this bundle */
|
|
903
|
+
modules: BundleModuleRef[];
|
|
904
|
+
/** Long description explaining what this bundle provides */
|
|
905
|
+
longDescription?: string;
|
|
906
|
+
/** Technology stack this bundle is designed for */
|
|
907
|
+
techStack?: string[];
|
|
908
|
+
/** Alternative bundles (e.g., "prisma-bundle" is alternative to "drizzle-bundle") */
|
|
909
|
+
alternativeTo?: string[];
|
|
910
|
+
/** Tags for filtering */
|
|
911
|
+
tags?: string[];
|
|
912
|
+
/** What problems this bundle solves */
|
|
913
|
+
responsibilities?: string[];
|
|
914
|
+
/** Scope/reach of the bundle */
|
|
915
|
+
scope?: string;
|
|
916
|
+
/** When to use this bundle */
|
|
917
|
+
useCases?: string[];
|
|
918
|
+
/** Bundles that should be installed before this one */
|
|
919
|
+
prerequisites?: string[];
|
|
920
|
+
/** Bundles that conflict with this one (mutually exclusive) */
|
|
921
|
+
conflicts?: string[];
|
|
922
|
+
/** Complexity level of the bundle */
|
|
923
|
+
complexity?: BundleComplexity;
|
|
924
|
+
/** Detailed information about each module for rich display */
|
|
925
|
+
moduleDetails?: BundleModuleDetails;
|
|
926
|
+
}
|
|
927
|
+
/**
|
|
928
|
+
* Bundle selection result
|
|
929
|
+
*/
|
|
930
|
+
interface BundleSelectionResult {
|
|
931
|
+
/** Selected bundle IDs */
|
|
932
|
+
selectedBundles: string[];
|
|
933
|
+
/** Individual modules selected outside bundles */
|
|
934
|
+
additionalModules: {
|
|
935
|
+
agents: string[];
|
|
936
|
+
skills: string[];
|
|
937
|
+
commands: string[];
|
|
938
|
+
docs: string[];
|
|
939
|
+
};
|
|
940
|
+
}
|
|
941
|
+
/**
|
|
942
|
+
* Resolved bundle with full module definitions
|
|
943
|
+
*/
|
|
944
|
+
interface ResolvedBundle {
|
|
945
|
+
/** Bundle definition */
|
|
946
|
+
bundle: BundleDefinition;
|
|
947
|
+
/** Resolved modules from the bundle */
|
|
948
|
+
modules: {
|
|
949
|
+
agents: string[];
|
|
950
|
+
skills: string[];
|
|
951
|
+
commands: string[];
|
|
952
|
+
docs: string[];
|
|
953
|
+
};
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
/**
|
|
957
|
+
* Predefined bundles for grouping related modules
|
|
958
|
+
*/
|
|
959
|
+
|
|
960
|
+
/**
|
|
961
|
+
* All available bundles
|
|
962
|
+
*/
|
|
963
|
+
declare const BUNDLES: BundleDefinition[];
|
|
964
|
+
/**
|
|
965
|
+
* Get all bundles
|
|
966
|
+
*/
|
|
967
|
+
declare function getAllBundles(): BundleDefinition[];
|
|
968
|
+
/**
|
|
969
|
+
* Get bundle by ID
|
|
970
|
+
*/
|
|
971
|
+
declare function getBundleById(id: string): BundleDefinition | undefined;
|
|
972
|
+
|
|
973
|
+
/**
|
|
974
|
+
* MCP Server definitions
|
|
975
|
+
*/
|
|
976
|
+
|
|
977
|
+
/**
|
|
978
|
+
* Available MCP servers
|
|
979
|
+
*/
|
|
980
|
+
declare const MCP_SERVERS: McpServerDefinition[];
|
|
981
|
+
|
|
982
|
+
/**
|
|
983
|
+
* System dependency types
|
|
984
|
+
*/
|
|
985
|
+
/**
|
|
986
|
+
* Platform identifiers
|
|
987
|
+
*/
|
|
988
|
+
type Platform = 'linux' | 'macos' | 'windows';
|
|
989
|
+
/**
|
|
990
|
+
* Installation instructions for a platform
|
|
991
|
+
*/
|
|
992
|
+
interface InstallInstructions {
|
|
993
|
+
/** Commands to run */
|
|
994
|
+
commands: string[];
|
|
995
|
+
/** Additional notes */
|
|
996
|
+
notes?: string;
|
|
997
|
+
/** Useful links */
|
|
998
|
+
links?: string[];
|
|
999
|
+
}
|
|
1000
|
+
/**
|
|
1001
|
+
* System dependency information
|
|
1002
|
+
*/
|
|
1003
|
+
interface DependencyInfo {
|
|
1004
|
+
/** Unique identifier */
|
|
1005
|
+
id: string;
|
|
1006
|
+
/** Display name */
|
|
1007
|
+
name: string;
|
|
1008
|
+
/** Description of what this dependency provides */
|
|
1009
|
+
description: string;
|
|
1010
|
+
/** Features that require this dependency */
|
|
1011
|
+
requiredFor: string[];
|
|
1012
|
+
/** Command to check if installed */
|
|
1013
|
+
checkCommand: string;
|
|
1014
|
+
/** Platform-specific installation instructions */
|
|
1015
|
+
platforms: Partial<Record<Platform, InstallInstructions>>;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
/**
|
|
1019
|
+
* System dependency definitions
|
|
1020
|
+
*/
|
|
1021
|
+
|
|
1022
|
+
/**
|
|
1023
|
+
* System dependencies required for various features
|
|
1024
|
+
*/
|
|
1025
|
+
declare const DEPENDENCIES: DependencyInfo[];
|
|
1026
|
+
|
|
1027
|
+
/**
|
|
1028
|
+
* Placeholder replacement types
|
|
1029
|
+
*/
|
|
1030
|
+
|
|
1031
|
+
/**
|
|
1032
|
+
* Transformation to apply to placeholder value
|
|
1033
|
+
*/
|
|
1034
|
+
type PlaceholderTransform = 'none' | 'lowercase' | 'uppercase' | 'capitalize' | 'pluralize';
|
|
1035
|
+
/**
|
|
1036
|
+
* Placeholder definition
|
|
1037
|
+
*/
|
|
1038
|
+
interface PlaceholderDefinition {
|
|
1039
|
+
/** Pattern to find (string or regex) */
|
|
1040
|
+
pattern: string | RegExp;
|
|
1041
|
+
/** Config key to get replacement value */
|
|
1042
|
+
configKey: keyof ProjectInfo;
|
|
1043
|
+
/** Transformation to apply */
|
|
1044
|
+
transform: PlaceholderTransform;
|
|
1045
|
+
/** Description for documentation */
|
|
1046
|
+
description: string;
|
|
1047
|
+
/** Example value */
|
|
1048
|
+
example: string;
|
|
1049
|
+
/** Whether this placeholder is required */
|
|
1050
|
+
required: boolean;
|
|
1051
|
+
}
|
|
1052
|
+
/**
|
|
1053
|
+
* Single placeholder replacement record
|
|
1054
|
+
*/
|
|
1055
|
+
interface PlaceholderReplacement {
|
|
1056
|
+
/** File where replacement was made */
|
|
1057
|
+
file: string;
|
|
1058
|
+
/** Line number */
|
|
1059
|
+
line: number;
|
|
1060
|
+
/** Original text */
|
|
1061
|
+
original: string;
|
|
1062
|
+
/** Replacement text */
|
|
1063
|
+
replacement: string;
|
|
1064
|
+
/** Placeholder definition used */
|
|
1065
|
+
placeholder: PlaceholderDefinition;
|
|
1066
|
+
}
|
|
1067
|
+
/**
|
|
1068
|
+
* Placeholder replacement report
|
|
1069
|
+
*/
|
|
1070
|
+
interface PlaceholderReport {
|
|
1071
|
+
/** Total files scanned */
|
|
1072
|
+
totalFiles: number;
|
|
1073
|
+
/** Files that were modified */
|
|
1074
|
+
filesModified: number;
|
|
1075
|
+
/** All replacements made */
|
|
1076
|
+
replacements: PlaceholderReplacement[];
|
|
1077
|
+
/** Placeholders that couldn't be replaced (missing values) */
|
|
1078
|
+
unreplacedPlaceholders: string[];
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
/**
|
|
1082
|
+
* Placeholder definitions for template processing
|
|
1083
|
+
*/
|
|
1084
|
+
|
|
1085
|
+
/**
|
|
1086
|
+
* All placeholder patterns that can be replaced in templates
|
|
1087
|
+
*/
|
|
1088
|
+
declare const PLACEHOLDERS: PlaceholderDefinition[];
|
|
1089
|
+
|
|
1090
|
+
/**
|
|
1091
|
+
* Permission preset definitions
|
|
1092
|
+
*/
|
|
1093
|
+
|
|
1094
|
+
/**
|
|
1095
|
+
* All permission presets
|
|
1096
|
+
*/
|
|
1097
|
+
declare const PERMISSION_PRESETS: Record<PermissionPreset, Omit<PermissionsConfig, 'preset' | 'custom'>>;
|
|
1098
|
+
|
|
1099
|
+
/**
|
|
1100
|
+
* Bundle resolver - resolves bundles to individual modules
|
|
1101
|
+
*/
|
|
1102
|
+
|
|
1103
|
+
/**
|
|
1104
|
+
* Resolve a bundle to its constituent modules
|
|
1105
|
+
*/
|
|
1106
|
+
declare function resolveBundle(bundle: BundleDefinition): ResolvedBundle;
|
|
1107
|
+
/**
|
|
1108
|
+
* Resolve multiple bundles to a combined module selection
|
|
1109
|
+
*/
|
|
1110
|
+
declare function resolveBundles(bundleIds: string[]): ModuleSelectionResult;
|
|
1111
|
+
/**
|
|
1112
|
+
* Merge bundle selection with additional individual modules
|
|
1113
|
+
*/
|
|
1114
|
+
declare function mergeBundleSelection(bundleResult: BundleSelectionResult): ModuleSelectionResult;
|
|
1115
|
+
|
|
1116
|
+
/**
|
|
1117
|
+
* Configuration reader - reads Claude config files
|
|
1118
|
+
*/
|
|
1119
|
+
|
|
1120
|
+
/**
|
|
1121
|
+
* Read Claude configuration from a project
|
|
1122
|
+
*/
|
|
1123
|
+
declare function readConfig(projectPath: string): Promise<ClaudeConfig | null>;
|
|
1124
|
+
/**
|
|
1125
|
+
* Check if a Claude configuration exists
|
|
1126
|
+
*/
|
|
1127
|
+
declare function hasConfig(projectPath: string): Promise<boolean>;
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
* Configuration writer - writes Claude config files
|
|
1131
|
+
*/
|
|
1132
|
+
|
|
1133
|
+
/**
|
|
1134
|
+
* Write Claude configuration
|
|
1135
|
+
*/
|
|
1136
|
+
declare function writeConfig(projectPath: string, config: ClaudeConfig, options?: {
|
|
1137
|
+
backup?: boolean;
|
|
1138
|
+
}): Promise<void>;
|
|
1139
|
+
/**
|
|
1140
|
+
* Create a default configuration
|
|
1141
|
+
*/
|
|
1142
|
+
declare function createDefaultConfig(options: {
|
|
1143
|
+
version: string;
|
|
1144
|
+
projectInfo: ClaudeConfig['project'];
|
|
1145
|
+
preferences: ClaudeConfig['preferences'];
|
|
1146
|
+
}): ClaudeConfig;
|
|
1147
|
+
|
|
1148
|
+
/**
|
|
1149
|
+
* Module registry - reads and manages module definitions from templates
|
|
1150
|
+
*/
|
|
1151
|
+
|
|
1152
|
+
/**
|
|
1153
|
+
* Load module registry from a templates directory
|
|
1154
|
+
*/
|
|
1155
|
+
declare function loadRegistry(templatesPath: string): Promise<ModuleRegistry>;
|
|
1156
|
+
|
|
1157
|
+
/**
|
|
1158
|
+
* Module resolver - resolves module dependencies and order
|
|
1159
|
+
*/
|
|
1160
|
+
|
|
1161
|
+
interface ResolvedModule extends ModuleDefinition {
|
|
1162
|
+
resolvedDependencies: string[];
|
|
1163
|
+
installOrder: number;
|
|
1164
|
+
}
|
|
1165
|
+
interface ResolutionResult {
|
|
1166
|
+
resolved: ResolvedModule[];
|
|
1167
|
+
unresolved: string[];
|
|
1168
|
+
circular: string[];
|
|
1169
|
+
}
|
|
1170
|
+
/**
|
|
1171
|
+
* Resolve dependencies for selected modules
|
|
1172
|
+
*/
|
|
1173
|
+
declare function resolveModules(registry: ModuleRegistry, category: ModuleCategory, selectedIds: string[]): ResolutionResult;
|
|
1174
|
+
|
|
1175
|
+
/**
|
|
1176
|
+
* Module installer - copies and configures module files
|
|
1177
|
+
*/
|
|
1178
|
+
|
|
1179
|
+
interface InstallOptions {
|
|
1180
|
+
templatesPath: string;
|
|
1181
|
+
targetPath: string;
|
|
1182
|
+
overwrite?: boolean;
|
|
1183
|
+
dryRun?: boolean;
|
|
1184
|
+
}
|
|
1185
|
+
interface InstallResult {
|
|
1186
|
+
success: boolean;
|
|
1187
|
+
installed: string[];
|
|
1188
|
+
skipped: string[];
|
|
1189
|
+
failed: Array<{
|
|
1190
|
+
id: string;
|
|
1191
|
+
error: string;
|
|
1192
|
+
}>;
|
|
1193
|
+
}
|
|
1194
|
+
/**
|
|
1195
|
+
* Install modules for a category
|
|
1196
|
+
*/
|
|
1197
|
+
declare function installModules(category: ModuleCategory, modules: ModuleDefinition[], options: InstallOptions): Promise<InstallResult>;
|
|
1198
|
+
|
|
1199
|
+
/**
|
|
1200
|
+
* Placeholder replacer - finds and replaces placeholders in files
|
|
1201
|
+
*/
|
|
1202
|
+
|
|
1203
|
+
/**
|
|
1204
|
+
* Replace placeholders with spinner
|
|
1205
|
+
*/
|
|
1206
|
+
declare function replacePlaceholders(dirPath: string, projectInfo: ProjectInfo, options?: {
|
|
1207
|
+
extensions?: string[];
|
|
1208
|
+
exclude?: string[];
|
|
1209
|
+
dryRun?: boolean;
|
|
1210
|
+
silent?: boolean;
|
|
1211
|
+
}): Promise<PlaceholderReport>;
|
|
1212
|
+
|
|
1213
|
+
/**
|
|
1214
|
+
* Project detector - detects existing project type and configuration
|
|
1215
|
+
*/
|
|
1216
|
+
|
|
1217
|
+
/**
|
|
1218
|
+
* Detect project type and configuration
|
|
1219
|
+
*/
|
|
1220
|
+
declare function detectProject(projectPath: string): Promise<ProjectDetectionResult>;
|
|
1221
|
+
|
|
1222
|
+
/**
|
|
1223
|
+
* Template processing types for dynamic content generation
|
|
1224
|
+
*/
|
|
1225
|
+
|
|
1226
|
+
/**
|
|
1227
|
+
* Context for template processing
|
|
1228
|
+
*/
|
|
1229
|
+
interface TemplateContext {
|
|
1230
|
+
/** Project info from config */
|
|
1231
|
+
project: {
|
|
1232
|
+
name?: string;
|
|
1233
|
+
description?: string;
|
|
1234
|
+
org?: string;
|
|
1235
|
+
repo?: string;
|
|
1236
|
+
domain?: string;
|
|
1237
|
+
entityType?: string;
|
|
1238
|
+
location?: string;
|
|
1239
|
+
};
|
|
1240
|
+
/** Selected modules by category */
|
|
1241
|
+
modules: {
|
|
1242
|
+
agents: string[];
|
|
1243
|
+
skills: string[];
|
|
1244
|
+
commands: string[];
|
|
1245
|
+
docs: string[];
|
|
1246
|
+
};
|
|
1247
|
+
/** Code style choices */
|
|
1248
|
+
codeStyle: {
|
|
1249
|
+
formatter?: 'biome' | 'prettier' | 'none';
|
|
1250
|
+
linter?: 'biome' | 'eslint' | 'none';
|
|
1251
|
+
editorConfig?: boolean;
|
|
1252
|
+
commitlint?: boolean;
|
|
1253
|
+
};
|
|
1254
|
+
/** Technology stack choices */
|
|
1255
|
+
techStack: {
|
|
1256
|
+
framework?: string;
|
|
1257
|
+
database?: string;
|
|
1258
|
+
orm?: string;
|
|
1259
|
+
testing?: string;
|
|
1260
|
+
deployment?: string;
|
|
1261
|
+
};
|
|
1262
|
+
/** Bundle selections */
|
|
1263
|
+
bundles: string[];
|
|
1264
|
+
/** MCP servers enabled */
|
|
1265
|
+
mcpServers: string[];
|
|
1266
|
+
/** Custom variables */
|
|
1267
|
+
custom: Record<string, string | boolean | number | string[]>;
|
|
1268
|
+
}
|
|
1269
|
+
/**
|
|
1270
|
+
* Template processing result
|
|
1271
|
+
*/
|
|
1272
|
+
interface TemplateResult {
|
|
1273
|
+
/** Processed content */
|
|
1274
|
+
content: string;
|
|
1275
|
+
/** Whether any directives were processed */
|
|
1276
|
+
modified: boolean;
|
|
1277
|
+
/** Directives found and processed */
|
|
1278
|
+
directivesProcessed: number;
|
|
1279
|
+
/** Any warnings during processing */
|
|
1280
|
+
warnings: string[];
|
|
1281
|
+
/** Any errors during processing */
|
|
1282
|
+
errors: string[];
|
|
1283
|
+
}
|
|
1284
|
+
/**
|
|
1285
|
+
* Template file processing report
|
|
1286
|
+
*/
|
|
1287
|
+
interface TemplateProcessingReport {
|
|
1288
|
+
/** Files scanned */
|
|
1289
|
+
totalFiles: number;
|
|
1290
|
+
/** Files modified */
|
|
1291
|
+
filesModified: number;
|
|
1292
|
+
/** Total directives processed */
|
|
1293
|
+
totalDirectives: number;
|
|
1294
|
+
/** Files with errors */
|
|
1295
|
+
filesWithErrors: string[];
|
|
1296
|
+
/** All warnings */
|
|
1297
|
+
warnings: string[];
|
|
1298
|
+
}
|
|
1299
|
+
|
|
1300
|
+
/**
|
|
1301
|
+
* Template processor
|
|
1302
|
+
* Processes templates by evaluating directives and replacing variables
|
|
1303
|
+
*/
|
|
1304
|
+
|
|
1305
|
+
/**
|
|
1306
|
+
* Process templates with spinner
|
|
1307
|
+
*/
|
|
1308
|
+
declare function processTemplates(dirPath: string, context: TemplateContext, options?: {
|
|
1309
|
+
extensions?: string[];
|
|
1310
|
+
exclude?: string[];
|
|
1311
|
+
dryRun?: boolean;
|
|
1312
|
+
silent?: boolean;
|
|
1313
|
+
}): Promise<TemplateProcessingReport>;
|
|
1314
|
+
|
|
1315
|
+
/**
|
|
1316
|
+
* Template context builder
|
|
1317
|
+
* Creates a context object from config and module selections
|
|
1318
|
+
*/
|
|
1319
|
+
|
|
1320
|
+
/**
|
|
1321
|
+
* Build a template context from config
|
|
1322
|
+
*/
|
|
1323
|
+
declare function buildTemplateContext(config: Partial<ClaudeConfig>): TemplateContext;
|
|
1324
|
+
|
|
1325
|
+
export { BUNDLES, type BundleCategory, type BundleDefinition, type BundleSelectionResult, type ClaudeConfig, type Customizations, DEPENDENCIES, type HookConfig, MCP_SERVERS, type McpCategory, type McpConfigField, type McpInstallation, type McpServerDefinition, type ModuleCategory, type ModuleDefinition, type ModuleRegistry, type ModuleSelection, PERMISSION_PRESETS, PLACEHOLDERS, type PermissionPreset, type PermissionsConfig, type Preferences, type ProjectDetectionResult, type ProjectType, type ResolvedBundle, type ResolvedModule$1 as ResolvedModule, type ScaffoldConfig, type ScaffoldOptions, type ScaffoldResult, type ScaffoldType, type TemplateContext, type TemplateProcessingReport, type TemplateResult, type TemplateSource, buildTemplateContext, createDefaultConfig, detectProject, getAllBundles, getBundleById, hasConfig, installModules, loadRegistry, mergeBundleSelection, processTemplates, readConfig, replacePlaceholders, resolveBundle, resolveBundles, resolveModules, writeConfig };
|