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.
- package/dist/assets/index-B4rYTSlV.css +1 -0
- package/dist/assets/index-CWc3yfPn.js +181 -0
- package/dist/index.html +2 -2
- package/package.json +10 -6
- package/server/dist/approval-manager.d.ts +71 -0
- package/server/dist/approval-manager.js +249 -0
- package/server/dist/approval-manager.js.map +1 -0
- package/server/dist/auth-routes.d.ts +11 -0
- package/server/dist/auth-routes.js +11 -0
- package/server/dist/auth-routes.js.map +1 -1
- package/server/dist/claude-process.js +2 -1
- package/server/dist/claude-process.js.map +1 -1
- package/server/dist/config.d.ts +1 -2
- package/server/dist/config.js +17 -5
- package/server/dist/config.js.map +1 -1
- package/server/dist/crypto-utils.d.ts +16 -1
- package/server/dist/crypto-utils.js +44 -1
- package/server/dist/crypto-utils.js.map +1 -1
- package/server/dist/docs-routes.d.ts +16 -0
- package/server/dist/docs-routes.js +141 -0
- package/server/dist/docs-routes.js.map +1 -0
- package/server/dist/session-manager.d.ts +37 -84
- package/server/dist/session-manager.js +89 -472
- package/server/dist/session-manager.js.map +1 -1
- package/server/dist/session-naming.d.ts +35 -0
- package/server/dist/session-naming.js +168 -0
- package/server/dist/session-naming.js.map +1 -0
- package/server/dist/session-persistence.d.ts +30 -0
- package/server/dist/session-persistence.js +93 -0
- package/server/dist/session-persistence.js.map +1 -0
- package/server/dist/session-routes.d.ts +2 -1
- package/server/dist/session-routes.js +13 -6
- package/server/dist/session-routes.js.map +1 -1
- package/server/dist/stepflow-handler.d.ts +3 -9
- package/server/dist/stepflow-handler.js +32 -50
- package/server/dist/stepflow-handler.js.map +1 -1
- package/server/dist/stepflow-types.d.ts +2 -0
- package/server/dist/types.d.ts +3 -0
- package/server/dist/upload-routes.js +9 -4
- package/server/dist/upload-routes.js.map +1 -1
- package/server/dist/webhook-github.d.ts +23 -5
- package/server/dist/webhook-github.js +23 -5
- package/server/dist/webhook-github.js.map +1 -1
- package/server/dist/webhook-handler-base.d.ts +45 -0
- package/server/dist/webhook-handler-base.js +86 -0
- package/server/dist/webhook-handler-base.js.map +1 -0
- package/server/dist/webhook-handler.d.ts +3 -10
- package/server/dist/webhook-handler.js +6 -46
- package/server/dist/webhook-handler.js.map +1 -1
- package/server/dist/webhook-workspace.d.ts +8 -1
- package/server/dist/webhook-workspace.js +73 -41
- package/server/dist/webhook-workspace.js.map +1 -1
- package/server/dist/workflow-config.d.ts +2 -0
- package/server/dist/workflow-config.js +1 -1
- package/server/dist/workflow-config.js.map +1 -1
- package/server/dist/workflow-engine.d.ts +1 -0
- package/server/dist/workflow-engine.js +3 -0
- package/server/dist/workflow-engine.js.map +1 -1
- package/server/dist/workflow-loader.d.ts +33 -6
- package/server/dist/workflow-loader.js +129 -14
- package/server/dist/workflow-loader.js.map +1 -1
- package/server/dist/workflow-routes.d.ts +7 -3
- package/server/dist/workflow-routes.js +63 -8
- package/server/dist/workflow-routes.js.map +1 -1
- package/server/dist/ws-server.js +91 -18
- package/server/dist/ws-server.js.map +1 -1
- package/server/workflows/code-review.daily.md +22 -0
- package/server/workflows/comment-assessment.daily.md +41 -0
- package/server/workflows/complexity.weekly.md +54 -0
- package/server/workflows/coverage.daily.md +41 -0
- package/server/workflows/dependency-health.daily.md +46 -0
- package/server/workflows/repo-health.weekly.md +111 -0
- package/server/workflows/security-audit.weekly.md +66 -0
- package/dist/assets/index-CPxHiZP2.js +0 -105
- package/dist/assets/index-DU_Viph_.css +0 -1
package/server/dist/ws-server.js
CHANGED
|
@@ -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 {
|
|
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
|
-
|
|
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
|
|
62
|
-
|
|
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 =
|
|
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.
|
|
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
|
-
//
|
|
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(
|
|
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
|
-
//
|
|
231
|
-
const
|
|
232
|
-
|
|
233
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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.
|