@slope-dev/slope 1.13.0 → 1.13.2

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 (126) hide show
  1. package/README.md +118 -189
  2. package/dist/adapters.d.ts +15 -0
  3. package/dist/adapters.d.ts.map +1 -0
  4. package/dist/adapters.js +17 -0
  5. package/dist/adapters.js.map +1 -0
  6. package/dist/cli/commands/guard.d.ts +19 -0
  7. package/dist/cli/commands/guard.d.ts.map +1 -1
  8. package/dist/cli/commands/guard.js +89 -1
  9. package/dist/cli/commands/guard.js.map +1 -1
  10. package/dist/cli/commands/hook.d.ts +5 -0
  11. package/dist/cli/commands/hook.d.ts.map +1 -1
  12. package/dist/cli/commands/hook.js +59 -83
  13. package/dist/cli/commands/hook.js.map +1 -1
  14. package/dist/cli/commands/init.d.ts +13 -4
  15. package/dist/cli/commands/init.d.ts.map +1 -1
  16. package/dist/cli/commands/init.js +309 -16
  17. package/dist/cli/commands/init.js.map +1 -1
  18. package/dist/cli/commands/metaphor.d.ts +3 -0
  19. package/dist/cli/commands/metaphor.d.ts.map +1 -0
  20. package/dist/cli/commands/metaphor.js +100 -0
  21. package/dist/cli/commands/metaphor.js.map +1 -0
  22. package/dist/cli/commands/roadmap.d.ts.map +1 -1
  23. package/dist/cli/commands/roadmap.js +94 -1
  24. package/dist/cli/commands/roadmap.js.map +1 -1
  25. package/dist/cli/commands/store.d.ts +2 -0
  26. package/dist/cli/commands/store.d.ts.map +1 -0
  27. package/dist/cli/commands/store.js +204 -0
  28. package/dist/cli/commands/store.js.map +1 -0
  29. package/dist/cli/guards/branch-before-commit.d.ts +7 -0
  30. package/dist/cli/guards/branch-before-commit.d.ts.map +1 -0
  31. package/dist/cli/guards/branch-before-commit.js +43 -0
  32. package/dist/cli/guards/branch-before-commit.js.map +1 -0
  33. package/dist/cli/guards/stop-check.d.ts +4 -0
  34. package/dist/cli/guards/stop-check.d.ts.map +1 -1
  35. package/dist/cli/guards/stop-check.js +50 -16
  36. package/dist/cli/guards/stop-check.js.map +1 -1
  37. package/dist/cli/index.js +20 -1
  38. package/dist/cli/index.js.map +1 -1
  39. package/dist/cli/registry.d.ts.map +1 -1
  40. package/dist/cli/registry.js +2 -0
  41. package/dist/cli/registry.js.map +1 -1
  42. package/dist/cli/store.d.ts +9 -0
  43. package/dist/cli/store.d.ts.map +1 -1
  44. package/dist/cli/store.js +29 -0
  45. package/dist/cli/store.js.map +1 -1
  46. package/dist/cli/template-generator.d.ts +1 -1
  47. package/dist/cli/template-generator.d.ts.map +1 -1
  48. package/dist/cli/template-generator.js +5 -3
  49. package/dist/cli/template-generator.js.map +1 -1
  50. package/dist/core/adapters/claude-code.d.ts +28 -0
  51. package/dist/core/adapters/claude-code.d.ts.map +1 -0
  52. package/dist/core/adapters/claude-code.js +148 -0
  53. package/dist/core/adapters/claude-code.js.map +1 -0
  54. package/dist/core/adapters/cline.d.ts +36 -0
  55. package/dist/core/adapters/cline.d.ts.map +1 -0
  56. package/dist/core/adapters/cline.js +279 -0
  57. package/dist/core/adapters/cline.js.map +1 -0
  58. package/dist/core/adapters/cursor.d.ts +38 -0
  59. package/dist/core/adapters/cursor.d.ts.map +1 -0
  60. package/dist/core/adapters/cursor.js +143 -0
  61. package/dist/core/adapters/cursor.js.map +1 -0
  62. package/dist/core/adapters/generic.d.ts +29 -0
  63. package/dist/core/adapters/generic.d.ts.map +1 -0
  64. package/dist/core/adapters/generic.js +142 -0
  65. package/dist/core/adapters/generic.js.map +1 -0
  66. package/dist/core/adapters/windsurf.d.ts +37 -0
  67. package/dist/core/adapters/windsurf.d.ts.map +1 -0
  68. package/dist/core/adapters/windsurf.js +170 -0
  69. package/dist/core/adapters/windsurf.js.map +1 -0
  70. package/dist/core/config.d.ts +3 -0
  71. package/dist/core/config.d.ts.map +1 -1
  72. package/dist/core/config.js +9 -0
  73. package/dist/core/config.js.map +1 -1
  74. package/dist/core/guard.d.ts +10 -3
  75. package/dist/core/guard.d.ts.map +1 -1
  76. package/dist/core/guard.js +33 -59
  77. package/dist/core/guard.js.map +1 -1
  78. package/dist/core/harness.d.ts +61 -0
  79. package/dist/core/harness.d.ts.map +1 -0
  80. package/dist/core/harness.js +88 -0
  81. package/dist/core/harness.js.map +1 -0
  82. package/dist/core/index.d.ts +15 -5
  83. package/dist/core/index.d.ts.map +1 -1
  84. package/dist/core/index.js +13 -3
  85. package/dist/core/index.js.map +1 -1
  86. package/dist/core/interview.js +1 -1
  87. package/dist/core/interview.js.map +1 -1
  88. package/dist/core/metaphor.d.ts +14 -0
  89. package/dist/core/metaphor.d.ts.map +1 -1
  90. package/dist/core/metaphor.js +14 -0
  91. package/dist/core/metaphor.js.map +1 -1
  92. package/dist/core/plugins.d.ts +12 -0
  93. package/dist/core/plugins.d.ts.map +1 -1
  94. package/dist/core/plugins.js +58 -1
  95. package/dist/core/plugins.js.map +1 -1
  96. package/dist/core/roadmap.d.ts.map +1 -1
  97. package/dist/core/roadmap.js +5 -4
  98. package/dist/core/roadmap.js.map +1 -1
  99. package/dist/core/store-health.d.ts +11 -0
  100. package/dist/core/store-health.d.ts.map +1 -0
  101. package/dist/core/store-health.js +26 -0
  102. package/dist/core/store-health.js.map +1 -0
  103. package/dist/core/store.d.ts +10 -0
  104. package/dist/core/store.d.ts.map +1 -1
  105. package/dist/core/store.js.map +1 -1
  106. package/dist/mcp/index.d.ts +2 -2
  107. package/dist/mcp/index.d.ts.map +1 -1
  108. package/dist/mcp/index.js +55 -6
  109. package/dist/mcp/index.js.map +1 -1
  110. package/dist/mcp/index.test.js +7 -4
  111. package/dist/mcp/index.test.js.map +1 -1
  112. package/dist/mcp/registry.d.ts.map +1 -1
  113. package/dist/mcp/registry.js +32 -3
  114. package/dist/mcp/registry.js.map +1 -1
  115. package/dist/mcp/sandbox.d.ts.map +1 -1
  116. package/dist/mcp/sandbox.js +7 -1
  117. package/dist/mcp/sandbox.js.map +1 -1
  118. package/dist/store/index.d.ts +8 -2
  119. package/dist/store/index.d.ts.map +1 -1
  120. package/dist/store/index.js +27 -3
  121. package/dist/store/index.js.map +1 -1
  122. package/dist/store-pg/index.d.ts +3 -0
  123. package/dist/store-pg/index.d.ts.map +1 -1
  124. package/dist/store-pg/index.js +49 -1
  125. package/dist/store-pg/index.js.map +1 -1
  126. package/package.json +16 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaphor.js","sourceRoot":"","sources":["../../../src/cli/commands/metaphor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/roadmap.ts"],"names":[],"mappings":"AAkRA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkClE"}
