sumulige-claude 1.5.1 → 1.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.
Files changed (223) 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/README.md +280 -529
  48. package/cli.js +19 -3
  49. package/package.json +29 -3
  50. package/template/.codex/README.md +69 -0
  51. package/template/.codex/config.toml +56 -0
  52. package/template/AGENTS.md +94 -0
  53. package/.claude/.kickoff-hint.txt +0 -52
  54. package/.claude/.sumulige-claude-version +0 -1
  55. package/.claude/.version +0 -1
  56. package/.claude/AGENTS.md +0 -42
  57. package/.claude/ANCHORS.md +0 -40
  58. package/.claude/CLAUDE.md +0 -138
  59. package/.claude/MEMORY.md +0 -69
  60. package/.claude/PROJECT_LOG.md +0 -101
  61. package/.claude/THINKING_CHAIN_GUIDE.md +0 -287
  62. package/.claude/USAGE.md +0 -175
  63. package/.claude/boris-optimizations.md +0 -167
  64. package/.claude/handoffs/INDEX.md +0 -21
  65. package/.claude/handoffs/LATEST.md +0 -76
  66. package/.claude/handoffs/handoff_2026-01-22T13-07-04-757Z.md +0 -76
  67. package/.claude/quality-gate.json +0 -82
  68. package/.claude/rag/skill-index.json +0 -135
  69. package/.claude/settings.json +0 -99
  70. package/.claude/settings.local.json +0 -175
  71. package/.claude/templates/PROJECT_KICKOFF.md +0 -89
  72. package/.claude/templates/PROJECT_PROPOSAL.md +0 -227
  73. package/.claude/templates/TASK_PLAN.md +0 -121
  74. package/.claude/templates/hooks/README.md +0 -302
  75. package/.claude/templates/hooks/hook.sh.template +0 -94
  76. package/.claude/templates/hooks/user-prompt-submit.cjs.template +0 -116
  77. package/.claude/templates/hooks/user-response-submit.cjs.template +0 -94
  78. package/.claude/templates/hooks/validate.js +0 -173
  79. package/.claude/templates/tasks/develop.md +0 -69
  80. package/.claude/templates/tasks/research.md +0 -64
  81. package/.claude/templates/tasks/test.md +0 -96
  82. package/.claude/thinking-routes/.last-sync +0 -1
  83. package/.claude/thinking-routes/QUICKREF.md +0 -98
  84. package/.claude/workflow/document-scanner.js +0 -426
  85. package/.claude/workflow/knowledge-engine.js +0 -941
  86. package/.claude/workflow/notebooklm/browser.js +0 -1028
  87. package/.claude/workflow/phases/phase1-research.js +0 -578
  88. package/.claude/workflow/phases/phase1-research.ts +0 -465
  89. package/.claude/workflow/phases/phase2-approve.js +0 -722
  90. package/.claude/workflow/phases/phase3-plan.js +0 -1200
  91. package/.claude/workflow/phases/phase4-develop.js +0 -894
  92. package/.claude/workflow/search-cache.js +0 -230
  93. package/.claude/workflow/templates/approval.md +0 -315
  94. package/.claude/workflow/templates/development.md +0 -377
  95. package/.claude/workflow/templates/planning.md +0 -328
  96. package/.claude/workflow/templates/research.md +0 -250
  97. package/.claude/workflow/types.js +0 -37
  98. package/.claude/workflow/web-search.js +0 -278
  99. package/.claude-plugin/marketplace.json +0 -71
  100. package/.github/workflows/sync-skills.yml +0 -74
  101. package/.versionrc +0 -25
  102. package/AGENTS.md +0 -580
  103. package/CHANGELOG.md +0 -481
  104. package/CLAUDE-template.md +0 -114
  105. package/DEV_TOOLS_GUIDE.md +0 -190
  106. package/PROJECT_STRUCTURE.md +0 -266
  107. package/Q&A.md +0 -325
  108. package/config/defaults.json +0 -34
  109. package/config/official-skills.json +0 -183
  110. package/config/quality-gate.json +0 -67
  111. package/config/skill-categories.json +0 -40
  112. package/config/version-manifest.json +0 -85
  113. package/demos/power-3d-scatter.html +0 -683
  114. package/development/cache/web-search/search_1193d605f8eb364651fc2f2041b58a31.json +0 -36
  115. package/development/cache/web-search/search_3798bf06960edc125f744a1abb5b72c5.json +0 -36
  116. package/development/cache/web-search/search_37c7d4843a53f0d83f1122a6f908a2a3.json +0 -36
  117. package/development/cache/web-search/search_44166fa0153709ee168485a22aa0ab40.json +0 -36
  118. package/development/cache/web-search/search_4deaebb1f77e86a8ca066dc5a49c59fd.json +0 -36
  119. package/development/cache/web-search/search_94da91789466070a7f545612e73c7372.json +0 -36
  120. package/development/cache/web-search/search_dd5de8491b8b803a3cb01339cd210fb0.json +0 -36
  121. package/development/knowledge-base/.index.clean.json +0 -1
  122. package/development/knowledge-base/.index.json +0 -486
  123. package/development/knowledge-base/test-best-practices.md +0 -29
  124. package/development/projects/proj_mkh1pazz_ixmt1/phase1/feasibility-report.md +0 -160
  125. package/development/projects/proj_mkh4jvnb_z7rwf/phase1/feasibility-report.md +0 -160
  126. package/development/projects/proj_mkh4jxkd_ewz5a/phase1/feasibility-report.md +0 -160
  127. package/development/projects/proj_mkh4k84n_ni73k/phase1/feasibility-report.md +0 -160
  128. package/development/projects/proj_mkh4wfyd_u9w88/phase1/feasibility-report.md +0 -160
  129. package/development/projects/proj_mkh4wsbo_iahvf/development/projects/proj_mkh4xbpg_4na5w/phase1/feasibility-report.md +0 -160
  130. package/development/projects/proj_mkh4wsbo_iahvf/phase1/feasibility-report.md +0 -160
  131. package/development/projects/proj_mkh4xulg_1ka8x/phase1/feasibility-report.md +0 -160
  132. package/development/projects/proj_mkh4xwhj_gch8j/phase1/feasibility-report.md +0 -160
  133. package/development/projects/proj_mkh4y2qk_9lm8z/phase1/feasibility-report.md +0 -160
  134. package/development/projects/proj_mkh4y2qk_9lm8z/phase2/requirements.md +0 -226
  135. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/PRD.md +0 -345
  136. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/TASK_PLAN.md +0 -284
  137. package/development/projects/proj_mkh4y2qk_9lm8z/phase3/prototype/README.md +0 -14
  138. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/DEVELOPMENT_LOG.md +0 -35
  139. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/TASKS.md +0 -34
  140. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/.env.example +0 -5
  141. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/README.md +0 -60
  142. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/package.json +0 -25
  143. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/index.js +0 -70
  144. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/src/routes/index.js +0 -48
  145. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/health.test.js +0 -20
  146. package/development/projects/proj_mkh4y2qk_9lm8z/phase4/source/tests/jest.config.js +0 -21
  147. package/development/projects/proj_mkh7veqg_3lypc/phase1/feasibility-report.md +0 -160
  148. package/development/projects/proj_mkh7veqg_3lypc/phase2/requirements.md +0 -226
  149. package/development/projects/proj_mkh7veqg_3lypc/phase3/PRD.md +0 -345
  150. package/development/projects/proj_mkh7veqg_3lypc/phase3/TASK_PLAN.md +0 -284
  151. package/development/projects/proj_mkh7veqg_3lypc/phase3/prototype/README.md +0 -14
  152. package/development/projects/proj_mkh8k8fo_rmqn5/phase1/feasibility-report.md +0 -160
  153. package/development/projects/proj_mkh8xyhy_1vshq/phase1/feasibility-report.md +0 -178
  154. package/development/projects/proj_mkh8zddd_dhamf/phase1/feasibility-report.md +0 -377
  155. package/development/projects/proj_mkh8zddd_dhamf/phase2/requirements.md +0 -442
  156. package/development/projects/proj_mkh8zddd_dhamf/phase3/api-design.md +0 -800
  157. package/development/projects/proj_mkh8zddd_dhamf/phase3/architecture.md +0 -625
  158. package/development/projects/proj_mkh8zddd_dhamf/phase3/data-model.md +0 -830
  159. package/development/projects/proj_mkh8zddd_dhamf/phase3/risks.md +0 -957
  160. package/development/projects/proj_mkh8zddd_dhamf/phase3/wbs.md +0 -381
  161. package/development/todos/.state.json +0 -19
  162. package/development/todos/INDEX.md +0 -63
  163. package/development/todos/active/_README.md +0 -49
  164. package/development/todos/archived/_README.md +0 -11
  165. package/development/todos/backlog/_README.md +0 -11
  166. package/development/todos/backlog/mcp-integration.md +0 -35
  167. package/development/todos/completed/_README.md +0 -11
  168. package/development/todos/completed/boris-optimizations.md +0 -39
  169. package/development/todos/completed/develop/local-knowledge-index.md +0 -85
  170. package/development/todos/completed/develop/todo-system.md +0 -47
  171. package/development/todos/completed/develop/web-search-integration.md +0 -83
  172. package/development/todos/completed/test/phase1-e2e-test.md +0 -103
  173. package/docs/DEVELOPMENT.md +0 -461
  174. package/docs/MARKETPLACE.md +0 -352
  175. package/docs/RELEASE.md +0 -93
  176. package/jest.config.js +0 -63
  177. package/lib/commands.js +0 -3588
  178. package/lib/config-manager.js +0 -441
  179. package/lib/config-schema.js +0 -408
  180. package/lib/config-validator.js +0 -330
  181. package/lib/config.js +0 -122
  182. package/lib/errors.js +0 -305
  183. package/lib/incremental-sync.js +0 -274
  184. package/lib/marketplace.js +0 -487
  185. package/lib/migrations.js +0 -154
  186. package/lib/permission-audit.js +0 -255
  187. package/lib/quality-gate.js +0 -431
  188. package/lib/quality-rules.js +0 -373
  189. package/lib/utils.js +0 -150
  190. package/lib/version-check.js +0 -169
  191. package/lib/version-manifest.js +0 -171
  192. package/project-paradigm.md +0 -313
  193. package/prompts/how-to-find.md +0 -163
  194. package/prompts/linus-architect.md +0 -71
  195. package/prompts/software-architect.md +0 -173
  196. package/prompts/web-designer.md +0 -249
  197. package/scripts/fix-hooks.mjs +0 -97
  198. package/scripts/sync-external.mjs +0 -298
  199. package/scripts/sync-to-home.sh +0 -108
  200. package/scripts/update-registry.mjs +0 -325
  201. package/sources.yaml +0 -83
  202. package/tests/README.md +0 -263
  203. package/tests/commands.test.js +0 -1086
  204. package/tests/config-manager.test.js +0 -677
  205. package/tests/config-schema.test.js +0 -425
  206. package/tests/config-validator.test.js +0 -436
  207. package/tests/config.test.js +0 -100
  208. package/tests/errors.test.js +0 -477
  209. package/tests/manual/phase1-e2e.sh +0 -389
  210. package/tests/manual/phase2-test-cases.md +0 -311
  211. package/tests/manual/phase3-test-cases.md +0 -309
  212. package/tests/manual/phase4-test-cases.md +0 -414
  213. package/tests/manual/test-cases.md +0 -417
  214. package/tests/marketplace.test.js +0 -420
  215. package/tests/migrations.test.js +0 -187
  216. package/tests/quality-gate.test.js +0 -679
  217. package/tests/quality-rules.test.js +0 -619
  218. package/tests/sync-external.test.js +0 -214
  219. package/tests/update-registry.test.js +0 -251
  220. package/tests/utils.test.js +0 -171
  221. package/tests/version-check.test.js +0 -75
  222. package/tests/web-search.test.js +0 -392
  223. 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
- };