codekin 0.2.1 → 0.3.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 (75) hide show
  1. package/dist/assets/index-B4rYTSlV.css +1 -0
  2. package/dist/assets/index-CWc3yfPn.js +181 -0
  3. package/dist/index.html +2 -2
  4. package/package.json +10 -6
  5. package/server/dist/approval-manager.d.ts +71 -0
  6. package/server/dist/approval-manager.js +249 -0
  7. package/server/dist/approval-manager.js.map +1 -0
  8. package/server/dist/auth-routes.d.ts +11 -0
  9. package/server/dist/auth-routes.js +11 -0
  10. package/server/dist/auth-routes.js.map +1 -1
  11. package/server/dist/claude-process.js +2 -1
  12. package/server/dist/claude-process.js.map +1 -1
  13. package/server/dist/config.d.ts +1 -2
  14. package/server/dist/config.js +17 -5
  15. package/server/dist/config.js.map +1 -1
  16. package/server/dist/crypto-utils.d.ts +16 -1
  17. package/server/dist/crypto-utils.js +44 -1
  18. package/server/dist/crypto-utils.js.map +1 -1
  19. package/server/dist/docs-routes.d.ts +16 -0
  20. package/server/dist/docs-routes.js +141 -0
  21. package/server/dist/docs-routes.js.map +1 -0
  22. package/server/dist/session-manager.d.ts +37 -84
  23. package/server/dist/session-manager.js +89 -472
  24. package/server/dist/session-manager.js.map +1 -1
  25. package/server/dist/session-naming.d.ts +35 -0
  26. package/server/dist/session-naming.js +168 -0
  27. package/server/dist/session-naming.js.map +1 -0
  28. package/server/dist/session-persistence.d.ts +30 -0
  29. package/server/dist/session-persistence.js +93 -0
  30. package/server/dist/session-persistence.js.map +1 -0
  31. package/server/dist/session-routes.d.ts +2 -1
  32. package/server/dist/session-routes.js +13 -6
  33. package/server/dist/session-routes.js.map +1 -1
  34. package/server/dist/stepflow-handler.d.ts +3 -9
  35. package/server/dist/stepflow-handler.js +32 -50
  36. package/server/dist/stepflow-handler.js.map +1 -1
  37. package/server/dist/stepflow-types.d.ts +2 -0
  38. package/server/dist/types.d.ts +3 -0
  39. package/server/dist/upload-routes.js +9 -4
  40. package/server/dist/upload-routes.js.map +1 -1
  41. package/server/dist/webhook-github.d.ts +23 -5
  42. package/server/dist/webhook-github.js +23 -5
  43. package/server/dist/webhook-github.js.map +1 -1
  44. package/server/dist/webhook-handler-base.d.ts +45 -0
  45. package/server/dist/webhook-handler-base.js +86 -0
  46. package/server/dist/webhook-handler-base.js.map +1 -0
  47. package/server/dist/webhook-handler.d.ts +3 -10
  48. package/server/dist/webhook-handler.js +6 -46
  49. package/server/dist/webhook-handler.js.map +1 -1
  50. package/server/dist/webhook-workspace.d.ts +8 -1
  51. package/server/dist/webhook-workspace.js +73 -41
  52. package/server/dist/webhook-workspace.js.map +1 -1
  53. package/server/dist/workflow-config.d.ts +2 -0
  54. package/server/dist/workflow-config.js +1 -1
  55. package/server/dist/workflow-config.js.map +1 -1
  56. package/server/dist/workflow-engine.d.ts +1 -0
  57. package/server/dist/workflow-engine.js +3 -0
  58. package/server/dist/workflow-engine.js.map +1 -1
  59. package/server/dist/workflow-loader.d.ts +33 -6
  60. package/server/dist/workflow-loader.js +129 -14
  61. package/server/dist/workflow-loader.js.map +1 -1
  62. package/server/dist/workflow-routes.d.ts +7 -3
  63. package/server/dist/workflow-routes.js +63 -8
  64. package/server/dist/workflow-routes.js.map +1 -1
  65. package/server/dist/ws-server.js +91 -18
  66. package/server/dist/ws-server.js.map +1 -1
  67. package/server/workflows/code-review.daily.md +22 -0
  68. package/server/workflows/comment-assessment.daily.md +41 -0
  69. package/server/workflows/complexity.weekly.md +54 -0
  70. package/server/workflows/coverage.daily.md +41 -0
  71. package/server/workflows/dependency-health.daily.md +46 -0
  72. package/server/workflows/repo-health.weekly.md +111 -0
  73. package/server/workflows/security-audit.weekly.md +66 -0
  74. package/dist/assets/index-CPxHiZP2.js +0 -105
  75. package/dist/assets/index-DU_Viph_.css +0 -1
