@codebakers/mcp 5.2.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 (140) hide show
  1. package/INSTALL.md +221 -0
  2. package/LICENSE +21 -0
  3. package/README.md +412 -0
  4. package/dist/cli.d.ts +9 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +236 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/index.d.ts +12 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +526 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/analyze-mockups.d.ts +18 -0
  13. package/dist/tools/analyze-mockups.d.ts.map +1 -0
  14. package/dist/tools/analyze-mockups.js +497 -0
  15. package/dist/tools/analyze-mockups.js.map +1 -0
  16. package/dist/tools/autonomous-build.d.ts +19 -0
  17. package/dist/tools/autonomous-build.d.ts.map +1 -0
  18. package/dist/tools/autonomous-build.js +287 -0
  19. package/dist/tools/autonomous-build.js.map +1 -0
  20. package/dist/tools/check-gate.d.ts +21 -0
  21. package/dist/tools/check-gate.d.ts.map +1 -0
  22. package/dist/tools/check-gate.js +446 -0
  23. package/dist/tools/check-gate.js.map +1 -0
  24. package/dist/tools/check-scope.d.ts +22 -0
  25. package/dist/tools/check-scope.d.ts.map +1 -0
  26. package/dist/tools/check-scope.js +251 -0
  27. package/dist/tools/check-scope.js.map +1 -0
  28. package/dist/tools/deploy-vercel.d.ts +18 -0
  29. package/dist/tools/deploy-vercel.d.ts.map +1 -0
  30. package/dist/tools/deploy-vercel.js +178 -0
  31. package/dist/tools/deploy-vercel.js.map +1 -0
  32. package/dist/tools/diagnose-error.d.ts +20 -0
  33. package/dist/tools/diagnose-error.d.ts.map +1 -0
  34. package/dist/tools/diagnose-error.js +351 -0
  35. package/dist/tools/diagnose-error.js.map +1 -0
  36. package/dist/tools/enforce-feature.d.ts +25 -0
  37. package/dist/tools/enforce-feature.d.ts.map +1 -0
  38. package/dist/tools/enforce-feature.js +387 -0
  39. package/dist/tools/enforce-feature.js.map +1 -0
  40. package/dist/tools/execute-atomic-unit.d.ts +23 -0
  41. package/dist/tools/execute-atomic-unit.d.ts.map +1 -0
  42. package/dist/tools/execute-atomic-unit.js +107 -0
  43. package/dist/tools/execute-atomic-unit.js.map +1 -0
  44. package/dist/tools/fix-commit.d.ts +23 -0
  45. package/dist/tools/fix-commit.d.ts.map +1 -0
  46. package/dist/tools/fix-commit.js +213 -0
  47. package/dist/tools/fix-commit.js.map +1 -0
  48. package/dist/tools/fix-mockups.d.ts +21 -0
  49. package/dist/tools/fix-mockups.d.ts.map +1 -0
  50. package/dist/tools/fix-mockups.js +595 -0
  51. package/dist/tools/fix-mockups.js.map +1 -0
  52. package/dist/tools/generate-api-route.d.ts +18 -0
  53. package/dist/tools/generate-api-route.d.ts.map +1 -0
  54. package/dist/tools/generate-api-route.js +212 -0
  55. package/dist/tools/generate-api-route.js.map +1 -0
  56. package/dist/tools/generate-chatbot.d.ts +20 -0
  57. package/dist/tools/generate-chatbot.d.ts.map +1 -0
  58. package/dist/tools/generate-chatbot.js +555 -0
  59. package/dist/tools/generate-chatbot.js.map +1 -0
  60. package/dist/tools/generate-component.d.ts +18 -0
  61. package/dist/tools/generate-component.d.ts.map +1 -0
  62. package/dist/tools/generate-component.js +159 -0
  63. package/dist/tools/generate-component.js.map +1 -0
  64. package/dist/tools/generate-docs.d.ts +21 -0
  65. package/dist/tools/generate-docs.d.ts.map +1 -0
  66. package/dist/tools/generate-docs.js +782 -0
  67. package/dist/tools/generate-docs.js.map +1 -0
  68. package/dist/tools/generate-e2e-tests.d.ts +12 -0
  69. package/dist/tools/generate-e2e-tests.d.ts.map +1 -0
  70. package/dist/tools/generate-e2e-tests.js +37 -0
  71. package/dist/tools/generate-e2e-tests.js.map +1 -0
  72. package/dist/tools/generate-migration.d.ts +21 -0
  73. package/dist/tools/generate-migration.d.ts.map +1 -0
  74. package/dist/tools/generate-migration.js +94 -0
  75. package/dist/tools/generate-migration.js.map +1 -0
  76. package/dist/tools/generate-schema.d.ts +18 -0
  77. package/dist/tools/generate-schema.d.ts.map +1 -0
  78. package/dist/tools/generate-schema.js +422 -0
  79. package/dist/tools/generate-schema.js.map +1 -0
  80. package/dist/tools/generate-spec.d.ts +18 -0
  81. package/dist/tools/generate-spec.d.ts.map +1 -0
  82. package/dist/tools/generate-spec.js +446 -0
  83. package/dist/tools/generate-spec.js.map +1 -0
  84. package/dist/tools/generate-store-contracts.d.ts +17 -0
  85. package/dist/tools/generate-store-contracts.d.ts.map +1 -0
  86. package/dist/tools/generate-store-contracts.js +356 -0
  87. package/dist/tools/generate-store-contracts.js.map +1 -0
  88. package/dist/tools/generate-store.d.ts +16 -0
  89. package/dist/tools/generate-store.d.ts.map +1 -0
  90. package/dist/tools/generate-store.js +166 -0
  91. package/dist/tools/generate-store.js.map +1 -0
  92. package/dist/tools/generate-unit-tests.d.ts +14 -0
  93. package/dist/tools/generate-unit-tests.d.ts.map +1 -0
  94. package/dist/tools/generate-unit-tests.js +85 -0
  95. package/dist/tools/generate-unit-tests.js.map +1 -0
  96. package/dist/tools/get-context.d.ts +35 -0
  97. package/dist/tools/get-context.d.ts.map +1 -0
  98. package/dist/tools/get-context.js +367 -0
  99. package/dist/tools/get-context.js.map +1 -0
  100. package/dist/tools/init-session.d.ts +22 -0
  101. package/dist/tools/init-session.d.ts.map +1 -0
  102. package/dist/tools/init-session.js +232 -0
  103. package/dist/tools/init-session.js.map +1 -0
  104. package/dist/tools/map-dependencies.d.ts +25 -0
  105. package/dist/tools/map-dependencies.d.ts.map +1 -0
  106. package/dist/tools/map-dependencies.js +480 -0
  107. package/dist/tools/map-dependencies.js.map +1 -0
  108. package/dist/tools/optimize-performance.d.ts +18 -0
  109. package/dist/tools/optimize-performance.d.ts.map +1 -0
  110. package/dist/tools/optimize-performance.js +285 -0
  111. package/dist/tools/optimize-performance.js.map +1 -0
  112. package/dist/tools/run-interview.d.ts +23 -0
  113. package/dist/tools/run-interview.d.ts.map +1 -0
  114. package/dist/tools/run-interview.js +371 -0
  115. package/dist/tools/run-interview.js.map +1 -0
  116. package/dist/tools/run-tests.d.ts +12 -0
  117. package/dist/tools/run-tests.d.ts.map +1 -0
  118. package/dist/tools/run-tests.js +30 -0
  119. package/dist/tools/run-tests.js.map +1 -0
  120. package/dist/tools/scan-security.d.ts +19 -0
  121. package/dist/tools/scan-security.d.ts.map +1 -0
  122. package/dist/tools/scan-security.js +358 -0
  123. package/dist/tools/scan-security.js.map +1 -0
  124. package/dist/tools/validate-accessibility.d.ts +18 -0
  125. package/dist/tools/validate-accessibility.d.ts.map +1 -0
  126. package/dist/tools/validate-accessibility.js +251 -0
  127. package/dist/tools/validate-accessibility.js.map +1 -0
  128. package/dist/tools/validate-mockups.d.ts +21 -0
  129. package/dist/tools/validate-mockups.d.ts.map +1 -0
  130. package/dist/tools/validate-mockups.js +433 -0
  131. package/dist/tools/validate-mockups.js.map +1 -0
  132. package/dist/tools/verify-completeness.d.ts +13 -0
  133. package/dist/tools/verify-completeness.d.ts.map +1 -0
  134. package/dist/tools/verify-completeness.js +68 -0
  135. package/dist/tools/verify-completeness.js.map +1 -0
  136. package/dist/tools/verify-mockups.d.ts +14 -0
  137. package/dist/tools/verify-mockups.d.ts.map +1 -0
  138. package/dist/tools/verify-mockups.js +85 -0
  139. package/dist/tools/verify-mockups.js.map +1 -0
  140. package/package.json +50 -0
