@slope-dev/slope 1.57.2 → 1.58.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 (209) hide show
  1. package/dist/cli/atomic-write.d.ts.map +1 -1
  2. package/dist/cli/atomic-write.js +12 -3
  3. package/dist/cli/atomic-write.js.map +1 -1
  4. package/dist/cli/commands/auto-card.d.ts.map +1 -1
  5. package/dist/cli/commands/auto-card.js +27 -7
  6. package/dist/cli/commands/auto-card.js.map +1 -1
  7. package/dist/cli/commands/commit-ready.d.ts.map +1 -1
  8. package/dist/cli/commands/commit-ready.js +19 -33
  9. package/dist/cli/commands/commit-ready.js.map +1 -1
  10. package/dist/cli/commands/enrich.js +4 -4
  11. package/dist/cli/commands/enrich.js.map +1 -1
  12. package/dist/cli/commands/guard.d.ts.map +1 -1
  13. package/dist/cli/commands/guard.js +2 -1
  14. package/dist/cli/commands/guard.js.map +1 -1
  15. package/dist/cli/commands/issue.d.ts +2 -0
  16. package/dist/cli/commands/issue.d.ts.map +1 -0
  17. package/dist/cli/commands/issue.js +548 -0
  18. package/dist/cli/commands/issue.js.map +1 -0
  19. package/dist/cli/commands/map.d.ts.map +1 -1
  20. package/dist/cli/commands/map.js +127 -19
  21. package/dist/cli/commands/map.js.map +1 -1
  22. package/dist/cli/commands/pr.d.ts +1 -1
  23. package/dist/cli/commands/pr.d.ts.map +1 -1
  24. package/dist/cli/commands/pr.js +19 -7
  25. package/dist/cli/commands/pr.js.map +1 -1
  26. package/dist/cli/commands/resume.d.ts +2 -0
  27. package/dist/cli/commands/resume.d.ts.map +1 -0
  28. package/dist/cli/commands/resume.js +5 -0
  29. package/dist/cli/commands/resume.js.map +1 -0
  30. package/dist/cli/commands/retro.d.ts +2 -1
  31. package/dist/cli/commands/retro.d.ts.map +1 -1
  32. package/dist/cli/commands/retro.js +243 -4
  33. package/dist/cli/commands/retro.js.map +1 -1
  34. package/dist/cli/commands/review.d.ts +1 -1
  35. package/dist/cli/commands/review.d.ts.map +1 -1
  36. package/dist/cli/commands/review.js +13 -5
  37. package/dist/cli/commands/review.js.map +1 -1
  38. package/dist/cli/commands/session.d.ts.map +1 -1
  39. package/dist/cli/commands/session.js +17 -0
  40. package/dist/cli/commands/session.js.map +1 -1
  41. package/dist/cli/commands/sprint.d.ts.map +1 -1
  42. package/dist/cli/commands/sprint.js +302 -59
  43. package/dist/cli/commands/sprint.js.map +1 -1
  44. package/dist/cli/commands/status.d.ts.map +1 -1
  45. package/dist/cli/commands/status.js +18 -9
  46. package/dist/cli/commands/status.js.map +1 -1
  47. package/dist/cli/commands/store.d.ts.map +1 -1
  48. package/dist/cli/commands/store.js +10 -0
  49. package/dist/cli/commands/store.js.map +1 -1
  50. package/dist/cli/commands/validate.d.ts.map +1 -1
  51. package/dist/cli/commands/validate.js +32 -3
  52. package/dist/cli/commands/validate.js.map +1 -1
  53. package/dist/cli/commands/version.d.ts.map +1 -1
  54. package/dist/cli/commands/version.js +15 -8
  55. package/dist/cli/commands/version.js.map +1 -1
  56. package/dist/cli/commands/worktree.d.ts.map +1 -1
  57. package/dist/cli/commands/worktree.js +9 -7
  58. package/dist/cli/commands/worktree.js.map +1 -1
  59. package/dist/cli/guards/branch-before-commit.d.ts.map +1 -1
  60. package/dist/cli/guards/branch-before-commit.js +2 -1
  61. package/dist/cli/guards/branch-before-commit.js.map +1 -1
  62. package/dist/cli/guards/claim-required.d.ts.map +1 -1
  63. package/dist/cli/guards/claim-required.js +26 -15
  64. package/dist/cli/guards/claim-required.js.map +1 -1
  65. package/dist/cli/guards/commit-nudge.d.ts.map +1 -1
  66. package/dist/cli/guards/commit-nudge.js +6 -5
  67. package/dist/cli/guards/commit-nudge.js.map +1 -1
  68. package/dist/cli/guards/compaction.d.ts.map +1 -1
  69. package/dist/cli/guards/compaction.js +6 -5
  70. package/dist/cli/guards/compaction.js.map +1 -1
  71. package/dist/cli/guards/docs.js +3 -3
  72. package/dist/cli/guards/docs.js.map +1 -1
  73. package/dist/cli/guards/explore.d.ts.map +1 -1
  74. package/dist/cli/guards/explore.js +6 -2
  75. package/dist/cli/guards/explore.js.map +1 -1
  76. package/dist/cli/guards/git-utils.js +3 -3
  77. package/dist/cli/guards/git-utils.js.map +1 -1
  78. package/dist/cli/guards/hazard.d.ts.map +1 -1
  79. package/dist/cli/guards/hazard.js +7 -2
  80. package/dist/cli/guards/hazard.js.map +1 -1
  81. package/dist/cli/guards/post-hole-enforcement.d.ts.map +1 -1
  82. package/dist/cli/guards/post-hole-enforcement.js +22 -2
  83. package/dist/cli/guards/post-hole-enforcement.js.map +1 -1
  84. package/dist/cli/guards/post-push.d.ts.map +1 -1
  85. package/dist/cli/guards/post-push.js +15 -10
  86. package/dist/cli/guards/post-push.js.map +1 -1
  87. package/dist/cli/guards/pr-review.d.ts.map +1 -1
  88. package/dist/cli/guards/pr-review.js +1 -0
  89. package/dist/cli/guards/pr-review.js.map +1 -1
  90. package/dist/cli/guards/push-nudge.d.ts.map +1 -1
  91. package/dist/cli/guards/push-nudge.js +4 -3
  92. package/dist/cli/guards/push-nudge.js.map +1 -1
  93. package/dist/cli/guards/scope-drift.js +2 -0
  94. package/dist/cli/guards/scope-drift.js.map +1 -1
  95. package/dist/cli/guards/sprint-completion.d.ts.map +1 -1
  96. package/dist/cli/guards/sprint-completion.js +222 -21
  97. package/dist/cli/guards/sprint-completion.js.map +1 -1
  98. package/dist/cli/guards/stop-check.d.ts.map +1 -1
  99. package/dist/cli/guards/stop-check.js +14 -12
  100. package/dist/cli/guards/stop-check.js.map +1 -1
  101. package/dist/cli/guards/version-check.d.ts.map +1 -1
  102. package/dist/cli/guards/version-check.js +3 -1
  103. package/dist/cli/guards/version-check.js.map +1 -1
  104. package/dist/cli/guards/workflow-step-gate.d.ts.map +1 -1
  105. package/dist/cli/guards/workflow-step-gate.js +14 -3
  106. package/dist/cli/guards/workflow-step-gate.js.map +1 -1
  107. package/dist/cli/guards/worktree-check.d.ts.map +1 -1
  108. package/dist/cli/guards/worktree-check.js +138 -8
  109. package/dist/cli/guards/worktree-check.js.map +1 -1
  110. package/dist/cli/guards/worktree-merge.d.ts.map +1 -1
  111. package/dist/cli/guards/worktree-merge.js +3 -2
  112. package/dist/cli/guards/worktree-merge.js.map +1 -1
  113. package/dist/cli/guards/worktree-reuse.d.ts.map +1 -1
  114. package/dist/cli/guards/worktree-reuse.js +41 -12
  115. package/dist/cli/guards/worktree-reuse.js.map +1 -1
  116. package/dist/cli/guards/worktree-self-remove.d.ts.map +1 -1
  117. package/dist/cli/guards/worktree-self-remove.js +3 -2
  118. package/dist/cli/guards/worktree-self-remove.js.map +1 -1
  119. package/dist/cli/index.js +24 -1
  120. package/dist/cli/index.js.map +1 -1
  121. package/dist/cli/loop/slope-executor.d.ts.map +1 -1
  122. package/dist/cli/loop/slope-executor.js +4 -2
  123. package/dist/cli/loop/slope-executor.js.map +1 -1
  124. package/dist/cli/pr-closeout.d.ts +28 -0
  125. package/dist/cli/pr-closeout.d.ts.map +1 -1
  126. package/dist/cli/pr-closeout.js +297 -8
  127. package/dist/cli/pr-closeout.js.map +1 -1
  128. package/dist/cli/pr-review-state.d.ts +15 -0
  129. package/dist/cli/pr-review-state.d.ts.map +1 -1
  130. package/dist/cli/pr-review-state.js +68 -0
  131. package/dist/cli/pr-review-state.js.map +1 -1
  132. package/dist/cli/registry.d.ts.map +1 -1
  133. package/dist/cli/registry.js +52 -0
  134. package/dist/cli/registry.js.map +1 -1
  135. package/dist/cli/source-runtime.d.ts +9 -0
  136. package/dist/cli/source-runtime.d.ts.map +1 -0
  137. package/dist/cli/source-runtime.js +50 -0
  138. package/dist/cli/source-runtime.js.map +1 -0
  139. package/dist/cli/sprint-resume.d.ts +55 -0
  140. package/dist/cli/sprint-resume.d.ts.map +1 -0
  141. package/dist/cli/sprint-resume.js +213 -0
  142. package/dist/cli/sprint-resume.js.map +1 -0
  143. package/dist/cli/template-generator.d.ts.map +1 -1
  144. package/dist/cli/template-generator.js +10 -2
  145. package/dist/cli/template-generator.js.map +1 -1
  146. package/dist/cli/workflow-resync.d.ts +37 -0
  147. package/dist/cli/workflow-resync.d.ts.map +1 -0
  148. package/dist/cli/workflow-resync.js +273 -0
  149. package/dist/cli/workflow-resync.js.map +1 -0
  150. package/dist/core/analyzers/walk.d.ts.map +1 -1
  151. package/dist/core/analyzers/walk.js +4 -1
  152. package/dist/core/analyzers/walk.js.map +1 -1
  153. package/dist/core/briefing.d.ts.map +1 -1
  154. package/dist/core/briefing.js +17 -5
  155. package/dist/core/briefing.js.map +1 -1
  156. package/dist/core/flows.d.ts.map +1 -1
  157. package/dist/core/flows.js +2 -2
  158. package/dist/core/flows.js.map +1 -1
  159. package/dist/core/formatter.d.ts.map +1 -1
  160. package/dist/core/formatter.js +3 -48
  161. package/dist/core/formatter.js.map +1 -1
  162. package/dist/core/harness.d.ts +1 -1
  163. package/dist/core/harness.d.ts.map +1 -1
  164. package/dist/core/harness.js +7 -5
  165. package/dist/core/harness.js.map +1 -1
  166. package/dist/core/imports.d.ts.map +1 -1
  167. package/dist/core/imports.js +7 -4
  168. package/dist/core/imports.js.map +1 -1
  169. package/dist/core/index.d.ts +5 -1
  170. package/dist/core/index.d.ts.map +1 -1
  171. package/dist/core/index.js +5 -1
  172. package/dist/core/index.js.map +1 -1
  173. package/dist/core/interview-engine.d.ts.map +1 -1
  174. package/dist/core/interview-engine.js +3 -1
  175. package/dist/core/interview-engine.js.map +1 -1
  176. package/dist/core/issue-scout.d.ts +70 -0
  177. package/dist/core/issue-scout.d.ts.map +1 -0
  178. package/dist/core/issue-scout.js +481 -0
  179. package/dist/core/issue-scout.js.map +1 -0
  180. package/dist/core/loader.d.ts +5 -1
  181. package/dist/core/loader.d.ts.map +1 -1
  182. package/dist/core/loader.js +102 -4
  183. package/dist/core/loader.js.map +1 -1
  184. package/dist/core/memory-types.d.ts +1 -1
  185. package/dist/core/memory-types.d.ts.map +1 -1
  186. package/dist/core/memory-validation.js +1 -1
  187. package/dist/core/memory-validation.js.map +1 -1
  188. package/dist/core/memory.d.ts.map +1 -1
  189. package/dist/core/memory.js +5 -0
  190. package/dist/core/memory.js.map +1 -1
  191. package/dist/core/prep.d.ts.map +1 -1
  192. package/dist/core/prep.js +7 -4
  193. package/dist/core/prep.js.map +1 -1
  194. package/dist/core/process.d.ts +3 -0
  195. package/dist/core/process.d.ts.map +1 -0
  196. package/dist/core/process.js +3 -0
  197. package/dist/core/process.js.map +1 -0
  198. package/dist/core/retro.d.ts +49 -0
  199. package/dist/core/retro.d.ts.map +1 -0
  200. package/dist/core/retro.js +112 -0
  201. package/dist/core/retro.js.map +1 -0
  202. package/dist/core/vision.js +5 -5
  203. package/dist/core/vision.js.map +1 -1
  204. package/dist/mcp/index.d.ts.map +1 -1
  205. package/dist/mcp/index.js +74 -33
  206. package/dist/mcp/index.js.map +1 -1
  207. package/package.json +3 -3
  208. package/templates/codex/plugins/slope/.codex-plugin/plugin.json +4 -3
  209. package/templates/codex/plugins/slope/skills/slope-retro/SKILL.md +33 -0
