comp-gate 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.
Files changed (130) hide show
  1. package/README.md +353 -0
  2. package/dist/agents/agents-md.d.ts +2 -0
  3. package/dist/agents/agents-md.d.ts.map +1 -0
  4. package/dist/agents/agents-md.js +25 -0
  5. package/dist/agents/agents-md.js.map +1 -0
  6. package/dist/agents/claude.d.ts +2 -0
  7. package/dist/agents/claude.d.ts.map +1 -0
  8. package/dist/agents/claude.js +45 -0
  9. package/dist/agents/claude.js.map +1 -0
  10. package/dist/agents/cursor.d.ts +2 -0
  11. package/dist/agents/cursor.d.ts.map +1 -0
  12. package/dist/agents/cursor.js +28 -0
  13. package/dist/agents/cursor.js.map +1 -0
  14. package/dist/agents/detect.d.ts +4 -0
  15. package/dist/agents/detect.d.ts.map +1 -0
  16. package/dist/agents/detect.js +96 -0
  17. package/dist/agents/detect.js.map +1 -0
  18. package/dist/agents/shared.d.ts +9 -0
  19. package/dist/agents/shared.d.ts.map +1 -0
  20. package/dist/agents/shared.js +83 -0
  21. package/dist/agents/shared.js.map +1 -0
  22. package/dist/agents/types.d.ts +14 -0
  23. package/dist/agents/types.d.ts.map +1 -0
  24. package/dist/agents/types.js +8 -0
  25. package/dist/agents/types.js.map +1 -0
  26. package/dist/agents/windsurf.d.ts +2 -0
  27. package/dist/agents/windsurf.d.ts.map +1 -0
  28. package/dist/agents/windsurf.js +27 -0
  29. package/dist/agents/windsurf.js.map +1 -0
  30. package/dist/bootstrap-summary.d.ts +2 -0
  31. package/dist/bootstrap-summary.d.ts.map +1 -0
  32. package/dist/bootstrap-summary.js +262 -0
  33. package/dist/bootstrap-summary.js.map +1 -0
  34. package/dist/categories.d.ts +13 -0
  35. package/dist/categories.d.ts.map +1 -0
  36. package/dist/categories.js +382 -0
  37. package/dist/categories.js.map +1 -0
  38. package/dist/cli.d.ts +3 -0
  39. package/dist/cli.d.ts.map +1 -0
  40. package/dist/cli.js +361 -0
  41. package/dist/cli.js.map +1 -0
  42. package/dist/config-init.d.ts +16 -0
  43. package/dist/config-init.d.ts.map +1 -0
  44. package/dist/config-init.js +53 -0
  45. package/dist/config-init.js.map +1 -0
  46. package/dist/config.d.ts +11 -0
  47. package/dist/config.d.ts.map +1 -0
  48. package/dist/config.js +127 -0
  49. package/dist/config.js.map +1 -0
  50. package/dist/constants.d.ts +2 -0
  51. package/dist/constants.d.ts.map +1 -0
  52. package/dist/constants.js +2 -0
  53. package/dist/constants.js.map +1 -0
  54. package/dist/detect.d.ts +4 -0
  55. package/dist/detect.d.ts.map +1 -0
  56. package/dist/detect.js +244 -0
  57. package/dist/detect.js.map +1 -0
  58. package/dist/diff.d.ts +11 -0
  59. package/dist/diff.d.ts.map +1 -0
  60. package/dist/diff.js +198 -0
  61. package/dist/diff.js.map +1 -0
  62. package/dist/generate.d.ts +7 -0
  63. package/dist/generate.d.ts.map +1 -0
  64. package/dist/generate.js +71 -0
  65. package/dist/generate.js.map +1 -0
  66. package/dist/gitignore.d.ts +12 -0
  67. package/dist/gitignore.d.ts.map +1 -0
  68. package/dist/gitignore.js +106 -0
  69. package/dist/gitignore.js.map +1 -0
  70. package/dist/hooks.d.ts +22 -0
  71. package/dist/hooks.d.ts.map +1 -0
  72. package/dist/hooks.js +199 -0
  73. package/dist/hooks.js.map +1 -0
  74. package/dist/init.d.ts +24 -0
  75. package/dist/init.d.ts.map +1 -0
  76. package/dist/init.js +218 -0
  77. package/dist/init.js.map +1 -0
  78. package/dist/paths.d.ts +13 -0
  79. package/dist/paths.d.ts.map +1 -0
  80. package/dist/paths.js +18 -0
  81. package/dist/paths.js.map +1 -0
  82. package/dist/prompts.d.ts +9 -0
  83. package/dist/prompts.d.ts.map +1 -0
  84. package/dist/prompts.js +88 -0
  85. package/dist/prompts.js.map +1 -0
  86. package/dist/repo-stats.d.ts +10 -0
  87. package/dist/repo-stats.d.ts.map +1 -0
  88. package/dist/repo-stats.js +117 -0
  89. package/dist/repo-stats.js.map +1 -0
  90. package/dist/setup-wizard.d.ts +34 -0
  91. package/dist/setup-wizard.d.ts.map +1 -0
  92. package/dist/setup-wizard.js +251 -0
  93. package/dist/setup-wizard.js.map +1 -0
  94. package/dist/testing.d.ts +6 -0
  95. package/dist/testing.d.ts.map +1 -0
  96. package/dist/testing.js +24 -0
  97. package/dist/testing.js.map +1 -0
  98. package/dist/types.d.ts +156 -0
  99. package/dist/types.d.ts.map +1 -0
  100. package/dist/types.js +31 -0
  101. package/dist/types.js.map +1 -0
  102. package/dist/verify.d.ts +38 -0
  103. package/dist/verify.d.ts.map +1 -0
  104. package/dist/verify.js +254 -0
  105. package/dist/verify.js.map +1 -0
  106. package/package.json +52 -0
  107. package/src/templates/PROMPTS.md +6 -0
  108. package/src/templates/SKILL.md +253 -0
  109. package/src/templates/SUMMARY.md +29 -0
  110. package/src/templates/agents/agents-md/section.md +11 -0
  111. package/src/templates/agents/claude/SKILL.md +8 -0
  112. package/src/templates/agents/claude/settings.fragment.json +16 -0
  113. package/src/templates/agents/claude/testing-SKILL.md +9 -0
  114. package/src/templates/agents/cursor/SKILL.md +9 -0
  115. package/src/templates/agents/cursor/hooks.json +23 -0
  116. package/src/templates/agents/cursor/testing-SKILL.md +9 -0
  117. package/src/templates/agents/windsurf/SKILL.md +8 -0
  118. package/src/templates/agents/windsurf/hooks.json +10 -0
  119. package/src/templates/agents/windsurf/testing-SKILL.md +9 -0
  120. package/src/templates/hooks/after-push.sh +17 -0
  121. package/src/templates/hooks/block-commit.sh +29 -0
  122. package/src/templates/hooks/block-push.sh +29 -0
  123. package/src/templates/hooks/claude-pre-tool.sh +59 -0
  124. package/src/templates/hooks/git-pre-commit.sh +35 -0
  125. package/src/templates/hooks/git-pre-push.sh +53 -0
  126. package/src/templates/hooks/statusline.sh +3 -0
  127. package/src/templates/hooks/windsurf-pre-run.sh +39 -0
  128. package/src/templates/hooks.json +23 -0
  129. package/src/templates/testing-SKILL.md +33 -0
  130. package/src/templates/testme.config.json +32 -0