@@ -16,8 +16,9 @@ import { createServer } from 'http';
16
16
  import { WebSocketServer, WebSocket } from 'ws';
17
17
  import { readFileSync, existsSync } from 'fs';
18
18
  import { join } from 'path';
19
- import { execSync } from 'child_process';
20
- import { randomUUID } from 'crypto';
19
+ import { execFileSync } from 'child_process';
20
+ import { randomUUID, timingSafeEqual } from 'crypto';
21
+ import { verifySessionToken } from './crypto-utils.js';
21
22
  import { SessionManager } from './session-manager.js';
22
23
  import { loadWebhookConfig } from './webhook-config.js';
23
24
  import { WebhookHandler } from './webhook-handler.js';
@@ -30,6 +31,7 @@ import { createAuthRouter } from './auth-routes.js';
30
31
  import { createSessionRouter } from './session-routes.js';
31
32
  import { createWebhookRouter } from './webhook-routes.js';
32
33
  import { createUploadRouter } from './upload-routes.js';
34
+ import { createDocsRouter } from './docs-routes.js';
33
35
  import { PORT as CONFIG_PORT, AUTH_TOKEN as configAuthToken, CORS_ORIGIN, FRONTEND_DIST } from './config.js';
34
36
  // ---------------------------------------------------------------------------
35
37
  // CLI args (legacy bare-metal compat) and auth setup
