@slope-dev/slope 1.53.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 (136) 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/pr.d.ts +49 -0
  27. package/dist/cli/commands/pr.d.ts.map +1 -0
  28. package/dist/cli/commands/pr.js +214 -0
  29. package/dist/cli/commands/pr.js.map +1 -0
  30. package/dist/cli/commands/review-state.d.ts +1 -2
  31. package/dist/cli/commands/review-state.d.ts.map +1 -1
  32. package/dist/cli/commands/review-state.js +71 -25
  33. package/dist/cli/commands/review-state.js.map +1 -1
  34. package/dist/cli/commands/roadmap.d.ts.map +1 -1
  35. package/dist/cli/commands/roadmap.js +31 -4
  36. package/dist/cli/commands/roadmap.js.map +1 -1
  37. package/dist/cli/commands/sprint-plan.d.ts +21 -0
  38. package/dist/cli/commands/sprint-plan.d.ts.map +1 -0
  39. package/dist/cli/commands/sprint-plan.js +226 -0
  40. package/dist/cli/commands/sprint-plan.js.map +1 -0
  41. package/dist/cli/commands/sprint.d.ts.map +1 -1
  42. package/dist/cli/commands/sprint.js +137 -0
  43. package/dist/cli/commands/sprint.js.map +1 -1
  44. package/dist/cli/commands/ticket.d.ts +9 -0
  45. package/dist/cli/commands/ticket.d.ts.map +1 -0
  46. package/dist/cli/commands/ticket.js +168 -0
  47. package/dist/cli/commands/ticket.js.map +1 -0
  48. package/dist/cli/commands/version.d.ts.map +1 -1
  49. package/dist/cli/commands/version.js +33 -4
  50. package/dist/cli/commands/version.js.map +1 -1
  51. package/dist/cli/commands/vision.d.ts.map +1 -1
  52. package/dist/cli/commands/vision.js +14 -1
  53. package/dist/cli/commands/vision.js.map +1 -1
  54. package/dist/cli/guards/branch-before-commit.d.ts.map +1 -1
  55. package/dist/cli/guards/branch-before-commit.js +2 -1
  56. package/dist/cli/guards/branch-before-commit.js.map +1 -1
  57. package/dist/cli/guards/next-action.d.ts.map +1 -1
  58. package/dist/cli/guards/next-action.js +3 -2
  59. package/dist/cli/guards/next-action.js.map +1 -1
  60. package/dist/cli/guards/post-hole-enforcement.d.ts +18 -0
  61. package/dist/cli/guards/post-hole-enforcement.d.ts.map +1 -0
  62. package/dist/cli/guards/post-hole-enforcement.js +100 -0
  63. package/dist/cli/guards/post-hole-enforcement.js.map +1 -0
  64. package/dist/cli/guards/pr-review.d.ts +16 -1
  65. package/dist/cli/guards/pr-review.d.ts.map +1 -1
  66. package/dist/cli/guards/pr-review.js +87 -5
  67. package/dist/cli/guards/pr-review.js.map +1 -1
  68. package/dist/cli/guards/roadmap-edit-shipped.d.ts +12 -0
  69. package/dist/cli/guards/roadmap-edit-shipped.d.ts.map +1 -0
  70. package/dist/cli/guards/roadmap-edit-shipped.js +155 -0
  71. package/dist/cli/guards/roadmap-edit-shipped.js.map +1 -0
  72. package/dist/cli/index.js +40 -2
  73. package/dist/cli/index.js.map +1 -1
  74. package/dist/cli/registry.d.ts +1 -1
  75. package/dist/cli/registry.d.ts.map +1 -1
  76. package/dist/cli/registry.js +57 -1
  77. package/dist/cli/registry.js.map +1 -1
  78. package/dist/core/analyzers/git.d.ts +14 -0
  79. package/dist/core/analyzers/git.d.ts.map +1 -1
  80. package/dist/core/analyzers/git.js +47 -0
  81. package/dist/core/analyzers/git.js.map +1 -1
  82. package/dist/core/formatter.d.ts.map +1 -1
  83. package/dist/core/formatter.js +51 -2
  84. package/dist/core/formatter.js.map +1 -1
  85. package/dist/core/guard.d.ts +1 -1
  86. package/dist/core/guard.d.ts.map +1 -1
  87. package/dist/core/guard.js +16 -0
  88. package/dist/core/guard.js.map +1 -1
  89. package/dist/core/index.d.ts +3 -2
  90. package/dist/core/index.d.ts.map +1 -1
  91. package/dist/core/index.js +3 -2
  92. package/dist/core/index.js.map +1 -1
  93. package/dist/core/json-memory-backend.d.ts +23 -0
  94. package/dist/core/json-memory-backend.d.ts.map +1 -0
  95. package/dist/core/json-memory-backend.js +98 -0
  96. package/dist/core/json-memory-backend.js.map +1 -0
  97. package/dist/core/memory-backend.d.ts +30 -0
  98. package/dist/core/memory-backend.d.ts.map +1 -0
  99. package/dist/core/memory-backend.js +14 -0
  100. package/dist/core/memory-backend.js.map +1 -0
  101. package/dist/core/memory-types.d.ts +25 -0
  102. package/dist/core/memory-types.d.ts.map +1 -0
  103. package/dist/core/memory-types.js +4 -0
  104. package/dist/core/memory-types.js.map +1 -0
  105. package/dist/core/memory-validation.d.ts +4 -0
  106. package/dist/core/memory-validation.d.ts.map +1 -0
  107. package/dist/core/memory-validation.js +35 -0
  108. package/dist/core/memory-validation.js.map +1 -0
  109. package/dist/core/memory.d.ts +21 -37
  110. package/dist/core/memory.d.ts.map +1 -1
  111. package/dist/core/memory.js +97 -147
  112. package/dist/core/memory.js.map +1 -1
  113. package/dist/core/pi-settings.d.ts.map +1 -1
  114. package/dist/core/pi-settings.js +8 -0
  115. package/dist/core/pi-settings.js.map +1 -1
  116. package/dist/core/roadmap.d.ts +16 -2
  117. package/dist/core/roadmap.d.ts.map +1 -1
  118. package/dist/core/roadmap.js +81 -24
  119. package/dist/core/roadmap.js.map +1 -1
  120. package/dist/core/vision.d.ts +10 -0
  121. package/dist/core/vision.d.ts.map +1 -1
  122. package/dist/core/vision.js +68 -1
  123. package/dist/core/vision.js.map +1 -1
  124. package/dist/store/index.d.ts.map +1 -1
  125. package/dist/store/index.js +18 -0
  126. package/dist/store/index.js.map +1 -1
  127. package/dist/store/sqlite-memory-backend.d.ts +43 -0
  128. package/dist/store/sqlite-memory-backend.d.ts.map +1 -0
  129. package/dist/store/sqlite-memory-backend.js +181 -0
  130. package/dist/store/sqlite-memory-backend.js.map +1 -0
  131. package/dist/store-pg/index.d.ts.map +1 -1
  132. package/dist/store-pg/index.js +23 -0
  133. package/dist/store-pg/index.js.map +1 -1
  134. package/package.json +1 -1
  135. package/packages/pi-extension/dist/index.d.ts +19 -0
  136. package/packages/pi-extension/dist/index.js +339 -15