@@ -0,0 +1,382 @@
1
+ import { extractTerms } from "./diff.js";
2
+ import { summaryArchitectureTerms, termsForFile, } from "./prompts.js";
3
+ const DATA_STRUCTURE_TERMS = [
4
+ "array",
5
+ "list",
6
+ "queue",
7
+ "stack",
8
+ "map",
9
+ "set",
10
+ "tree",
11
+ "graph",
12
+ "heap",
13
+ "hash",
14
+ "matrix",
15
+ "vector",
16
+ "sort",
17
+ "search",
18
+ "complexity",
19
+ "big-o",
20
+ "O(n)",
21
+ ];
22
+ const ERROR_TERMS = ["throw", "catch", "error", "exception", "try", "finally", "Result", "reject"];
23
+ const SECURITY_TERMS = ["auth", "token", "encrypt", "sanitize", "secret", "password", "jwt", "csrf", "xss"];
24
+ const PERFORMANCE_TERMS = ["cache", "memo", "optimize", "latency", "throughput", "complexity", "batch"];
25
+ function questionTypeForCategory(category) {
26
+ if (category === "changeRationale") {
27
+ return "change_rationale";
28
+ }
29
+ if (category === "symbols") {
30
+ return "symbol";
31
+ }
32
+ if (category === "architecture") {
33
+ return "architecture";
34
+ }
35
+ return "category";
36
+ }
37
+ function isBoilerplatePath(filePath) {
38
+ return (filePath.startsWith(".cursor/") ||
39
+ filePath.startsWith(".claude/") ||
40
+ filePath.startsWith(".windsurf/") ||
41
+ filePath === "AGENTS.md" ||
42
+ filePath === ".gitignore" ||
43
+ filePath === "PROMPTS.md" ||
44
+ filePath === "SUMMARY.md" ||
45
+ filePath === "testme.config.json");
46
+ }
47
+ export function relevantFiles(files) {
48
+ const filtered = files.filter((file) => !isBoilerplatePath(file.path));
49
+ return filtered.length > 0 ? filtered : files;
50
+ }
51
+ function matchesPath(files, pattern) {
52
+ return files.filter((file) => pattern.test(file.path));
53
+ }
54
+ function termsFromDiffKeywords(rawDiff, keywords) {
55
+ const terms = new Set();
56
+ const lower = rawDiff.toLowerCase();
57
+ for (const keyword of keywords) {
58
+ if (lower.includes(keyword.toLowerCase())) {
59
+ terms.add(keyword);
60
+ }
61
+ }
62
+ return [...terms];
63
+ }
64
+ function runtimeTerms(summary) {
65
+ const terms = new Set(["run", "test"]);
66
+ let inRuntime = false;
67
+ for (const line of summary.split("\n")) {
68
+ if (/^##\s+Runtime Notes\s*$/i.test(line)) {
69
+ inRuntime = true;
70
+ continue;
71
+ }
72
+ if (inRuntime && /^##\s+/.test(line)) {
73
+ break;
74
+ }
75
+ if (inRuntime) {
76
+ for (const term of extractTerms(line)) {
77
+ terms.add(term);
78
+ }
79
+ }
80
+ }
81
+ return [...terms].slice(0, 5);
82
+ }
83
+ function domainTerms(category) {
84
+ const map = {
85
+ machineLearning: ["training", "inference", "model", "metrics", "dataset", "pipeline"],
86
+ cybersecurity: ["threat", "attack", "mitigation", "vulnerability", "encrypt", "auth"],
87
+ frontend: ["component", "state", "render", "accessibility", "props"],
88
+ backend: ["route", "middleware", "handler", "service", "request"],
89
+ devops: ["deploy", "pipeline", "container", "workflow", "environment"],
90
+ mobile: ["platform", "native", "screen", "navigation", "device"],
91
+ dataEngineering: ["pipeline", "etl", "warehouse", "transform", "lineage"],
92
+ };
93
+ return map[category] ?? [];
94
+ }
95
+ export function buildCandidates(category, ctx) {
96
+ const candidates = [];
97
+ const type = questionTypeForCategory(category);
98
+ switch (category) {
99
+ case "changeRationale": {
100
+ for (const file of ctx.files) {
101
+ const promptTerms = termsForFile(ctx.promptsSections, file.path);
102
+ const symbolTerms = file.symbols.slice(0, 4);
103
+ const requiredTerms = [...new Set([...promptTerms, ...symbolTerms])].slice(0, 6);
104
+ if (requiredTerms.length === 0) {
105
+ continue;
106
+ }
107
+ candidates.push({
108
+ category,
109
+ type,
110
+ prompt: `What changed in ${file.path} and why?`,
111
+ files: [file.path],
112
+ rubric: { requiredTerms, minLength: 40 },
113
+ priority: 100,
114
+ });
115
+ }
116
+ break;
117
+ }
118
+ case "symbols": {
119
+ for (const file of ctx.files) {
120
+ for (const symbol of file.symbols) {
121
+ const promptTerms = termsForFile(ctx.promptsSections, file.path);
122
+ candidates.push({
123
+ category,
124
+ type,
125
+ prompt: `What does ${symbol} in ${file.path} do after your changes?`,
126
+ files: [file.path],
127
+ rubric: {
128
+ requiredTerms: [...new Set([symbol, ...promptTerms.slice(0, 3)])],
129
+ minLength: 30,
130
+ requiredSymbol: symbol,
131
+ },
132
+ priority: 80,
133
+ });
134
+ }
135
+ }
136
+ break;
137
+ }
138
+ case "architecture": {
139
+ const archTerms = summaryArchitectureTerms(ctx.summary);
140
+ if (archTerms.length > 0 && ctx.files.length > 0) {
141
+ candidates.push({
142
+ category,
143
+ type,
144
+ prompt: "How do these changes fit into the project architecture described in SUMMARY.md?",
145
+ files: ctx.files.map((f) => f.path).slice(0, 3),
146
+ rubric: { requiredTerms: archTerms.slice(0, 4), minLength: 50 },
147
+ priority: 70,
148
+ });
149
+ }
150
+ break;
151
+ }
152
+ case "runtime": {
153
+ const runtimeFiles = matchesPath(ctx.files, /(Dockerfile|docker-compose|Makefile|package\.json|pyproject\.toml|\.github\/workflows\/)/i);
154
+ const terms = [...runtimeTerms(ctx.summary), ...runtimeFiles.map((f) => f.path).slice(0, 2)].slice(0, 5);
155
+ if (terms.length > 0) {
156
+ candidates.push({
157
+ category,
158
+ type: "category",
159
+ prompt: "How do you run, test, or deploy the project after these changes?",
160
+ files: (runtimeFiles.length > 0 ? runtimeFiles : ctx.files).map((f) => f.path).slice(0, 3),
161
+ rubric: { requiredTerms: terms, minLength: 45 },
162
+ priority: 60,
163
+ });
164
+ }
165
+ break;
166
+ }
167
+ case "dataStructures": {
168
+ const terms = [
169
+ ...termsFromDiffKeywords(ctx.rawDiff, DATA_STRUCTURE_TERMS),
170
+ ...termsForFile(ctx.promptsSections, ctx.files[0]?.path ?? ""),
171
+ ].slice(0, 5);
172
+ if (terms.length > 0) {
173
+ candidates.push({
174
+ category,
175
+ type: "category",
176
+ prompt: "What data structures or algorithms did these changes use, and why?",
177
+ files: ctx.files.map((f) => f.path).slice(0, 3),
178
+ rubric: { requiredTerms: terms, minLength: 45 },
179
+ priority: 55,
180
+ });
181
+ }
182
+ break;
183
+ }
184
+ case "dependencies": {
185
+ const depFiles = matchesPath(ctx.files, /(package\.json|package-lock\.json|pyproject\.toml|requirements\.txt|go\.mod)/i);
186
+ if (depFiles.length > 0) {
187
+ const terms = [
188
+ ...depFiles.map((f) => f.path),
189
+ ...termsForFile(ctx.promptsSections, depFiles[0].path),
190
+ ].slice(0, 5);
191
+ candidates.push({
192
+ category,
193
+ type: "category",
194
+ prompt: "Why were dependencies added or changed in this push?",
195
+ files: depFiles.map((f) => f.path),
196
+ rubric: { requiredTerms: terms, minLength: 40 },
197
+ priority: 50,
198
+ });
199
+ }
200
+ break;
201
+ }
202
+ case "testing": {
203
+ const testFiles = matchesPath(ctx.files, /(test|spec)\./i);
204
+ if (testFiles.length > 0) {
205
+ candidates.push({
206
+ category,
207
+ type: "category",
208
+ prompt: "What tests cover these changes and what behavior do they assert?",
209
+ files: testFiles.map((f) => f.path).slice(0, 3),
210
+ rubric: {
211
+ requiredTerms: [...testFiles.map((f) => f.path), "test"].slice(0, 5),
212
+ minLength: 40,
213
+ },
214
+ priority: 65,
215
+ });
216
+ }
217
+ break;
218
+ }
219
+ case "errorHandling": {
220
+ const terms = termsFromDiffKeywords(ctx.rawDiff, ERROR_TERMS);
221
+ if (terms.length > 0) {
222
+ candidates.push({
223
+ category,
224
+ type: "category",
225
+ prompt: "How are errors and edge cases handled in these changes?",
226
+ files: ctx.files.map((f) => f.path).slice(0, 3),
227
+ rubric: { requiredTerms: terms.slice(0, 4), minLength: 40 },
228
+ priority: 45,
229
+ });
230
+ }
231
+ break;
232
+ }
233
+ case "apiContracts": {
234
+ const apiFiles = matchesPath(ctx.files, /(route|api|schema|openapi|proto|types?)\./i);
235
+ if (apiFiles.length > 0) {
236
+ candidates.push({
237
+ category,
238
+ type: "category",
239
+ prompt: "What API, schema, or interface contracts changed?",
240
+ files: apiFiles.map((f) => f.path).slice(0, 3),
241
+ rubric: {
242
+ requiredTerms: [...apiFiles.map((f) => f.path), "interface", "api"].slice(0, 5),
243
+ minLength: 40,
244
+ },
245
+ priority: 55,
246
+ });
247
+ }
248
+ break;
249
+ }
250
+ case "security": {
251
+ const terms = [
252
+ ...termsFromDiffKeywords(ctx.rawDiff, SECURITY_TERMS),
253
+ ...termsForFile(ctx.promptsSections, ctx.files[0]?.path ?? ""),
254
+ ].slice(0, 5);
255
+ if (terms.length > 0) {
256
+ candidates.push({
257
+ category,
258
+ type: "category",
259
+ prompt: "What security implications do these changes have?",
260
+ files: ctx.files.map((f) => f.path).slice(0, 3),
261
+ rubric: { requiredTerms: terms, minLength: 45 },
262
+ priority: 50,
263
+ });
264
+ }
265
+ break;
266
+ }
267
+ case "performance": {
268
+ const terms = termsFromDiffKeywords(ctx.rawDiff, PERFORMANCE_TERMS);
269
+ if (terms.length > 0) {
270
+ candidates.push({
271
+ category,
272
+ type: "category",
273
+ prompt: "What performance tradeoffs or optimizations are involved?",
274
+ files: ctx.files.map((f) => f.path).slice(0, 3),
275
+ rubric: { requiredTerms: terms.slice(0, 4), minLength: 40 },
276
+ priority: 40,
277
+ });
278
+ }
279
+ break;
280
+ }
281
+ case "database": {
282
+ const dbFiles = matchesPath(ctx.files, /(migration|schema|\.sql$|prisma|drizzle)/i);
283
+ if (dbFiles.length > 0) {
284
+ candidates.push({
285
+ category,
286
+ type: "category",
287
+ prompt: "What database schema or query changes were made?",
288
+ files: dbFiles.map((f) => f.path).slice(0, 3),
289
+ rubric: {
290
+ requiredTerms: [...dbFiles.map((f) => f.path), "schema", "query"].slice(0, 5),
291
+ minLength: 40,
292
+ },
293
+ priority: 55,
294
+ });
295
+ }
296
+ break;
297
+ }
298
+ case "machineLearning":
299
+ case "cybersecurity":
300
+ case "frontend":
301
+ case "backend":
302
+ case "devops":
303
+ case "mobile":
304
+ case "dataEngineering": {
305
+ const terms = domainTerms(category);
306
+ const related = ctx.files.filter((file) => {
307
+ const lower = file.path.toLowerCase();
308
+ return terms.some((term) => lower.includes(term.toLowerCase()));
309
+ });
310
+ const targetFiles = related.length > 0 ? related : ctx.files;
311
+ if (targetFiles.length > 0) {
312
+ candidates.push({
313
+ category,
314
+ type: "category",
315
+ prompt: `From a ${category.replace(/([A-Z])/g, " $1").trim().toLowerCase()} perspective, what is the impact of these changes?`,
316
+ files: targetFiles.map((f) => f.path).slice(0, 3),
317
+ rubric: {
318
+ requiredTerms: [...terms.slice(0, 3), ...termsForFile(ctx.promptsSections, targetFiles[0].path).slice(0, 2)],
319
+ minLength: 50,
320
+ },
321
+ priority: 35,
322
+ });
323
+ }
324
+ break;
325
+ }
326
+ }
327
+ return candidates;
328
+ }
329
+ export function allocateQuestions(candidates, maxQuestions, minQuestions) {
330
+ const selected = [];
331
+ const usedCategories = new Set();
332
+ const usedPrompts = new Set();
333
+ const sorted = [...candidates].sort((a, b) => b.priority - a.priority);
334
+ const required = sorted.filter((c) => c.category === "changeRationale");
335
+ for (const candidate of required) {
336
+ if (selected.length >= maxQuestions) {
337
+ break;
338
+ }
339
+ if (usedPrompts.has(candidate.prompt)) {
340
+ continue;
341
+ }
342
+ selected.push(candidate);
343
+ usedCategories.add(candidate.category);
344
+ usedPrompts.add(candidate.prompt);
345
+ }
346
+ for (const candidate of sorted) {
347
+ if (selected.length >= maxQuestions) {
348
+ break;
349
+ }
350
+ if (usedPrompts.has(candidate.prompt)) {
351
+ continue;
352
+ }
353
+ const isDomain = [
354
+ "machineLearning",
355
+ "cybersecurity",
356
+ "frontend",
357
+ "backend",
358
+ "devops",
359
+ "mobile",
360
+ "dataEngineering",
361
+ ].includes(candidate.category);
362
+ if (isDomain && usedCategories.has(candidate.category)) {
363
+ continue;
364
+ }
365
+ selected.push(candidate);
366
+ usedCategories.add(candidate.category);
367
+ usedPrompts.add(candidate.prompt);
368
+ }
369
+ if (selected.length === 0 && sorted.length > 0) {
370
+ selected.push(sorted[0]);
371
+ }
372
+ while (selected.length < minQuestions && selected.length < sorted.length) {
373
+ const next = sorted.find((c) => !usedPrompts.has(c.prompt));
374
+ if (!next) {
375
+ break;
376
+ }
377
+ selected.push(next);
378
+ usedPrompts.add(next.prompt);
379
+ }
380
+ return selected.slice(0, maxQuestions);
381
+ }
382
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../src/categories.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}