sumulige-claude 1.5.1 → 1.5.2

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 (219) hide show
  1. package/.claude/hooks/hook-registry.json +0 -15
  2. package/.claude/rules/coding-style.md +18 -7
  3. package/.claude/rules/hooks.md +15 -4
  4. package/.claude/rules/performance.md +15 -5
  5. package/.claude/rules/security.md +140 -4
  6. package/.claude/rules/testing.md +138 -9
  7. package/.claude/rules/web-design-standard.md +16 -5
  8. package/.claude/skills/algorithmic-art/metadata.yaml +28 -0
  9. package/.claude/skills/api-tester/SKILL.md +61 -0
  10. package/.claude/skills/api-tester/examples/basic.md +3 -0
  11. package/.claude/skills/api-tester/metadata.yaml +30 -0
  12. package/.claude/skills/api-tester/templates/default.md +3 -0
  13. package/.claude/skills/brand-guidelines/metadata.yaml +26 -0
  14. package/.claude/skills/canvas-design/metadata.yaml +27 -0
  15. package/.claude/skills/code-reviewer-123/SKILL.md +61 -0
  16. package/.claude/skills/code-reviewer-123/examples/basic.md +3 -0
  17. package/.claude/skills/code-reviewer-123/metadata.yaml +30 -0
  18. package/.claude/skills/code-reviewer-123/templates/default.md +3 -0
  19. package/.claude/skills/doc-coauthoring/metadata.yaml +27 -0
  20. package/.claude/skills/docx/metadata.yaml +30 -0
  21. package/.claude/skills/frontend-design/metadata.yaml +28 -0
  22. package/.claude/skills/internal-comms/metadata.yaml +28 -0
  23. package/.claude/skills/mcp-builder/metadata.yaml +26 -0
  24. package/.claude/skills/my-skill/SKILL.md +61 -0
  25. package/.claude/skills/my-skill/examples/basic.md +3 -0
  26. package/.claude/skills/my-skill/metadata.yaml +30 -0
  27. package/.claude/skills/my-skill/templates/default.md +3 -0
  28. package/.claude/skills/pdf/metadata.yaml +29 -0
  29. package/.claude/skills/pptx/metadata.yaml +29 -0
  30. package/.claude/skills/react-best-practices/metadata.yaml +26 -0
  31. package/.claude/skills/react-node-practices/SKILL.md +409 -0
  32. package/.claude/skills/react-node-practices/metadata.yaml +56 -0
  33. package/.claude/skills/skill-creator/metadata.yaml +25 -0
  34. package/.claude/skills/slack-gif-creator/metadata.yaml +28 -0
  35. package/.claude/skills/test-skill-name/SKILL.md +61 -0
  36. package/.claude/skills/test-skill-name/examples/basic.md +3 -0
  37. package/.claude/skills/test-skill-name/metadata.yaml +30 -0
  38. package/.claude/skills/test-skill-name/templates/default.md +3 -0
  39. package/.claude/skills/test-workflow/metadata.yaml +32 -0
  40. package/.claude/skills/theme-factory/metadata.yaml +26 -0
  41. package/.claude/skills/threejs-fundamentals/metadata.yaml +27 -0
  42. package/.claude/skills/web-artifacts-builder/metadata.yaml +30 -0
  43. package/.claude/skills/web-design-guidelines/metadata.yaml +26 -0
  44. package/.claude/skills/webapp-testing/metadata.yaml +26 -0
  45. package/.claude/skills/xlsx/metadata.yaml +29 -0
  46. package/LICENSE +21 -0
  47. package/cli.js +1 -1
  48. package/package.json +25 -3
  49. package/.claude/.kickoff-hint.txt +0 -52
  50. package/.claude/.sumulige-claude-version +0 -1
  51. package/.claude/.version +0 -1
  52. package/.claude/AGENTS.md +0 -42
  53. package/.claude/ANCHORS.md +0 -40
  54. package/.claude/CLAUDE.md +0 -138
  55. package/.claude/MEMORY.md +0 -69
  56. package/.claude/PROJECT_LOG.md +0 -101
  57. package/.claude/THINKING_CHAIN_GUIDE.md +0 -287
  58. package/.claude/USAGE.md +0 -175
  59. package/.claude/boris-optimizations.md +0 -167
  60. package/.claude/handoffs/INDEX.md +0 -21
  61. package/.claude/handoffs/LATEST.md +0 -76
  62. package/.claude/handoffs/handoff_2026-01-22T13-07-04-757Z.md +0 -76
  63. package/.claude/quality-gate.json +0 -82
  64. package/.claude/rag/skill-index.json +0 -135
  65. package/.claude/settings.json +0 -99
  66. package/.claude/settings.local.json +0 -175
  67. package/.claude/templates/PROJECT_KICKOFF.md +0 -89
  68. package/.claude/templates/PROJECT_PROPOSAL.md +0 -227
  69. package/.claude/templates/TASK_PLAN.md +0 -121
  70. package/.claude/templates/hooks/README.md +0 -302
  71. package/.claude/templates/hooks/hook.sh.template +0 -94
  72. package/.claude/templates/hooks/user-prompt-submit.cjs.template +0 -116
  73. package/.claude/templates/hooks/user-response-submit.cjs.template +0 -94
  74. package/.claude/templates/hooks/validate.js +0 -173
  75. package/.claude/templates/tasks/develop.md +0 -69
  76. package/.claude/templates/tasks/research.md +0 -64
  77. package/.claude/templates/tasks/test.md +0 -96
  78. package/.claude/thinking-routes/.last-sync +0 -1
  79. package/.claude/thinking-routes/QUICKREF.md +0 -98
  80. package/.claude/workflow/document-scanner.js +0 -426
  81. package/.claude/workflow/knowledge-engine.js +0 -941
  82. package/.claude/workflow/notebooklm/browser.js +0 -1028
  83. package/.claude/workflow/phases/phase1-research.js +0 -578
  84. package/.claude/workflow/phases/phase1-research.ts +0 -465
  85. package/.claude/workflow/phases/phase2-approve.js +0 -722
  86. package/.claude/workflow/phases/phase3-plan.js +0 -1200
  87. package/.claude/workflow/phases/phase4-develop.js +0 -894
  88. package/.claude/workflow/search-cache.js +0 -230
  89. package/.claude/workflow/templates/approval.md +0 -315
  90. package/.claude/workflow/templates/development.md +0 -377
  91. package/.claude/workflow/templates/planning.md +0 -328
  92. package/.claude/workflow/templates/research.md +0 -250
  93. package/.claude/workflow/types.js +0 -37
  94. package/.claude/workflow/web-search.js +0 -278
  95. package/.claude-plugin/marketplace.json +0 -71
  96. package/.github/workflows/sync-skills.yml +0 -74
  97. package/.versionrc +0 -25
  98. package/AGENTS.md +0 -580
  99. package/CHANGELOG.md +0 -481
  100. package/CLAUDE-template.md +0 -114
  101. package/DEV_TOOLS_GUIDE.md +0 -190
  102. package/PROJECT_STRUCTURE.md +0 -266
  103. package/Q&A.md +0 -325
  104. package/config/defaults.json +0 -34
  105. package/config/official-skills.json +0 -183
  106. package/config/quality-gate.json +0 -67
  107. package/config/skill-categories.json +0 -40
  108. package/config/version-manifest.json +0 -85
  109. package/demos/power-3d-scatter.html +0 -683
  110. package/development/cache/web-search/search_1193d605f8eb364651fc2f2041b58a31.json +0 -36
  111. package/development/cache/web-search/search_3798bf06960edc125f744a1abb5b72c5.json +0 -36
  112. package/development/cache/web-search/search_37c7d4843a53f0d83f1122a6f908a2a3.json +0 -36
  113. package/development/cache/web-search/search_44166fa0153709ee168485a22aa0ab40.json +0 -36
  114. package/development/cache/web-search/search_4deaebb1f77e86a8ca066dc5a49c59fd.json +0 -36
  115. package/development/cache/web-search/search_94da91789466070a7f545612e73c7372.json +0 -36
  116. package/development/cache/web-search/search_dd5de8491b8b803a3cb01339cd210fb0.json +0 -36
  117. package/development/knowledge-base/.index.clean.json +0 -1
  118. package/development/knowledge-base/.index.json +0 -486
  119. package/development/knowledge-base/test-best-practices.md +0 -29
  120. package/development/projects/proj_mkh1pazz_ixmt1/phase1/feasibility-report.md +0 -160
  121. package/development/projects/proj_mkh4jvnb_z7rwf/phase1/feasibility-report.md +0 -160
  122. package/development/projects/proj_mkh4jxkd_ewz5a/phase1/feasibility-report.md +0 -160
  123. package/development/projects/proj_mkh4k84n_ni73k/phase1/feasibility-report.md +0 -160
  124. package/development/projects/proj_mkh4wfyd_u9w88/phase1/feasibility-report.md +0 -160
  125. package/development/projects/proj_mkh4wsbo_iahvf/development/projects/proj_mkh4xbpg_4na5w/phase1/feasibility-report.md +0 -160
  126. package/development/projects/proj_mkh4wsbo_iahvf/phase1/feasibility-report.md +0 -160
  127. package/development/projects/proj_mkh4xulg_1ka8x/phase1/feasibility-report.md +0 -160
  128. package/development/projects/proj_mkh4xwhj_gch8j/phase1/feasibility-report.md +0 -160
  129. package/development/projects/proj_mkh4y2qk_9lm8z/phase1/feasibility-report.md +0 -160
  130. package/development/projects/proj_mkh4y2qk_9lm8z/phase2/requirements.md +0 -226
  131. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/PRD.md +0 -345
  132. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/TASK_PLAN.md +0 -284
  133. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/prototype/README.md +0 -14
  134. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/DEVELOPMENT_LOG.md +0 -35
  135. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/TASKS.md +0 -34
  136. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/.env.example +0 -5
  137. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/README.md +0 -60
  138. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/package.json +0 -25
  139. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/index.js +0 -70
  140. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/routes/index.js +0 -48
  141. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/health.test.js +0 -20
  142. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/jest.config.js +0 -21
  143. package/development/projects/proj_mkh7veqg_3lypc/phase1/feasibility-report.md +0 -160
  144. package/development/projects/proj_mkh7veqg_3lypc/phase2/requirements.md +0 -226
  145. package/development/projects/proj_mkh7veqg_3lypc/phase3/PRD.md +0 -345
  146. package/development/projects/proj_mkh7veqg_3lypc/phase3/TASK_PLAN.md +0 -284
  147. package/development/projects/proj_mkh7veqg_3lypc/phase3/prototype/README.md +0 -14
  148. package/development/projects/proj_mkh8k8fo_rmqn5/phase1/feasibility-report.md +0 -160
  149. package/development/projects/proj_mkh8xyhy_1vshq/phase1/feasibility-report.md +0 -178
  150. package/development/projects/proj_mkh8zddd_dhamf/phase1/feasibility-report.md +0 -377
  151. package/development/projects/proj_mkh8zddd_dhamf/phase2/requirements.md +0 -442
  152. package/development/projects/proj_mkh8zddd_dhamf/phase3/api-design.md +0 -800
  153. package/development/projects/proj_mkh8zddd_dhamf/phase3/architecture.md +0 -625
  154. package/development/projects/proj_mkh8zddd_dhamf/phase3/data-model.md +0 -830
  155. package/development/projects/proj_mkh8zddd_dhamf/phase3/risks.md +0 -957
  156. package/development/projects/proj_mkh8zddd_dhamf/phase3/wbs.md +0 -381
  157. package/development/todos/.state.json +0 -19
  158. package/development/todos/INDEX.md +0 -63
  159. package/development/todos/active/_README.md +0 -49
  160. package/development/todos/archived/_README.md +0 -11
  161. package/development/todos/backlog/_README.md +0 -11
  162. package/development/todos/backlog/mcp-integration.md +0 -35
  163. package/development/todos/completed/_README.md +0 -11
  164. package/development/todos/completed/boris-optimizations.md +0 -39
  165. package/development/todos/completed/develop/local-knowledge-index.md +0 -85
  166. package/development/todos/completed/develop/todo-system.md +0 -47
  167. package/development/todos/completed/develop/web-search-integration.md +0 -83
  168. package/development/todos/completed/test/phase1-e2e-test.md +0 -103
  169. package/docs/DEVELOPMENT.md +0 -461
  170. package/docs/MARKETPLACE.md +0 -352
  171. package/docs/RELEASE.md +0 -93
  172. package/jest.config.js +0 -63
  173. package/lib/commands.js +0 -3588
  174. package/lib/config-manager.js +0 -441
  175. package/lib/config-schema.js +0 -408
  176. package/lib/config-validator.js +0 -330
  177. package/lib/config.js +0 -122
  178. package/lib/errors.js +0 -305
  179. package/lib/incremental-sync.js +0 -274
  180. package/lib/marketplace.js +0 -487
  181. package/lib/migrations.js +0 -154
  182. package/lib/permission-audit.js +0 -255
  183. package/lib/quality-gate.js +0 -431
  184. package/lib/quality-rules.js +0 -373
  185. package/lib/utils.js +0 -150
  186. package/lib/version-check.js +0 -169
  187. package/lib/version-manifest.js +0 -171
  188. package/project-paradigm.md +0 -313
  189. package/prompts/how-to-find.md +0 -163
  190. package/prompts/linus-architect.md +0 -71
  191. package/prompts/software-architect.md +0 -173
  192. package/prompts/web-designer.md +0 -249
  193. package/scripts/fix-hooks.mjs +0 -97
  194. package/scripts/sync-external.mjs +0 -298
  195. package/scripts/sync-to-home.sh +0 -108
  196. package/scripts/update-registry.mjs +0 -325
  197. package/sources.yaml +0 -83
  198. package/tests/README.md +0 -263
  199. package/tests/commands.test.js +0 -1086
  200. package/tests/config-manager.test.js +0 -677
  201. package/tests/config-schema.test.js +0 -425
  202. package/tests/config-validator.test.js +0 -436
  203. package/tests/config.test.js +0 -100
  204. package/tests/errors.test.js +0 -477
  205. package/tests/manual/phase1-e2e.sh +0 -389
  206. package/tests/manual/phase2-test-cases.md +0 -311
  207. package/tests/manual/phase3-test-cases.md +0 -309
  208. package/tests/manual/phase4-test-cases.md +0 -414
  209. package/tests/manual/test-cases.md +0 -417
  210. package/tests/marketplace.test.js +0 -420
  211. package/tests/migrations.test.js +0 -187
  212. package/tests/quality-gate.test.js +0 -679
  213. package/tests/quality-rules.test.js +0 -619
  214. package/tests/sync-external.test.js +0 -214
  215. package/tests/update-registry.test.js +0 -251
  216. package/tests/utils.test.js +0 -171
  217. package/tests/version-check.test.js +0 -75
  218. package/tests/web-search.test.js +0 -392
  219. package/thinkinglens-silent.md +0 -138
