@qazuor/claude-code-config 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +395 -50
- package/dist/bin.cjs +3207 -165
- package/dist/bin.cjs.map +1 -1
- package/dist/bin.js +3207 -165
- package/dist/bin.js.map +1 -1
- package/dist/index.cjs +75 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +284 -1
- package/dist/index.d.ts +284 -1
- package/dist/index.js +75 -58
- package/dist/index.js.map +1 -1
- package/package.json +24 -24
- package/templates/CLAUDE.md.template +60 -5
- package/templates/agents/README.md +58 -39
- package/templates/agents/_registry.json +43 -202
- package/templates/agents/engineering/{hono-engineer.md → api-engineer.md} +61 -70
- package/templates/agents/engineering/database-engineer.md +253 -0
- package/templates/agents/engineering/frontend-engineer.md +302 -0
- package/templates/docs/_registry.json +54 -0
- package/templates/docs/standards/code-standards.md +20 -0
- package/templates/docs/standards/design-standards.md +13 -0
- package/templates/docs/standards/documentation-standards.md +13 -0
- package/templates/docs/standards/performance-standards.md +524 -0
- package/templates/docs/standards/security-standards.md +496 -0
- package/templates/docs/standards/testing-standards.md +15 -0
- package/templates/hooks/on-notification.sh +0 -0
- package/templates/scripts/add-changelogs.sh +0 -0
- package/templates/scripts/generate-code-registry.ts +0 -0
- package/templates/scripts/health-check.sh +0 -0
- package/templates/scripts/sync-registry.sh +0 -0
- package/templates/scripts/telemetry-report.ts +0 -0
- package/templates/scripts/validate-docs.sh +0 -0
- package/templates/scripts/validate-registry.sh +0 -0
- package/templates/scripts/validate-structure.sh +0 -0
- package/templates/scripts/worktree-cleanup.sh +0 -0
- package/templates/scripts/worktree-create.sh +0 -0
- package/templates/skills/README.md +99 -90
- package/templates/skills/_registry.json +323 -16
- package/templates/skills/api-frameworks/express-patterns.md +411 -0
- package/templates/skills/api-frameworks/fastify-patterns.md +419 -0
- package/templates/skills/api-frameworks/hono-patterns.md +388 -0
- package/templates/skills/api-frameworks/nestjs-patterns.md +497 -0
- package/templates/skills/database/drizzle-patterns.md +449 -0
- package/templates/skills/database/mongoose-patterns.md +503 -0
- package/templates/skills/database/prisma-patterns.md +487 -0
- package/templates/skills/frontend-frameworks/astro-patterns.md +415 -0
- package/templates/skills/frontend-frameworks/nextjs-patterns.md +470 -0
- package/templates/skills/frontend-frameworks/react-patterns.md +516 -0
- package/templates/skills/frontend-frameworks/tanstack-start-patterns.md +469 -0
- package/templates/skills/patterns/atdd-methodology.md +364 -0
- package/templates/skills/patterns/bdd-methodology.md +281 -0
- package/templates/skills/patterns/clean-architecture.md +444 -0
- package/templates/skills/patterns/hexagonal-architecture.md +567 -0
- package/templates/skills/patterns/vertical-slice-architecture.md +502 -0
- package/templates/agents/engineering/astro-engineer.md +0 -293
- package/templates/agents/engineering/db-drizzle-engineer.md +0 -360
- package/templates/agents/engineering/express-engineer.md +0 -316
- package/templates/agents/engineering/fastify-engineer.md +0 -399
- package/templates/agents/engineering/mongoose-engineer.md +0 -473
- package/templates/agents/engineering/nestjs-engineer.md +0 -429
- package/templates/agents/engineering/nextjs-engineer.md +0 -451
- package/templates/agents/engineering/prisma-engineer.md +0 -432
- package/templates/agents/engineering/react-senior-dev.md +0 -394
- package/templates/agents/engineering/tanstack-start-engineer.md +0 -447
package/dist/index.d.cts
CHANGED
|
@@ -267,6 +267,166 @@ interface ProjectDetectionResult {
|
|
|
267
267
|
signals: DetectionSignal[];
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
+
/**
|
|
271
|
+
* Trailing comma options
|
|
272
|
+
*/
|
|
273
|
+
type TrailingCommaOption = 'all' | 'es5' | 'none';
|
|
274
|
+
/**
|
|
275
|
+
* Test pattern options
|
|
276
|
+
*/
|
|
277
|
+
type TestPattern = 'aaa' | 'gwt';
|
|
278
|
+
/**
|
|
279
|
+
* Test location options
|
|
280
|
+
*/
|
|
281
|
+
type TestLocation = 'colocated' | 'separate';
|
|
282
|
+
/**
|
|
283
|
+
* JSDoc detail level
|
|
284
|
+
*/
|
|
285
|
+
type JsDocLevel = 'minimal' | 'standard' | 'comprehensive';
|
|
286
|
+
/**
|
|
287
|
+
* Changelog format
|
|
288
|
+
*/
|
|
289
|
+
type ChangelogFormat = 'keepachangelog' | 'conventional';
|
|
290
|
+
/**
|
|
291
|
+
* Inline comment policy
|
|
292
|
+
*/
|
|
293
|
+
type InlineCommentPolicy = 'why-not-what' | 'minimal' | 'extensive';
|
|
294
|
+
/**
|
|
295
|
+
* CSS framework options
|
|
296
|
+
*/
|
|
297
|
+
type CssFramework = 'tailwind' | 'css-modules' | 'styled-components' | 'vanilla';
|
|
298
|
+
/**
|
|
299
|
+
* Component library options
|
|
300
|
+
*/
|
|
301
|
+
type ComponentLibrary = 'shadcn' | 'radix' | 'headless' | 'none';
|
|
302
|
+
/**
|
|
303
|
+
* WCAG accessibility level
|
|
304
|
+
*/
|
|
305
|
+
type AccessibilityLevel = 'A' | 'AA' | 'AAA';
|
|
306
|
+
/**
|
|
307
|
+
* Authentication pattern options
|
|
308
|
+
*/
|
|
309
|
+
type AuthPattern = 'jwt' | 'session' | 'oauth' | 'none';
|
|
310
|
+
/**
|
|
311
|
+
* Input validation library options
|
|
312
|
+
*/
|
|
313
|
+
type ValidationLibrary = 'zod' | 'yup' | 'joi' | 'manual';
|
|
314
|
+
/**
|
|
315
|
+
* Code standards configuration
|
|
316
|
+
*/
|
|
317
|
+
interface StandardsConfigCode {
|
|
318
|
+
/** Indent style (space or tab) */
|
|
319
|
+
indentStyle: 'space' | 'tab';
|
|
320
|
+
/** Indent size (number of spaces or tab width) */
|
|
321
|
+
indentSize: number;
|
|
322
|
+
/** Maximum line length */
|
|
323
|
+
maxLineLength: number;
|
|
324
|
+
/** Maximum lines per file (excluding tests, docs, JSON) */
|
|
325
|
+
maxFileLines: number;
|
|
326
|
+
/** Quote style for strings */
|
|
327
|
+
quoteStyle: 'single' | 'double';
|
|
328
|
+
/** Use semicolons */
|
|
329
|
+
semicolons: boolean;
|
|
330
|
+
/** Trailing comma style */
|
|
331
|
+
trailingCommas: TrailingCommaOption;
|
|
332
|
+
/** Allow 'any' type in TypeScript */
|
|
333
|
+
allowAny: boolean;
|
|
334
|
+
/** Require named exports only (no default exports) */
|
|
335
|
+
namedExportsOnly: boolean;
|
|
336
|
+
/** Require RO-RO pattern (Receive Object, Return Object) */
|
|
337
|
+
roroPattern: boolean;
|
|
338
|
+
/** Require JSDoc for all exports */
|
|
339
|
+
jsDocRequired: boolean;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Testing standards configuration
|
|
343
|
+
*/
|
|
344
|
+
interface StandardsConfigTesting {
|
|
345
|
+
/** Minimum code coverage percentage (0-100) */
|
|
346
|
+
coverageTarget: number;
|
|
347
|
+
/** Require TDD methodology */
|
|
348
|
+
tddRequired: boolean;
|
|
349
|
+
/** Test pattern: AAA (Arrange-Act-Assert) or GWT (Given-When-Then) */
|
|
350
|
+
testPattern: TestPattern;
|
|
351
|
+
/** Test file location: colocated (__tests__) or separate (test/) */
|
|
352
|
+
testLocation: TestLocation;
|
|
353
|
+
/** Maximum milliseconds per unit test */
|
|
354
|
+
unitTestMaxMs: number;
|
|
355
|
+
/** Maximum milliseconds per integration test */
|
|
356
|
+
integrationTestMaxMs: number;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Documentation standards configuration
|
|
360
|
+
*/
|
|
361
|
+
interface StandardsConfigDocumentation {
|
|
362
|
+
/** JSDoc detail level */
|
|
363
|
+
jsDocLevel: JsDocLevel;
|
|
364
|
+
/** Require examples in JSDoc */
|
|
365
|
+
requireExamples: boolean;
|
|
366
|
+
/** Changelog format */
|
|
367
|
+
changelogFormat: ChangelogFormat;
|
|
368
|
+
/** Inline comment policy */
|
|
369
|
+
inlineCommentPolicy: InlineCommentPolicy;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Design standards configuration
|
|
373
|
+
*/
|
|
374
|
+
interface StandardsConfigDesign {
|
|
375
|
+
/** CSS framework */
|
|
376
|
+
cssFramework: CssFramework;
|
|
377
|
+
/** Component library */
|
|
378
|
+
componentLibrary: ComponentLibrary;
|
|
379
|
+
/** WCAG accessibility level target */
|
|
380
|
+
accessibilityLevel: AccessibilityLevel;
|
|
381
|
+
/** Support dark mode */
|
|
382
|
+
darkModeSupport: boolean;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Security standards configuration
|
|
386
|
+
*/
|
|
387
|
+
interface StandardsConfigSecurity {
|
|
388
|
+
/** Authentication pattern */
|
|
389
|
+
authPattern: AuthPattern;
|
|
390
|
+
/** Input validation library */
|
|
391
|
+
inputValidation: ValidationLibrary;
|
|
392
|
+
/** Enable CSRF protection */
|
|
393
|
+
csrfProtection: boolean;
|
|
394
|
+
/** Enable rate limiting */
|
|
395
|
+
rateLimiting: boolean;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Performance standards configuration
|
|
399
|
+
*/
|
|
400
|
+
interface StandardsConfigPerformance {
|
|
401
|
+
/** Largest Contentful Paint target (milliseconds) */
|
|
402
|
+
lcpTarget: number;
|
|
403
|
+
/** First Input Delay target (milliseconds) */
|
|
404
|
+
fidTarget: number;
|
|
405
|
+
/** Cumulative Layout Shift target */
|
|
406
|
+
clsTarget: number;
|
|
407
|
+
/** Bundle size target (KB) */
|
|
408
|
+
bundleSizeTargetKb: number;
|
|
409
|
+
/** API response time target (milliseconds) */
|
|
410
|
+
apiResponseTargetMs: number;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Complete standards configuration
|
|
414
|
+
*/
|
|
415
|
+
interface StandardsConfig {
|
|
416
|
+
/** Code standards */
|
|
417
|
+
code: StandardsConfigCode;
|
|
418
|
+
/** Testing standards */
|
|
419
|
+
testing: StandardsConfigTesting;
|
|
420
|
+
/** Documentation standards */
|
|
421
|
+
documentation: StandardsConfigDocumentation;
|
|
422
|
+
/** Design standards */
|
|
423
|
+
design: StandardsConfigDesign;
|
|
424
|
+
/** Security standards */
|
|
425
|
+
security: StandardsConfigSecurity;
|
|
426
|
+
/** Performance standards */
|
|
427
|
+
performance: StandardsConfigPerformance;
|
|
428
|
+
}
|
|
429
|
+
|
|
270
430
|
/**
|
|
271
431
|
* User's template configuration - Commands
|
|
272
432
|
*/
|
|
@@ -674,6 +834,121 @@ interface CodeStyleConfig {
|
|
|
674
834
|
/** Prettier options */
|
|
675
835
|
prettierOptions?: PrettierOptions;
|
|
676
836
|
}
|
|
837
|
+
/**
|
|
838
|
+
* Pre-commit test mode options
|
|
839
|
+
*/
|
|
840
|
+
type PreCommitTestMode = 'none' | 'affected' | 'all';
|
|
841
|
+
/**
|
|
842
|
+
* Pre-commit validation configuration for a single check
|
|
843
|
+
*/
|
|
844
|
+
interface PreCommitValidation {
|
|
845
|
+
/** Whether this validation is enabled */
|
|
846
|
+
enabled: boolean;
|
|
847
|
+
/** Custom command override */
|
|
848
|
+
command?: string;
|
|
849
|
+
/** Allow failures without blocking commit */
|
|
850
|
+
allowFailure?: boolean;
|
|
851
|
+
/** Timeout in milliseconds */
|
|
852
|
+
timeout?: number;
|
|
853
|
+
}
|
|
854
|
+
/**
|
|
855
|
+
* Pre-commit lint validation configuration
|
|
856
|
+
*/
|
|
857
|
+
interface PreCommitLintConfig extends PreCommitValidation {
|
|
858
|
+
/** Lint only staged files (faster) */
|
|
859
|
+
stagedOnly: boolean;
|
|
860
|
+
/** Linter tool */
|
|
861
|
+
tool?: 'biome' | 'eslint' | 'custom';
|
|
862
|
+
}
|
|
863
|
+
/**
|
|
864
|
+
* Pre-commit test validation configuration
|
|
865
|
+
*/
|
|
866
|
+
interface PreCommitTestConfig extends PreCommitValidation {
|
|
867
|
+
/** Test mode: none, affected files only, or all tests */
|
|
868
|
+
mode: PreCommitTestMode;
|
|
869
|
+
/** Coverage threshold (0-100, 0 means no threshold) */
|
|
870
|
+
coverageThreshold: number;
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* Pre-commit format check configuration
|
|
874
|
+
*/
|
|
875
|
+
interface PreCommitFormatConfig extends PreCommitValidation {
|
|
876
|
+
/** Formatter tool */
|
|
877
|
+
tool?: 'biome' | 'prettier' | 'custom';
|
|
878
|
+
}
|
|
879
|
+
/**
|
|
880
|
+
* Custom pre-commit command
|
|
881
|
+
*/
|
|
882
|
+
interface PreCommitCustomCommand {
|
|
883
|
+
/** Display name for the command */
|
|
884
|
+
name: string;
|
|
885
|
+
/** Command to execute */
|
|
886
|
+
command: string;
|
|
887
|
+
/** Allow failure without blocking */
|
|
888
|
+
allowFailure?: boolean;
|
|
889
|
+
/** Run order (lower runs first) */
|
|
890
|
+
order?: number;
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Pre-commit hook configuration
|
|
894
|
+
*/
|
|
895
|
+
interface PreCommitConfig {
|
|
896
|
+
/** Whether pre-commit hooks are enabled */
|
|
897
|
+
enabled: boolean;
|
|
898
|
+
/** Linting configuration */
|
|
899
|
+
lint: PreCommitLintConfig;
|
|
900
|
+
/** Type checking configuration */
|
|
901
|
+
typecheck: PreCommitValidation;
|
|
902
|
+
/** Test configuration */
|
|
903
|
+
tests: PreCommitTestConfig;
|
|
904
|
+
/** Format check configuration */
|
|
905
|
+
formatCheck: PreCommitFormatConfig;
|
|
906
|
+
/** Custom commands to run */
|
|
907
|
+
customCommands: PreCommitCustomCommand[];
|
|
908
|
+
/** Show elapsed time for each step */
|
|
909
|
+
showTiming: boolean;
|
|
910
|
+
/** Continue running checks after first failure */
|
|
911
|
+
continueOnFailure: boolean;
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* Response tone options
|
|
915
|
+
*/
|
|
916
|
+
type ResponseTone = 'friendly' | 'professional' | 'formal' | 'strict' | 'mentor';
|
|
917
|
+
/**
|
|
918
|
+
* Response verbosity level
|
|
919
|
+
*/
|
|
920
|
+
type ResponseVerbosity = 'concise' | 'balanced' | 'detailed';
|
|
921
|
+
/**
|
|
922
|
+
* Error response style
|
|
923
|
+
*/
|
|
924
|
+
type ErrorResponseStyle = 'supportive' | 'neutral' | 'direct';
|
|
925
|
+
/**
|
|
926
|
+
* Proactivity level
|
|
927
|
+
*/
|
|
928
|
+
type ProactivityLevel = 'minimal' | 'moderate' | 'high';
|
|
929
|
+
/**
|
|
930
|
+
* Response style configuration
|
|
931
|
+
*/
|
|
932
|
+
interface ResponseStyleConfig {
|
|
933
|
+
/** General response tone */
|
|
934
|
+
tone: ResponseTone;
|
|
935
|
+
/** Detail level */
|
|
936
|
+
verbosity: ResponseVerbosity;
|
|
937
|
+
/** Response language (code always in English) */
|
|
938
|
+
responseLanguage: 'es' | 'en' | 'auto';
|
|
939
|
+
/** Use emojis in responses */
|
|
940
|
+
useEmojis: boolean;
|
|
941
|
+
/** Style when reporting errors */
|
|
942
|
+
errorStyle: ErrorResponseStyle;
|
|
943
|
+
/** Include explanation of the "why" */
|
|
944
|
+
explainReasoning: boolean;
|
|
945
|
+
/** Offer alternatives when multiple solutions exist */
|
|
946
|
+
offerAlternatives: boolean;
|
|
947
|
+
/** Proactivity level (suggest unsolicited improvements) */
|
|
948
|
+
proactivity: ProactivityLevel;
|
|
949
|
+
/** Confirm before big changes */
|
|
950
|
+
confirmBeforeBigChanges: boolean;
|
|
951
|
+
}
|
|
677
952
|
/**
|
|
678
953
|
* Extra components configuration
|
|
679
954
|
*/
|
|
@@ -690,9 +965,15 @@ interface ExtrasConfig {
|
|
|
690
965
|
codeStyle?: CodeStyleConfig;
|
|
691
966
|
/** Folder structure preferences */
|
|
692
967
|
folderPreferences?: FolderPreferences;
|
|
968
|
+
/** Standards configuration */
|
|
969
|
+
standards?: StandardsConfig;
|
|
970
|
+
/** Pre-commit hook configuration */
|
|
971
|
+
preCommit?: PreCommitConfig;
|
|
972
|
+
/** Response style configuration */
|
|
973
|
+
responseStyle?: ResponseStyleConfig;
|
|
693
974
|
}
|
|
694
975
|
/**
|
|
695
|
-
* Main Claude configuration stored in .claude/config.json
|
|
976
|
+
* Main Claude configuration stored in .claude/qazuor-claude-config.json
|
|
696
977
|
*/
|
|
697
978
|
interface ClaudeConfig {
|
|
698
979
|
/** CLI version that created this config */
|
|
@@ -771,6 +1052,8 @@ interface ModuleDefinition extends ModuleExtendedInfo {
|
|
|
771
1052
|
includedInBundles?: string[];
|
|
772
1053
|
/** Placeholders used in this module's files */
|
|
773
1054
|
placeholders?: string[];
|
|
1055
|
+
/** Related skills that should be prompted when this agent is selected (agents only) */
|
|
1056
|
+
relatedSkills?: string[];
|
|
774
1057
|
}
|
|
775
1058
|
/**
|
|
776
1059
|
* Full module registry - all categories combined
|
package/dist/index.d.ts
CHANGED
|
@@ -267,6 +267,166 @@ interface ProjectDetectionResult {
|
|
|
267
267
|
signals: DetectionSignal[];
|
|
268
268
|
}
|
|
269
269
|
|
|
270
|
+
/**
|
|
271
|
+
* Trailing comma options
|
|
272
|
+
*/
|
|
273
|
+
type TrailingCommaOption = 'all' | 'es5' | 'none';
|
|
274
|
+
/**
|
|
275
|
+
* Test pattern options
|
|
276
|
+
*/
|
|
277
|
+
type TestPattern = 'aaa' | 'gwt';
|
|
278
|
+
/**
|
|
279
|
+
* Test location options
|
|
280
|
+
*/
|
|
281
|
+
type TestLocation = 'colocated' | 'separate';
|
|
282
|
+
/**
|
|
283
|
+
* JSDoc detail level
|
|
284
|
+
*/
|
|
285
|
+
type JsDocLevel = 'minimal' | 'standard' | 'comprehensive';
|
|
286
|
+
/**
|
|
287
|
+
* Changelog format
|
|
288
|
+
*/
|
|
289
|
+
type ChangelogFormat = 'keepachangelog' | 'conventional';
|
|
290
|
+
/**
|
|
291
|
+
* Inline comment policy
|
|
292
|
+
*/
|
|
293
|
+
type InlineCommentPolicy = 'why-not-what' | 'minimal' | 'extensive';
|
|
294
|
+
/**
|
|
295
|
+
* CSS framework options
|
|
296
|
+
*/
|
|
297
|
+
type CssFramework = 'tailwind' | 'css-modules' | 'styled-components' | 'vanilla';
|
|
298
|
+
/**
|
|
299
|
+
* Component library options
|
|
300
|
+
*/
|
|
301
|
+
type ComponentLibrary = 'shadcn' | 'radix' | 'headless' | 'none';
|
|
302
|
+
/**
|
|
303
|
+
* WCAG accessibility level
|
|
304
|
+
*/
|
|
305
|
+
type AccessibilityLevel = 'A' | 'AA' | 'AAA';
|
|
306
|
+
/**
|
|
307
|
+
* Authentication pattern options
|
|
308
|
+
*/
|
|
309
|
+
type AuthPattern = 'jwt' | 'session' | 'oauth' | 'none';
|
|
310
|
+
/**
|
|
311
|
+
* Input validation library options
|
|
312
|
+
*/
|
|
313
|
+
type ValidationLibrary = 'zod' | 'yup' | 'joi' | 'manual';
|
|
314
|
+
/**
|
|
315
|
+
* Code standards configuration
|
|
316
|
+
*/
|
|
317
|
+
interface StandardsConfigCode {
|
|
318
|
+
/** Indent style (space or tab) */
|
|
319
|
+
indentStyle: 'space' | 'tab';
|
|
320
|
+
/** Indent size (number of spaces or tab width) */
|
|
321
|
+
indentSize: number;
|
|
322
|
+
/** Maximum line length */
|
|
323
|
+
maxLineLength: number;
|
|
324
|
+
/** Maximum lines per file (excluding tests, docs, JSON) */
|
|
325
|
+
maxFileLines: number;
|
|
326
|
+
/** Quote style for strings */
|
|
327
|
+
quoteStyle: 'single' | 'double';
|
|
328
|
+
/** Use semicolons */
|
|
329
|
+
semicolons: boolean;
|
|
330
|
+
/** Trailing comma style */
|
|
331
|
+
trailingCommas: TrailingCommaOption;
|
|
332
|
+
/** Allow 'any' type in TypeScript */
|
|
333
|
+
allowAny: boolean;
|
|
334
|
+
/** Require named exports only (no default exports) */
|
|
335
|
+
namedExportsOnly: boolean;
|
|
336
|
+
/** Require RO-RO pattern (Receive Object, Return Object) */
|
|
337
|
+
roroPattern: boolean;
|
|
338
|
+
/** Require JSDoc for all exports */
|
|
339
|
+
jsDocRequired: boolean;
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Testing standards configuration
|
|
343
|
+
*/
|
|
344
|
+
interface StandardsConfigTesting {
|
|
345
|
+
/** Minimum code coverage percentage (0-100) */
|
|
346
|
+
coverageTarget: number;
|
|
347
|
+
/** Require TDD methodology */
|
|
348
|
+
tddRequired: boolean;
|
|
349
|
+
/** Test pattern: AAA (Arrange-Act-Assert) or GWT (Given-When-Then) */
|
|
350
|
+
testPattern: TestPattern;
|
|
351
|
+
/** Test file location: colocated (__tests__) or separate (test/) */
|
|
352
|
+
testLocation: TestLocation;
|
|
353
|
+
/** Maximum milliseconds per unit test */
|
|
354
|
+
unitTestMaxMs: number;
|
|
355
|
+
/** Maximum milliseconds per integration test */
|
|
356
|
+
integrationTestMaxMs: number;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Documentation standards configuration
|
|
360
|
+
*/
|
|
361
|
+
interface StandardsConfigDocumentation {
|
|
362
|
+
/** JSDoc detail level */
|
|
363
|
+
jsDocLevel: JsDocLevel;
|
|
364
|
+
/** Require examples in JSDoc */
|
|
365
|
+
requireExamples: boolean;
|
|
366
|
+
/** Changelog format */
|
|
367
|
+
changelogFormat: ChangelogFormat;
|
|
368
|
+
/** Inline comment policy */
|
|
369
|
+
inlineCommentPolicy: InlineCommentPolicy;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Design standards configuration
|
|
373
|
+
*/
|
|
374
|
+
interface StandardsConfigDesign {
|
|
375
|
+
/** CSS framework */
|
|
376
|
+
cssFramework: CssFramework;
|
|
377
|
+
/** Component library */
|
|
378
|
+
componentLibrary: ComponentLibrary;
|
|
379
|
+
/** WCAG accessibility level target */
|
|
380
|
+
accessibilityLevel: AccessibilityLevel;
|
|
381
|
+
/** Support dark mode */
|
|
382
|
+
darkModeSupport: boolean;
|
|
383
|
+
}
|
|
384
|
+
/**
|
|
385
|
+
* Security standards configuration
|
|
386
|
+
*/
|
|
387
|
+
interface StandardsConfigSecurity {
|
|
388
|
+
/** Authentication pattern */
|
|
389
|
+
authPattern: AuthPattern;
|
|
390
|
+
/** Input validation library */
|
|
391
|
+
inputValidation: ValidationLibrary;
|
|
392
|
+
/** Enable CSRF protection */
|
|
393
|
+
csrfProtection: boolean;
|
|
394
|
+
/** Enable rate limiting */
|
|
395
|
+
rateLimiting: boolean;
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Performance standards configuration
|
|
399
|
+
*/
|
|
400
|
+
interface StandardsConfigPerformance {
|
|
401
|
+
/** Largest Contentful Paint target (milliseconds) */
|
|
402
|
+
lcpTarget: number;
|
|
403
|
+
/** First Input Delay target (milliseconds) */
|
|
404
|
+
fidTarget: number;
|
|
405
|
+
/** Cumulative Layout Shift target */
|
|
406
|
+
clsTarget: number;
|
|
407
|
+
/** Bundle size target (KB) */
|
|
408
|
+
bundleSizeTargetKb: number;
|
|
409
|
+
/** API response time target (milliseconds) */
|
|
410
|
+
apiResponseTargetMs: number;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Complete standards configuration
|
|
414
|
+
*/
|
|
415
|
+
interface StandardsConfig {
|
|
416
|
+
/** Code standards */
|
|
417
|
+
code: StandardsConfigCode;
|
|
418
|
+
/** Testing standards */
|
|
419
|
+
testing: StandardsConfigTesting;
|
|
420
|
+
/** Documentation standards */
|
|
421
|
+
documentation: StandardsConfigDocumentation;
|
|
422
|
+
/** Design standards */
|
|
423
|
+
design: StandardsConfigDesign;
|
|
424
|
+
/** Security standards */
|
|
425
|
+
security: StandardsConfigSecurity;
|
|
426
|
+
/** Performance standards */
|
|
427
|
+
performance: StandardsConfigPerformance;
|
|
428
|
+
}
|
|
429
|
+
|
|
270
430
|
/**
|
|
271
431
|
* User's template configuration - Commands
|
|
272
432
|
*/
|
|
@@ -674,6 +834,121 @@ interface CodeStyleConfig {
|
|
|
674
834
|
/** Prettier options */
|
|
675
835
|
prettierOptions?: PrettierOptions;
|
|
676
836
|
}
|
|
837
|
+
/**
|
|
838
|
+
* Pre-commit test mode options
|
|
839
|
+
*/
|
|
840
|
+
type PreCommitTestMode = 'none' | 'affected' | 'all';
|
|
841
|
+
/**
|
|
842
|
+
* Pre-commit validation configuration for a single check
|
|
843
|
+
*/
|
|
844
|
+
interface PreCommitValidation {
|
|
845
|
+
/** Whether this validation is enabled */
|
|
846
|
+
enabled: boolean;
|
|
847
|
+
/** Custom command override */
|
|
848
|
+
command?: string;
|
|
849
|
+
/** Allow failures without blocking commit */
|
|
850
|
+
allowFailure?: boolean;
|
|
851
|
+
/** Timeout in milliseconds */
|
|
852
|
+
timeout?: number;
|
|
853
|
+
}
|
|
854
|
+
/**
|
|
855
|
+
* Pre-commit lint validation configuration
|
|
856
|
+
*/
|
|
857
|
+
interface PreCommitLintConfig extends PreCommitValidation {
|
|
858
|
+
/** Lint only staged files (faster) */
|
|
859
|
+
stagedOnly: boolean;
|
|
860
|
+
/** Linter tool */
|
|
861
|
+
tool?: 'biome' | 'eslint' | 'custom';
|
|
862
|
+
}
|
|
863
|
+
/**
|
|
864
|
+
* Pre-commit test validation configuration
|
|
865
|
+
*/
|
|
866
|
+
interface PreCommitTestConfig extends PreCommitValidation {
|
|
867
|
+
/** Test mode: none, affected files only, or all tests */
|
|
868
|
+
mode: PreCommitTestMode;
|
|
869
|
+
/** Coverage threshold (0-100, 0 means no threshold) */
|
|
870
|
+
coverageThreshold: number;
|
|
871
|
+
}
|
|
872
|
+
/**
|
|
873
|
+
* Pre-commit format check configuration
|
|
874
|
+
*/
|
|
875
|
+
interface PreCommitFormatConfig extends PreCommitValidation {
|
|
876
|
+
/** Formatter tool */
|
|
877
|
+
tool?: 'biome' | 'prettier' | 'custom';
|
|
878
|
+
}
|
|
879
|
+
/**
|
|
880
|
+
* Custom pre-commit command
|
|
881
|
+
*/
|
|
882
|
+
interface PreCommitCustomCommand {
|
|
883
|
+
/** Display name for the command */
|
|
884
|
+
name: string;
|
|
885
|
+
/** Command to execute */
|
|
886
|
+
command: string;
|
|
887
|
+
/** Allow failure without blocking */
|
|
888
|
+
allowFailure?: boolean;
|
|
889
|
+
/** Run order (lower runs first) */
|
|
890
|
+
order?: number;
|
|
891
|
+
}
|
|
892
|
+
/**
|
|
893
|
+
* Pre-commit hook configuration
|
|
894
|
+
*/
|
|
895
|
+
interface PreCommitConfig {
|
|
896
|
+
/** Whether pre-commit hooks are enabled */
|
|
897
|
+
enabled: boolean;
|
|
898
|
+
/** Linting configuration */
|
|
899
|
+
lint: PreCommitLintConfig;
|
|
900
|
+
/** Type checking configuration */
|
|
901
|
+
typecheck: PreCommitValidation;
|
|
902
|
+
/** Test configuration */
|
|
903
|
+
tests: PreCommitTestConfig;
|
|
904
|
+
/** Format check configuration */
|
|
905
|
+
formatCheck: PreCommitFormatConfig;
|
|
906
|
+
/** Custom commands to run */
|
|
907
|
+
customCommands: PreCommitCustomCommand[];
|
|
908
|
+
/** Show elapsed time for each step */
|
|
909
|
+
showTiming: boolean;
|
|
910
|
+
/** Continue running checks after first failure */
|
|
911
|
+
continueOnFailure: boolean;
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* Response tone options
|
|
915
|
+
*/
|
|
916
|
+
type ResponseTone = 'friendly' | 'professional' | 'formal' | 'strict' | 'mentor';
|
|
917
|
+
/**
|
|
918
|
+
* Response verbosity level
|
|
919
|
+
*/
|
|
920
|
+
type ResponseVerbosity = 'concise' | 'balanced' | 'detailed';
|
|
921
|
+
/**
|
|
922
|
+
* Error response style
|
|
923
|
+
*/
|
|
924
|
+
type ErrorResponseStyle = 'supportive' | 'neutral' | 'direct';
|
|
925
|
+
/**
|
|
926
|
+
* Proactivity level
|
|
927
|
+
*/
|
|
928
|
+
type ProactivityLevel = 'minimal' | 'moderate' | 'high';
|
|
929
|
+
/**
|
|
930
|
+
* Response style configuration
|
|
931
|
+
*/
|
|
932
|
+
interface ResponseStyleConfig {
|
|
933
|
+
/** General response tone */
|
|
934
|
+
tone: ResponseTone;
|
|
935
|
+
/** Detail level */
|
|
936
|
+
verbosity: ResponseVerbosity;
|
|
937
|
+
/** Response language (code always in English) */
|
|
938
|
+
responseLanguage: 'es' | 'en' | 'auto';
|
|
939
|
+
/** Use emojis in responses */
|
|
940
|
+
useEmojis: boolean;
|
|
941
|
+
/** Style when reporting errors */
|
|
942
|
+
errorStyle: ErrorResponseStyle;
|
|
943
|
+
/** Include explanation of the "why" */
|
|
944
|
+
explainReasoning: boolean;
|
|
945
|
+
/** Offer alternatives when multiple solutions exist */
|
|
946
|
+
offerAlternatives: boolean;
|
|
947
|
+
/** Proactivity level (suggest unsolicited improvements) */
|
|
948
|
+
proactivity: ProactivityLevel;
|
|
949
|
+
/** Confirm before big changes */
|
|
950
|
+
confirmBeforeBigChanges: boolean;
|
|
951
|
+
}
|
|
677
952
|
/**
|
|
678
953
|
* Extra components configuration
|
|
679
954
|
*/
|
|
@@ -690,9 +965,15 @@ interface ExtrasConfig {
|
|
|
690
965
|
codeStyle?: CodeStyleConfig;
|
|
691
966
|
/** Folder structure preferences */
|
|
692
967
|
folderPreferences?: FolderPreferences;
|
|
968
|
+
/** Standards configuration */
|
|
969
|
+
standards?: StandardsConfig;
|
|
970
|
+
/** Pre-commit hook configuration */
|
|
971
|
+
preCommit?: PreCommitConfig;
|
|
972
|
+
/** Response style configuration */
|
|
973
|
+
responseStyle?: ResponseStyleConfig;
|
|
693
974
|
}
|
|
694
975
|
/**
|
|
695
|
-
* Main Claude configuration stored in .claude/config.json
|
|
976
|
+
* Main Claude configuration stored in .claude/qazuor-claude-config.json
|
|
696
977
|
*/
|
|
697
978
|
interface ClaudeConfig {
|
|
698
979
|
/** CLI version that created this config */
|
|
@@ -771,6 +1052,8 @@ interface ModuleDefinition extends ModuleExtendedInfo {
|
|
|
771
1052
|
includedInBundles?: string[];
|
|
772
1053
|
/** Placeholders used in this module's files */
|
|
773
1054
|
placeholders?: string[];
|
|
1055
|
+
/** Related skills that should be prompted when this agent is selected (agents only) */
|
|
1056
|
+
relatedSkills?: string[];
|
|
774
1057
|
}
|
|
775
1058
|
/**
|
|
776
1059
|
* Full module registry - all categories combined
|