@@ -0,0 +1,35 @@
1
+ /**
2
+ * `slope agent status` — machine-readable operational status (GH #310).
3
+ *
4
+ * Surface a single source of truth that AI agents can consume without
5
+ * orchestrating sprint/roadmap/initiative/status commands themselves.
6
+ *
7
+ * `--json` emits the AgentStatus object exactly. Default output is a
8
+ * compact human-readable summary derived from the same data.
9
+ */
10
+ /** AgentStatus schema version. Bumped when the JSON shape changes in a
11
+ * breaking way — agents consuming this should check `_version` and refuse
12
+ * unknown values rather than risk silent misinterpretation. */
13
+ export declare const AGENT_STATUS_VERSION = 1;
14
+ export interface AgentStatus {
15
+ /** Schema version — bumped on breaking changes to the JSON shape. */
16
+ _version: number;
17
+ vision: 'present' | 'missing';
18
+ roadmap: 'valid' | 'invalid' | 'missing';
19
+ currentSprint: number | null;
20
+ /** Sprint phase (sprint-state) OR initiative gate phase. 'pr_review' and
21
+ * 'plan_review' come from the initiative subsystem; the others come from
22
+ * sprint-state.json. 'unknown' = no state on disk. */
23
+ phase: 'planning' | 'plan_review' | 'reviewing' | 'implementing' | 'scoring' | 'pr_review' | 'complete' | 'unknown';
24
+ activeClaims: string[];
25
+ nextTicket: string | null;
26
+ blockedBy: number[];
27
+ requiredGates: string[];
28
+ recommendedCommands: string[];
29
+ }
30
+ export declare function agentCommand(args: string[]): Promise<void>;
31
+ export declare function collectAgentStatus(cwd: string): Promise<AgentStatus>;
32
+ export declare function renderAgentMarkdown(s: AgentStatus, opts?: {
33
+ sprintTheme?: string;
34
+ }): string;
35
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"AAWA;;;;;;;;GAQG;AAEH;;gEAEgE;AAChE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,WAAW,WAAW;IAC1B,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACzC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;2DAEuD;IACvD,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IACpH,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBhE;AAsCD,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkG1E;AA6HD,wBAAgB,mBAAmB,CACjC,CAAC,EAAE,WAAW,EACd,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,MAAM,CAqDR"}
@@ -0,0 +1,345 @@
1
+ import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { parseRoadmap, detectLatestSprint, } from '../../core/index.js';
4
+ import { loadConfig } from '../config.js';
5
+ import { loadSprintState } from '../sprint-state.js';
6
+ import { resolveStore } from '../store.js';
7
+ /**
8
+ * `slope agent status` — machine-readable operational status (GH #310).
9
+ *
10
+ * Surface a single source of truth that AI agents can consume without
11
+ * orchestrating sprint/roadmap/initiative/status commands themselves.
12
+ *
13
+ * `--json` emits the AgentStatus object exactly. Default output is a
14
+ * compact human-readable summary derived from the same data.
15
+ */
16
+ /** AgentStatus schema version. Bumped when the JSON shape changes in a
17
+ * breaking way — agents consuming this should check `_version` and refuse
18
+ * unknown values rather than risk silent misinterpretation. */
19
+ export const AGENT_STATUS_VERSION = 1;
20
+ export async function agentCommand(args) {
21
+ const sub = args[0];
22
+ if (sub === '--help' || sub === '-h') {
23
+ printHelp();
24
+ return;
25
+ }
26
+ if (sub === 'status' || sub === undefined) {
27
+ await statusSubcommand(args.slice(sub === 'status' ? 1 : 0));
28
+ return;
29
+ }
30
+ if (sub === 'next-md') {
31
+ await nextMdSubcommand(args.slice(1));
32
+ return;
33
+ }
34
+ console.error(`\nUnknown agent subcommand: ${sub}\n`);
35
+ printHelp();
36
+ process.exit(1);
37
+ }
38
+ function printHelp() {
39
+ console.log(`
40
+ slope agent — Machine-readable operational primitives for AI agents
41
+
42
+ Usage:
43
+ slope agent status Show current state (human-readable)
44
+ slope agent status --json Emit AgentStatus JSON
45
+ slope agent next-md Generate AGENT_NEXT.md (current-state handoff)
46
+ slope agent next-md --output=<path> Write to a custom path
47
+
48
+ Output fields (status):
49
+ vision 'present' | 'missing'
50
+ roadmap 'valid' | 'invalid' | 'missing'
51
+ currentSprint number | null
52
+ phase planning | reviewing | implementing | scoring | complete | unknown
53
+ activeClaims ticket keys currently claimed
54
+ nextTicket recommended next ticket key
55
+ blockedBy sprint IDs blocking the current/next sprint
56
+ requiredGates pending gate names (e.g. tests, code_review)
57
+ recommendedCommands ordered list of next CLI invocations
58
+ `);
59
+ }
60
+ async function statusSubcommand(args) {
61
+ const json = args.includes('--json');
62
+ const cwd = process.cwd();
63
+ const status = await collectAgentStatus(cwd);
64
+ if (json) {
65
+ console.log(JSON.stringify(status, null, 2));
66
+ return;
67
+ }
68
+ printHumanStatus(status);
69
+ }
70
+ export async function collectAgentStatus(cwd) {
71
+ const config = loadConfig(cwd);
72
+ // Vision
73
+ const visionPath = join(cwd, '.slope', 'vision.json');
74
+ const vision = existsSync(visionPath) ? 'present' : 'missing';
75
+ // Roadmap
76
+ let roadmap = null;
77
+ let roadmapState = 'missing';
78
+ const roadmapPath = join(cwd, config.roadmapPath);
79
+ if (existsSync(roadmapPath)) {
80
+ try {
81
+ const raw = JSON.parse(readFileSync(roadmapPath, 'utf8'));
82
+ const parsed = parseRoadmap(raw);
83
+ roadmap = parsed.roadmap;
84
+ roadmapState = parsed.validation.valid ? 'valid' : 'invalid';
85
+ }
86
+ catch {
87
+ roadmapState = 'invalid';
88
+ }
89
+ }
90
+ // Current sprint — sprint-state.json wins; otherwise fall back to detectLatestSprint
91
+ const sprintState = loadSprintState(cwd);
92
+ let currentSprint = sprintState?.sprint ?? null;
93
+ if (currentSprint == null) {
94
+ try {
95
+ const latest = detectLatestSprint(config, cwd);
96
+ currentSprint = latest > 0 ? latest : null;
97
+ }
98
+ catch {
99
+ // best-effort
100
+ }
101
+ }
102
+ // Phase
103
+ const phase = sprintState?.phase ?? 'unknown';
104
+ // Active claims (from store)
105
+ const activeClaims = [];
106
+ if (currentSprint != null) {
107
+ try {
108
+ const store = await resolveStore(cwd);
109
+ const claims = await store.list(currentSprint);
110
+ for (const c of claims) {
111
+ if (c.target)
112
+ activeClaims.push(c.target);
113
+ }
114
+ store.close();
115
+ }
116
+ catch {
117
+ // store unavailable — return empty
118
+ }
119
+ }
120
+ // Next ticket: first ticket of the current sprint not currently claimed
121
+ let nextTicket = null;
122
+ let blockedBy = [];
123
+ if (roadmap && currentSprint != null) {
124
+ const sprint = roadmap.sprints.find(s => s.id === currentSprint);
125
+ if (sprint) {
126
+ const claimed = new Set(activeClaims);
127
+ const next = sprint.tickets.find(t => !claimed.has(t.key));
128
+ nextTicket = next?.key ?? null;
129
+ blockedBy = computeBlockers(roadmap, sprint);
130
+ }
131
+ }
132
+ // Required gates (pending)
133
+ const requiredGates = [];
134
+ if (sprintState) {
135
+ for (const [gate, done] of Object.entries(sprintState.gates)) {
136
+ if (!done)
137
+ requiredGates.push(gate);
138
+ }
139
+ }
140
+ // Recommend commands based on combined state
141
+ const recommendedCommands = recommendCommands({
142
+ vision,
143
+ roadmap: roadmapState,
144
+ currentSprint,
145
+ phase,
146
+ activeClaims,
147
+ nextTicket,
148
+ blockedBy,
149
+ requiredGates,
150
+ sprintState,
151
+ });
152
+ return {
153
+ _version: AGENT_STATUS_VERSION,
154
+ vision,
155
+ roadmap: roadmapState,
156
+ currentSprint,
157
+ phase,
158
+ activeClaims,
159
+ nextTicket,
160
+ blockedBy,
161
+ requiredGates,
162
+ recommendedCommands,
163
+ };
164
+ }
165
+ function computeBlockers(roadmap, sprint) {
166
+ const completedIds = new Set(roadmap.sprints
167
+ .filter(s => s.status === 'complete')
168
+ .map(s => s.id));
169
+ return (sprint.depends_on ?? []).filter(d => !completedIds.has(d));
170
+ }
171
+ function recommendCommands(state) {
172
+ const cmds = [];
173
+ // Bootstrap — missing fundamentals come first
174
+ if (state.vision === 'missing') {
175
+ cmds.push('slope vision create --purpose="..." --priorities="a,b,c"');
176
+ return cmds;
177
+ }
178
+ if (state.roadmap === 'missing') {
179
+ cmds.push('slope roadmap generate');
180
+ return cmds;
181
+ }
182
+ if (state.roadmap === 'invalid') {
183
+ cmds.push('slope roadmap validate');
184
+ // Continue on — agent may still want to know what to do beyond fixing
185
+ }
186
+ // No active sprint state
187
+ if (state.sprintState == null) {
188
+ if (state.currentSprint != null) {
189
+ cmds.push(`slope sprint start --sprint=${state.currentSprint}`);
190
+ }
191
+ else {
192
+ cmds.push('slope briefing');
193
+ }
194
+ return cmds;
195
+ }
196
+ // Blocked by upstream sprint
197
+ if (state.blockedBy.length > 0) {
198
+ cmds.push(`slope roadmap status`);
199
+ return cmds;
200
+ }
201
+ // Phase-driven recommendations
202
+ switch (state.phase) {
203
+ case 'planning':
204
+ cmds.push('slope briefing');
205
+ if (state.nextTicket) {
206
+ cmds.push(`slope prep ${state.nextTicket} --lite`);
207
+ }
208
+ break;
209
+ case 'reviewing':
210
+ cmds.push('slope review status');
211
+ cmds.push('slope review round');
212
+ break;
213
+ case 'implementing':
214
+ if (state.activeClaims.length === 0 && state.nextTicket) {
215
+ cmds.push(`slope claim ${state.nextTicket}`);
216
+ }
217
+ else if (state.requiredGates.length > 0) {
218
+ for (const g of state.requiredGates.slice(0, 2)) {
219
+ cmds.push(`slope sprint gate ${g}`);
220
+ }
221
+ }
222
+ break;
223
+ case 'scoring':
224
+ if (state.requiredGates.includes('scorecard')) {
225
+ cmds.push(`slope auto-card --sprint=${state.currentSprint}`);
226
+ cmds.push('slope validate');
227
+ }
228
+ if (state.requiredGates.includes('review_md')) {
229
+ cmds.push('slope review');
230
+ }
231
+ break;
232
+ case 'complete':
233
+ cmds.push('slope sprint reset');
234
+ cmds.push('slope briefing');
235
+ break;
236
+ }
237
+ return cmds;
238
+ }
239
+ async function nextMdSubcommand(args) {
240
+ const cwd = process.cwd();
241
+ const status = await collectAgentStatus(cwd);
242
+ // Pull sprint theme from roadmap if available, for nicer rendering
243
+ let sprintTheme;
244
+ try {
245
+ const config = loadConfig(cwd);
246
+ const roadmapPath = join(cwd, config.roadmapPath);
247
+ if (existsSync(roadmapPath)) {
248
+ const raw = JSON.parse(readFileSync(roadmapPath, 'utf8'));
249
+ const parsed = parseRoadmap(raw);
250
+ const sprint = parsed.roadmap?.sprints.find(s => s.id === status.currentSprint);
251
+ sprintTheme = sprint?.theme;
252
+ }
253
+ }
254
+ catch { /* best-effort */ }
255
+ const md = renderAgentMarkdown(status, { sprintTheme });
256
+ const outputArg = args.find(a => a.startsWith('--output='));
257
+ // Reject --output= (empty value) and undefined splits — fall back to default
258
+ // path. Without this, an empty value would write to the cwd as a file named
259
+ // ''.
260
+ const outputPath = (outputArg && outputArg.length > '--output='.length)
261
+ ? outputArg.slice('--output='.length)
262
+ : 'AGENT_NEXT.md';
263
+ const absPath = join(cwd, outputPath);
264
+ writeFileSync(absPath, md);
265
+ console.log(`Wrote ${outputPath}`);
266
+ }
267
+ export function renderAgentMarkdown(s, opts = {}) {
268
+ const lines = [];
269
+ const sprintLabel = s.currentSprint != null
270
+ ? `S${s.currentSprint}${opts.sprintTheme ? ` ${opts.sprintTheme}` : ''}`
271
+ : '—';
272
+ lines.push('# Agent Next');
273
+ lines.push('');
274
+ lines.push('<!-- Generated by `slope agent next-md`. Not a durable doc — regenerate after sprint state changes. -->');
275
+ lines.push('');
276
+ lines.push(`Current sprint: ${sprintLabel}`);
277
+ lines.push(`Current phase: ${s.phase}`);
278
+ lines.push(`Current claim: ${s.activeClaims.length > 0 ? s.activeClaims.join(', ') + ' active' : 'none'}`);
279
+ lines.push(`Next ticket: ${s.nextTicket ?? '—'}`);
280
+ lines.push(`Next command: ${s.recommendedCommands[0] ?? '—'}`);
281
+ lines.push('');
282
+ if (s.blockedBy.length > 0) {
283
+ lines.push('## Blocked');
284
+ lines.push('');
285
+ lines.push(`This sprint is blocked by: ${s.blockedBy.map(id => `S${id}`).join(', ')}`);
286
+ lines.push('');
287
+ lines.push('Resolve those before proceeding here.');
288
+ lines.push('');
289
+ }
290
+ if (s.requiredGates.length > 0) {
291
+ lines.push('## Pending gates');
292
+ lines.push('');
293
+ for (const g of s.requiredGates) {
294
+ lines.push(`- ${g}`);
295
+ }
296
+ lines.push('');
297
+ }
298
+ if (s.recommendedCommands.length > 0) {
299
+ lines.push('## Recommended commands');
300
+ lines.push('');
301
+ for (const c of s.recommendedCommands) {
302
+ lines.push(`- \`${c}\``);
303
+ }
304
+ lines.push('');
305
+ }
306
+ // Provenance: state snapshot for agents that want raw data inline
307
+ lines.push('## Status snapshot');
308
+ lines.push('');
309
+ lines.push('```json');
310
+ lines.push(JSON.stringify(s, null, 2));
311
+ lines.push('```');
312
+ lines.push('');
313
+ return lines.join('\n');
314
+ }
315
+ function printHumanStatus(s) {
316
+ const lines = [];
317
+ lines.push('');
318
+ lines.push('SLOPE AGENT STATUS');
319
+ lines.push('═'.repeat(50));
320
+ lines.push(` Vision: ${s.vision}`);
321
+ lines.push(` Roadmap: ${s.roadmap}`);
322
+ lines.push(` Sprint: ${s.currentSprint ?? '—'}`);
323
+ lines.push(` Phase: ${s.phase}`);
324
+ lines.push(` Claims: ${s.activeClaims.length > 0 ? s.activeClaims.join(', ') : 'none'}`);
325
+ lines.push(` Next ticket: ${s.nextTicket ?? '—'}`);
326
+ if (s.blockedBy.length > 0) {
327
+ lines.push(` Blocked by: ${s.blockedBy.map(id => `S${id}`).join(', ')}`);
328
+ }
329
+ if (s.requiredGates.length > 0) {
330
+ lines.push(` Pending gates: ${s.requiredGates.join(', ')}`);
331
+ }
332
+ lines.push('');
333
+ if (s.recommendedCommands.length > 0) {
334
+ lines.push('RECOMMENDED NEXT COMMANDS:');
335
+ for (const c of s.recommendedCommands) {
336
+ lines.push(` $ ${c}`);
337
+ }
338
+ }
339
+ else {
340
+ lines.push('No recommended commands — state is balanced.');
341
+ }
342
+ lines.push('');
343
+ console.log(lines.join('\n'));
344
+ }
345
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/cli/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"briefing.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/briefing.ts"],"names":[],"mappings":"AASA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8JnE"}
1
+ {"version":3,"file":"briefing.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/briefing.ts"],"names":[],"mappings":"AASA,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiKnE"}
@@ -1,6 +1,6 @@
1
1
  import { readFileSync, existsSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- import { formatBriefing, parseRoadmap, getRole, hasRole, loadCustomRoles, filterScorecardsByPlayer, filterHazardsByVisibility, formatDeferredForBriefing, loadDeferred, computeHandicapCard, formatStrategicContext } from '../../core/index.js';
3
+ import { formatBriefing, parseRoadmap, castRoadmapStructure, getRole, hasRole, loadCustomRoles, filterScorecardsByPlayer, filterHazardsByVisibility, formatDeferredForBriefing, loadDeferred, computeHandicapCard, formatStrategicContext } from '../../core/index.js';
4
4
  import { loadConfig } from '../config.js';
5
5
  import { loadScorecards } from '../loader.js';
6
6
  import { resolveStore } from '../store.js';
@@ -112,8 +112,10 @@ export async function briefingCommand(args) {
112
112
  if (existsSync(resolvedRoadmapPath)) {
113
113
  const raw = JSON.parse(readFileSync(resolvedRoadmapPath, 'utf8'));
114
114
  const parsed = parseRoadmap(raw);
115
- if (parsed.roadmap)
116
- roadmap = parsed.roadmap;
115
+ // Fall back to permissive structural cast when parseRoadmap rejects due
116
+ // to validation errors (numbering gaps, ticket-count budget, etc.) —
117
+ // briefing should still surface strategic context when shape is right.
118
+ roadmap = parsed.roadmap ?? castRoadmapStructure(raw) ?? undefined;
117
119
  }
118
120
  }
119
121
  catch { /* skip — roadmap is optional */ }
@@ -1 +1 @@
1
- {"version":3,"file":"briefing.js","sourceRoot":"","sources":["../../../src/cli/commands/briefing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"briefing.js","sourceRoot":"","sources":["../../../src/cli/commands/briefing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * `slope commit-ready` — pre-commit checklist for agents (#314).
3
+ *
4
+ * Inspects the working state across multiple subsystems and reports a
5
+ * structured verdict: are we safe to commit, and if not, what remains.
6
+ *
7
+ * slope commit-ready Human-readable
8
+ * slope commit-ready --json Machine-readable
9
+ *
10
+ * The command is non-blocking — it never fails the shell with a non-zero
11
+ * exit by default; callers must check `ok` in the JSON output. Pass
12
+ * --strict to exit non-zero when any check fails.
13
+ */
14
+ export interface CommitReadyCheck {
15
+ name: string;
16
+ ok: boolean;
17
+ severity: 'block' | 'warn' | 'info';
18
+ reason?: string;
19
+ suggestion?: string;
20
+ }
21
+ export interface CommitReadyResult {
22
+ ok: boolean;
23
+ blockers: number;
24
+ warnings: number;
25
+ checks: CommitReadyCheck[];
26
+ }
27
+ export declare function commitReadyCommand(args: string[]): Promise<void>;
28
+ export declare function collectCommitReady(cwd: string): Promise<CommitReadyResult>;
29
+ //# sourceMappingURL=commit-ready.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-ready.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/commit-ready.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC5B;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBtE;AAED,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuBhF"}