@@ -55,11 +57,34 @@ for (let i = 0; i < args.length; i++) {
55
57
  if (authToken) {
56
58
  console.log('Auth token configured');
57
59
  }
58
- /** Check if a token matches the configured auth token (passes if no auth configured). */
60
+ else {
61
+ console.warn('⚠️ WARNING: No auth token configured. All endpoints are unauthenticated!');
62
+ console.warn(' Set AUTH_TOKEN or AUTH_TOKEN_FILE to secure the server.');
63
+ }
64
+ /** Check if a token matches the configured auth token. Fails closed when no token is configured. */
59
65
  function verifyToken(token) {
60
66
  if (!authToken)
61
- return true; // No auth configured
62
- return token === authToken;
67
+ return false; // No auth configured — fail closed
68
+ if (!token)
69
+ return false;
70
+ // Timing-safe comparison to prevent timing attacks
71
+ const a = Buffer.from(authToken);
72
+ const b = Buffer.from(token);
73
+ if (a.length !== b.length)
74
+ return false;
75
+ return timingSafeEqual(a, b);
76
+ }
77
+ /**
78
+ * Verify a token that may be either the master auth token or a session-scoped
79
+ * token derived for a specific session. Used by hook endpoints where child
80
+ * processes authenticate with their session-scoped token.
81
+ */
82
+ function verifyTokenOrSessionToken(token, sessionId) {
83
+ if (verifyToken(token))
84
+ return true;
85
+ if (!authToken || !token || !sessionId)
86
+ return false;
87
+ return verifySessionToken(authToken, sessionId, token);
63
88
  }
64
89
  /** Extract auth token from query string, Authorization header, or request body. */
65
90
  function extractToken(req) {
@@ -83,7 +108,7 @@ let claudeAvailable = false;
83
108
  let claudeVersion = '';
84
109
  const apiKeySet = !!(process.env.ANTHROPIC_API_KEY || process.env.CLAUDE_CODE_API_KEY);
85
110
  try {
86
- claudeVersion = execSync('claude --version', { timeout: 5000 }).toString().trim();
111
+ claudeVersion = execFileSync('claude', ['--version'], { timeout: 5000 }).toString().trim();
87
112
  claudeAvailable = true;
88
113
  console.log(`Claude CLI found: ${claudeVersion}`);
89
114
  }
@@ -105,7 +130,8 @@ const webhookHandler = new WebhookHandler(webhookConfig, sessions);
105
130
  // Run gh health check asynchronously at startup
106
131
  if (webhookConfig.enabled) {
107
132
  if (!webhookConfig.secret) {
108
- console.warn('[webhook] GITHUB_WEBHOOK_SECRET not set webhook signature validation will fail');
133
+ console.error('[webhook] FATAL: GITHUB_WEBHOOK_ENABLED is set but GITHUB_WEBHOOK_SECRET is missing. Refusing to accept unsigned webhooks.');
134
+ process.exit(1);
109
135
  }
110
136
  webhookHandler.checkHealth().then(healthy => {
111
137
  if (healthy) {
@@ -176,7 +202,20 @@ app.post('/api/webhooks/stepflow', express.raw({ type: 'application/json', limit
176
202
  });
177
203
  // JSON body parser for all other routes
178
204
  app.use(express.json());
179
- // CORS — restrict to configured origin (default: allow all for local dev)
205
+ // Security headers
206
+ app.use((_req, res, next) => {
207
+ res.header('X-Content-Type-Options', 'nosniff');
208
+ res.header('X-Frame-Options', 'DENY');
209
+ res.header('X-XSS-Protection', '1; mode=block');
210
+ res.header('Referrer-Policy', 'strict-origin-when-cross-origin');
211
+ res.header('Permissions-Policy', 'camera=(), microphone=(), geolocation=()');
212
+ res.header('Content-Security-Policy', "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; connect-src 'self' wss: ws:; img-src 'self' data:; font-src 'self'");
213
+ if (process.env.NODE_ENV === 'production') {
214
+ res.header('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
215
+ }
216
+ next();
217
+ });
218
+ // CORS — restrict to configured origin (default: localhost dev server)
180
219
  app.use((_req, res, next) => {
181
220
  res.header('Access-Control-Allow-Origin', CORS_ORIGIN);
182
221
  res.header('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
@@ -192,10 +231,11 @@ if (FRONTEND_DIST && existsSync(FRONTEND_DIST)) {
192
231
  }
193
232
  // --- REST API routes (delegated to dedicated routers) ---
194
233
  app.use(createAuthRouter(verifyToken, extractToken, sessions, claudeAvailable, claudeVersion, apiKeySet));
195
- app.use(createSessionRouter(verifyToken, extractToken, sessions));
234
+ app.use(createSessionRouter(verifyToken, extractToken, sessions, verifyTokenOrSessionToken));
196
235
  app.use(createWebhookRouter(verifyToken, extractToken, webhookHandler, stepflowHandler));
197
236
  app.use(createUploadRouter(verifyToken, extractToken));
198
- app.use('/api/workflows', createWorkflowRouter(verifyToken, extractToken));
237
+ app.use(createDocsRouter(verifyToken, extractToken));
238
+ app.use('/api/workflows', createWorkflowRouter(verifyToken, extractToken, sessions));
199
239
  // --- SPA fallback: serve index.html for non-API routes (client-side routing) ---
200
240
  if (FRONTEND_DIST && existsSync(FRONTEND_DIST)) {
201
241
  const indexPath = join(FRONTEND_DIST, 'index.html');
@@ -226,21 +266,42 @@ sessions._globalBroadcast = (msg) => {
226
266
  };
227
267
  /** Maps each WebSocket connection to its current session ID. */
228
268
  const clientSessions = new Map();
269
+ /** Timeout (ms) for WebSocket clients to send an auth message after connecting. */
270
+ const WS_AUTH_TIMEOUT_MS = 5000;
271
+ /** Per-IP WebSocket connection rate limiter. */
272
+ const wsConnections = new Map();
273
+ const WS_RATE_WINDOW_MS = 60_000;
274
+ const WS_RATE_MAX_CONNECTIONS = 30;
275
+ function checkWsRateLimit(ip) {
276
+ const now = Date.now();
277
+ const entry = wsConnections.get(ip);
278
+ if (!entry || now >= entry.resetAt) {
279
+ wsConnections.set(ip, { count: 1, resetAt: now + WS_RATE_WINDOW_MS });
280
+ return true;
281
+ }
282
+ entry.count++;
283
+ return entry.count <= WS_RATE_MAX_CONNECTIONS;
284
+ }
229
285
  wss.on('connection', (ws, req) => {
230
- // Authenticate
231
- const url = new URL(req.url || '/', `http://${req.headers.host}`);
232
- const token = url.searchParams.get('token') || undefined;
233
- if (!verifyToken(token)) {
234
- ws.close(4001, 'Unauthorized');
286
+ // Rate-limit by IP before any processing
287
+ const ip = req.headers['x-forwarded-for']?.split(',')[0]?.trim() || req.socket.remoteAddress || 'unknown';
288
+ if (!checkWsRateLimit(ip)) {
289
+ ws.close(4029, 'Too many connections');
235
290
  return;
236
291
  }
292
+ let authenticated = false;
237
293
  const connectionId = randomUUID();
238
294
  const send = (msg) => {
239
295
  if (ws.readyState === WebSocket.OPEN) {
240
296
  ws.send(JSON.stringify(msg));
241
297
  }
242
298
  };
243
- send({ type: 'connected', connectionId, claudeAvailable, claudeVersion, apiKeySet });
299
+ // Close unauthenticated connections after timeout
300
+ const authTimeout = setTimeout(() => {
301
+ if (!authenticated) {
302
+ ws.close(4001, 'Auth timeout');
303
+ }
304
+ }, WS_AUTH_TIMEOUT_MS);
244
305
  ws.on('message', (raw) => {
245
306
  let msg;
246
307
  try {
@@ -249,6 +310,18 @@ wss.on('connection', (ws, req) => {
249
310
  catch {
250
311
  return;
251
312
  }
313
+ // First message must be auth
314
+ if (!authenticated) {
315
+ if (msg.type !== 'auth' || !verifyToken(msg.token)) {
316
+ clearTimeout(authTimeout);
317
+ ws.close(4001, 'Unauthorized');
318
+ return;
319
+ }
320
+ authenticated = true;
321
+ clearTimeout(authTimeout);
322
+ send({ type: 'connected', connectionId, claudeAvailable, claudeVersion, apiKeySet });
323
+ return;
324
+ }
252
325
  switch (msg.type) {
253
326
  case 'create_session': {
254
327
  const session = sessions.create(msg.name, msg.workingDir, { model: msg.model });
@@ -352,7 +425,7 @@ wss.on('connection', (ws, req) => {
352
425
  send({ type: 'pong' });
353
426
  break;
354
427
  case 'get_usage':
355
- // TODO: track usage
428
+ // Usage tracking not yet implemented — returns no data.
356
429
  break;
357
430
  }
358
431
  });
@@ -408,7 +481,7 @@ server.listen(port, '0.0.0.0', () => {
408
481
  }
409
482
  });
410
483
  // Sync cron schedules with config and start scheduler
411
- syncSchedules();
484
+ syncSchedules(sessions);
412
485
  engine.startCronScheduler();
413
486
  console.log('[workflow] Workflow engine ready');
414
487
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../ws-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ws-server.js","sourceRoot":"","sources":["../ws-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ ---
2
+ kind: code-review.daily
3
+ name: Daily Code Review
4
+ sessionPrefix: review
5
+ outputDir: .codekin/reports/code-review
6
+ filenameSuffix: _code-review-daily.md
7
+ commitMessage: chore: code review
8
+ ---
9
+ You are performing a daily automated code review. Please do the following:
10
+
11
+ 1. Examine the project structure and architecture
12
+ 2. Review the last 7 days of git log to understand recent changes
13
+ 3. Do a deeper review of critical files, focusing on:
14
+ - Code quality and consistency
15
+ - Potential bugs or logic errors
16
+ - Security vulnerabilities
17
+ - Performance concerns
18
+ - Documentation gaps
19
+ - Test coverage
20
+ - Dependency issues
21
+
22
+ Provide a thorough but concise review with actionable findings. Group findings by severity (critical, warning, info). Include specific file paths and line numbers where relevant.
@@ -0,0 +1,41 @@
1
+ ---
2
+ kind: comment-assessment.daily
3
+ name: Comment Assessment
4
+ sessionPrefix: comments
5
+ outputDir: .codekin/reports/comments
6
+ filenameSuffix: _comment-assessment.md
7
+ commitMessage: chore: comment assessment
8
+ ---
9
+ You are performing an automated code commenting assessment. Please do the following:
10
+
11
+ 1. Examine the project structure to understand the codebase language(s), size, and conventions.
12
+
13
+ 2. Assess the quality and coverage of code comments and documentation across the codebase:
14
+ - Public APIs, exported functions, classes, and types — are they documented?
15
+ - Complex algorithms and non-obvious logic — do they have inline explanations?
16
+ - File-level and module-level doc comments — are they present where appropriate?
17
+ - Comment accuracy — do comments match what the code actually does?
18
+ - Comment style consistency — are JSDoc/TSDoc/docstring conventions followed?
19
+ - Outdated or misleading comments that no longer reflect the code
20
+
21
+ 3. Sample representative files from different parts of the codebase (src/, lib/, server/, etc.) to get a broad picture.
22
+
23
+ 4. Produce a structured Markdown report. Your entire response will be saved as the report file, so write valid Markdown only — no conversational preamble.
24
+
25
+ Report structure:
26
+ ## Summary
27
+ (Overall assessment: comment coverage %, quality rating, key observations)
28
+
29
+ ## Well-Documented Areas
30
+ (List of files or modules with good commenting practices, with examples)
31
+
32
+ ## Underdocumented Areas
33
+ (Table: File | Issue | Severity — sorted by severity, top 15)
34
+
35
+ ## Comment Quality Issues
36
+ (List of specific issues found: inaccurate, outdated, or misleading comments with file paths and line numbers)
37
+
38
+ ## Recommendations
39
+ (Numbered list of 5–10 actionable improvements, each with: file path or area, what to add/fix, and why it matters)
40
+
41
+ Important: Do NOT modify any source files.
@@ -0,0 +1,54 @@
1
+ ---
2
+ kind: complexity.weekly
3
+ name: Complexity Report
4
+ sessionPrefix: complexity
5
+ outputDir: .codekin/reports/complexity
6
+ filenameSuffix: _complexity-report.md
7
+ commitMessage: chore: complexity report
8
+ ---
9
+ You are performing an automated code complexity analysis. Please do the following:
10
+
11
+ 1. Examine the project structure to understand the tech stack, language(s), and codebase size.
12
+
13
+ 2. Identify large files and modules:
14
+ - Run: `find . -type f \( -name "*.ts" -o -name "*.tsx" -o -name "*.js" -o -name "*.jsx" -o -name "*.py" -o -name "*.go" -o -name "*.rs" \) ! -path "*/node_modules/*" ! -path "*/.git/*" ! -path "*/dist/*" ! -path "*/build/*" | xargs wc -l 2>/dev/null | sort -rn | head -30`
15
+ - Flag files over 300 lines as candidates for splitting
16
+
17
+ 3. Identify deeply nested and complex functions:
18
+ - Look for functions with deeply nested conditionals (4+ levels of nesting)
19
+ - Functions with many parameters (5+ parameters)
20
+ - Long functions (50+ lines of logic)
21
+ - High cyclomatic complexity indicators: many if/else chains, switch cases, loops with nested conditions
22
+ - Read the top 10 largest files and assess their internal complexity
23
+
24
+ 4. Identify coupling and cohesion issues:
25
+ - God objects/modules that do too many unrelated things
26
+ - Circular dependencies or tightly coupled modules
27
+ - Large import lists suggesting poor module boundaries
28
+ - Repeated logic that should be extracted into shared utilities
29
+
30
+ 5. Identify other maintainability concerns:
31
+ - Functions that are hard to test due to side effects or global state
32
+ - Magic numbers and strings without named constants
33
+ - Inconsistent abstractions within the same module
34
+ - Areas where a refactor would have the highest impact
35
+
36
+ 6. Produce a structured Markdown report. Your entire response will be saved as the report file, so write valid Markdown only — no conversational preamble.
37
+
38
+ Report structure:
39
+ ## Summary
40
+ (Overall complexity rating: High/Medium/Low, key metrics: largest file, deepest nesting, most complex function)
41
+
42
+ ## Largest Files
43
+ (Table: File | Lines | Primary Responsibility | Refactor Priority — top 15, sorted by lines descending)
44
+
45
+ ## Most Complex Functions
46
+ (Table: File:Function | Estimated Complexity | Issue Description | Refactor Suggestion — top 10)
47
+
48
+ ## Coupling & Cohesion Issues
49
+ (List of modules with coupling problems, description of the issue, suggested fix)
50
+
51
+ ## Refactoring Candidates
52
+ (Numbered list of 5–10 highest-impact refactoring opportunities, each with: location, problem description, suggested approach, effort estimate: small/medium/large)
53
+
54
+ Important: Do NOT modify any source files.
@@ -0,0 +1,41 @@
1
+ ---
2
+ kind: coverage.daily
3
+ name: Coverage Assessment
4
+ sessionPrefix: coverage
5
+ outputDir: .codekin/reports/coverage
6
+ filenameSuffix: _coverage-assessment.md
7
+ commitMessage: chore: coverage report
8
+ ---
9
+ You are performing a daily automated test coverage assessment. Please do the following:
10
+
11
+ 1. Detect the test framework and coverage tooling (Jest, Vitest, pytest-cov, go test -cover, etc.) by examining package.json, pyproject.toml, go.mod, Makefile, or similar files.
12
+
13
+ 2. Run the test suite with coverage enabled:
14
+ - JS/TS (Jest): `npx jest --coverage --coverageReporters=text`
15
+ - JS/TS (Vitest): `npx vitest run --coverage`
16
+ - Python: `pytest --cov=. --cov-report=term-missing 2>&1 | head -200`
17
+ - Go: `go test ./... -cover 2>&1`
18
+ - Other: detect from project files
19
+
20
+ 3. Capture and analyse the coverage output:
21
+ - Overall line / branch / function coverage percentages
22
+ - Files with 0% coverage (completely untested)
23
+ - Files with < 50% line coverage, sorted by coverage ascending
24
+ - Critical code paths that are uncovered (based on file names and their apparent purpose)
25
+
26
+ 4. Produce a structured Markdown coverage report. Your entire response will be saved as the report file, so write valid Markdown only — no conversational preamble.
27
+
28
+ Report structure:
29
+ ## Summary
30
+ (table: Metric | Coverage %)
31
+
32
+ ## Uncovered Files
33
+ (list of files with 0% coverage)
34
+
35
+ ## Low Coverage Files
36
+ (table: File | Line % | Branch % sorted by coverage ascending, top 15)
37
+
38
+ ## Prioritised Test Proposals
39
+ (numbered list of 5–10 specific, actionable test suggestions, each with: file path, function/class to test, scenario to cover, rationale)
40
+
41
+ Important: Do NOT modify any source files or existing tests.
@@ -0,0 +1,46 @@
1
+ ---
2
+ kind: dependency-health.daily
3
+ name: Dependency Health Report
4
+ sessionPrefix: deps
5
+ outputDir: .codekin/reports/dependencies
6
+ filenameSuffix: _dependency-health.md
7
+ commitMessage: chore: dependency health report
8
+ ---
9
+ You are performing an automated dependency health assessment. Please do the following:
10
+
11
+ 1. Detect the package manager(s) in use by examining: package.json, yarn.lock, pnpm-lock.yaml, pyproject.toml, requirements.txt, Pipfile, go.mod, Cargo.toml, Gemfile, pom.xml, build.gradle, or similar files.
12
+
13
+ 2. For each detected package manager, gather dependency information:
14
+ - JS/TS (npm): run `npm audit --json 2>/dev/null | head -500` and `npm outdated --json 2>/dev/null | head -500`
15
+ - JS/TS (yarn): run `yarn audit --json 2>/dev/null | head -500` and `yarn outdated --json 2>/dev/null | head -500`
16
+ - JS/TS (pnpm): run `pnpm audit --json 2>/dev/null | head -300` and `pnpm outdated 2>/dev/null | head -300`
17
+ - Python (pip): run `pip list --outdated --format=json 2>/dev/null | head -300` and `pip-audit --format=json 2>/dev/null | head -300` (if available)
18
+ - Python (poetry): run `poetry show --outdated 2>/dev/null | head -100`
19
+ - Go: run `go list -u -m all 2>/dev/null | head -100`
20
+ - Rust: run `cargo outdated 2>/dev/null | head -100` (if available), `cargo audit 2>/dev/null | head -200` (if available)
21
+
22
+ 3. Also check for common issues:
23
+ - Packages with no updates in 2+ years (potential abandonment)
24
+ - Duplicate or conflicting versions of the same package
25
+ - Dependencies with known CVEs at critical or high severity
26
+ - Dev dependencies accidentally included in production bundles (for JS)
27
+
28
+ 4. Produce a structured Markdown report. Your entire response will be saved as the report file, so write valid Markdown only — no conversational preamble.
29
+
30
+ Report structure:
31
+ ## Summary
32
+ (Table: Package Manager | Total Deps | Outdated | Vulnerabilities | Risk Level)
33
+
34
+ ## Security Vulnerabilities
35
+ (Table: Package | Severity | CVE | Description | Fixed In — sorted by severity descending, critical/high first)
36
+
37
+ ## Outdated Dependencies
38
+ (Table: Package | Current | Latest | Age | Type — sorted by age descending, top 20)
39
+
40
+ ## Abandoned / Unmaintained Packages
41
+ (List of packages with no releases in 2+ years, with last release date)
42
+
43
+ ## Recommendations
44
+ (Numbered list of 5–10 prioritised actions: what to update/replace and why)
45
+
46
+ Important: Do NOT modify any source files, package.json, or lock files.
@@ -0,0 +1,111 @@
1
+ ---
2
+ kind: repo-health.weekly
3
+ name: Repository Health
4
+ sessionPrefix: repo-health
5
+ outputDir: .codekin/reports/repo-health
6
+ filenameSuffix: _repo-health.md
7
+ commitMessage: chore: repository health report
8
+ ---
9
+ You are performing an automated repository health assessment. This is a comprehensive housekeeping, documentation, and git hygiene check. Please do the following:
10
+
11
+ ## Part 1 — Maintenance & Housekeeping
12
+
13
+ 1. **Dead Code Detection**
14
+ - Find unused exports: scan for exported functions, classes, constants, and types that are never imported elsewhere in the project.
15
+ - Identify unreachable functions: look for private/internal functions that have no callers.
16
+ - Detect orphan files: find source files that are not imported or referenced by any other file.
17
+ - For each finding, note the file path and export/function name, and recommend removal or flag for review.
18
+
19
+ 2. **TODO/FIXME Tracker**
20
+ - Scan the entire codebase for `TODO`, `FIXME`, `HACK`, `XXX`, and `WORKAROUND` comments.
21
+ - For each, report: file:line, the comment text, and the author + date from `git blame`.
22
+ - Flag stale items — any TODO/FIXME where the blamed commit is older than 30 days.
23
+ - Summarize: total count, count by type, count of stale items.
24
+
25
+ 3. **Config Drift Check**
26
+ - Examine tsconfig.json, eslint config, and prettier config (if present).
27
+ - Compare against modern best-practices defaults for the project's stack.
28
+ - Flag any unusual, overly permissive, or outdated settings (e.g. missing `strict: true` in tsconfig, deprecated ESLint rules).
29
+ - Note any inconsistencies between configs (e.g. conflicting target versions).
30
+
31
+ 4. **License Compliance**
32
+ - Audit dependency licenses using the lock file and package metadata.
33
+ - Flag any GPL, AGPL, LGPL, or other copyleft licenses if the project itself uses a permissive license (MIT, Apache, BSD).
34
+ - Flag any dependencies with unknown, missing, or non-standard licenses.
35
+ - Report a summary table: license type → count of dependencies.
36
+
37
+ ## Part 2 — Documentation
38
+
39
+ 5. **API Docs Freshness**
40
+ - Identify API endpoints, public types, and interfaces that serve as the project's API surface.
41
+ - Check if corresponding documentation (README, docs/ files, JSDoc/TSDoc comments) appears stale relative to recent code changes.
42
+ - Flag any endpoints or types that changed in the last 30 days but whose docs were not updated.
43
+
44
+ 6. **README Drift**
45
+ - Read the project's README.md (and any CONTRIBUTING.md or docs/).
46
+ - Verify that install steps, listed scripts (e.g. `npm run dev`, `npm test`), and examples still match the actual package.json scripts and project structure.
47
+ - Flag any commands, paths, or configuration references in the README that no longer exist or have changed.
48
+
49
+ 7. **Changelog Generator**
50
+ - Summarize commits from the last 7 days (or since the last tag, whichever is shorter) into a draft changelog entry.
51
+ - Group by category: Features, Fixes, Refactoring, Documentation, Chores.
52
+ - Use conventional commit messages where available; otherwise infer the category.
53
+
54
+ ## Part 3 — Git & Workflow Hygiene
55
+
56
+ 8. **Stale Branch Cleanup**
57
+ - List all remote branches with no commit activity in the last 30 days.
58
+ - For each, report: branch name, last commit date, last commit author, and whether it has been merged into the main branch.
59
+ - Recommend deletion for branches that are both stale and already merged.
60
+
61
+ 9. **PR Hygiene Report**
62
+ - If a GitHub remote is detected, use `gh pr list` to enumerate open PRs.
63
+ - For each open PR, report: number, title, author, age (days open), review status, and whether it has merge conflicts.
64
+ - Flag "stuck" PRs: those open for more than 7 days with no review activity.
65
+
66
+ 10. **Merge Conflict Forecast**
67
+ - Identify active branches (commits in the last 14 days) that have diverged significantly from the main branch.
68
+ - For each, report the number of commits ahead/behind main and list files modified on both the branch and main since divergence.
69
+ - Flag branches with high conflict risk (overlapping file changes).
70
+
71
+ ---
72
+
73
+ Produce a structured Markdown report. Your entire response will be saved as the report file, so write valid Markdown only — no conversational preamble.
74
+
75
+ Report structure:
76
+
77
+ ## Summary
78
+ (Overall health rating: Excellent/Good/Fair/Needs Attention. Key stats: dead code items, stale TODOs, config issues, license concerns, doc drift items, stale branches, stuck PRs.)
79
+
80
+ ## Dead Code
81
+ (Table: file, export/function, type [unused export | unreachable | orphan file], recommendation)
82
+
83
+ ## TODO/FIXME Tracker
84
+ (Table: file:line, type, comment, author, date, stale?)
85
+ (Summary counts at the end)
86
+
87
+ ## Config Drift
88
+ (List of findings with config file, setting, current value, recommended value)
89
+
90
+ ## License Compliance
91
+ (Summary table: license → count. Flagged dependencies listed separately.)
92
+
93
+ ## Documentation Freshness
94
+ (List of stale docs, README drift findings, any mismatches)
95
+
96
+ ## Draft Changelog
97
+ (Grouped changelog entry for the recent period)
98
+
99
+ ## Stale Branches
100
+ (Table: branch, last commit date, author, merged?, recommendation)
101
+
102
+ ## PR Hygiene
103
+ (Table: PR#, title, author, days open, review status, conflicts?, stuck?)
104
+
105
+ ## Merge Conflict Forecast
106
+ (Table: branch, commits ahead/behind, overlapping files, risk level)
107
+
108
+ ## Recommendations
109
+ (Numbered list of 5–10 prioritised actions, ordered by impact)
110
+
111
+ Important: Do NOT modify any source files. This is a read-only assessment.