@@ -0,0 +1,548 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, } from 'node:fs';
3
+ import { dirname, extname, join, relative, resolve } from 'node:path';
4
+ import { buildIssueCandidates, dedupeCandidates, formatIssueBody, formatIssueScoutComment, mergeIssueScoutState, parseIssueScoutState, renderIssueScoutDigest, } from '../../core/index.js';
5
+ const DEFAULT_SOURCES = [
6
+ '.slope/common-issues.json',
7
+ '.slope/transcripts',
8
+ '.slope/review-findings.json',
9
+ '.slope/guard-metrics.jsonl',
10
+ ];
11
+ const DEFAULT_STATE_PATH = '.slope/issue-scout.json';
12
+ export async function issueCommand(args) {
13
+ const subcommand = args[0];
14
+ if (!subcommand || args.includes('--help') || args.includes('-h')) {
15
+ printUsage();
16
+ return;
17
+ }
18
+ if (subcommand === 'scout') {
19
+ await runScoutCommand(args.slice(1));
20
+ return;
21
+ }
22
+ if (subcommand === 'triage') {
23
+ await runTriageCommand(args.slice(1));
24
+ return;
25
+ }
26
+ throw new Error(`Unknown issue subcommand: ${subcommand}`);
27
+ }
28
+ function parseArgs(args) {
29
+ const flags = {};
30
+ const repeated = {};
31
+ const positionals = [];
32
+ for (let i = 0; i < args.length; i++) {
33
+ const arg = args[i];
34
+ if (!arg.startsWith('--')) {
35
+ positionals.push(arg);
36
+ continue;
37
+ }
38
+ const eq = arg.indexOf('=');
39
+ let key;
40
+ let value;
41
+ if (eq >= 0) {
42
+ key = arg.slice(2, eq);
43
+ value = arg.slice(eq + 1);
44
+ }
45
+ else {
46
+ key = arg.slice(2);
47
+ const next = args[i + 1];
48
+ if (next && !next.startsWith('--')) {
49
+ value = next;
50
+ i++;
51
+ }
52
+ else {
53
+ value = 'true';
54
+ }
55
+ }
56
+ flags[key] = value;
57
+ if (!repeated[key])
58
+ repeated[key] = [];
59
+ repeated[key].push(value);
60
+ }
61
+ return { flags, repeated, positionals };
62
+ }
63
+ async function runScoutCommand(args) {
64
+ const parsed = parseArgs(args);
65
+ const cwd = process.cwd();
66
+ const repo = parsed.flags.repo;
67
+ const create = parsed.flags.create === 'true';
68
+ const dryRun = parsed.flags['dry-run'] === 'true' || !create;
69
+ const json = parsed.flags.json === 'true';
70
+ const output = parsed.flags.output;
71
+ const statePath = parsed.flags['state-path'] ?? DEFAULT_STATE_PATH;
72
+ const commentDuplicates = parsed.flags['comment-duplicates'] === 'true';
73
+ if (create && parsed.flags['dry-run'] === 'true') {
74
+ throw new Error('Use either --dry-run or --create, not both.');
75
+ }
76
+ if (create && !repo) {
77
+ throw new Error('--create requires --repo=<owner/repo>.');
78
+ }
79
+ const sources = parsed.repeated.source?.length ? parsed.repeated.source : DEFAULT_SOURCES;
80
+ const run = await buildScoutRun({
81
+ cwd,
82
+ repo,
83
+ sources,
84
+ fetchExisting: Boolean(repo),
85
+ });
86
+ let actions = [];
87
+ if (create) {
88
+ actions = createOrCommentIssues(run.candidates, {
89
+ repo: repo,
90
+ cwd,
91
+ statePath: resolve(cwd, statePath),
92
+ commentDuplicates,
93
+ });
94
+ }
95
+ const payload = {
96
+ mode: create ? 'create' : 'dry-run',
97
+ repo,
98
+ sources: run.sources,
99
+ evidence_count: run.evidenceCount,
100
+ candidate_count: run.candidates.length,
101
+ candidates: run.candidates.map(candidate => serializeCandidate(candidate)),
102
+ actions,
103
+ };
104
+ if (output) {
105
+ writeJson(resolve(cwd, output), payload);
106
+ }
107
+ if (json) {
108
+ console.log(JSON.stringify(payload, null, 2));
109
+ return;
110
+ }
111
+ printScoutSummary(run, dryRun, actions);
112
+ }
113
+ async function runTriageCommand(args) {
114
+ const parsed = parseArgs(args);
115
+ const cwd = process.cwd();
116
+ const repo = parsed.flags.repo;
117
+ const output = parsed.flags.output;
118
+ const json = parsed.flags.json === 'true';
119
+ const sources = parsed.repeated.source?.length ? parsed.repeated.source : DEFAULT_SOURCES;
120
+ const run = await buildScoutRun({
121
+ cwd,
122
+ repo,
123
+ sources,
124
+ fetchExisting: Boolean(repo),
125
+ });
126
+ const digest = renderIssueScoutDigest(run.candidates, { repo });
127
+ if (output) {
128
+ writeText(resolve(cwd, output), digest);
129
+ }
130
+ if (json) {
131
+ console.log(JSON.stringify({
132
+ repo,
133
+ sources: run.sources,
134
+ evidence_count: run.evidenceCount,
135
+ candidate_count: run.candidates.length,
136
+ digest,
137
+ candidates: run.candidates.map(candidate => serializeCandidate(candidate)),
138
+ }, null, 2));
139
+ return;
140
+ }
141
+ console.log(digest);
142
+ }
143
+ async function buildScoutRun(options) {
144
+ const sourcePaths = options.sources.map(source => resolve(options.cwd, source));
145
+ const evidence = readIssueScoutSources(options.cwd, sourcePaths);
146
+ const candidates = buildIssueCandidates(evidence);
147
+ const existing = options.fetchExisting && options.repo ? fetchExistingIssues(options.repo) : [];
148
+ const deduped = existing.length > 0 ? dedupeCandidates(candidates, existing) : dedupeCandidates(candidates, []);
149
+ return {
150
+ repo: options.repo,
151
+ sources: sourcePaths
152
+ .filter(path => existsSync(path))
153
+ .map(path => relative(options.cwd, path)),
154
+ evidenceCount: evidence.length,
155
+ candidates: deduped,
156
+ };
157
+ }
158
+ function readIssueScoutSources(cwd, sourcePaths) {
159
+ const evidence = [];
160
+ for (const sourcePath of sourcePaths) {
161
+ if (!existsSync(sourcePath))
162
+ continue;
163
+ const stat = statSync(sourcePath);
164
+ if (stat.isDirectory()) {
165
+ for (const file of walkFiles(sourcePath)) {
166
+ evidence.push(...readIssueScoutFile(cwd, file));
167
+ }
168
+ }
169
+ else if (stat.isFile()) {
170
+ evidence.push(...readIssueScoutFile(cwd, sourcePath));
171
+ }
172
+ }
173
+ return evidence;
174
+ }
175
+ function walkFiles(dir) {
176
+ const files = [];
177
+ for (const entry of readdirSync(dir).sort()) {
178
+ const path = join(dir, entry);
179
+ const stat = statSync(path);
180
+ if (stat.isDirectory()) {
181
+ files.push(...walkFiles(path));
182
+ }
183
+ else if (stat.isFile()) {
184
+ files.push(path);
185
+ }
186
+ }
187
+ return files;
188
+ }
189
+ function readIssueScoutFile(cwd, filePath) {
190
+ const ext = extname(filePath).toLowerCase();
191
+ if (!['.json', '.jsonl', '.md', '.txt', '.log'].includes(ext))
192
+ return [];
193
+ const raw = readFileSync(filePath, 'utf8');
194
+ const sourcePath = relative(cwd, filePath);
195
+ if (ext === '.json') {
196
+ try {
197
+ return readJsonEvidence(sourcePath, JSON.parse(raw));
198
+ }
199
+ catch {
200
+ return [makeEvidence(sourcePath, raw)];
201
+ }
202
+ }
203
+ if (ext === '.jsonl') {
204
+ const items = [];
205
+ for (const line of raw.split(/\r?\n/)) {
206
+ if (!line.trim())
207
+ continue;
208
+ try {
209
+ items.push(makeEvidence(sourcePath, summarizeObject(JSON.parse(line))));
210
+ }
211
+ catch {
212
+ items.push(makeEvidence(sourcePath, line));
213
+ }
214
+ }
215
+ return items;
216
+ }
217
+ return splitTextEvidence(sourcePath, raw);
218
+ }
219
+ function readJsonEvidence(sourcePath, value) {
220
+ if (isScorecardJson(value))
221
+ return [];
222
+ const records = candidateJsonRecords(value);
223
+ if (records.length === 0)
224
+ return [];
225
+ return records.map(record => {
226
+ const quote = summarizeObject(record);
227
+ return makeEvidence(sourcePath, quote, {
228
+ sprint: extractSprint(quote, record),
229
+ command: extractCommand(quote),
230
+ details: summarizeDetails(record),
231
+ });
232
+ });
233
+ }
234
+ function candidateJsonRecords(value) {
235
+ if (Array.isArray(value)) {
236
+ return value.filter(isRecord);
237
+ }
238
+ if (!isRecord(value))
239
+ return [];
240
+ if (isScorecardJson(value))
241
+ return [];
242
+ const keys = ['recurring_patterns', 'patterns', 'common_issues', 'issues', 'findings', 'events'];
243
+ for (const key of keys) {
244
+ const nested = value[key];
245
+ if (Array.isArray(nested))
246
+ return nested.filter(isRecord);
247
+ }
248
+ return [value];
249
+ }
250
+ function summarizeObject(value) {
251
+ if (!isRecord(value))
252
+ return String(value);
253
+ const fields = [
254
+ 'title',
255
+ 'name',
256
+ 'summary',
257
+ 'description',
258
+ 'pattern',
259
+ 'issue',
260
+ 'observed',
261
+ 'expected',
262
+ 'evidence',
263
+ 'impact',
264
+ 'workaround',
265
+ 'notes',
266
+ 'command',
267
+ ];
268
+ const parts = [];
269
+ for (const field of fields) {
270
+ const item = value[field];
271
+ if (typeof item === 'string')
272
+ parts.push(item);
273
+ else if (Array.isArray(item))
274
+ parts.push(item.map(entry => typeof entry === 'string' ? entry : JSON.stringify(entry)).join(' '));
275
+ else if (isRecord(item))
276
+ parts.push(JSON.stringify(item));
277
+ }
278
+ return parts.length > 0 ? parts.join('\n') : JSON.stringify(value);
279
+ }
280
+ function summarizeDetails(value) {
281
+ const details = {};
282
+ for (const key of ['id', 'category', 'severity', 'count', 'frequency', 'first_seen', 'last_seen']) {
283
+ if (value[key] !== undefined)
284
+ details[key] = value[key];
285
+ }
286
+ return details;
287
+ }
288
+ function splitTextEvidence(sourcePath, raw) {
289
+ const heading = /^#\s+(.+)$/m.exec(raw)?.[1]?.trim();
290
+ const chunks = raw
291
+ .split(/\n\s*\n/)
292
+ .map(chunk => chunk.trim())
293
+ .filter(Boolean);
294
+ if (chunks.length === 0)
295
+ return [];
296
+ return chunks.map(chunk => makeEvidence(sourcePath, heading && !chunk.includes(heading)
297
+ ? `${heading}\n${chunk}`
298
+ : chunk));
299
+ }
300
+ function makeEvidence(sourcePath, quote, overrides = {}) {
301
+ const compact = quote
302
+ .replace(/[ \t]+/g, ' ')
303
+ .replace(/\n{3,}/g, '\n\n')
304
+ .trim();
305
+ return {
306
+ source: sourcePath,
307
+ sourcePath,
308
+ sprint: overrides.sprint ?? extractSprint(compact),
309
+ command: overrides.command ?? extractCommand(compact),
310
+ quote: compact,
311
+ details: overrides.details,
312
+ };
313
+ }
314
+ function extractSprint(text, value) {
315
+ const raw = value?.sprint ?? value?.sprint_number ?? value?.sprintNumber;
316
+ if (typeof raw === 'number')
317
+ return raw;
318
+ if (typeof raw === 'string') {
319
+ const parsed = Number(raw.replace(/^S/i, ''));
320
+ if (Number.isFinite(parsed))
321
+ return parsed;
322
+ }
323
+ const match = /\bS(\d+(?:\.\d+)?)\b/i.exec(text);
324
+ if (!match)
325
+ return undefined;
326
+ const sprint = Number(match[1]);
327
+ return Number.isFinite(sprint) ? sprint : undefined;
328
+ }
329
+ function extractCommand(text) {
330
+ const backtick = /`(slope\s+[^`]+)`/.exec(text);
331
+ if (backtick)
332
+ return backtick[1].trim();
333
+ const inline = /\bslope\s+[a-z][\w-]*(?:\s+[a-z][\w-]*)?(?:\s+--?[a-z][\w-]*(?:=[^\s,.;)]+)?)?/.exec(text);
334
+ return inline ? inline[0].trim() : undefined;
335
+ }
336
+ function isRecord(value) {
337
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
338
+ }
339
+ function isScorecardJson(value) {
340
+ return isRecord(value)
341
+ && Array.isArray(value.shots)
342
+ && (value.sprint_number !== undefined || value.sprint !== undefined);
343
+ }
344
+ function serializeCandidate(candidate) {
345
+ return {
346
+ title: candidate.title,
347
+ kind: candidate.kind,
348
+ confidence: candidate.confidence,
349
+ labels: candidate.labels,
350
+ fingerprint: candidate.fingerprint,
351
+ summary: candidate.summary,
352
+ evidence: candidate.evidence,
353
+ dedupe: candidate.dedupe,
354
+ body: formatIssueBody(candidate),
355
+ };
356
+ }
357
+ function fetchExistingIssues(repo) {
358
+ const result = runGh([
359
+ 'issue',
360
+ 'list',
361
+ '--repo',
362
+ repo,
363
+ '--state',
364
+ 'all',
365
+ '--limit',
366
+ '200',
367
+ '--json',
368
+ 'number,title,body,state,url,labels',
369
+ ]);
370
+ const parsed = JSON.parse(result || '[]');
371
+ return parsed.map(item => ({
372
+ number: Number(item.number),
373
+ title: String(item.title ?? ''),
374
+ body: typeof item.body === 'string' ? item.body : undefined,
375
+ state: typeof item.state === 'string' ? item.state : undefined,
376
+ url: typeof item.url === 'string' ? item.url : undefined,
377
+ labels: Array.isArray(item.labels)
378
+ ? item.labels.map(label => isRecord(label) ? String(label.name ?? '') : String(label)).filter(Boolean)
379
+ : [],
380
+ })).filter(issue => Number.isFinite(issue.number) && issue.title);
381
+ }
382
+ function createOrCommentIssues(candidates, opts) {
383
+ const state = readIssueScoutState(opts.statePath);
384
+ const stateByFingerprint = new Map(state.records.map(record => [record.fingerprint, record]));
385
+ const actions = [];
386
+ const records = [];
387
+ for (const candidate of candidates) {
388
+ const existingRecord = stateByFingerprint.get(candidate.fingerprint);
389
+ if (existingRecord) {
390
+ actions.push({
391
+ title: candidate.title,
392
+ fingerprint: candidate.fingerprint,
393
+ action: existingRecord.status,
394
+ issueNumber: existingRecord.issueNumber,
395
+ issueUrl: existingRecord.issueUrl,
396
+ });
397
+ continue;
398
+ }
399
+ const matched = candidate.dedupe?.matchedIssue;
400
+ if (candidate.dedupe?.status === 'duplicate' && matched) {
401
+ if (opts.commentDuplicates) {
402
+ runGh([
403
+ 'issue',
404
+ 'comment',
405
+ String(matched.number),
406
+ '--repo',
407
+ opts.repo,
408
+ '--body',
409
+ formatIssueScoutComment(candidate),
410
+ ]);
411
+ }
412
+ const action = {
413
+ title: candidate.title,
414
+ fingerprint: candidate.fingerprint,
415
+ action: opts.commentDuplicates ? 'commented' : 'deduped',
416
+ issueNumber: matched.number,
417
+ issueUrl: matched.url,
418
+ };
419
+ actions.push(action);
420
+ records.push(recordFromAction(candidate, action));
421
+ continue;
422
+ }
423
+ const issueUrl = runGh([
424
+ 'issue',
425
+ 'create',
426
+ '--repo',
427
+ opts.repo,
428
+ '--title',
429
+ candidate.title,
430
+ '--body',
431
+ formatIssueBody(candidate),
432
+ ...candidate.labels.flatMap(label => ['--label', label]),
433
+ ]).trim();
434
+ const issueNumber = issueNumberFromUrl(issueUrl);
435
+ const action = {
436
+ title: candidate.title,
437
+ fingerprint: candidate.fingerprint,
438
+ action: 'created',
439
+ issueNumber,
440
+ issueUrl,
441
+ };
442
+ actions.push(action);
443
+ records.push(recordFromAction(candidate, action));
444
+ }
445
+ if (records.length > 0) {
446
+ writeIssueScoutState(opts.statePath, mergeIssueScoutState(state, records));
447
+ }
448
+ return actions;
449
+ }
450
+ function readIssueScoutState(path) {
451
+ if (!existsSync(path))
452
+ return { version: 1, records: [] };
453
+ return parseIssueScoutState(readFileSync(path, 'utf8'));
454
+ }
455
+ function writeIssueScoutState(path, state) {
456
+ mkdirSync(dirname(path), { recursive: true });
457
+ writeFileSync(path, `${JSON.stringify(state, null, 2)}\n`);
458
+ }
459
+ function recordFromAction(candidate, action) {
460
+ return {
461
+ fingerprint: candidate.fingerprint,
462
+ title: candidate.title,
463
+ issueNumber: action.issueNumber,
464
+ issueUrl: action.issueUrl,
465
+ status: action.action,
466
+ updatedAt: new Date().toISOString(),
467
+ sourcePaths: Array.from(new Set(candidate.evidence.map(item => item.sourcePath).filter(Boolean))).sort(),
468
+ };
469
+ }
470
+ function issueNumberFromUrl(url) {
471
+ const match = /\/issues\/(\d+)/.exec(url);
472
+ return match ? Number(match[1]) : undefined;
473
+ }
474
+ function runGh(args) {
475
+ const result = spawnSync('gh', args, {
476
+ encoding: 'utf8',
477
+ stdio: ['ignore', 'pipe', 'pipe'],
478
+ });
479
+ if (result.error)
480
+ throw result.error;
481
+ if ((result.status ?? 0) !== 0) {
482
+ throw new Error(`gh ${args.join(' ')} failed: ${(result.stderr ?? '').trim()}`);
483
+ }
484
+ return result.stdout ?? '';
485
+ }
486
+ function writeJson(path, value) {
487
+ mkdirSync(dirname(path), { recursive: true });
488
+ writeFileSync(path, `${JSON.stringify(value, null, 2)}\n`);
489
+ }
490
+ function writeText(path, value) {
491
+ mkdirSync(dirname(path), { recursive: true });
492
+ writeFileSync(path, value);
493
+ }
494
+ function printScoutSummary(run, dryRun, actions) {
495
+ console.log('\nSLOPE Issue Scout\n');
496
+ if (run.repo)
497
+ console.log(` Repository: ${run.repo}`);
498
+ console.log(` Sources: ${run.sources.length > 0 ? run.sources.join(', ') : 'none found'}`);
499
+ console.log(` Evidence items: ${run.evidenceCount}`);
500
+ console.log(` Candidates: ${run.candidates.length}`);
501
+ if (dryRun)
502
+ console.log(' Mode: dry-run');
503
+ if (run.candidates.length === 0) {
504
+ console.log('\n No SLOPE-driven issue candidates found.\n');
505
+ return;
506
+ }
507
+ console.log('\n Candidate issues:');
508
+ for (const candidate of run.candidates) {
509
+ const dedupe = candidate.dedupe;
510
+ const marker = dedupe?.status === 'duplicate' ? 'duplicate' : 'new';
511
+ const match = dedupe?.matchedIssue ? ` -> #${dedupe.matchedIssue.number}` : '';
512
+ console.log(` - [${marker}] ${candidate.title}${match}`);
513
+ console.log(` confidence=${candidate.confidence.toFixed(2)} labels=${candidate.labels.join(', ')} fingerprint=${candidate.fingerprint}`);
514
+ console.log(` evidence=${candidate.evidence.length} dedupe=${dedupe?.reason ?? 'not checked'}`);
515
+ }
516
+ if (actions.length > 0) {
517
+ console.log('\n Actions:');
518
+ for (const action of actions) {
519
+ const target = action.issueNumber ? `#${action.issueNumber}` : action.issueUrl ?? action.fingerprint;
520
+ console.log(` - ${action.action}: ${action.title} (${target})`);
521
+ }
522
+ }
523
+ console.log('');
524
+ }
525
+ function printUsage() {
526
+ console.log(`
527
+ slope issue - Detect and triage SLOPE-driven product issues from agent work
528
+
529
+ Usage:
530
+ slope issue scout [--source=<path>]... [--repo=<owner/repo>] [--dry-run] [--json]
531
+ slope issue scout --repo=<owner/repo> --create [--comment-duplicates]
532
+ slope issue triage [--source=<path>]... [--repo=<owner/repo>] [--daily-digest]
533
+
534
+ Options:
535
+ --source=<path> File or directory to scan (repeatable)
536
+ --repo=<owner/repo> GitHub repository for dedupe/create
537
+ --dry-run Print candidates without opening issues
538
+ --create Open new issues for non-duplicates
539
+ --comment-duplicates In create mode, comment on matched issues with new evidence
540
+ --output=<path> Write JSON scout output or markdown digest
541
+ --state-path=<path> Fingerprint state path (default: .slope/issue-scout.json)
542
+ --json Print machine-readable JSON
543
+
544
+ Default sources:
545
+ .slope/common-issues.json, .slope/transcripts, .slope/review-findings.json, .slope/guard-metrics.jsonl
546
+ `);
547
+ }
548
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../src/cli/commands/issue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/map.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAkpBvD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,CAgErG;AAaD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA4F9D"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/map.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA6rBvD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,CAsErG;AA6DD,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAwG9D"}