1
+ {"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/roadmap.ts"],"names":[],"mappings":"AAsXA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuClE"}
@@ -1,4 +1,4 @@
1
- import { readFileSync } from 'node:fs';
1
+ import { readFileSync, writeFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { parseRoadmap, validateRoadmap, computeCriticalPath, findParallelOpportunities, formatRoadmapSummary, formatStrategicContext, loadScorecards, } from '../../core/index.js';
4
4
  import { loadConfig } from '../config.js';
@@ -244,6 +244,94 @@ function showSubcommand(flags, cwd) {
244
244
  console.log('');
245
245
  console.log(formatRoadmapSummary(roadmap));
246
246
  }
247
+ const CLUB_TO_COMPLEXITY = {
248
+ putter: 'trivial',
249
+ wedge: 'small',
250
+ short_iron: 'standard',
251
+ long_iron: 'moderate',
252
+ driver: 'moderate',
253
+ };
254
+ function scorecardToSprint(card) {
255
+ const tickets = card.shots.map(shot => ({
256
+ key: shot.ticket_key,
257
+ title: shot.title,
258
+ club: shot.club,
259
+ complexity: CLUB_TO_COMPLEXITY[shot.club] ?? 'standard',
260
+ }));
261
+ return {
262
+ id: card.sprint_number,
263
+ theme: card.theme,
264
+ par: card.par,
265
+ slope: card.slope,
266
+ type: card.type ?? 'standard',
267
+ tickets,
268
+ };
269
+ }
270
+ function syncSubcommand(flags, cwd) {
271
+ const dryRun = flags['dry-run'] === 'true';
272
+ const path = resolveRoadmapPath(flags, cwd);
273
+ const config = loadConfig(cwd);
274
+ const scorecards = loadScorecards(config, cwd);
275
+ if (scorecards.length === 0) {
276
+ console.log('\nNo scorecards found. Nothing to sync.\n');
277
+ return;
278
+ }
279
+ // Load existing roadmap (or start fresh)
280
+ let roadmap;
281
+ let raw;
282
+ try {
283
+ raw = JSON.parse(readFileSync(path, 'utf8'));
284
+ const parsed = parseRoadmap(raw);
285
+ if (!parsed.roadmap) {
286
+ console.error('\nRoadmap file has structural errors — fix before syncing.\n');
287
+ process.exit(1);
288
+ }
289
+ roadmap = parsed.roadmap;
290
+ }
291
+ catch {
292
+ console.error(`\nNo roadmap file found at: ${path}`);
293
+ console.error('Create one with "slope init" or specify --path=<file>\n');
294
+ process.exit(1);
295
+ return; // unreachable but satisfies TS
296
+ }
297
+ const existingById = new Map(roadmap.sprints.map(s => [s.id, s]));
298
+ let updated = 0;
299
+ let added = 0;
300
+ for (const card of scorecards) {
301
+ const fromCard = scorecardToSprint(card);
302
+ const existing = existingById.get(card.sprint_number);
303
+ if (existing) {
304
+ // Update scorecard-derived fields, preserve manually-authored fields
305
+ existing.theme = fromCard.theme;
306
+ existing.par = fromCard.par;
307
+ existing.slope = fromCard.slope;
308
+ existing.type = fromCard.type;
309
+ existing.tickets = fromCard.tickets;
310
+ // Preserve: depends_on (manually authored)
311
+ updated++;
312
+ }
313
+ else {
314
+ roadmap.sprints.push(fromCard);
315
+ added++;
316
+ }
317
+ }
318
+ // Sort sprints by id
319
+ roadmap.sprints.sort((a, b) => a.id - b.id);
320
+ // Build output
321
+ const output = JSON.stringify(roadmap, null, 2) + '\n';
322
+ console.log(`\nRoadmap sync: ${path}`);
323
+ console.log('\u2550'.repeat(40));
324
+ console.log(` Scorecards: ${scorecards.length}`);
325
+ console.log(` Updated: ${updated}`);
326
+ console.log(` Added: ${added}`);
327
+ console.log(` Total sprints: ${roadmap.sprints.length}`);
328
+ if (dryRun) {
329
+ console.log('\n --dry-run: no changes written.\n');
330
+ return;
331
+ }
332
+ writeFileSync(path, output);
333
+ console.log(`\n Written to ${path}\n`);
334
+ }
247
335
  // --- Main Command ---
248
336
  export async function roadmapCommand(args) {
249
337
  const sub = args[0];
@@ -262,6 +350,9 @@ export async function roadmapCommand(args) {
262
350
  case 'show':
263
351
  showSubcommand(flags, cwd);
264
352
  break;
353
+ case 'sync':
354
+ syncSubcommand(flags, cwd);
355
+ break;
265
356
  default:
266
357
  console.log(`
267
358
  slope roadmap — Strategic planning tools
@@ -271,10 +362,12 @@ Usage:
271
362
  slope roadmap review [--path=<file>] Automated architect review
272
363
  slope roadmap status [--path=<file>] [--sprint=N] Current progress
273
364
  slope roadmap show [--path=<file>] Render summary (critical path, parallel tracks)
365
+ slope roadmap sync [--path=<file>] [--dry-run] Sync scorecards into roadmap
274
366
 
275
367
  Options:
276
368
  --path=<file> Path to roadmap JSON (default: docs/backlog/roadmap.json)
277
369
  --sprint=N Override current sprint number (for status)
370
+ --dry-run Show what would change without writing (for sync)
278
371
  `);
279
372
  if (sub)
280
373
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../../../src/cli/commands/roadmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../../../src/cli/commands/roadmap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function storeCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/store.ts"],"names":[],"mappings":"AAeA,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BhE"}
@@ -0,0 +1,204 @@
1
+ import { existsSync, copyFileSync } from 'node:fs';
2
+ import { join, resolve } from 'node:path';
3
+ import Database from 'better-sqlite3';
4
+ import { resolveStore, getStoreInfo } from '../store.js';
5
+ import { LATEST_SCHEMA_VERSION } from '../../store/index.js';
6
+ function parseArgs(args) {
7
+ const result = {};
8
+ for (const arg of args) {
9
+ const match = arg.match(/^--(\w[\w-]*)(?:=(.+))?$/);
10
+ if (match)
11
+ result[match[1]] = match[2] ?? 'true';
12
+ }
13
+ return result;
14
+ }
15
+ export async function storeCommand(args) {
16
+ const sub = args[0];
17
+ const flags = parseArgs(args.slice(1));
18
+ const cwd = process.cwd();
19
+ switch (sub) {
20
+ case 'status':
21
+ await storeStatus(flags, cwd);
22
+ break;
23
+ case 'migrate':
24
+ await migrateStatus(args.slice(1), cwd);
25
+ break;
26
+ case 'backup':
27
+ await backupStore(flags, cwd);
28
+ break;
29
+ case 'restore':
30
+ await restoreStore(flags, cwd);
31
+ break;
32
+ default:
33
+ console.log(`
34
+ slope store — Store diagnostics and management
35
+
36
+ Usage:
37
+ slope store status [--json] Show store type, schema version, and stats
38
+ slope store migrate status Show current schema version
39
+ slope store backup [--output=<p>] Back up the store
40
+ slope store restore --from=<path> Restore from a backup
41
+ `);
42
+ if (sub)
43
+ process.exit(1);
44
+ }
45
+ }
46
+ async function storeStatus(flags, cwd) {
47
+ const info = getStoreInfo(cwd);
48
+ const jsonMode = flags.json === 'true';
49
+ let store;
50
+ try {
51
+ store = await resolveStore(cwd);
52
+ }
53
+ catch (err) {
54
+ if (jsonMode) {
55
+ console.log(JSON.stringify({ ...info, error: err.message }));
56
+ }
57
+ else {
58
+ console.log(`\nStore type: ${info.type}`);
59
+ if (info.path)
60
+ console.log(`Path: ${info.path}`);
61
+ if (info.sanitizedUrl)
62
+ console.log(`URL: ${info.sanitizedUrl}`);
63
+ if (info.projectId)
64
+ console.log(`Project ID: ${info.projectId}`);
65
+ console.log(`Status: ERROR — ${err.message}`);
66
+ }
67
+ return;
68
+ }
69
+ try {
70
+ const version = await store.getSchemaVersion();
71
+ const stats = await store.getStats();
72
+ if (jsonMode) {
73
+ console.log(JSON.stringify({
74
+ ...info,
75
+ schemaVersion: version,
76
+ ...stats,
77
+ }));
78
+ }
79
+ else {
80
+ console.log(`\nStore type: ${info.type}`);
81
+ if (info.path)
82
+ console.log(`Path: ${info.path}`);
83
+ if (info.sanitizedUrl)
84
+ console.log(`URL: ${info.sanitizedUrl}`);
85
+ if (info.projectId)
86
+ console.log(`Project ID: ${info.projectId}`);
87
+ console.log(`Schema version: ${version}`);
88
+ console.log(`Sessions: ${stats.sessions}`);
89
+ console.log(`Claims: ${stats.claims}`);
90
+ console.log(`Scorecards: ${stats.scorecards}`);
91
+ console.log(`Events: ${stats.events}`);
92
+ console.log(`Last event: ${stats.lastEventAt ?? '—'}`);
93
+ console.log('');
94
+ }
95
+ }
96
+ finally {
97
+ store.close();
98
+ }
99
+ }
100
+ async function migrateStatus(args, cwd) {
101
+ const sub = args[0];
102
+ if (sub !== 'status') {
103
+ console.log(`
104
+ slope store migrate — Migration management
105
+
106
+ Usage:
107
+ slope store migrate status Show current schema version and available migrations
108
+ `);
109
+ if (sub)
110
+ process.exit(1);
111
+ return;
112
+ }
113
+ const store = await resolveStore(cwd);
114
+ try {
115
+ const version = await store.getSchemaVersion();
116
+ console.log(`\nCurrent schema version: ${version}`);
117
+ console.log(`Total migrations: ${LATEST_SCHEMA_VERSION}`);
118
+ if (version >= LATEST_SCHEMA_VERSION) {
119
+ console.log(`Status: up to date`);
120
+ }
121
+ else {
122
+ console.log(`Status: ${LATEST_SCHEMA_VERSION - version} migration(s) pending`);
123
+ }
124
+ console.log('');
125
+ }
126
+ finally {
127
+ store.close();
128
+ }
129
+ }
130
+ async function backupStore(flags, cwd) {
131
+ const info = getStoreInfo(cwd);
132
+ if (info.type === 'postgres') {
133
+ console.log(`\nPostgreSQL backup — run manually:\n`);
134
+ console.log(` pg_dump "<connection-string>" > slope-backup-$(date +%Y%m%dT%H%M%S).sql`);
135
+ console.log(`\nRestore with:`);
136
+ console.log(` psql "<connection-string>" < slope-backup-TIMESTAMP.sql`);
137
+ console.log(`\nReplace <connection-string> with your actual PostgreSQL URL.\n`);
138
+ return;
139
+ }
140
+ // SQLite backup
141
+ const dbPath = resolve(cwd, info.path ?? '.slope/slope.db');
142
+ if (!existsSync(dbPath)) {
143
+ console.error(`Error: Store not found at ${dbPath}`);
144
+ process.exit(1);
145
+ }
146
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-').replace('T', '_').slice(0, 19);
147
+ const output = flags.output ?? join(cwd, `.slope/slope-backup-${timestamp}.db`);
148
+ // Checkpoint WAL to flush pending writes before copying
149
+ const db = new Database(dbPath);
150
+ try {
151
+ db.pragma('wal_checkpoint(TRUNCATE)');
152
+ }
153
+ finally {
154
+ db.close();
155
+ }
156
+ copyFileSync(dbPath, output);
157
+ console.log(`\nBackup created: ${output}\n`);
158
+ }
159
+ async function restoreStore(flags, cwd) {
160
+ const info = getStoreInfo(cwd);
161
+ if (info.type === 'postgres') {
162
+ console.log(`\nPostgreSQL restore — run manually:\n`);
163
+ console.log(` psql "<connection-string>" < <backup-file>.sql\n`);
164
+ return;
165
+ }
166
+ const fromPath = flags.from;
167
+ if (!fromPath) {
168
+ console.error('Error: --from=<path> is required');
169
+ process.exit(1);
170
+ }
171
+ if (!existsSync(fromPath)) {
172
+ console.error(`Error: Backup file not found: ${fromPath}`);
173
+ process.exit(1);
174
+ }
175
+ // Validate the backup file is a valid SLOPE database
176
+ try {
177
+ const db = new Database(fromPath, { readonly: true });
178
+ try {
179
+ const row = db.prepare('SELECT MAX(version) as v FROM schema_version').get();
180
+ const version = row?.v ?? 0;
181
+ if (version === 0) {
182
+ console.error('Error: Backup file has no schema version — not a valid SLOPE database');
183
+ process.exit(1);
184
+ }
185
+ }
186
+ finally {
187
+ db.close();
188
+ }
189
+ }
190
+ catch (err) {
191
+ console.error(`Error: Cannot read backup file: ${err.message}`);
192
+ process.exit(1);
193
+ }
194
+ const dbPath = resolve(cwd, info.path ?? '.slope/slope.db');
195
+ const existed = existsSync(dbPath);
196
+ copyFileSync(fromPath, dbPath);
197
+ if (existed) {
198
+ console.log(`\nStore restored from ${fromPath} (overwritten)\n`);
199
+ }
200
+ else {
201
+ console.log(`\nStore created from ${fromPath}\n`);
202
+ }
203
+ }
204
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/cli/commands/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { HookInput, GuardResult } from '../../core/index.js';
2
+ /**
3
+ * Branch-before-commit guard: fires PreToolUse on Bash.
4
+ * Blocks `git commit` on main/master — create a feature branch first.
5
+ */
6
+ export declare function branchBeforeCommitGuard(input: HookInput, cwd: string): Promise<GuardResult>;
7
+ //# sourceMappingURL=branch-before-commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-before-commit.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/branch-before-commit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlE;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAoCjG"}
@@ -0,0 +1,43 @@
1
+ import { execSync } from 'node:child_process';
2
+ import { loadConfig } from '../config.js';
3
+ /**
4
+ * Branch-before-commit guard: fires PreToolUse on Bash.
5
+ * Blocks `git commit` on main/master — create a feature branch first.
6
+ */
7
+ export async function branchBeforeCommitGuard(input, cwd) {
8
+ const command = input.tool_input?.command ?? '';
9
+ // Only fire on git commit (word-boundary: avoid git commit-tree etc.)
10
+ if (!/git\s+commit(\s|$)/.test(command))
11
+ return {};
12
+ // Check current branch
13
+ let branch;
14
+ try {
15
+ branch = execSync('git rev-parse --abbrev-ref HEAD 2>/dev/null', { cwd, encoding: 'utf8' }).trim();
16
+ }
17
+ catch {
18
+ // Not a git repo or detached HEAD — allow
19
+ return {};
20
+ }
21
+ // Only block on main/master (HEAD means initial repo with no commits)
22
+ if (branch !== 'main' && branch !== 'master')
23
+ return {};
24
+ // Check allowMainCommitPatterns — let allowlisted messages through
25
+ const config = loadConfig();
26
+ const patterns = config.guidance?.allowMainCommitPatterns;
27
+ if (patterns && patterns.length > 0) {
28
+ // Extract commit message from -m "..." or -m '...'
29
+ const msgMatch = command.match(/-m\s+(?:"([^"]+)"|'([^']+)')/);
30
+ const message = msgMatch?.[1] ?? msgMatch?.[2];
31
+ if (message) {
32
+ for (const pat of patterns) {
33
+ if (new RegExp(pat).test(message))
34
+ return {};
35
+ }
36
+ }
37
+ }
38
+ return {
39
+ decision: 'deny',
40
+ blockReason: `Committing directly on ${branch} is blocked. Create a feature branch first:\n git checkout -b feat/<ticket-or-description>\nThen commit on the new branch.`,
41
+ };
42
+ }
43
+ //# sourceMappingURL=branch-before-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-before-commit.js","sourceRoot":"","sources":["../../../src/cli/guards/branch-before-commit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAAgB,EAAE,GAAW;IACzE,MAAM,OAAO,GAAI,KAAK,CAAC,UAAU,EAAE,OAAkB,IAAI,EAAE,CAAC;IAE5D,sEAAsE;IACtE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnD,uBAAuB;IACvB,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,QAAQ,CAAC,6CAA6C,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrG,CAAC;IAAC,MAAM,CAAC;QACP,0CAA0C;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,sEAAsE;IACtE,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAExD,mEAAmE;IACnE,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;IAC1D,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,mDAAmD;QACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;oBAAE,OAAO,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,MAAM;QAChB,WAAW,EAAE,0BAA0B,MAAM,6HAA6H;KAC3K,CAAC;AACJ,CAAC"}
@@ -2,6 +2,10 @@ import type { HookInput, GuardResult } from '../../core/index.js';
2
2
  /**
3
3
  * Stop check guard: fires on Stop.
4
4
  * Checks for uncommitted/unpushed work before session end.
5
+ *
6
+ * Modified/staged/deleted files → block (real uncommitted work).
7
+ * Untracked-only files → warn via context (may be orphaned/intentional).
8
+ * Unpushed commits → block (recovery point not preserved).
5
9
  */
6
10
  export declare function stopCheckGuard(input: HookInput, cwd: string): Promise<GuardResult>;
7
11
  //# sourceMappingURL=stop-check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stop-check.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/stop-check.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElE;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAuCxF"}
1
+ {"version":3,"file":"stop-check.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/stop-check.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElE;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA0ExF"}
@@ -2,26 +2,51 @@ import { execSync } from 'node:child_process';
2
2
  /**
3
3
  * Stop check guard: fires on Stop.
4
4
  * Checks for uncommitted/unpushed work before session end.
5
+ *
6
+ * Modified/staged/deleted files → block (real uncommitted work).
7
+ * Untracked-only files → warn via context (may be orphaned/intentional).
8
+ * Unpushed commits → block (recovery point not preserved).
5
9
  */
6
10
  export async function stopCheckGuard(input, cwd) {
7
- const issues = [];
11
+ const blockingIssues = [];
12
+ const warningIssues = [];
8
13
  // Check for uncommitted changes (excluding gitignored files)
9
14
  try {
10
15
  const status = execSync('git status --porcelain 2>/dev/null', { cwd, encoding: 'utf8' }).trim();
11
16
  if (status.length > 0) {
12
- const paths = status.split('\n').filter(Boolean).map(l => l.slice(3));
13
- // Filter out files matched by .gitignore (catches tracked-but-ignored files)
14
- let filtered = paths;
15
- if (paths.length > 0) {
17
+ const lines = status.split('\n').filter(Boolean);
18
+ // Separate untracked (??) from modified/staged/deleted
19
+ const untrackedPaths = [];
20
+ const modifiedPaths = [];
21
+ for (const line of lines) {
22
+ const statusCode = line.slice(0, 2);
23
+ const path = line.slice(3);
24
+ if (statusCode === '??') {
25
+ untrackedPaths.push(path);
26
+ }
27
+ else {
28
+ modifiedPaths.push(path);
29
+ }
30
+ }
31
+ // Filter out gitignored files from both lists
32
+ const allPaths = [...modifiedPaths, ...untrackedPaths];
33
+ const ignoredSet = new Set();
34
+ if (allPaths.length > 0) {
16
35
  try {
17
- const ignored = execSync(`git check-ignore ${paths.map(p => `'${p}'`).join(' ')} 2>/dev/null`, { cwd, encoding: 'utf8' }).trim();
18
- const ignoredSet = new Set(ignored.split('\n').filter(Boolean));
19
- filtered = paths.filter(p => !ignoredSet.has(p));
36
+ const ignored = execSync(`git check-ignore ${allPaths.map(p => `'${p}'`).join(' ')} 2>/dev/null`, { cwd, encoding: 'utf8' }).trim();
37
+ for (const p of ignored.split('\n').filter(Boolean)) {
38
+ ignoredSet.add(p);
39
+ }
20
40
  }
21
41
  catch { /* check-ignore exits 1 when no files are ignored — all files are real changes */ }
22
42
  }
23
- if (filtered.length > 0) {
24
- issues.push(`${filtered.length} uncommitted change${filtered.length === 1 ? '' : 's'}`);
43
+ const filteredModified = modifiedPaths.filter(p => !ignoredSet.has(p));
44
+ const filteredUntracked = untrackedPaths.filter(p => !ignoredSet.has(p));
45
+ if (filteredModified.length > 0) {
46
+ blockingIssues.push(`${filteredModified.length} uncommitted change${filteredModified.length === 1 ? '' : 's'}`);
47
+ }
48
+ if (filteredUntracked.length > 0) {
49
+ warningIssues.push(`${filteredUntracked.length} untracked file${filteredUntracked.length === 1 ? '' : 's'}`);
25
50
  }
26
51
  }
27
52
  }
@@ -32,15 +57,24 @@ export async function stopCheckGuard(input, cwd) {
32
57
  if (unpushed) {
33
58
  const lines = unpushed.split('\n').filter(Boolean);
34
59
  if (lines.length > 0) {
35
- issues.push(`${lines.length} unpushed commit${lines.length === 1 ? '' : 's'}`);
60
+ blockingIssues.push(`${lines.length} unpushed commit${lines.length === 1 ? '' : 's'}`);
36
61
  }
37
62
  }
38
63
  }
39
64
  catch { /* no upstream */ }
40
- if (issues.length === 0)
41
- return {};
42
- return {
43
- blockReason: `SLOPE: ${issues.join(' and ')} detected. Commit and push before stopping to preserve your recovery point.`,
44
- };
65
+ // Blocking issues take priority
66
+ if (blockingIssues.length > 0) {
67
+ const allIssues = [...blockingIssues, ...warningIssues];
68
+ return {
69
+ blockReason: `SLOPE: ${allIssues.join(' and ')} detected. Commit and push before stopping to preserve your recovery point.`,
70
+ };
71
+ }
72
+ // Untracked-only: warn but don't block
73
+ if (warningIssues.length > 0) {
74
+ return {
75
+ context: `SLOPE: ${warningIssues.join(' and ')} detected. Consider committing or cleaning up untracked files.`,
76
+ };
77
+ }
78
+ return {};
45
79
  }
46
80
  //# sourceMappingURL=stop-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stop-check.js","sourceRoot":"","sources":["../../../src/cli/guards/stop-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAAgB,EAAE,GAAW;IAChE,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,6DAA6D;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,oCAAoC,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,6EAA6E;YAC7E,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,QAAQ,CAAC,oBAAoB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACjI,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChE,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnD,CAAC;gBAAC,MAAM,CAAC,CAAC,iFAAiF,CAAC,CAAC;YAC/F,CAAC;YACD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,sBAAsB,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,CAAC;IAEhC,6BAA6B;IAC7B,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,0CAA0C,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxG,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,mBAAmB,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAE7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnC,OAAO;QACL,WAAW,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,6EAA6E;KACzH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"stop-check.js","sourceRoot":"","sources":["../../../src/cli/guards/stop-check.ts"],"names":[],"mappings":"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"}