@slope-dev/slope 1.19.1 → 1.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/doctor.d.ts +12 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +324 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +38 -11
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/init.d.ts +21 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +17 -1
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/review.d.ts.map +1 -1
- package/dist/cli/commands/review.js +3 -0
- package/dist/cli/commands/review.js.map +1 -1
- package/dist/cli/commands/sprint.d.ts +2 -0
- package/dist/cli/commands/sprint.d.ts.map +1 -0
- package/dist/cli/commands/sprint.js +96 -0
- package/dist/cli/commands/sprint.js.map +1 -0
- package/dist/cli/commands/validate.d.ts.map +1 -1
- package/dist/cli/commands/validate.js +7 -1
- package/dist/cli/commands/validate.js.map +1 -1
- package/dist/cli/commands/version.d.ts +12 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +150 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/guards/commit-nudge.d.ts.map +1 -1
- package/dist/cli/guards/commit-nudge.js +16 -13
- package/dist/cli/guards/commit-nudge.js.map +1 -1
- package/dist/cli/guards/compaction.d.ts.map +1 -1
- package/dist/cli/guards/compaction.js +27 -1
- package/dist/cli/guards/compaction.js.map +1 -1
- package/dist/cli/guards/git-utils.d.ts +8 -0
- package/dist/cli/guards/git-utils.d.ts.map +1 -0
- package/dist/cli/guards/git-utils.js +17 -0
- package/dist/cli/guards/git-utils.js.map +1 -0
- package/dist/cli/guards/next-action.d.ts +2 -0
- package/dist/cli/guards/next-action.d.ts.map +1 -1
- package/dist/cli/guards/next-action.js +34 -1
- package/dist/cli/guards/next-action.js.map +1 -1
- package/dist/cli/guards/push-nudge.d.ts.map +1 -1
- package/dist/cli/guards/push-nudge.js +20 -17
- package/dist/cli/guards/push-nudge.js.map +1 -1
- package/dist/cli/guards/review-tier.d.ts.map +1 -1
- package/dist/cli/guards/review-tier.js +25 -2
- package/dist/cli/guards/review-tier.js.map +1 -1
- package/dist/cli/guards/sprint-completion.d.ts +11 -0
- package/dist/cli/guards/sprint-completion.d.ts.map +1 -0
- package/dist/cli/guards/sprint-completion.js +151 -0
- package/dist/cli/guards/sprint-completion.js.map +1 -0
- package/dist/cli/guards/stop-check.d.ts.map +1 -1
- package/dist/cli/guards/stop-check.js +12 -7
- package/dist/cli/guards/stop-check.js.map +1 -1
- package/dist/cli/guards/workflow-gate.d.ts.map +1 -1
- package/dist/cli/guards/workflow-gate.js +18 -3
- package/dist/cli/guards/workflow-gate.js.map +1 -1
- package/dist/cli/guards/worktree-merge.d.ts +10 -0
- package/dist/cli/guards/worktree-merge.d.ts.map +1 -0
- package/dist/cli/guards/worktree-merge.js +45 -0
- package/dist/cli/guards/worktree-merge.js.map +1 -0
- package/dist/cli/index.js +25 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +3 -0
- package/dist/cli/registry.js.map +1 -1
- package/dist/cli/sprint-state.d.ts +27 -0
- package/dist/cli/sprint-state.d.ts.map +1 -0
- package/dist/cli/sprint-state.js +88 -0
- package/dist/cli/sprint-state.js.map +1 -0
- package/dist/core/config.d.ts +4 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/guard.d.ts +1 -1
- package/dist/core/guard.d.ts.map +1 -1
- package/dist/core/guard.js +30 -0
- package/dist/core/guard.js.map +1 -1
- package/dist/core/store.d.ts +40 -0
- package/dist/core/store.d.ts.map +1 -1
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +239 -4
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/index.test.js +5 -0
- package/dist/mcp/index.test.js.map +1 -1
- package/dist/mcp/registry.d.ts +1 -1
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +29 -0
- package/dist/mcp/registry.js.map +1 -1
- package/dist/store/index.d.ts +40 -0
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +84 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store-pg/index.d.ts +40 -0
- package/dist/store-pg/index.d.ts.map +1 -1
- package/dist/store-pg/index.js +88 -0
- package/dist/store-pg/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface DoctorCheck {
|
|
2
|
+
name: string;
|
|
3
|
+
status: 'ok' | 'warn' | 'fail';
|
|
4
|
+
message: string;
|
|
5
|
+
fixable?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** Run all health checks on a SLOPE-configured repo. */
|
|
8
|
+
export declare function runDoctorChecks(cwd: string): DoctorCheck[];
|
|
9
|
+
/** Apply auto-fixes for fixable issues. */
|
|
10
|
+
export declare function runDoctorFixes(cwd: string, checks: DoctorCheck[]): Promise<string[]>;
|
|
11
|
+
export declare function doctorCommand(args: string[]): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wDAAwD;AACxD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CA+B1D;AAyLD,2CAA2C;AAC3C,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA8E1F;AA0BD,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BjE"}
|
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { detectPlatforms } from './init.js';
|
|
4
|
+
import { GUARD_DEFINITIONS } from '../../core/guard.js';
|
|
5
|
+
/** Run all health checks on a SLOPE-configured repo. */
|
|
6
|
+
export function runDoctorChecks(cwd) {
|
|
7
|
+
const checks = [];
|
|
8
|
+
// 1. Check .slope/config.json exists and is valid JSON
|
|
9
|
+
checks.push(checkConfig(cwd));
|
|
10
|
+
// 2. Check .gitignore contains .slope/
|
|
11
|
+
checks.push(checkGitignore(cwd));
|
|
12
|
+
// 3. Check SQLite store exists
|
|
13
|
+
checks.push(checkStore(cwd));
|
|
14
|
+
// 4. Check common-issues.json exists
|
|
15
|
+
checks.push(checkCommonIssues(cwd));
|
|
16
|
+
// 5. Check docs/retros/ directory exists
|
|
17
|
+
checks.push(checkRetrosDir(cwd));
|
|
18
|
+
// 6. Check docs/backlog/roadmap.json exists
|
|
19
|
+
checks.push(checkRoadmap(cwd));
|
|
20
|
+
// 7. Check CODEBASE.md exists and is not stale
|
|
21
|
+
checks.push(checkCodebaseMap(cwd));
|
|
22
|
+
// 8. Check guards are installed for detected platforms
|
|
23
|
+
checks.push(...checkGuards(cwd));
|
|
24
|
+
// 9. Check MCP config for detected platforms
|
|
25
|
+
checks.push(...checkMcpConfig(cwd));
|
|
26
|
+
return checks;
|
|
27
|
+
}
|
|
28
|
+
function checkConfig(cwd) {
|
|
29
|
+
const configPath = join(cwd, '.slope', 'config.json');
|
|
30
|
+
if (!existsSync(configPath)) {
|
|
31
|
+
return { name: 'config', status: 'fail', message: '.slope/config.json missing — run `slope init`', fixable: true };
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
JSON.parse(readFileSync(configPath, 'utf8'));
|
|
35
|
+
return { name: 'config', status: 'ok', message: '.slope/config.json valid' };
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Corrupt config — not auto-fixable (would lose custom settings)
|
|
39
|
+
return { name: 'config', status: 'fail', message: '.slope/config.json is invalid JSON — fix manually or delete and run `slope init`' };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function checkGitignore(cwd) {
|
|
43
|
+
const gitignorePath = join(cwd, '.gitignore');
|
|
44
|
+
if (!existsSync(gitignorePath)) {
|
|
45
|
+
return { name: 'gitignore', status: 'warn', message: '.gitignore missing — .slope/ state may be committed', fixable: true };
|
|
46
|
+
}
|
|
47
|
+
const content = readFileSync(gitignorePath, 'utf8');
|
|
48
|
+
if (/^\/?\.slope\/?$/m.test(content)) {
|
|
49
|
+
return { name: 'gitignore', status: 'ok', message: '.slope/ is in .gitignore' };
|
|
50
|
+
}
|
|
51
|
+
return { name: 'gitignore', status: 'warn', message: '.slope/ not in .gitignore — local state may be committed', fixable: true };
|
|
52
|
+
}
|
|
53
|
+
function checkStore(cwd) {
|
|
54
|
+
const dbPath = join(cwd, '.slope', 'slope.db');
|
|
55
|
+
if (!existsSync(dbPath)) {
|
|
56
|
+
return { name: 'store', status: 'warn', message: '.slope/slope.db missing — sessions and events will not be tracked', fixable: true };
|
|
57
|
+
}
|
|
58
|
+
return { name: 'store', status: 'ok', message: '.slope/slope.db exists' };
|
|
59
|
+
}
|
|
60
|
+
function checkCommonIssues(cwd) {
|
|
61
|
+
const path = join(cwd, '.slope', 'common-issues.json');
|
|
62
|
+
if (!existsSync(path)) {
|
|
63
|
+
return { name: 'common-issues', status: 'warn', message: '.slope/common-issues.json missing', fixable: true };
|
|
64
|
+
}
|
|
65
|
+
return { name: 'common-issues', status: 'ok', message: '.slope/common-issues.json exists' };
|
|
66
|
+
}
|
|
67
|
+
function checkRetrosDir(cwd) {
|
|
68
|
+
const path = join(cwd, 'docs', 'retros');
|
|
69
|
+
if (!existsSync(path)) {
|
|
70
|
+
return { name: 'retros-dir', status: 'warn', message: 'docs/retros/ missing — scorecards have nowhere to go', fixable: true };
|
|
71
|
+
}
|
|
72
|
+
return { name: 'retros-dir', status: 'ok', message: 'docs/retros/ exists' };
|
|
73
|
+
}
|
|
74
|
+
function checkRoadmap(cwd) {
|
|
75
|
+
const path = join(cwd, 'docs', 'backlog', 'roadmap.json');
|
|
76
|
+
if (!existsSync(path)) {
|
|
77
|
+
return { name: 'roadmap', status: 'warn', message: 'docs/backlog/roadmap.json missing', fixable: true };
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
JSON.parse(readFileSync(path, 'utf8'));
|
|
81
|
+
return { name: 'roadmap', status: 'ok', message: 'docs/backlog/roadmap.json valid' };
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return { name: 'roadmap', status: 'fail', message: 'docs/backlog/roadmap.json is invalid JSON' };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function checkCodebaseMap(cwd) {
|
|
88
|
+
const path = join(cwd, 'CODEBASE.md');
|
|
89
|
+
if (!existsSync(path)) {
|
|
90
|
+
return { name: 'codebase-map', status: 'warn', message: 'CODEBASE.md missing — run `slope map`', fixable: true };
|
|
91
|
+
}
|
|
92
|
+
// Check staleness by reading generated_at from frontmatter
|
|
93
|
+
const content = readFileSync(path, 'utf8');
|
|
94
|
+
const match = content.match(/generated_at:\s*"([^"]+)"/);
|
|
95
|
+
if (match) {
|
|
96
|
+
const generatedAt = new Date(match[1]);
|
|
97
|
+
const ageMs = Date.now() - generatedAt.getTime();
|
|
98
|
+
const ageDays = Math.floor(ageMs / (1000 * 60 * 60 * 24));
|
|
99
|
+
if (ageDays > 7) {
|
|
100
|
+
return { name: 'codebase-map', status: 'warn', message: `CODEBASE.md is ${ageDays} days old — run \`slope map\` to refresh` };
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return { name: 'codebase-map', status: 'ok', message: 'CODEBASE.md exists and is recent' };
|
|
104
|
+
}
|
|
105
|
+
function checkGuards(cwd) {
|
|
106
|
+
const checks = [];
|
|
107
|
+
const hooksPath = join(cwd, '.slope', 'hooks.json');
|
|
108
|
+
if (!existsSync(hooksPath)) {
|
|
109
|
+
checks.push({
|
|
110
|
+
name: 'guards',
|
|
111
|
+
status: 'warn',
|
|
112
|
+
message: 'No hooks installed — run `slope hook add --level=full` for full guard coverage',
|
|
113
|
+
fixable: true,
|
|
114
|
+
});
|
|
115
|
+
return checks;
|
|
116
|
+
}
|
|
117
|
+
try {
|
|
118
|
+
const hooksConfig = JSON.parse(readFileSync(hooksPath, 'utf8'));
|
|
119
|
+
const installedCount = Object.keys(hooksConfig.installed ?? {}).length;
|
|
120
|
+
const totalGuards = GUARD_DEFINITIONS.length;
|
|
121
|
+
if (installedCount === 0) {
|
|
122
|
+
checks.push({
|
|
123
|
+
name: 'guards',
|
|
124
|
+
status: 'warn',
|
|
125
|
+
message: `No guards active (${totalGuards} available) — run \`slope hook add --level=full\``,
|
|
126
|
+
fixable: true,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
checks.push({
|
|
131
|
+
name: 'guards',
|
|
132
|
+
status: 'ok',
|
|
133
|
+
message: `${installedCount} hooks installed (${totalGuards} guards available)`,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch {
|
|
138
|
+
checks.push({
|
|
139
|
+
name: 'guards',
|
|
140
|
+
status: 'warn',
|
|
141
|
+
message: '.slope/hooks.json is invalid — run `slope init` to reset',
|
|
142
|
+
fixable: true,
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
return checks;
|
|
146
|
+
}
|
|
147
|
+
function checkMcpConfig(cwd) {
|
|
148
|
+
const checks = [];
|
|
149
|
+
const platforms = detectPlatforms(cwd);
|
|
150
|
+
const mcpPaths = {
|
|
151
|
+
'claude-code': '.mcp.json',
|
|
152
|
+
cursor: '.cursor/mcp.json',
|
|
153
|
+
windsurf: '.windsurf/mcp.json',
|
|
154
|
+
opencode: 'opencode.json',
|
|
155
|
+
};
|
|
156
|
+
for (const platform of platforms) {
|
|
157
|
+
const mcpRelPath = mcpPaths[platform];
|
|
158
|
+
if (!mcpRelPath)
|
|
159
|
+
continue; // cline, generic — no file-based MCP config
|
|
160
|
+
const mcpPath = join(cwd, mcpRelPath);
|
|
161
|
+
if (!existsSync(mcpPath)) {
|
|
162
|
+
checks.push({
|
|
163
|
+
name: `mcp-${platform}`,
|
|
164
|
+
status: 'warn',
|
|
165
|
+
message: `${platform} detected but ${mcpRelPath} missing — run \`slope init --${platform}\``,
|
|
166
|
+
fixable: true,
|
|
167
|
+
});
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
try {
|
|
171
|
+
const config = JSON.parse(readFileSync(mcpPath, 'utf8'));
|
|
172
|
+
const servers = config.mcpServers ?? config.mcp ?? {};
|
|
173
|
+
if (servers.slope) {
|
|
174
|
+
checks.push({
|
|
175
|
+
name: `mcp-${platform}`,
|
|
176
|
+
status: 'ok',
|
|
177
|
+
message: `${platform} MCP configured in ${mcpRelPath}`,
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
checks.push({
|
|
182
|
+
name: `mcp-${platform}`,
|
|
183
|
+
status: 'warn',
|
|
184
|
+
message: `${mcpRelPath} exists but no 'slope' server entry — run \`slope init --${platform}\``,
|
|
185
|
+
fixable: true,
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch {
|
|
190
|
+
checks.push({
|
|
191
|
+
name: `mcp-${platform}`,
|
|
192
|
+
status: 'warn',
|
|
193
|
+
message: `${mcpRelPath} is invalid JSON`,
|
|
194
|
+
fixable: true,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
return checks;
|
|
199
|
+
}
|
|
200
|
+
/** Apply auto-fixes for fixable issues. */
|
|
201
|
+
export async function runDoctorFixes(cwd, checks) {
|
|
202
|
+
const fixed = [];
|
|
203
|
+
const fixableFailures = checks.filter(c => (c.status === 'fail' || c.status === 'warn') && c.fixable);
|
|
204
|
+
for (const check of fixableFailures) {
|
|
205
|
+
switch (check.name) {
|
|
206
|
+
case 'config': {
|
|
207
|
+
const { createConfig } = await import('../config.js');
|
|
208
|
+
createConfig(cwd);
|
|
209
|
+
fixed.push('Created .slope/config.json');
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
case 'gitignore': {
|
|
213
|
+
const gitignorePath = join(cwd, '.gitignore');
|
|
214
|
+
let content = '';
|
|
215
|
+
if (existsSync(gitignorePath)) {
|
|
216
|
+
content = readFileSync(gitignorePath, 'utf8');
|
|
217
|
+
}
|
|
218
|
+
if (!/^\/?\.slope\/?$/m.test(content)) {
|
|
219
|
+
writeFileSync(gitignorePath, content + '\n# SLOPE local state (sessions, handoffs, sprint-state, DB)\n.slope/\n');
|
|
220
|
+
fixed.push('Added .slope/ to .gitignore');
|
|
221
|
+
}
|
|
222
|
+
break;
|
|
223
|
+
}
|
|
224
|
+
case 'store': {
|
|
225
|
+
try {
|
|
226
|
+
const { createStore } = await import('../../store/index.js');
|
|
227
|
+
const store = createStore({ storePath: '.slope/slope.db', cwd });
|
|
228
|
+
store.close();
|
|
229
|
+
fixed.push('Created .slope/slope.db');
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
console.error(` Could not create store: ${err.message}`);
|
|
233
|
+
}
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
case 'common-issues': {
|
|
237
|
+
mkdirSync(join(cwd, '.slope'), { recursive: true });
|
|
238
|
+
writeFileSync(join(cwd, '.slope', 'common-issues.json'), JSON.stringify({ recurring_patterns: [] }, null, 2) + '\n');
|
|
239
|
+
fixed.push('Created .slope/common-issues.json');
|
|
240
|
+
break;
|
|
241
|
+
}
|
|
242
|
+
case 'retros-dir': {
|
|
243
|
+
mkdirSync(join(cwd, 'docs', 'retros'), { recursive: true });
|
|
244
|
+
fixed.push('Created docs/retros/');
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
247
|
+
case 'roadmap': {
|
|
248
|
+
mkdirSync(join(cwd, 'docs', 'backlog'), { recursive: true });
|
|
249
|
+
const { STARTER_ROADMAP } = await import('./init.js');
|
|
250
|
+
writeFileSync(join(cwd, 'docs', 'backlog', 'roadmap.json'), JSON.stringify(STARTER_ROADMAP, null, 2) + '\n');
|
|
251
|
+
fixed.push('Created docs/backlog/roadmap.json');
|
|
252
|
+
break;
|
|
253
|
+
}
|
|
254
|
+
case 'codebase-map': {
|
|
255
|
+
try {
|
|
256
|
+
const { mapCommand } = await import('./map.js');
|
|
257
|
+
await mapCommand([]);
|
|
258
|
+
fixed.push('Generated CODEBASE.md');
|
|
259
|
+
}
|
|
260
|
+
catch {
|
|
261
|
+
// map command may fail in some contexts — non-fatal
|
|
262
|
+
}
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
case 'guards': {
|
|
266
|
+
fixed.push('Run `slope hook add --level=full` to install guards');
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
default: {
|
|
270
|
+
if (check.name.startsWith('mcp-')) {
|
|
271
|
+
const platform = check.name.slice(4);
|
|
272
|
+
fixed.push(`Run \`slope init --${platform}\` to configure MCP`);
|
|
273
|
+
}
|
|
274
|
+
break;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
return fixed;
|
|
279
|
+
}
|
|
280
|
+
/** Format doctor results for console output. */
|
|
281
|
+
function formatResults(checks) {
|
|
282
|
+
const symbols = { ok: '[OK]', warn: '[!!]', fail: '[FAIL]' };
|
|
283
|
+
console.log('\nSLOPE Doctor — Repo Health Check\n');
|
|
284
|
+
for (const check of checks) {
|
|
285
|
+
const sym = symbols[check.status];
|
|
286
|
+
console.log(` ${sym} ${check.message}`);
|
|
287
|
+
}
|
|
288
|
+
const fails = checks.filter(c => c.status === 'fail').length;
|
|
289
|
+
const warns = checks.filter(c => c.status === 'warn').length;
|
|
290
|
+
const oks = checks.filter(c => c.status === 'ok').length;
|
|
291
|
+
console.log('');
|
|
292
|
+
console.log(` ${oks} passed, ${warns} warnings, ${fails} failures`);
|
|
293
|
+
const fixable = checks.filter(c => (c.status === 'fail' || c.status === 'warn') && c.fixable);
|
|
294
|
+
if (fixable.length > 0) {
|
|
295
|
+
console.log(` ${fixable.length} issue${fixable.length > 1 ? 's' : ''} auto-fixable — run \`slope doctor --fix\``);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
export async function doctorCommand(args) {
|
|
299
|
+
const cwd = process.cwd();
|
|
300
|
+
let checks = runDoctorChecks(cwd);
|
|
301
|
+
const shouldFix = args.includes('--fix');
|
|
302
|
+
formatResults(checks);
|
|
303
|
+
if (shouldFix) {
|
|
304
|
+
const fixable = checks.filter(c => (c.status === 'fail' || c.status === 'warn') && c.fixable);
|
|
305
|
+
if (fixable.length === 0) {
|
|
306
|
+
console.log('\n Nothing to fix — all checks passed.');
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
console.log('\nApplying fixes...\n');
|
|
310
|
+
const fixed = await runDoctorFixes(cwd, checks);
|
|
311
|
+
for (const msg of fixed) {
|
|
312
|
+
console.log(` [FIXED] ${msg}`);
|
|
313
|
+
}
|
|
314
|
+
console.log('');
|
|
315
|
+
// Re-run checks to show updated status
|
|
316
|
+
checks = runDoctorChecks(cwd);
|
|
317
|
+
formatResults(checks);
|
|
318
|
+
}
|
|
319
|
+
// Exit with non-zero if any failures remain
|
|
320
|
+
if (checks.some(c => c.status === 'fail')) {
|
|
321
|
+
process.exit(1);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/cli/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAuBjG,OAAO,oCAAoC,CAAC;AAC5C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,gCAAgC,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAK7D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOhF;AAED,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAwB5E,+BAA+B;AAC/B,wBAAgB,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAE1E;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGhE;AAwCD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkHtE"}
|
|
@@ -18,6 +18,8 @@ import { prReviewGuard } from '../guards/pr-review.js';
|
|
|
18
18
|
import { transcriptGuard } from '../guards/transcript.js';
|
|
19
19
|
import { branchBeforeCommitGuard } from '../guards/branch-before-commit.js';
|
|
20
20
|
import { worktreeCheckGuard } from '../guards/worktree-check.js';
|
|
21
|
+
import { sprintCompletionGuard } from '../guards/sprint-completion.js';
|
|
22
|
+
import { worktreeMergeGuard } from '../guards/worktree-merge.js';
|
|
21
23
|
import { execSync } from 'node:child_process';
|
|
22
24
|
// Side-effect imports: ensure all adapters are registered for detectAdapter()
|
|
23
25
|
import '../../core/adapters/claude-code.js';
|
|
@@ -71,6 +73,8 @@ const handlers = {
|
|
|
71
73
|
transcript: transcriptGuard,
|
|
72
74
|
'branch-before-commit': branchBeforeCommitGuard,
|
|
73
75
|
'worktree-check': worktreeCheckGuard,
|
|
76
|
+
'sprint-completion': sprintCompletionGuard,
|
|
77
|
+
'worktree-merge': worktreeMergeGuard,
|
|
74
78
|
};
|
|
75
79
|
/** Register a guard handler */
|
|
76
80
|
export function registerGuard(name, handler) {
|
|
@@ -96,25 +100,35 @@ export async function guardCommand(args) {
|
|
|
96
100
|
}
|
|
97
101
|
// Load custom guard plugins
|
|
98
102
|
loadPluginGuards(cwd, config.plugins);
|
|
99
|
-
// Find guard definition (built-in or custom)
|
|
100
|
-
const def = getAllGuardDefinitions().find(d => d.name === name);
|
|
101
|
-
if (!def) {
|
|
102
|
-
console.error(`Unknown guard: "${name}". Available: ${getAllGuardDefinitions().map(d => d.name).join(', ')}`);
|
|
103
|
-
process.exit(1);
|
|
104
|
-
}
|
|
105
103
|
// Read hook input from stdin
|
|
106
104
|
let input;
|
|
105
|
+
let stdinParsed = true;
|
|
107
106
|
try {
|
|
108
107
|
input = await readStdin();
|
|
109
108
|
}
|
|
110
109
|
catch {
|
|
111
|
-
|
|
110
|
+
stdinParsed = false;
|
|
112
111
|
input = {
|
|
113
112
|
session_id: '',
|
|
114
113
|
cwd,
|
|
115
|
-
hook_event_name:
|
|
114
|
+
hook_event_name: '',
|
|
116
115
|
};
|
|
117
116
|
}
|
|
117
|
+
// Find guard definition (built-in or custom).
|
|
118
|
+
// When multiple definitions share a name (e.g. sprint-completion fires on
|
|
119
|
+
// PreToolUse, PostToolUse, and Stop), prefer the one matching the actual
|
|
120
|
+
// hook_event_name from stdin so the output formatter is correct.
|
|
121
|
+
const allDefs = getAllGuardDefinitions().filter(d => d.name === name);
|
|
122
|
+
if (allDefs.length === 0) {
|
|
123
|
+
console.error(`Unknown guard: "${name}". Available: ${getAllGuardDefinitions().map(d => d.name).join(', ')}`);
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
const hookEvent = input.hook_event_name.replace(/:.*$/, ''); // "PreToolUse:Bash" → "PreToolUse"
|
|
127
|
+
const def = allDefs.find(d => d.hookEvent === hookEvent) ?? allDefs[0];
|
|
128
|
+
// If no stdin was parsed, fill in the hook event from the definition
|
|
129
|
+
if (!stdinParsed) {
|
|
130
|
+
input.hook_event_name = def.hookEvent;
|
|
131
|
+
}
|
|
118
132
|
// Find and run the handler
|
|
119
133
|
const handler = handlers[name];
|
|
120
134
|
if (!handler) {
|
|
@@ -214,9 +228,16 @@ export async function guardManageCommand(args) {
|
|
|
214
228
|
// Load custom guard plugins
|
|
215
229
|
loadPluginGuards(cwd, config.plugins);
|
|
216
230
|
console.log('\nSLOPE Guards:\n');
|
|
231
|
+
// Deduplicate multi-hook guards (e.g. sprint-completion fires on 3 events)
|
|
232
|
+
const seen = new Set();
|
|
217
233
|
for (const d of GUARD_DEFINITIONS) {
|
|
234
|
+
if (seen.has(d.name))
|
|
235
|
+
continue;
|
|
236
|
+
seen.add(d.name);
|
|
218
237
|
const status = disabled.includes(d.name) ? '[disabled]' : '[enabled] ';
|
|
219
|
-
|
|
238
|
+
const events = GUARD_DEFINITIONS.filter(g => g.name === d.name).map(g => g.hookEvent);
|
|
239
|
+
const eventStr = events.length > 1 ? `[${events.join(',')}]` : `[${d.hookEvent}]`;
|
|
240
|
+
console.log(` ${status} ${d.name.padEnd(22)} ${eventStr.padEnd(35)} ${d.description}`);
|
|
220
241
|
}
|
|
221
242
|
// Show custom guards
|
|
222
243
|
const allDefs = getAllGuardDefinitions();
|
|
@@ -258,12 +279,18 @@ export async function guardManageCommand(args) {
|
|
|
258
279
|
const statusDisabled = statusConfig.guidance?.disabled ?? [];
|
|
259
280
|
loadPluginGuards(cwd, statusConfig.plugins);
|
|
260
281
|
console.log('\nGuards:\n');
|
|
282
|
+
const statusSeen = new Set();
|
|
261
283
|
for (const d of getAllGuardDefinitions()) {
|
|
284
|
+
if (statusSeen.has(d.name))
|
|
285
|
+
continue;
|
|
286
|
+
statusSeen.add(d.name);
|
|
262
287
|
const disabled = statusDisabled.includes(d.name);
|
|
263
|
-
const
|
|
288
|
+
const allEvents = getAllGuardDefinitions().filter(g => g.name === d.name).map(g => g.hookEvent);
|
|
289
|
+
const supported = allEvents.some(e => adapter?.supportedEvents.has(e) ?? true);
|
|
264
290
|
const marker = disabled ? '[-]' : !supported ? '[~]' : '[+]';
|
|
265
291
|
const state = disabled ? 'disabled' : !supported ? 'unsupported' : 'active';
|
|
266
|
-
|
|
292
|
+
const eventStr = allEvents.length > 1 ? allEvents.join(',') : d.hookEvent;
|
|
293
|
+
console.log(` ${marker} ${d.name.padEnd(22)} ${eventStr.padEnd(35)} ${state}`);
|
|
267
294
|
}
|
|
268
295
|
// Show capabilities
|
|
269
296
|
const hasContext = adapter?.supportsContextInjection ?? false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,27 @@ import '../../core/adapters/cursor.js';
|
|
|
4
4
|
import '../../core/adapters/windsurf.js';
|
|
5
5
|
import '../../core/adapters/cline.js';
|
|
6
6
|
import '../../core/adapters/generic.js';
|
|
7
|
+
export declare const STARTER_ROADMAP: {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
phases: {
|
|
11
|
+
name: string;
|
|
12
|
+
sprints: number[];
|
|
13
|
+
}[];
|
|
14
|
+
sprints: {
|
|
15
|
+
id: number;
|
|
16
|
+
theme: string;
|
|
17
|
+
par: number;
|
|
18
|
+
slope: number;
|
|
19
|
+
type: string;
|
|
20
|
+
tickets: {
|
|
21
|
+
key: string;
|
|
22
|
+
title: string;
|
|
23
|
+
club: string;
|
|
24
|
+
complexity: string;
|
|
25
|
+
}[];
|
|
26
|
+
}[];
|
|
27
|
+
};
|
|
7
28
|
/** Init supports all harness adapters plus OpenCode (template-only, no adapter) */
|
|
8
29
|
export type InitProvider = HarnessId | 'opencode';
|
|
9
30
|
export declare function detectProvidersFromArgs(args: string[]): InitProvider[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,8BAA8B,CAAC;AACtC,OAAO,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,8BAA8B,CAAC;AACtC,OAAO,gCAAgC,CAAC;AAoExC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;CAoB3B,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAElD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAiBtE;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAa3D;AA0cD,iEAAiE;AACjE,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,CAiDnE;AAyBD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0J/D"}
|
|
@@ -77,7 +77,7 @@ const EXAMPLE_COMMON_ISSUES = {
|
|
|
77
77
|
},
|
|
78
78
|
],
|
|
79
79
|
};
|
|
80
|
-
const STARTER_ROADMAP = {
|
|
80
|
+
export const STARTER_ROADMAP = {
|
|
81
81
|
name: 'Project Roadmap',
|
|
82
82
|
description: 'Replace this with your project roadmap. Run "slope roadmap validate" to check.',
|
|
83
83
|
phases: [
|
|
@@ -141,6 +141,20 @@ export function detectPlatforms(cwd) {
|
|
|
141
141
|
}
|
|
142
142
|
return detected;
|
|
143
143
|
}
|
|
144
|
+
/** Ensure .slope/ is in .gitignore. Idempotent — skips if already present. */
|
|
145
|
+
function ensureGitignore(cwd) {
|
|
146
|
+
const gitignorePath = join(cwd, '.gitignore');
|
|
147
|
+
let content = '';
|
|
148
|
+
if (existsSync(gitignorePath)) {
|
|
149
|
+
content = readFileSync(gitignorePath, 'utf8');
|
|
150
|
+
// Check if .slope/ or .slope is already ignored
|
|
151
|
+
if (/^\/?\.slope\/?$/m.test(content))
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
const entry = '\n# SLOPE local state (sessions, handoffs, sprint-state, DB)\n.slope/\n';
|
|
155
|
+
writeFileSync(gitignorePath, content + entry);
|
|
156
|
+
console.log(' Added .slope/ to .gitignore');
|
|
157
|
+
}
|
|
144
158
|
function getTemplatesRoot() {
|
|
145
159
|
return join(__dirname, '..', '..', '..', '..', 'templates');
|
|
146
160
|
}
|
|
@@ -672,6 +686,8 @@ export async function initCommand(args) {
|
|
|
672
686
|
}
|
|
673
687
|
writeFileSync(configPath, JSON.stringify(configData, null, 2) + '\n');
|
|
674
688
|
console.log(` Created ${configPath}`);
|
|
689
|
+
// Ensure .slope/ is gitignored (contains local state: handoffs, sprint-state, DB)
|
|
690
|
+
ensureGitignore(cwd);
|
|
675
691
|
const scorecardDir = join(cwd, 'docs', 'retros');
|
|
676
692
|
if (!existsSync(scorecardDir)) {
|
|
677
693
|
mkdirSync(scorecardDir, { recursive: true });
|