@@ -1,408 +0,0 @@
1
- /**
2
- * Configuration Schema Definitions
3
- *
4
- * JSON Schema definitions for validating sumulige-claude configuration files.
5
- * Uses JSON Schema Draft 7 specification.
6
- *
7
- * @module lib/config-schema
8
- */
9
-
10
- /**
11
- * Main configuration schema
12
- * Defines the structure and validation rules for ~/.claude/config.json
13
- */
14
- const CONFIG_SCHEMA = {
15
- $id: 'https://sumulige-claude.com/schemas/config.json',
16
- $schema: 'http://json-schema.org/draft-07/schema#',
17
- title: 'Sumulige Claude Configuration',
18
- description: 'Configuration for sumulige-claude CLI tool',
19
-
20
- type: 'object',
21
- required: ['version'],
22
- additionalProperties: true,
23
-
24
- properties: {
25
- // Version - semantic version format
26
- version: {
27
- type: 'string',
28
- pattern: '^\\d+\\.\\d+\\.\\d+(-[a-zA-Z0-9.]+)?$',
29
- description: 'Semantic version (e.g., 1.0.7 or 1.0.7-beta)',
30
- },
31
-
32
- // Model selection
33
- model: {
34
- type: 'string',
35
- enum: [
36
- 'claude-opus-4.5',
37
- 'claude-opus-4-20250514',
38
- 'claude-opus-4-5-20251101',
39
- 'claude-sonnet-4.5',
40
- 'claude-sonnet-4-20250514',
41
- 'claude-sonnet-4-5-20251101',
42
- 'claude-haiku-4.5'
43
- ],
44
- description: 'Claude model identifier to use'
45
- },
46
-
47
- // Agents configuration
48
- agents: {
49
- type: 'object',
50
- description: 'Agent role definitions',
51
- patternProperties: {
52
- '^[a-z][a-z0-9-]*$': {
53
- type: 'object',
54
- required: ['role'],
55
- properties: {
56
- role: {
57
- type: 'string',
58
- minLength: 1,
59
- description: 'Agent role description'
60
- },
61
- model: {
62
- type: 'string',
63
- description: 'Override default model for this agent'
64
- }
65
- },
66
- additionalProperties: true
67
- }
68
- },
69
- additionalProperties: true
70
- },
71
-
72
- // Skills array
73
- skills: {
74
- type: 'array',
75
- description: 'External skill repositories to include',
76
- items: {
77
- type: 'string',
78
- pattern: '^[a-zA-Z0-9_-]+/[a-zA-Z0-9_.-]+$',
79
- description: 'Skill repository in format owner/name'
80
- },
81
- uniqueItems: true
82
- },
83
-
84
- // Hooks configuration
85
- hooks: {
86
- type: 'object',
87
- description: 'Hook configuration',
88
- properties: {
89
- preTask: {
90
- type: 'array',
91
- description: 'Hooks to run before a task',
92
- items: { type: 'string' }
93
- },
94
- postTask: {
95
- type: 'array',
96
- description: 'Hooks to run after a task',
97
- items: { type: 'string' }
98
- }
99
- },
100
- additionalProperties: true
101
- },
102
-
103
- // ThinkingLens configuration
104
- thinkingLens: {
105
- type: 'object',
106
- description: 'ThinkingLens auto-memory system settings',
107
- properties: {
108
- enabled: {
109
- type: 'boolean',
110
- description: 'Enable ThinkingLens'
111
- },
112
- autoSync: {
113
- type: 'boolean',
114
- description: 'Automatically sync thinking routes'
115
- },
116
- syncInterval: {
117
- type: 'integer',
118
- minimum: 1,
119
- maximum: 300,
120
- description: 'Sync interval in conversations (1-300)'
121
- }
122
- },
123
- additionalProperties: true
124
- },
125
-
126
- // Quality gate configuration
127
- qualityGate: {
128
- type: 'object',
129
- description: 'Quality gate settings',
130
- properties: {
131
- enabled: {
132
- type: 'boolean',
133
- description: 'Enable quality gate'
134
- },
135
- severity: {
136
- type: 'string',
137
- enum: ['info', 'warn', 'error', 'critical'],
138
- description: 'Minimum severity level for blocking'
139
- },
140
- rules: {
141
- type: 'array',
142
- description: 'Custom rule configurations',
143
- items: {
144
- type: 'object',
145
- required: ['id'],
146
- properties: {
147
- id: { type: 'string' },
148
- enabled: { type: 'boolean' },
149
- severity: {
150
- type: 'string',
151
- enum: ['info', 'warn', 'error', 'critical']
152
- },
153
- config: { type: 'object' }
154
- }
155
- }
156
- },
157
- gates: {
158
- type: 'object',
159
- description: 'Gate trigger points',
160
- properties: {
161
- preCommit: { type: 'boolean' },
162
- prePush: { type: 'boolean' },
163
- onToolUse: { type: 'boolean' }
164
- },
165
- additionalProperties: true
166
- },
167
- reporting: {
168
- type: 'object',
169
- description: 'Report settings',
170
- properties: {
171
- format: {
172
- type: 'string',
173
- enum: ['console', 'json', 'markdown', 'html']
174
- },
175
- outputFile: { type: 'string' }
176
- },
177
- additionalProperties: true
178
- }
179
- },
180
- additionalProperties: true
181
- },
182
-
183
- // Marketplace configuration
184
- marketplace: {
185
- type: 'object',
186
- description: 'Skill marketplace settings',
187
- properties: {
188
- enabled: {
189
- type: 'boolean',
190
- description: 'Enable skill marketplace'
191
- },
192
- autoSync: {
193
- type: 'boolean',
194
- description: 'Auto-sync from external sources'
195
- },
196
- syncInterval: {
197
- type: 'integer',
198
- minimum: 1,
199
- maximum: 1440,
200
- description: 'Sync interval in minutes (1-1440)'
201
- },
202
- sources: {
203
- type: 'array',
204
- description: 'External skill sources',
205
- items: {
206
- type: 'string',
207
- format: 'uri'
208
- }
209
- }
210
- },
211
- additionalProperties: true
212
- }
213
- },
214
-
215
- additionalProperties: true
216
- };
217
-
218
- /**
219
- * Project-level settings schema
220
- * For .claude/settings.json in project directories
221
- */
222
- const SETTINGS_SCHEMA = {
223
- $id: 'https://sumulige-claude.com/schemas/settings.json',
224
- $schema: 'http://json-schema.org/draft-07/schema#',
225
- title: 'Project Settings',
226
- description: 'Claude Code project-specific settings',
227
-
228
- type: 'object',
229
-
230
- patternProperties: {
231
- // Hook event names
232
- '^(UserPromptSubmit|PreToolUse|PostToolUse|AgentStop|SessionEnd)$': {
233
- type: 'array',
234
- description: 'Hooks for this event',
235
- items: {
236
- type: 'object',
237
- required: ['hooks'],
238
- properties: {
239
- matcher: {
240
- oneOf: [
241
- { type: 'string' },
242
- { type: 'object' }
243
- ]
244
- },
245
- hooks: {
246
- type: 'array',
247
- items: {
248
- type: 'object',
249
- required: ['type', 'command'],
250
- properties: {
251
- type: {
252
- type: 'string',
253
- enum: ['command']
254
- },
255
- command: {
256
- type: 'string',
257
- description: 'Command to execute'
258
- },
259
- timeout: {
260
- type: 'number',
261
- minimum: 100,
262
- maximum: 60000,
263
- description: 'Timeout in milliseconds'
264
- }
265
- },
266
- additionalProperties: true
267
- }
268
- }
269
- }
270
- }
271
- }
272
- },
273
-
274
- additionalProperties: true
275
- };
276
-
277
- /**
278
- * Quality gate configuration schema
279
- * For .claude/quality-gate.json
280
- */
281
- const QUALITY_GATE_SCHEMA = {
282
- $id: 'https://sumulige-claude.com/schemas/quality-gate.json',
283
- $schema: 'http://json-schema.org/draft-07/schema#',
284
- title: 'Quality Gate Configuration',
285
- description: 'Quality gate rules and settings',
286
-
287
- type: 'object',
288
-
289
- properties: {
290
- enabled: {
291
- type: 'boolean',
292
- description: 'Enable quality gate'
293
- },
294
- severity: {
295
- type: 'string',
296
- enum: ['info', 'warn', 'error', 'critical'],
297
- description: 'Minimum severity level for blocking',
298
- default: 'warn'
299
- },
300
- rules: {
301
- type: 'array',
302
- description: 'Rule configurations',
303
- items: {
304
- type: 'object',
305
- required: ['id'],
306
- properties: {
307
- id: {
308
- type: 'string',
309
- description: 'Rule identifier'
310
- },
311
- name: {
312
- type: 'string',
313
- description: 'Human-readable rule name'
314
- },
315
- enabled: {
316
- type: 'boolean',
317
- description: 'Whether the rule is enabled',
318
- default: true
319
- },
320
- severity: {
321
- type: 'string',
322
- enum: ['info', 'warn', 'error', 'critical'],
323
- description: 'Rule severity level',
324
- default: 'warn'
325
- },
326
- config: {
327
- type: 'object',
328
- description: 'Rule-specific configuration'
329
- }
330
- }
331
- }
332
- },
333
- gates: {
334
- type: 'object',
335
- description: 'Gate trigger points',
336
- properties: {
337
- preCommit: {
338
- type: 'boolean',
339
- description: 'Run on pre-commit',
340
- default: true
341
- },
342
- prePush: {
343
- type: 'boolean',
344
- description: 'Run on pre-push',
345
- default: true
346
- },
347
- onToolUse: {
348
- type: 'boolean',
349
- description: 'Run after tool use',
350
- default: false
351
- }
352
- },
353
- additionalProperties: true
354
- },
355
- reporting: {
356
- type: 'object',
357
- description: 'Report settings',
358
- properties: {
359
- format: {
360
- type: 'string',
361
- enum: ['console', 'json', 'markdown', 'html'],
362
- default: 'console'
363
- },
364
- outputFile: {
365
- type: 'string',
366
- description: 'Output file path'
367
- }
368
- },
369
- additionalProperties: true
370
- }
371
- },
372
-
373
- additionalProperties: true
374
- };
375
-
376
- /**
377
- * Get schema by name
378
- * @param {string} name - Schema name ('config' | 'settings' | 'quality-gate')
379
- * @returns {Object} JSON Schema object
380
- */
381
- function getSchema(name) {
382
- const schemas = {
383
- config: CONFIG_SCHEMA,
384
- settings: SETTINGS_SCHEMA,
385
- 'quality-gate': QUALITY_GATE_SCHEMA
386
- };
387
- return schemas[name];
388
- }
389
-
390
- /**
391
- * Get all available schemas
392
- * @returns {Object} Map of schema name to schema object
393
- */
394
- function getAllSchemas() {
395
- return {
396
- config: CONFIG_SCHEMA,
397
- settings: SETTINGS_SCHEMA,
398
- 'quality-gate': QUALITY_GATE_SCHEMA
399
- };
400
- }
401
-
402
- module.exports = {
403
- CONFIG_SCHEMA,
404
- SETTINGS_SCHEMA,
405
- QUALITY_GATE_SCHEMA,
406
- getSchema,
407
- getAllSchemas
408
- };