@@ -0,0 +1,446 @@
1
+ /**
2
+ * codebakers_check_gate
3
+ *
4
+ * Phase Verification Gate Checks
5
+ *
6
+ * Verifies all requirements are met before proceeding to next phase.
7
+ * Based on CodeBakers Method verification gates for each phase.
8
+ *
9
+ * Phase Gates:
10
+ * - Phase 0: PROJECT-SPEC.md complete (Gates 0-5), human approved
11
+ * - Phase 1: All mockups created, design system documented
12
+ * - Phase 2: MOCK-ANALYSIS.md, SCHEMA.sql, DEPENDENCY-MAP.md complete
13
+ * - Phase 3: Foundation built, auth working, all routes resolve
14
+ * - Phase 4: All features implemented, all screens match mockups
15
+ * - Phase 5: All tests passing, Lighthouse >90, no critical vulnerabilities
16
+ * - Phase 6: Deployed, monitoring active, runbook complete
17
+ */
18
+ import * as fs from 'fs/promises';
19
+ import * as path from 'path';
20
+ export async function checkGate(args) {
21
+ const phase = args.phase ?? 0;
22
+ const cwd = process.cwd();
23
+ console.error(`🍞 CodeBakers: Phase ${phase} Gate Check`);
24
+ try {
25
+ // Determine which gate check to run
26
+ let result;
27
+ switch (phase) {
28
+ case 0:
29
+ result = await checkPhase0Gate(cwd);
30
+ break;
31
+ case 1:
32
+ result = await checkPhase1Gate(cwd);
33
+ break;
34
+ case 2:
35
+ result = await checkPhase2Gate(cwd);
36
+ break;
37
+ case 3:
38
+ result = await checkPhase3Gate(cwd);
39
+ break;
40
+ case 4:
41
+ result = await checkPhase4Gate(cwd);
42
+ break;
43
+ case 5:
44
+ result = await checkPhase5Gate(cwd);
45
+ break;
46
+ case 6:
47
+ result = await checkPhase6Gate(cwd);
48
+ break;
49
+ default:
50
+ return `🍞 CodeBakers: Invalid Phase
51
+
52
+ Phase ${phase} is not valid. Valid phases: 0-6.`;
53
+ }
54
+ // Generate report
55
+ const report = generateGateReport(result);
56
+ return report;
57
+ }
58
+ catch (error) {
59
+ console.error('Error during gate check:', error);
60
+ return `🍞 CodeBakers: Gate Check Failed
61
+
62
+ Error: ${error instanceof Error ? error.message : String(error)}
63
+
64
+ Please verify project directory and file permissions.`;
65
+ }
66
+ }
67
+ /**
68
+ * Phase 0 Gate Check: Specification
69
+ */
70
+ async function checkPhase0Gate(cwd) {
71
+ const checks = [];
72
+ // 1. Check PROJECT-SPEC.md exists
73
+ const specPath = path.join(cwd, '.codebakers', 'PROJECT-SPEC.md');
74
+ const specExists = await fs.access(specPath).then(() => true).catch(() => false);
75
+ if (!specExists) {
76
+ checks.push({
77
+ requirement: 'PROJECT-SPEC.md exists',
78
+ status: 'fail',
79
+ message: 'File not found. Run codebakers_generate_spec first.',
80
+ });
81
+ }
82
+ else {
83
+ const specContent = await fs.readFile(specPath, 'utf-8');
84
+ // 2. Check Gates 0-5 present
85
+ const hasGate0 = specContent.includes('## Gate 0: Identity');
86
+ const hasGate1 = specContent.includes('## Gate 1: Entities');
87
+ const hasGate2 = specContent.includes('## Gate 2: State Changes');
88
+ const hasGate3 = specContent.includes('## Gate 3: Permissions');
89
+ const hasGate4 = specContent.includes('## Gate 4: Dependencies');
90
+ const hasGate5 = specContent.includes('## Gate 5: Integrations');
91
+ if (hasGate0 && hasGate1 && hasGate2 && hasGate3 && hasGate4) {
92
+ checks.push({
93
+ requirement: 'All Gates 0-5 present',
94
+ status: 'pass',
95
+ message: 'PROJECT-SPEC.md contains all required gates.',
96
+ });
97
+ }
98
+ else {
99
+ checks.push({
100
+ requirement: 'All Gates 0-5 present',
101
+ status: 'fail',
102
+ message: `Missing gates. Found: Gate0=${hasGate0}, Gate1=${hasGate1}, Gate2=${hasGate2}, Gate3=${hasGate3}, Gate4=${hasGate4}, Gate5=${hasGate5}`,
103
+ });
104
+ }
105
+ // 3. Check for entities
106
+ const entityCount = (specContent.match(/### \w+\n\n[\w\s]+\n\n\*\*Core Fields:/g) || []).length;
107
+ if (entityCount > 0) {
108
+ checks.push({
109
+ requirement: 'At least one entity defined',
110
+ status: 'pass',
111
+ message: `Found ${entityCount} entities.`,
112
+ });
113
+ }
114
+ else {
115
+ checks.push({
116
+ requirement: 'At least one entity defined',
117
+ status: 'fail',
118
+ message: 'No entities found in Gate 1.',
119
+ });
120
+ }
121
+ }
122
+ // 4. Check BUILD-STATE.md exists
123
+ const buildStatePath = path.join(cwd, '.codebakers', 'BUILD-STATE.md');
124
+ const buildStateExists = await fs.access(buildStatePath).then(() => true).catch(() => false);
125
+ checks.push({
126
+ requirement: 'BUILD-STATE.md exists',
127
+ status: buildStateExists ? 'pass' : 'warning',
128
+ message: buildStateExists ? 'Build state initialized.' : 'BUILD-STATE.md not found (optional for Phase 0).',
129
+ });
130
+ const overallStatus = checks.some(c => c.status === 'fail') ? 'fail' : 'pass';
131
+ return {
132
+ phase: 0,
133
+ phase_name: 'Specification',
134
+ overall_status: overallStatus,
135
+ checks: checks,
136
+ can_proceed: overallStatus === 'pass',
137
+ next_phase: 'Phase 1: UI Mockup & Design',
138
+ };
139
+ }
140
+ /**
141
+ * Phase 1 Gate Check: UI Mockup & Design
142
+ */
143
+ async function checkPhase1Gate(cwd) {
144
+ const checks = [];
145
+ // 1. Check refs/design/ folder exists
146
+ const designPath = path.join(cwd, 'refs', 'design');
147
+ const designExists = await fs.access(designPath).then(() => true).catch(() => false);
148
+ if (!designExists) {
149
+ checks.push({
150
+ requirement: 'refs/design/ folder exists',
151
+ status: 'fail',
152
+ message: 'Design folder not found. Create mockups in refs/design/ first.',
153
+ });
154
+ }
155
+ else {
156
+ // 2. Check for mockup files
157
+ const files = await fs.readdir(designPath);
158
+ const mockupFiles = files.filter(f => f.endsWith('.html') || f.endsWith('.jsx') || f.endsWith('.tsx') || f.endsWith('.md'));
159
+ if (mockupFiles.length > 0) {
160
+ checks.push({
161
+ requirement: 'Mockup files present',
162
+ status: 'pass',
163
+ message: `Found ${mockupFiles.length} mockup files.`,
164
+ });
165
+ }
166
+ else {
167
+ checks.push({
168
+ requirement: 'Mockup files present',
169
+ status: 'fail',
170
+ message: 'No mockup files found in refs/design/.',
171
+ });
172
+ }
173
+ }
174
+ // 3. Check DESIGN-SYSTEM.md (optional but recommended)
175
+ const designSystemPath = path.join(cwd, '.codebakers', 'DESIGN-SYSTEM.md');
176
+ const designSystemExists = await fs.access(designSystemPath).then(() => true).catch(() => false);
177
+ checks.push({
178
+ requirement: 'DESIGN-SYSTEM.md exists',
179
+ status: designSystemExists ? 'pass' : 'warning',
180
+ message: designSystemExists ? 'Design system documented.' : 'Design system not documented (recommended).',
181
+ });
182
+ const overallStatus = checks.some(c => c.status === 'fail') ? 'fail' : 'pass';
183
+ return {
184
+ phase: 1,
185
+ phase_name: 'UI Mockup & Design',
186
+ overall_status: overallStatus,
187
+ checks: checks,
188
+ can_proceed: overallStatus === 'pass',
189
+ next_phase: 'Phase 2: Mock Analysis & Schema',
190
+ };
191
+ }
192
+ /**
193
+ * Phase 2 Gate Check: Mock Analysis & Schema
194
+ */
195
+ async function checkPhase2Gate(cwd) {
196
+ const checks = [];
197
+ // 1. Check MOCK-ANALYSIS.md
198
+ const analysisPath = path.join(cwd, '.codebakers', 'MOCK-ANALYSIS.md');
199
+ const analysisExists = await fs.access(analysisPath).then(() => true).catch(() => false);
200
+ if (analysisExists) {
201
+ const analysisContent = await fs.readFile(analysisPath, 'utf-8');
202
+ const hasEntities = analysisContent.includes('## Extracted Entities');
203
+ checks.push({
204
+ requirement: 'MOCK-ANALYSIS.md complete',
205
+ status: hasEntities ? 'pass' : 'warning',
206
+ message: hasEntities ? 'Mockup analysis complete.' : 'Analysis exists but may be incomplete.',
207
+ });
208
+ }
209
+ else {
210
+ checks.push({
211
+ requirement: 'MOCK-ANALYSIS.md complete',
212
+ status: 'fail',
213
+ message: 'Not found. Run codebakers_analyze_mockups_deep first.',
214
+ });
215
+ }
216
+ // 2. Check SCHEMA.sql
217
+ const schemaPath = path.join(cwd, '.codebakers', 'SCHEMA.sql');
218
+ const schemaExists = await fs.access(schemaPath).then(() => true).catch(() => false);
219
+ if (schemaExists) {
220
+ const schemaContent = await fs.readFile(schemaPath, 'utf-8');
221
+ const hasTables = schemaContent.includes('CREATE TABLE');
222
+ checks.push({
223
+ requirement: 'SCHEMA.sql complete',
224
+ status: hasTables ? 'pass' : 'warning',
225
+ message: hasTables ? 'Database schema generated.' : 'Schema file exists but contains no tables.',
226
+ });
227
+ }
228
+ else {
229
+ checks.push({
230
+ requirement: 'SCHEMA.sql complete',
231
+ status: 'fail',
232
+ message: 'Not found. Run codebakers_generate_schema first.',
233
+ });
234
+ }
235
+ // 3. Check DEPENDENCY-MAP.md
236
+ const depMapPath = path.join(cwd, '.codebakers', 'DEPENDENCY-MAP.md');
237
+ const depMapExists = await fs.access(depMapPath).then(() => true).catch(() => false);
238
+ if (depMapExists) {
239
+ const depMapContent = await fs.readFile(depMapPath, 'utf-8');
240
+ const hasDeps = depMapContent.includes('## Write Dependencies');
241
+ checks.push({
242
+ requirement: 'DEPENDENCY-MAP.md complete',
243
+ status: hasDeps ? 'pass' : 'warning',
244
+ message: hasDeps ? 'Dependency map complete.' : 'Dependency map exists but may be incomplete.',
245
+ });
246
+ }
247
+ else {
248
+ checks.push({
249
+ requirement: 'DEPENDENCY-MAP.md complete',
250
+ status: 'fail',
251
+ message: 'Not found. Run codebakers_map_dependencies first.',
252
+ });
253
+ }
254
+ // 4. Check STORE-CONTRACTS.md
255
+ const contractsPath = path.join(cwd, '.codebakers', 'STORE-CONTRACTS.md');
256
+ const contractsExists = await fs.access(contractsPath).then(() => true).catch(() => false);
257
+ checks.push({
258
+ requirement: 'STORE-CONTRACTS.md complete',
259
+ status: contractsExists ? 'pass' : 'warning',
260
+ message: contractsExists ? 'Store contracts generated.' : 'Store contracts not generated (recommended).',
261
+ });
262
+ const overallStatus = checks.some(c => c.status === 'fail') ? 'fail' : 'pass';
263
+ return {
264
+ phase: 2,
265
+ phase_name: 'Mock Analysis & Schema',
266
+ overall_status: overallStatus,
267
+ checks: checks,
268
+ can_proceed: overallStatus === 'pass',
269
+ next_phase: 'Phase 3: Foundation Build',
270
+ };
271
+ }
272
+ /**
273
+ * Phase 3 Gate Check: Foundation Build
274
+ */
275
+ async function checkPhase3Gate(cwd) {
276
+ const checks = [];
277
+ // 1. Check package.json exists
278
+ const packagePath = path.join(cwd, 'package.json');
279
+ const packageExists = await fs.access(packagePath).then(() => true).catch(() => false);
280
+ if (packageExists) {
281
+ const packageContent = await fs.readFile(packagePath, 'utf-8');
282
+ const pkg = JSON.parse(packageContent);
283
+ const hasNext = pkg.dependencies && pkg.dependencies['next'];
284
+ const hasSupabase = pkg.dependencies && pkg.dependencies['@supabase/supabase-js'];
285
+ checks.push({
286
+ requirement: 'Next.js and Supabase installed',
287
+ status: (hasNext && hasSupabase) ? 'pass' : 'fail',
288
+ message: (hasNext && hasSupabase) ? 'Stack dependencies installed.' : 'Missing Next.js or Supabase packages.',
289
+ });
290
+ }
291
+ else {
292
+ checks.push({
293
+ requirement: 'package.json exists',
294
+ status: 'fail',
295
+ message: 'Project not initialized. Run: pnpm create next-app',
296
+ });
297
+ }
298
+ // 2. Check for app/ or pages/ directory (Next.js structure)
299
+ const appPath = path.join(cwd, 'app');
300
+ const pagesPath = path.join(cwd, 'pages');
301
+ const appExists = await fs.access(appPath).then(() => true).catch(() => false);
302
+ const pagesExists = await fs.access(pagesPath).then(() => true).catch(() => false);
303
+ checks.push({
304
+ requirement: 'Next.js structure present',
305
+ status: (appExists || pagesExists) ? 'pass' : 'fail',
306
+ message: (appExists || pagesExists) ? 'Next.js directory structure found.' : 'Missing app/ or pages/ directory.',
307
+ });
308
+ const overallStatus = checks.some(c => c.status === 'fail') ? 'fail' : checks.every(c => c.status === 'pass') ? 'pass' : 'warning';
309
+ return {
310
+ phase: 3,
311
+ phase_name: 'Foundation Build',
312
+ overall_status: overallStatus,
313
+ checks: checks,
314
+ can_proceed: overallStatus !== 'fail',
315
+ next_phase: 'Phase 4: Feature Build',
316
+ };
317
+ }
318
+ /**
319
+ * Phase 4 Gate Check: Feature Build
320
+ */
321
+ async function checkPhase4Gate(cwd) {
322
+ const checks = [];
323
+ // Note: Full feature verification would require running the app
324
+ // For now, check for basic completeness indicators
325
+ // 1. Check TypeScript compiles
326
+ checks.push({
327
+ requirement: 'TypeScript compiles (manual check required)',
328
+ status: 'warning',
329
+ message: 'Run: tsc --noEmit to verify no TypeScript errors.',
330
+ });
331
+ // 2. Check for test files
332
+ const testPatterns = ['**/*.test.ts', '**/*.test.tsx', '**/*.spec.ts'];
333
+ checks.push({
334
+ requirement: 'Tests present',
335
+ status: 'warning',
336
+ message: 'Verify test files exist and cover critical paths.',
337
+ });
338
+ const overallStatus = 'warning'; // Phase 4 requires manual verification
339
+ return {
340
+ phase: 4,
341
+ phase_name: 'Feature Build',
342
+ overall_status: overallStatus,
343
+ checks: checks,
344
+ can_proceed: true, // Allow proceeding with warnings
345
+ next_phase: 'Phase 5: Testing & Verification',
346
+ };
347
+ }
348
+ /**
349
+ * Phase 5 Gate Check: Testing & Verification
350
+ */
351
+ async function checkPhase5Gate(cwd) {
352
+ const checks = [];
353
+ // Manual checks for Phase 5
354
+ checks.push({
355
+ requirement: 'All tests passing',
356
+ status: 'warning',
357
+ message: 'Run tests and verify all pass. Command: pnpm test',
358
+ });
359
+ checks.push({
360
+ requirement: 'Lighthouse score >90',
361
+ status: 'warning',
362
+ message: 'Run Lighthouse audit on deployed preview.',
363
+ });
364
+ checks.push({
365
+ requirement: 'No critical vulnerabilities',
366
+ status: 'warning',
367
+ message: 'Run: pnpm audit and resolve critical/high issues.',
368
+ });
369
+ const overallStatus = 'warning';
370
+ return {
371
+ phase: 5,
372
+ phase_name: 'Testing & Verification',
373
+ overall_status: overallStatus,
374
+ checks: checks,
375
+ can_proceed: true,
376
+ next_phase: 'Phase 6: Deployment & Ops',
377
+ };
378
+ }
379
+ /**
380
+ * Phase 6 Gate Check: Deployment & Ops
381
+ */
382
+ async function checkPhase6Gate(cwd) {
383
+ const checks = [];
384
+ // Check for RUNBOOK.md
385
+ const runbookPath = path.join(cwd, '.codebakers', 'RUNBOOK.md');
386
+ const runbookExists = await fs.access(runbookPath).then(() => true).catch(() => false);
387
+ checks.push({
388
+ requirement: 'RUNBOOK.md exists',
389
+ status: runbookExists ? 'pass' : 'warning',
390
+ message: runbookExists ? 'Operations runbook documented.' : 'Create RUNBOOK.md with deployment and rollback procedures.',
391
+ });
392
+ // Manual deployment checks
393
+ checks.push({
394
+ requirement: 'Application deployed',
395
+ status: 'warning',
396
+ message: 'Verify application is live and accessible.',
397
+ });
398
+ checks.push({
399
+ requirement: 'Monitoring configured',
400
+ status: 'warning',
401
+ message: 'Verify error monitoring (Sentry) and alerting configured.',
402
+ });
403
+ const overallStatus = checks.some(c => c.status === 'fail') ? 'fail' : 'warning';
404
+ return {
405
+ phase: 6,
406
+ phase_name: 'Deployment & Ops',
407
+ overall_status: overallStatus,
408
+ checks: checks,
409
+ can_proceed: true,
410
+ next_phase: 'Project Complete',
411
+ };
412
+ }
413
+ /**
414
+ * Generate gate check report
415
+ */
416
+ function generateGateReport(result) {
417
+ let report = `🍞 CodeBakers: Phase ${result.phase} - ${result.phase_name}\n\n`;
418
+ report += `**Gate Check Status:** ${result.overall_status.toUpperCase()}\n\n`;
419
+ report += `---\n\n`;
420
+ // Check results
421
+ report += `## Verification Checks\n\n`;
422
+ for (const check of result.checks) {
423
+ const icon = check.status === 'pass' ? '✅' : check.status === 'fail' ? '❌' : '⚠️';
424
+ report += `${icon} **${check.requirement}**\n`;
425
+ report += ` ${check.message}\n\n`;
426
+ }
427
+ report += `---\n\n`;
428
+ // Overall result
429
+ if (result.overall_status === 'pass') {
430
+ report += `## ✅ GATE PASSED\n\n`;
431
+ report += `All requirements met. You can proceed to:\n`;
432
+ report += `**${result.next_phase}**\n\n`;
433
+ }
434
+ else if (result.overall_status === 'fail') {
435
+ report += `## ❌ GATE FAILED\n\n`;
436
+ report += `Requirements not met. Address failures above before proceeding.\n\n`;
437
+ }
438
+ else {
439
+ report += `## ⚠️ WARNINGS PRESENT\n\n`;
440
+ report += `Some checks require manual verification.\n`;
441
+ report += `Review warnings above before proceeding to:\n`;
442
+ report += `**${result.next_phase}**\n\n`;
443
+ }
444
+ return report;
445
+ }
446
+ //# sourceMappingURL=check-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-gate.js","sourceRoot":"","sources":["../../src/tools/check-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * codebakers_check_scope
3
+ *
4
+ * Scope Verification
5
+ *
6
+ * Verifies that a feature request is defined in PROJECT-SPEC.md.
7
+ * Prevents scope creep by enforcing spec boundaries.
8
+ *
9
+ * Rules:
10
+ * - Feature must be in Gate 1 (Entities) or Gate 2 (State Changes)
11
+ * - If not found, must either:
12
+ * 1. Add to spec (formal amendment)
13
+ * 2. Descope (remove from request)
14
+ * 3. Flag for future iteration
15
+ * - Never silently expand scope
16
+ *
17
+ * Based on CodeBakers Method Principle #7: Fixed Appetite, Not Open Scope
18
+ */
19
+ export declare function checkScope(args: {
20
+ feature_description?: string;
21
+ }): Promise<string>;
22
+ //# sourceMappingURL=check-scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-scope.d.ts","sourceRoot":"","sources":["../../src/tools/check-scope.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAcH,wBAAsB,UAAU,CAAC,IAAI,EAAE;IAAE,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAgDxF"}