@slope-dev/slope 1.52.0 → 1.54.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 (151) hide show
  1. package/dist/cli/commands/agent.d.ts +35 -0
  2. package/dist/cli/commands/agent.d.ts.map +1 -0
  3. package/dist/cli/commands/agent.js +345 -0
  4. package/dist/cli/commands/agent.js.map +1 -0
  5. package/dist/cli/commands/briefing.d.ts.map +1 -1
  6. package/dist/cli/commands/briefing.js +5 -3
  7. package/dist/cli/commands/briefing.js.map +1 -1
  8. package/dist/cli/commands/commit-ready.d.ts +29 -0
  9. package/dist/cli/commands/commit-ready.d.ts.map +1 -0
  10. package/dist/cli/commands/commit-ready.js +263 -0
  11. package/dist/cli/commands/commit-ready.js.map +1 -0
  12. package/dist/cli/commands/doctor.d.ts +2 -0
  13. package/dist/cli/commands/doctor.d.ts.map +1 -1
  14. package/dist/cli/commands/doctor.js +97 -0
  15. package/dist/cli/commands/doctor.js.map +1 -1
  16. package/dist/cli/commands/gate.d.ts +2 -0
  17. package/dist/cli/commands/gate.d.ts.map +1 -0
  18. package/dist/cli/commands/gate.js +175 -0
  19. package/dist/cli/commands/gate.js.map +1 -0
  20. package/dist/cli/commands/guard.d.ts.map +1 -1
  21. package/dist/cli/commands/guard.js +4 -0
  22. package/dist/cli/commands/guard.js.map +1 -1
  23. package/dist/cli/commands/init.d.ts.map +1 -1
  24. package/dist/cli/commands/init.js +23 -6
  25. package/dist/cli/commands/init.js.map +1 -1
  26. package/dist/cli/commands/memory.d.ts +14 -0
  27. package/dist/cli/commands/memory.d.ts.map +1 -0
  28. package/dist/cli/commands/memory.js +230 -0
  29. package/dist/cli/commands/memory.js.map +1 -0
  30. package/dist/cli/commands/pr.d.ts +49 -0
  31. package/dist/cli/commands/pr.d.ts.map +1 -0
  32. package/dist/cli/commands/pr.js +214 -0
  33. package/dist/cli/commands/pr.js.map +1 -0
  34. package/dist/cli/commands/review-state.d.ts +1 -2
  35. package/dist/cli/commands/review-state.d.ts.map +1 -1
  36. package/dist/cli/commands/review-state.js +79 -25
  37. package/dist/cli/commands/review-state.js.map +1 -1
  38. package/dist/cli/commands/roadmap.d.ts.map +1 -1
  39. package/dist/cli/commands/roadmap.js +31 -4
  40. package/dist/cli/commands/roadmap.js.map +1 -1
  41. package/dist/cli/commands/sprint-plan.d.ts +21 -0
  42. package/dist/cli/commands/sprint-plan.d.ts.map +1 -0
  43. package/dist/cli/commands/sprint-plan.js +226 -0
  44. package/dist/cli/commands/sprint-plan.js.map +1 -0
  45. package/dist/cli/commands/sprint.d.ts.map +1 -1
  46. package/dist/cli/commands/sprint.js +137 -0
  47. package/dist/cli/commands/sprint.js.map +1 -1
  48. package/dist/cli/commands/ticket.d.ts +9 -0
  49. package/dist/cli/commands/ticket.d.ts.map +1 -0
  50. package/dist/cli/commands/ticket.js +168 -0
  51. package/dist/cli/commands/ticket.js.map +1 -0
  52. package/dist/cli/commands/version.d.ts.map +1 -1
  53. package/dist/cli/commands/version.js +33 -4
  54. package/dist/cli/commands/version.js.map +1 -1
  55. package/dist/cli/commands/vision.d.ts.map +1 -1
  56. package/dist/cli/commands/vision.js +14 -1
  57. package/dist/cli/commands/vision.js.map +1 -1
  58. package/dist/cli/guards/branch-before-commit.d.ts.map +1 -1
  59. package/dist/cli/guards/branch-before-commit.js +2 -1
  60. package/dist/cli/guards/branch-before-commit.js.map +1 -1
  61. package/dist/cli/guards/claim-required.d.ts +6 -0
  62. package/dist/cli/guards/claim-required.d.ts.map +1 -1
  63. package/dist/cli/guards/claim-required.js +13 -3
  64. package/dist/cli/guards/claim-required.js.map +1 -1
  65. package/dist/cli/guards/next-action.d.ts.map +1 -1
  66. package/dist/cli/guards/next-action.js +3 -2
  67. package/dist/cli/guards/next-action.js.map +1 -1
  68. package/dist/cli/guards/post-hole-enforcement.d.ts +18 -0
  69. package/dist/cli/guards/post-hole-enforcement.d.ts.map +1 -0
  70. package/dist/cli/guards/post-hole-enforcement.js +100 -0
  71. package/dist/cli/guards/post-hole-enforcement.js.map +1 -0
  72. package/dist/cli/guards/pr-review.d.ts +16 -1
  73. package/dist/cli/guards/pr-review.d.ts.map +1 -1
  74. package/dist/cli/guards/pr-review.js +87 -5
  75. package/dist/cli/guards/pr-review.js.map +1 -1
  76. package/dist/cli/guards/roadmap-edit-shipped.d.ts +12 -0
  77. package/dist/cli/guards/roadmap-edit-shipped.d.ts.map +1 -0
  78. package/dist/cli/guards/roadmap-edit-shipped.js +155 -0
  79. package/dist/cli/guards/roadmap-edit-shipped.js.map +1 -0
  80. package/dist/cli/index.js +47 -2
  81. package/dist/cli/index.js.map +1 -1
  82. package/dist/cli/registry.d.ts +1 -1
  83. package/dist/cli/registry.d.ts.map +1 -1
  84. package/dist/cli/registry.js +78 -1
  85. package/dist/cli/registry.js.map +1 -1
  86. package/dist/core/analyzers/git.d.ts +14 -0
  87. package/dist/core/analyzers/git.d.ts.map +1 -1
  88. package/dist/core/analyzers/git.js +47 -0
  89. package/dist/core/analyzers/git.js.map +1 -1
  90. package/dist/core/auto-memory.d.ts +19 -0
  91. package/dist/core/auto-memory.d.ts.map +1 -0
  92. package/dist/core/auto-memory.js +142 -0
  93. package/dist/core/auto-memory.js.map +1 -0
  94. package/dist/core/formatter.d.ts.map +1 -1
  95. package/dist/core/formatter.js +51 -2
  96. package/dist/core/formatter.js.map +1 -1
  97. package/dist/core/guard.d.ts +1 -1
  98. package/dist/core/guard.d.ts.map +1 -1
  99. package/dist/core/guard.js +16 -0
  100. package/dist/core/guard.js.map +1 -1
  101. package/dist/core/index.d.ts +6 -2
  102. package/dist/core/index.d.ts.map +1 -1
  103. package/dist/core/index.js +7 -2
  104. package/dist/core/index.js.map +1 -1
  105. package/dist/core/json-memory-backend.d.ts +23 -0
  106. package/dist/core/json-memory-backend.d.ts.map +1 -0
  107. package/dist/core/json-memory-backend.js +98 -0
  108. package/dist/core/json-memory-backend.js.map +1 -0
  109. package/dist/core/memory-backend.d.ts +30 -0
  110. package/dist/core/memory-backend.d.ts.map +1 -0
  111. package/dist/core/memory-backend.js +14 -0
  112. package/dist/core/memory-backend.js.map +1 -0
  113. package/dist/core/memory-types.d.ts +25 -0
  114. package/dist/core/memory-types.d.ts.map +1 -0
  115. package/dist/core/memory-types.js +4 -0
  116. package/dist/core/memory-types.js.map +1 -0
  117. package/dist/core/memory-validation.d.ts +4 -0
  118. package/dist/core/memory-validation.d.ts.map +1 -0
  119. package/dist/core/memory-validation.js +35 -0
  120. package/dist/core/memory-validation.js.map +1 -0
  121. package/dist/core/memory.d.ts +41 -0
  122. package/dist/core/memory.d.ts.map +1 -0
  123. package/dist/core/memory.js +167 -0
  124. package/dist/core/memory.js.map +1 -0
  125. package/dist/core/pi-settings.d.ts.map +1 -1
  126. package/dist/core/pi-settings.js +12 -0
  127. package/dist/core/pi-settings.js.map +1 -1
  128. package/dist/core/review.d.ts.map +1 -1
  129. package/dist/core/review.js +5 -0
  130. package/dist/core/review.js.map +1 -1
  131. package/dist/core/roadmap.d.ts +16 -2
  132. package/dist/core/roadmap.d.ts.map +1 -1
  133. package/dist/core/roadmap.js +81 -24
  134. package/dist/core/roadmap.js.map +1 -1
  135. package/dist/core/vision.d.ts +10 -0
  136. package/dist/core/vision.d.ts.map +1 -1
  137. package/dist/core/vision.js +68 -1
  138. package/dist/core/vision.js.map +1 -1
  139. package/dist/store/index.d.ts.map +1 -1
  140. package/dist/store/index.js +18 -0
  141. package/dist/store/index.js.map +1 -1
  142. package/dist/store/sqlite-memory-backend.d.ts +43 -0
  143. package/dist/store/sqlite-memory-backend.d.ts.map +1 -0
  144. package/dist/store/sqlite-memory-backend.js +181 -0
  145. package/dist/store/sqlite-memory-backend.js.map +1 -0
  146. package/dist/store-pg/index.d.ts.map +1 -1
  147. package/dist/store-pg/index.js +23 -0
  148. package/dist/store-pg/index.js.map +1 -1
  149. package/package.json +1 -1
  150. package/packages/pi-extension/dist/index.d.ts +19 -0
  151. package/packages/pi-extension/dist/index.js +435 -17
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Cross-session memory storage — public API.
3
+ *
4
+ * As of S90 (GH #294), persistence routes through a MemoryBackend so the
5
+ * memory module no longer writes JSON directly. Behavior:
6
+ *
7
+ * - If `.slope/slope.db` exists, SqliteMemoryBackend is used. On first
8
+ * open it imports any existing `.slope/memories.json` into the store
9
+ * and renames the JSON to `.bak` (one-time migration).
10
+ * - Otherwise JsonMemoryBackend is used (legacy default for repos that
11
+ * haven't initialized the SQLite store).
12
+ *
13
+ * Public API signatures are unchanged — callers (auto-memory hooks, the
14
+ * memory CLI command, briefing) keep working without `await`.
15
+ */
16
+ import { existsSync } from 'node:fs';
17
+ import { randomUUID } from 'node:crypto';
18
+ import { join } from 'node:path';
19
+ import { JsonMemoryBackend } from './json-memory-backend.js';
20
+ import { SqliteMemoryBackend } from '../store/sqlite-memory-backend.js';
21
+ // Re-export validateMemory + secret detection helpers (still part of public API).
22
+ export { validateMemoryRow as validateMemory } from './memory-validation.js';
23
+ // ── Secret detection (unchanged from pre-S90) ──────────
24
+ const SECRET_PATTERNS = [
25
+ /\bsk-[A-Za-z0-9_-]{20,}\b/,
26
+ /\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9]{20,}\b/,
27
+ /\bAKIA[0-9A-Z]{16}\b/,
28
+ /\beyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\b/,
29
+ /\b(?:password|secret|token|api[-_]?key|access[-_]?key)\s*[:=]\s*['"]?[A-Za-z0-9+/=_-]{16,}['"]?/i,
30
+ ];
31
+ export function detectSecret(text) {
32
+ for (const re of SECRET_PATTERNS) {
33
+ if (re.test(text))
34
+ return re.source;
35
+ }
36
+ return null;
37
+ }
38
+ export class SecretDetectedError extends Error {
39
+ pattern;
40
+ constructor(pattern) {
41
+ super(`Memory text matches secret pattern (${pattern}); refusing to persist. Pass allowSecrets:true to override.`);
42
+ this.pattern = pattern;
43
+ this.name = 'SecretDetectedError';
44
+ }
45
+ }
46
+ // ── Backend resolution ─────────────────────────────────
47
+ /**
48
+ * Pick a backend based on whether a SQLite slope.db exists. Lazy-load the
49
+ * SQLite backend so projects without better-sqlite3 binding (or no slope.db)
50
+ * never try to open one.
51
+ *
52
+ * Memoized per-cwd — repeated calls return the same instance to avoid the
53
+ * overhead of opening a fresh DB connection (and re-running schema/migration
54
+ * checks) on every memory operation. Tests can call `clearMemoryBackendCache()`
55
+ * to reset between fixtures.
56
+ *
57
+ * Override via `SLOPE_MEMORY_BACKEND=json|sqlite` for testing.
58
+ */
59
+ const _backendCache = new Map();
60
+ export function clearMemoryBackendCache() {
61
+ _backendCache.clear();
62
+ }
63
+ export function getMemoryBackend(cwd) {
64
+ const override = process.env.SLOPE_MEMORY_BACKEND;
65
+ // Cache key includes the override so a test toggling the env between calls
66
+ // doesn't get a stale instance.
67
+ const cacheKey = `${cwd}::${override ?? 'auto'}`;
68
+ const cached = _backendCache.get(cacheKey);
69
+ if (cached)
70
+ return cached;
71
+ if (override === 'json') {
72
+ const b = new JsonMemoryBackend(cwd);
73
+ _backendCache.set(cacheKey, b);
74
+ return b;
75
+ }
76
+ const dbPath = join(cwd, '.slope', 'slope.db');
77
+ if (override === 'sqlite' || existsSync(dbPath)) {
78
+ try {
79
+ const b = new SqliteMemoryBackend(cwd, dbPath);
80
+ _backendCache.set(cacheKey, b);
81
+ return b;
82
+ }
83
+ catch (err) {
84
+ // Distinguish corruption / I/O errors from missing better-sqlite3
85
+ // binding so users can tell which layer is broken (#294 review).
86
+ const msg = err.message ?? String(err);
87
+ const cause = /better-sqlite3|cannot find module/i.test(msg)
88
+ ? 'better-sqlite3 binding unavailable'
89
+ : 'SQLite open failed (DB corrupt, locked, or unreadable)';
90
+ console.error(`SLOPE memory: ${cause} — ${msg}; falling back to JSON.`);
91
+ }
92
+ }
93
+ const fallback = new JsonMemoryBackend(cwd);
94
+ _backendCache.set(cacheKey, fallback);
95
+ return fallback;
96
+ }
97
+ // ── Public API ─────────────────────────────────────────
98
+ function nowISO() {
99
+ return new Date().toISOString();
100
+ }
101
+ export function loadMemories(cwd) {
102
+ return getMemoryBackend(cwd).load();
103
+ }
104
+ export function saveMemories(cwd, data) {
105
+ getMemoryBackend(cwd).saveAll(data);
106
+ }
107
+ export function addMemory(cwd, text, options = {}) {
108
+ if (!options.allowSecrets) {
109
+ const matched = detectSecret(text);
110
+ if (matched)
111
+ throw new SecretDetectedError(matched);
112
+ }
113
+ const memory = {
114
+ id: randomUUID(),
115
+ text,
116
+ category: options.category ?? 'other',
117
+ weight: Math.max(1, Math.min(10, options.weight ?? 8)),
118
+ source: options.source ?? 'manual',
119
+ createdAt: nowISO(),
120
+ updatedAt: nowISO(),
121
+ ...(options.sourceSessionId ? { sourceSessionId: options.sourceSessionId } : {}),
122
+ };
123
+ getMemoryBackend(cwd).add(memory);
124
+ return memory;
125
+ }
126
+ export function removeMemory(cwd, id) {
127
+ return getMemoryBackend(cwd).remove(id);
128
+ }
129
+ export function updateMemory(cwd, id, updates) {
130
+ const fields = { ...updates };
131
+ if (fields.weight !== undefined) {
132
+ fields.weight = Math.max(1, Math.min(10, fields.weight));
133
+ }
134
+ fields.updatedAt = nowISO();
135
+ return getMemoryBackend(cwd).update(id, fields);
136
+ }
137
+ export function searchMemories(cwd, options = {}) {
138
+ // searchMemories is read-mostly; load and filter in memory. Pushing the
139
+ // filter into SQL is a future optimization once we have realistic dataset
140
+ // sizes — current footprint is small (typical project has <50 memories).
141
+ const data = getMemoryBackend(cwd).load();
142
+ let results = data.memories;
143
+ if (options.category)
144
+ results = results.filter(m => m.category === options.category);
145
+ if (options.source)
146
+ results = results.filter(m => m.source === options.source);
147
+ if (options.minWeight !== undefined) {
148
+ const min = options.minWeight;
149
+ results = results.filter(m => m.weight >= min);
150
+ }
151
+ if (options.query) {
152
+ const q = options.query.toLowerCase();
153
+ results = results.filter(m => m.text.toLowerCase().includes(q));
154
+ }
155
+ results.sort((a, b) => {
156
+ if (b.weight !== a.weight)
157
+ return b.weight - a.weight;
158
+ return new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime();
159
+ });
160
+ if (options.limit)
161
+ results = results.slice(0, options.limit);
162
+ return results;
163
+ }
164
+ export function getMemoryById(cwd, id) {
165
+ return getMemoryBackend(cwd).getById(id);
166
+ }
167
+ //# sourceMappingURL=memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/core/memory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pi-settings.d.ts","sourceRoot":"","sources":["../../src/core/pi-settings.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC;AAsCD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAetD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAItE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE/E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAI/F;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAM/G"}
1
+ {"version":3,"file":"pi-settings.d.ts","sourceRoot":"","sources":["../../src/core/pi-settings.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACxC;AAkDD,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAetD;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,GAAG,IAAI,CAItE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE/E;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAI/F;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,UAAU,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAM/G"}
@@ -33,6 +33,18 @@ const DEFAULT_SETTINGS = {
33
33
  enabled: false,
34
34
  description: 'Live performance dashboard (requires manual `slope dashboard` start)',
35
35
  },
36
+ memory: {
37
+ enabled: true,
38
+ description: 'Cross-session memory: inject relevant memories into briefing, /slope-memory command',
39
+ },
40
+ 'model-router': {
41
+ enabled: false,
42
+ description: 'Auto-switch between local/cloud models based on task complexity. Requires both local + cloud providers configured.',
43
+ },
44
+ 'plan-gate': {
45
+ enabled: false,
46
+ description: 'Require a written plan or active sprint phase before destructive tool calls (write/edit/bash). Pairs with model-router local-planner tier.',
47
+ },
36
48
  },
37
49
  };
38
50
  const SETTINGS_FILE = '.slope/pi-settings.json';
@@ -1 +1 @@
1
- {"version":3,"file":"pi-settings.js","sourceRoot":"","sources":["../../src/core/pi-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-settings.js","sourceRoot":"","sources":["../../src/core/pi-settings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/core/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAC;AAOpB,4FAA4F;AAC5F,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,oBAAoB,EAAE,CA4DrF;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAOjE;AAID,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,UAAU,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,aAAa,EAAE,GACxB,WAAW,CAiEb"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/core/review.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAa,EACb,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAC;AAOpB,4FAA4F;AAC5F,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,oBAAoB,EAAE,CA4DrF;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAOjE;AAID,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,KAAK,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,UAAU,CAAC;QACxB,QAAQ,EAAE,cAAc,CAAC;KAC1B,CAAC,CAAC;IACH,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,aAAa,EAAE,GACxB,WAAW,CAyEb"}
@@ -82,6 +82,11 @@ export function findingToHazard(finding) {
82
82
  * Recomputes stats, score, and score_label via buildScorecard().
83
83
  */
84
84
  export function amendScorecardWithFindings(scorecard, findings) {
85
+ if (!Array.isArray(scorecard.shots)) {
86
+ throw new Error(`Scorecard for sprint ${scorecard.sprint_number} has no \`shots\` array — ` +
87
+ `likely a sub-sprint parent stub or malformed file. ` +
88
+ `Pass --sprint=<id> for the sub-sprint scorecard, or check the on-disk file.`);
89
+ }
85
90
  const scoreBefore = scorecard.score;
86
91
  const labelBefore = scorecard.score_label;
87
92
  const amendments = [];
@@ -1 +1 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/core/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/core/review.ts"],"names":[],"mappings":"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"}
@@ -48,11 +48,13 @@ export interface RoadmapValidationResult {
48
48
  warnings: RoadmapValidationWarning[];
49
49
  }
50
50
  /** Validate a roadmap definition for structural correctness.
51
- * Optionally cross-check sprint status against scorecards when provided.
51
+ * Optionally cross-check sprint status against scorecards and/or shipped
52
+ * sprint commits on main when provided. Caller is responsible for collecting
53
+ * scorecards (via loadScorecards) and shipped IDs (via findShippedSprintsOnMain).
52
54
  */
53
55
  export declare function validateRoadmap(roadmap: RoadmapDefinition, scorecards?: {
54
56
  sprint_number: number;
55
- }[]): RoadmapValidationResult;
57
+ }[], shippedSprintIds?: Set<number>): RoadmapValidationResult;
56
58
  export interface CriticalPathResult {
57
59
  path: number[];
58
60
  length: number;
@@ -66,6 +68,12 @@ export interface ParallelGroup {
66
68
  }
67
69
  /** Find sprints that can run in parallel (no mutual dependencies) */
68
70
  export declare function findParallelOpportunities(roadmap: RoadmapDefinition): ParallelGroup[];
71
+ /** Cast a raw JSON object to RoadmapDefinition if minimally structurally valid.
72
+ * Unlike parseRoadmap, this does not run full validation — useful when callers
73
+ * want to flag validation issues against a structurally-cast roadmap (e.g.
74
+ * drift detection should still run when ticket counts or numbering are off).
75
+ */
76
+ export declare function castRoadmapStructure(json: unknown): RoadmapDefinition | null;
69
77
  /** Parse and validate a roadmap from a JSON object */
70
78
  export declare function parseRoadmap(json: unknown): {
71
79
  roadmap: RoadmapDefinition | null;
@@ -75,4 +83,10 @@ export declare function parseRoadmap(json: unknown): {
75
83
  export declare function formatRoadmapSummary(roadmap: RoadmapDefinition): string;
76
84
  /** Format strategic context for briefings — concise 3-5 line summary */
77
85
  export declare function formatStrategicContext(roadmap: RoadmapDefinition, currentSprint: number): string | null;
86
+ /** Find the next planned sprint after currentSprint.
87
+ * Prefers a sprint with all dependencies satisfied (status:complete);
88
+ * falls back to the lowest-id non-complete sprint when nothing is unblocked.
89
+ * Returns null if no candidate found.
90
+ */
91
+ export declare function findNextPlannedSprint(roadmap: RoadmapDefinition, currentSprint: number): RoadmapSprint | null;
78
92
  //# sourceMappingURL=roadmap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/core/roadmap.ts"],"names":[],"mappings":"AAKA,uEAAuE;AACvE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC;AAErF,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAC1D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,mCAAmC;AACnC,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAID,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,QAAQ,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,iBAAiB,EAC1B,UAAU,CAAC,EAAE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,EAAE,GACvC,uBAAuB,CA+IzB;AAgDD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,iBAAiB,GAAG,kBAAkB,CA6ClF;AAwCD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,EAAE,CAsBrF;AAyBD,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,uBAAuB,CAAA;CAAE,CAqDtH;AAID,2CAA2C;AAC3C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAmDvE;AAED,wEAAwE;AACxE,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,MAAM,GACpB,MAAM,GAAG,IAAI,CAiCf"}
1
+ {"version":3,"file":"roadmap.d.ts","sourceRoot":"","sources":["../../src/core/roadmap.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  // SLOPE — Roadmap: Strategic planning types and compute functions
2
2
  // Course-level methodology — vision → roadmap → review → iteration
3
3
  /** Validate a roadmap definition for structural correctness.
4
- * Optionally cross-check sprint status against scorecards when provided.
4
+ * Optionally cross-check sprint status against scorecards and/or shipped
5
+ * sprint commits on main when provided. Caller is responsible for collecting
6
+ * scorecards (via loadScorecards) and shipped IDs (via findShippedSprintsOnMain).
5
7
  */
6
- export function validateRoadmap(roadmap, scorecards) {
8
+ export function validateRoadmap(roadmap, scorecards, shippedSprintIds) {
7
9
  const errors = [];
8
10
  const warnings = [];
9
11
  const sprintIds = new Set(roadmap.sprints.map(s => s.id));
@@ -129,6 +131,27 @@ export function validateRoadmap(roadmap, scorecards) {
129
131
  }
130
132
  }
131
133
  }
134
+ // Cross-validate sprint status against shipped commits on main when provided
135
+ if (shippedSprintIds) {
136
+ for (const sprint of roadmap.sprints) {
137
+ const status = sprint.status;
138
+ const isShipped = shippedSprintIds.has(sprint.id);
139
+ if (isShipped && status !== 'complete') {
140
+ errors.push({
141
+ type: 'error',
142
+ sprint: sprint.id,
143
+ message: `S${sprint.id} has shipped commits on main but status is "${status ?? 'planned'}" — expected "complete"`,
144
+ });
145
+ }
146
+ if (!isShipped && status === 'complete') {
147
+ warnings.push({
148
+ type: 'warning',
149
+ sprint: sprint.id,
150
+ message: `S${sprint.id} is marked "complete" but no shipped commits found on main`,
151
+ });
152
+ }
153
+ }
154
+ }
132
155
  return { valid: errors.length === 0, errors, warnings };
133
156
  }
134
157
  // --- Dependency Graph ---
@@ -285,51 +308,51 @@ function computeDepthMap(sprints) {
285
308
  return depthMap;
286
309
  }
287
310
  // --- Parse ---
311
+ /** Cast a raw JSON object to RoadmapDefinition if minimally structurally valid.
312
+ * Unlike parseRoadmap, this does not run full validation — useful when callers
313
+ * want to flag validation issues against a structurally-cast roadmap (e.g.
314
+ * drift detection should still run when ticket counts or numbering are off).
315
+ */
316
+ export function castRoadmapStructure(json) {
317
+ if (!json || typeof json !== 'object')
318
+ return null;
319
+ const obj = json;
320
+ if (typeof obj.name !== 'string')
321
+ return null;
322
+ if (!Array.isArray(obj.sprints))
323
+ return null;
324
+ if (!Array.isArray(obj.phases))
325
+ return null;
326
+ return obj;
327
+ }
288
328
  /** Parse and validate a roadmap from a JSON object */
289
329
  export function parseRoadmap(json) {
290
- // Type guard: check minimal structure
330
+ // Type guard: check minimal structure with explicit per-field error messages
291
331
  if (!json || typeof json !== 'object') {
292
332
  return {
293
333
  roadmap: null,
294
- validation: {
295
- valid: false,
296
- errors: [{ type: 'error', message: 'Input is not an object' }],
297
- warnings: [],
298
- },
334
+ validation: { valid: false, errors: [{ type: 'error', message: 'Input is not an object' }], warnings: [] },
299
335
  };
300
336
  }
301
337
  const obj = json;
302
338
  if (typeof obj.name !== 'string') {
303
339
  return {
304
340
  roadmap: null,
305
- validation: {
306
- valid: false,
307
- errors: [{ type: 'error', message: 'Missing required field: name' }],
308
- warnings: [],
309
- },
341
+ validation: { valid: false, errors: [{ type: 'error', message: 'Missing required field: name' }], warnings: [] },
310
342
  };
311
343
  }
312
344
  if (!Array.isArray(obj.sprints)) {
313
345
  return {
314
346
  roadmap: null,
315
- validation: {
316
- valid: false,
317
- errors: [{ type: 'error', message: 'Missing required field: sprints (must be an array)' }],
318
- warnings: [],
319
- },
347
+ validation: { valid: false, errors: [{ type: 'error', message: 'Missing required field: sprints (must be an array)' }], warnings: [] },
320
348
  };
321
349
  }
322
350
  if (!Array.isArray(obj.phases)) {
323
351
  return {
324
352
  roadmap: null,
325
- validation: {
326
- valid: false,
327
- errors: [{ type: 'error', message: 'Missing required field: phases (must be an array)' }],
328
- warnings: [],
329
- },
353
+ validation: { valid: false, errors: [{ type: 'error', message: 'Missing required field: phases (must be an array)' }], warnings: [] },
330
354
  };
331
355
  }
332
- // Cast — validateRoadmap will catch structural issues in sprint/ticket fields
333
356
  const roadmap = obj;
334
357
  const validation = validateRoadmap(roadmap);
335
358
  return { roadmap: validation.valid ? roadmap : null, validation };
@@ -409,6 +432,40 @@ export function formatStrategicContext(roadmap, currentSprint) {
409
432
  if (dependents.length > 0) {
410
433
  lines.push(`Feeds into: ${dependents.join(', ')}`);
411
434
  }
435
+ // Next planned sprint (dependency-resolved) — see GH #290
436
+ const next = findNextPlannedSprint(roadmap, currentSprint);
437
+ if (next) {
438
+ const blockers = (next.depends_on ?? [])
439
+ .filter(d => {
440
+ const dep = roadmap.sprints.find(s => s.id === d);
441
+ return !dep || dep.status !== 'complete';
442
+ });
443
+ const status = blockers.length === 0
444
+ ? 'ready'
445
+ : `blocked by ${blockers.map(b => `S${b}`).join(', ')}`;
446
+ lines.push(`Next: S${next.id}: ${next.theme} (${status})`);
447
+ }
412
448
  return lines.join('\n');
413
449
  }
450
+ /** Find the next planned sprint after currentSprint.
451
+ * Prefers a sprint with all dependencies satisfied (status:complete);
452
+ * falls back to the lowest-id non-complete sprint when nothing is unblocked.
453
+ * Returns null if no candidate found.
454
+ */
455
+ export function findNextPlannedSprint(roadmap, currentSprint) {
456
+ const candidates = roadmap.sprints
457
+ .filter(s => {
458
+ const status = s.status;
459
+ return status !== 'complete' && s.id > currentSprint;
460
+ })
461
+ .sort((a, b) => a.id - b.id);
462
+ if (candidates.length === 0)
463
+ return null;
464
+ const completedIds = new Set(roadmap.sprints
465
+ .filter(s => s.status === 'complete')
466
+ .map(s => s.id));
467
+ // Prefer the lowest-id candidate whose dependencies are all complete
468
+ const ready = candidates.find(s => (s.depends_on ?? []).every(d => completedIds.has(d)));
469
+ return ready ?? candidates[0];
470
+ }
414
471
  //# sourceMappingURL=roadmap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../../src/core/roadmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"roadmap.js","sourceRoot":"","sources":["../../src/core/roadmap.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,16 @@
1
1
  import type { VisionDocument } from './analyzers/types.js';
2
2
  export declare function loadVision(cwd?: string): VisionDocument | null;
3
3
  export declare function saveVision(vision: VisionDocument, cwd?: string): void;
4
+ /** Render the vision as a tracked Markdown document.
5
+ * Output is intended to live alongside the project (e.g. docs/vision.md)
6
+ * so collaborators and agents have a tracked source of truth — see GH #305. */
7
+ export declare function renderVisionMarkdown(vision: VisionDocument): string;
8
+ /** Write the vision to a Markdown file at the given cwd-relative path.
9
+ * Creates parent directories as needed. Refuses paths that resolve outside
10
+ * the project root (absolute paths or `..` traversal) unless
11
+ * SLOPE_VISION_MD_ALLOW_ABS=1 is set — guards against accidental
12
+ * /etc/passwd-style escapes via --write-md=<path>. */
13
+ export declare function writeVisionMarkdown(vision: VisionDocument, mdPath: string, cwd?: string): string;
4
14
  /** Create a new vision document with timestamps. Validates, saves, and returns it. */
5
15
  export declare function createVision(fields: {
6
16
  purpose: string;
@@ -1 +1 @@
1
- {"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/core/vision.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS9D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAQrE;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAiB/B;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAY3H;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAqCxD"}
1
+ {"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/core/vision.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS9D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAQrE;AAED;;gFAEgF;AAChF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CA4CnE;AAED;;;;uDAIuD;AACvD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAmBhG;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAiB/B;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAY3H;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAqCxD"}