@slope-dev/slope 1.55.4 → 1.55.6
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.map +1 -1
- package/dist/cli/commands/doctor.js +98 -2
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/guard.d.ts +1 -0
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +28 -5
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/pr.d.ts +22 -0
- package/dist/cli/commands/pr.d.ts.map +1 -1
- package/dist/cli/commands/pr.js +133 -0
- package/dist/cli/commands/pr.js.map +1 -1
- package/dist/cli/guards/claim-required.d.ts +1 -0
- package/dist/cli/guards/claim-required.d.ts.map +1 -1
- package/dist/cli/guards/claim-required.js +147 -8
- package/dist/cli/guards/claim-required.js.map +1 -1
- package/dist/cli/guards/docs.d.ts.map +1 -1
- package/dist/cli/guards/docs.js +8 -1
- package/dist/cli/guards/docs.js.map +1 -1
- package/dist/cli/guards/pr-review.d.ts.map +1 -1
- package/dist/cli/guards/pr-review.js +3 -1
- package/dist/cli/guards/pr-review.js.map +1 -1
- package/dist/cli/index.js +1 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/config.d.ts +1 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js.map +1 -1
- package/dist/core/guard.d.ts +2 -0
- package/dist/core/guard.d.ts.map +1 -1
- package/dist/core/guard.js +2 -2
- package/dist/core/guard.js.map +1 -1
- package/package.json +1 -1
package/dist/cli/commands/pr.js
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
3
|
+
import { join } from 'node:path';
|
|
4
|
+
import { detectLatestSprint, loadConfig, normalizeScorecard, recommendReviews } from '../../core/index.js';
|
|
5
|
+
import { reviewRunCommand } from './review-run.js';
|
|
2
6
|
export async function prCommand(args) {
|
|
3
7
|
const sub = args[0];
|
|
4
8
|
if (sub === '--help' || sub === '-h' || sub === undefined) {
|
|
@@ -9,6 +13,10 @@ export async function prCommand(args) {
|
|
|
9
13
|
await finalizeSubcommand(args.slice(1));
|
|
10
14
|
return;
|
|
11
15
|
}
|
|
16
|
+
if (sub === 'review') {
|
|
17
|
+
await reviewSubcommand(args.slice(1));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
12
20
|
if (sub === 'issues') {
|
|
13
21
|
await issuesSubcommand(args.slice(1));
|
|
14
22
|
return;
|
|
@@ -24,6 +32,9 @@ slope pr — Pull request helpers
|
|
|
24
32
|
Usage:
|
|
25
33
|
slope pr finalize [--pr=N] [--dry-run] Inject Closes #N for issues referenced in commit
|
|
26
34
|
messages but missing from PR body (#321).
|
|
35
|
+
slope pr review [--pr=N] [--sprint=N] Run review recommendation + prompt generation
|
|
36
|
+
after PR creation, regardless of whether the
|
|
37
|
+
PR was created by gh, MCP, or another API.
|
|
27
38
|
slope pr issues [--pr=N] Print extracted issue refs from the branch's
|
|
28
39
|
commit messages.
|
|
29
40
|
|
|
@@ -41,6 +52,24 @@ function parseFlags(args) {
|
|
|
41
52
|
}
|
|
42
53
|
return opts;
|
|
43
54
|
}
|
|
55
|
+
function parseReviewFlags(args) {
|
|
56
|
+
const opts = {};
|
|
57
|
+
for (const a of args) {
|
|
58
|
+
if (a.startsWith('--pr='))
|
|
59
|
+
opts.pr = parseInt(a.slice('--pr='.length), 10);
|
|
60
|
+
else if (a.startsWith('--sprint='))
|
|
61
|
+
opts.sprint = parseInt(a.slice('--sprint='.length), 10);
|
|
62
|
+
else if (a.startsWith('--type=')) {
|
|
63
|
+
const type = a.slice('--type='.length);
|
|
64
|
+
if (type === 'architect' || type === 'code' || type === 'both')
|
|
65
|
+
opts.type = type;
|
|
66
|
+
}
|
|
67
|
+
else if (a === '--json') {
|
|
68
|
+
opts.json = true;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return opts;
|
|
72
|
+
}
|
|
44
73
|
function git(cmd) {
|
|
45
74
|
try {
|
|
46
75
|
return execSync(`git ${cmd}`, { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
@@ -49,6 +78,86 @@ function git(cmd) {
|
|
|
49
78
|
return '';
|
|
50
79
|
}
|
|
51
80
|
}
|
|
81
|
+
function inferSprintNumber(explicit) {
|
|
82
|
+
if (explicit && !isNaN(explicit))
|
|
83
|
+
return explicit;
|
|
84
|
+
try {
|
|
85
|
+
const config = loadConfig();
|
|
86
|
+
return config.currentSprint ?? (detectLatestSprint(config, process.cwd()) || undefined);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
function loadSprintReviewSignals(sprint) {
|
|
93
|
+
if (!sprint)
|
|
94
|
+
return { ticketCount: 1, slope: 1 };
|
|
95
|
+
try {
|
|
96
|
+
const config = loadConfig();
|
|
97
|
+
const scorecardPath = join(process.cwd(), config.scorecardDir, `sprint-${sprint}.json`);
|
|
98
|
+
if (!existsSync(scorecardPath))
|
|
99
|
+
return { ticketCount: 1, slope: 1 };
|
|
100
|
+
const card = normalizeScorecard(JSON.parse(readFileSync(scorecardPath, 'utf8')));
|
|
101
|
+
return {
|
|
102
|
+
ticketCount: card.shots?.length ?? 1,
|
|
103
|
+
slope: card.slope ?? 1,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
return { ticketCount: 1, slope: 1 };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function changedFilesForPr(pr) {
|
|
111
|
+
try {
|
|
112
|
+
const raw = gh(`pr diff ${pr} --name-only`);
|
|
113
|
+
return raw ? raw.split('\n').filter(Boolean) : [];
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export function defaultReviewType(_recommendations) {
|
|
120
|
+
// Keep the transport-independent command aligned with `slope review run`,
|
|
121
|
+
// whose default is both. Recommendations are printed for prioritization,
|
|
122
|
+
// but the baseline code review remains useful for AI-authored diffs.
|
|
123
|
+
return 'both';
|
|
124
|
+
}
|
|
125
|
+
export function formatReviewRecommendations(recommendations) {
|
|
126
|
+
if (recommendations.length === 0)
|
|
127
|
+
return ' (none)';
|
|
128
|
+
return recommendations
|
|
129
|
+
.map((rec) => {
|
|
130
|
+
const type = rec.review_type.padEnd(14);
|
|
131
|
+
const priority = rec.priority.padEnd(13);
|
|
132
|
+
return ` ${type} ${priority} ${rec.reason}`;
|
|
133
|
+
})
|
|
134
|
+
.join('\n');
|
|
135
|
+
}
|
|
136
|
+
export async function planPrReview(opts) {
|
|
137
|
+
const pr = resolvePrNumber(opts);
|
|
138
|
+
if (!pr)
|
|
139
|
+
return null;
|
|
140
|
+
const sprint = inferSprintNumber(opts.sprint);
|
|
141
|
+
const { ticketCount, slope } = loadSprintReviewSignals(sprint);
|
|
142
|
+
const changedFiles = changedFilesForPr(pr);
|
|
143
|
+
const hasNewInfra = changedFiles.some(p => /(\.sql|migration|schema|infra|terraform|k8s|deploy)/i.test(p));
|
|
144
|
+
const recommendations = recommendReviews({
|
|
145
|
+
ticketCount,
|
|
146
|
+
slope,
|
|
147
|
+
filePatterns: changedFiles,
|
|
148
|
+
hasNewInfra,
|
|
149
|
+
});
|
|
150
|
+
return {
|
|
151
|
+
pr,
|
|
152
|
+
sprint,
|
|
153
|
+
ticketCount,
|
|
154
|
+
slope,
|
|
155
|
+
changedFiles,
|
|
156
|
+
hasNewInfra,
|
|
157
|
+
recommendations,
|
|
158
|
+
reviewType: opts.type ?? defaultReviewType(recommendations),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
52
161
|
/** Wrapper around `gh` CLI invocations. Throws a contextual error when gh
|
|
53
162
|
* is missing or auth fails so callers can surface a clear message instead
|
|
54
163
|
* of the raw spawn ENOENT / 401 stderr. */
|
|
@@ -195,6 +304,30 @@ async function finalizeSubcommand(args) {
|
|
|
195
304
|
execSync(`gh pr edit ${plan.pr} --body-file -`, { input: newBody, encoding: 'utf8' });
|
|
196
305
|
console.log(`\n Updated PR #${plan.pr} body with ${plan.toAdd.length} Closes line(s).\n`);
|
|
197
306
|
}
|
|
307
|
+
async function reviewSubcommand(args) {
|
|
308
|
+
const opts = parseReviewFlags(args);
|
|
309
|
+
const plan = await planPrReview(opts);
|
|
310
|
+
if (!plan) {
|
|
311
|
+
console.error('\nCould not resolve PR — pass --pr=N or run from a branch with an open PR.\n');
|
|
312
|
+
process.exit(1);
|
|
313
|
+
}
|
|
314
|
+
const reviewArgs = [`--pr=${plan.pr}`, `--type=${plan.reviewType}`];
|
|
315
|
+
if (plan.sprint)
|
|
316
|
+
reviewArgs.push(`--sprint=${plan.sprint}`);
|
|
317
|
+
if (opts.json) {
|
|
318
|
+
reviewArgs.push('--json');
|
|
319
|
+
await reviewRunCommand(reviewArgs);
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
console.log(`\nPR #${plan.pr} review workflow${plan.sprint ? ` for Sprint ${plan.sprint}` : ''}`);
|
|
323
|
+
console.log(`Files changed: ${plan.changedFiles.length}`);
|
|
324
|
+
console.log(`Signals: ${plan.ticketCount} ticket${plan.ticketCount !== 1 ? 's' : ''}, slope ${plan.slope}${plan.hasNewInfra ? ', infrastructure/schema paths' : ''}`);
|
|
325
|
+
console.log('\nRecommended reviews:\n');
|
|
326
|
+
console.log(' Type Priority Reason');
|
|
327
|
+
console.log(formatReviewRecommendations(plan.recommendations));
|
|
328
|
+
console.log('\nReview prompts:\n');
|
|
329
|
+
await reviewRunCommand(reviewArgs);
|
|
330
|
+
}
|
|
198
331
|
async function issuesSubcommand(args) {
|
|
199
332
|
const opts = parseFlags(args);
|
|
200
333
|
const plan = await planPrFinalize(opts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/cli/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../src/cli/commands/pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import type { HookInput, GuardResult } from '../../core/index.js';
|
|
|
6
6
|
* Uses session dedup — warns once per session only.
|
|
7
7
|
*/
|
|
8
8
|
export declare function claimRequiredGuard(input: HookInput, cwd: string): Promise<GuardResult>;
|
|
9
|
+
export declare function isImplementationWritePath(relativePath: string): boolean;
|
|
9
10
|
/**
|
|
10
11
|
* Pure overlap predicate for a single claim. Anchors area-scope prefix matches
|
|
11
12
|
* with a path separator so a claim on "src/core" does NOT match edits in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-required.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/claim-required.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"claim-required.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/claim-required.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AA2ElE;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkE5F;AAkCD,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAavE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAOT"}
|
|
@@ -1,8 +1,72 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { join, dirname } from 'node:path';
|
|
3
|
+
import { loadConfig } from '../config.js';
|
|
3
4
|
import { loadSprintState } from '../sprint-state.js';
|
|
4
5
|
import { loadSessionState, updateSessionState } from '../session-state.js';
|
|
5
6
|
import { resolveStore } from '../store.js';
|
|
7
|
+
const IMPLEMENTATION_DIRS = [
|
|
8
|
+
'app/',
|
|
9
|
+
'client/',
|
|
10
|
+
'components/',
|
|
11
|
+
'lib/',
|
|
12
|
+
'packages/',
|
|
13
|
+
'scripts/',
|
|
14
|
+
'server/',
|
|
15
|
+
'src/',
|
|
16
|
+
'templates/',
|
|
17
|
+
'tests/',
|
|
18
|
+
'workers/',
|
|
19
|
+
];
|
|
20
|
+
const NON_IMPLEMENTATION_DIRS = [
|
|
21
|
+
'.git/',
|
|
22
|
+
'.slope/',
|
|
23
|
+
'docs/retros/',
|
|
24
|
+
'node_modules/',
|
|
25
|
+
];
|
|
26
|
+
const IMPLEMENTATION_FILES = new Set([
|
|
27
|
+
'astro.config.mjs',
|
|
28
|
+
'package-lock.json',
|
|
29
|
+
'package.json',
|
|
30
|
+
'pnpm-lock.yaml',
|
|
31
|
+
'rollup.config.js',
|
|
32
|
+
'tsconfig.json',
|
|
33
|
+
'vite.config.ts',
|
|
34
|
+
'vitest.config.ts',
|
|
35
|
+
'webpack.config.js',
|
|
36
|
+
'yarn.lock',
|
|
37
|
+
]);
|
|
38
|
+
const IMPLEMENTATION_EXTENSIONS = new Set([
|
|
39
|
+
'.astro',
|
|
40
|
+
'.c',
|
|
41
|
+
'.cjs',
|
|
42
|
+
'.cpp',
|
|
43
|
+
'.cs',
|
|
44
|
+
'.css',
|
|
45
|
+
'.go',
|
|
46
|
+
'.h',
|
|
47
|
+
'.hpp',
|
|
48
|
+
'.html',
|
|
49
|
+
'.java',
|
|
50
|
+
'.js',
|
|
51
|
+
'.json',
|
|
52
|
+
'.jsx',
|
|
53
|
+
'.kt',
|
|
54
|
+
'.mjs',
|
|
55
|
+
'.php',
|
|
56
|
+
'.py',
|
|
57
|
+
'.rb',
|
|
58
|
+
'.rs',
|
|
59
|
+
'.scss',
|
|
60
|
+
'.sh',
|
|
61
|
+
'.svelte',
|
|
62
|
+
'.swift',
|
|
63
|
+
'.toml',
|
|
64
|
+
'.ts',
|
|
65
|
+
'.tsx',
|
|
66
|
+
'.vue',
|
|
67
|
+
'.yaml',
|
|
68
|
+
'.yml',
|
|
69
|
+
]);
|
|
6
70
|
/**
|
|
7
71
|
* Claim-required guard: fires PreToolUse on Edit|Write.
|
|
8
72
|
* Warns (not blocks) when editing code without an active sprint claim.
|
|
@@ -13,13 +77,16 @@ export async function claimRequiredGuard(input, cwd) {
|
|
|
13
77
|
const sessionId = input.session_id;
|
|
14
78
|
if (!sessionId)
|
|
15
79
|
return {};
|
|
16
|
-
|
|
17
|
-
const sessionState = loadSessionState(cwd);
|
|
18
|
-
if (sessionState.claim_warned_session_id === sessionId)
|
|
19
|
-
return {};
|
|
80
|
+
const policy = getImplementationWritePolicy(cwd);
|
|
20
81
|
// Check if there's an active sprint with claims
|
|
21
82
|
const sprintState = loadSprintState(cwd);
|
|
22
83
|
if (sprintState && sprintState.phase === 'implementing') {
|
|
84
|
+
// Session dedup for the advisory missing-claim warning only.
|
|
85
|
+
if (policy !== 'deny') {
|
|
86
|
+
const sessionState = loadSessionState(cwd);
|
|
87
|
+
if (sessionState.claim_warned_session_id === sessionId)
|
|
88
|
+
return {};
|
|
89
|
+
}
|
|
23
90
|
// Active sprint in implementing phase — check for claims
|
|
24
91
|
try {
|
|
25
92
|
const claimsPath = join(cwd, '.slope', 'claims.json');
|
|
@@ -37,12 +104,35 @@ export async function claimRequiredGuard(input, cwd) {
|
|
|
37
104
|
catch { /* claims unavailable */ }
|
|
38
105
|
}
|
|
39
106
|
else if (!sprintState) {
|
|
40
|
-
|
|
41
|
-
|
|
107
|
+
const filePath = input.tool_input?.file_path;
|
|
108
|
+
const relativePath = normalizeHookPath(filePath, cwd);
|
|
109
|
+
if (!relativePath || !isImplementationWritePath(relativePath))
|
|
110
|
+
return {};
|
|
111
|
+
return implementationWritePolicyResult(policy, [
|
|
112
|
+
`SLOPE claim-required: ${relativePath} looks like an implementation edit, but there is no active sprint state.`,
|
|
113
|
+
'Start or resume a sprint and claim the work before editing, or get explicit user approval to continue as adhoc work.',
|
|
114
|
+
'Suggested commands: `slope sprint start --number=<N> --phase=implementing` then `slope claim --target=<path> --ticket=<ticket>`.',
|
|
115
|
+
]);
|
|
42
116
|
}
|
|
43
117
|
else {
|
|
44
|
-
|
|
45
|
-
|
|
118
|
+
const filePath = input.tool_input?.file_path;
|
|
119
|
+
const relativePath = normalizeHookPath(filePath, cwd);
|
|
120
|
+
if (!relativePath || !isImplementationWritePath(relativePath))
|
|
121
|
+
return {};
|
|
122
|
+
return implementationWritePolicyResult(policy, [
|
|
123
|
+
`SLOPE claim-required: ${relativePath} looks like an implementation edit, but sprint ${sprintState.sprint} is in ${sprintState.phase} phase.`,
|
|
124
|
+
'Implementation edits should happen during the implementing phase with a claim, or with explicit user approval to continue outside the sprint workflow.',
|
|
125
|
+
'Suggested command: `slope sprint start --number=<N> --phase=implementing` or update the current sprint phase before editing.',
|
|
126
|
+
]);
|
|
127
|
+
}
|
|
128
|
+
if (policy === 'deny') {
|
|
129
|
+
return {
|
|
130
|
+
decision: 'deny',
|
|
131
|
+
blockReason: [
|
|
132
|
+
'SLOPE claim-required: No active sprint claim for this implementation edit.',
|
|
133
|
+
'Run `slope claim --target=<path> --ticket=<ticket>` before editing, or set `guidance.requireSprintForImplementationWrites` to "ask" or "off".',
|
|
134
|
+
].join('\n'),
|
|
135
|
+
};
|
|
46
136
|
}
|
|
47
137
|
// Mark as warned
|
|
48
138
|
updateSessionState(cwd, 'claim_warned_session_id', sessionId);
|
|
@@ -50,6 +140,55 @@ export async function claimRequiredGuard(input, cwd) {
|
|
|
50
140
|
context: 'SLOPE: No active sprint claim. Consider running `slope claim` to track this work.',
|
|
51
141
|
};
|
|
52
142
|
}
|
|
143
|
+
function getImplementationWritePolicy(cwd) {
|
|
144
|
+
const value = loadConfig(cwd).guidance?.requireSprintForImplementationWrites;
|
|
145
|
+
return value === 'deny' || value === 'off' || value === 'ask' ? value : 'ask';
|
|
146
|
+
}
|
|
147
|
+
function implementationWritePolicyResult(policy, lines) {
|
|
148
|
+
if (policy === 'off')
|
|
149
|
+
return {};
|
|
150
|
+
if (policy === 'deny') {
|
|
151
|
+
return {
|
|
152
|
+
decision: 'deny',
|
|
153
|
+
blockReason: [
|
|
154
|
+
...lines,
|
|
155
|
+
'Strict mode is enabled by `guidance.requireSprintForImplementationWrites: "deny"`.',
|
|
156
|
+
].join('\n'),
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
return {
|
|
160
|
+
decision: 'ask',
|
|
161
|
+
context: lines.join('\n'),
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
function normalizeHookPath(filePath, cwd) {
|
|
165
|
+
if (!filePath)
|
|
166
|
+
return null;
|
|
167
|
+
const normalizedCwd = cwd.replace(/\\/g, '/').replace(/\/$/, '');
|
|
168
|
+
const normalizedPath = filePath.replace(/\\/g, '/');
|
|
169
|
+
const relativePath = normalizedPath.startsWith(`${normalizedCwd}/`)
|
|
170
|
+
? normalizedPath.slice(normalizedCwd.length + 1)
|
|
171
|
+
: normalizedPath;
|
|
172
|
+
return relativePath.replace(/^\.\//, '');
|
|
173
|
+
}
|
|
174
|
+
export function isImplementationWritePath(relativePath) {
|
|
175
|
+
const path = relativePath.replace(/\\/g, '/').replace(/^\.\//, '');
|
|
176
|
+
if (!path || path.endsWith('/'))
|
|
177
|
+
return false;
|
|
178
|
+
if (NON_IMPLEMENTATION_DIRS.some(dir => path.startsWith(dir)))
|
|
179
|
+
return false;
|
|
180
|
+
if (path === 'README.md' || path.endsWith('.md'))
|
|
181
|
+
return false;
|
|
182
|
+
const fileName = path.split('/').at(-1) ?? path;
|
|
183
|
+
if (IMPLEMENTATION_FILES.has(fileName))
|
|
184
|
+
return true;
|
|
185
|
+
if (IMPLEMENTATION_DIRS.some(dir => path.startsWith(dir)))
|
|
186
|
+
return true;
|
|
187
|
+
const dotIndex = fileName.lastIndexOf('.');
|
|
188
|
+
if (dotIndex === -1)
|
|
189
|
+
return false;
|
|
190
|
+
return IMPLEMENTATION_EXTENSIONS.has(fileName.slice(dotIndex));
|
|
191
|
+
}
|
|
53
192
|
/**
|
|
54
193
|
* Pure overlap predicate for a single claim. Anchors area-scope prefix matches
|
|
55
194
|
* with a path separator so a claim on "src/core" does NOT match edits in
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-required.js","sourceRoot":"","sources":["../../../src/cli/guards/claim-required.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAgB,EAAE,GAAW;IACpE,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;IACnC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,
|
|
1
|
+
{"version":3,"file":"claim-required.js","sourceRoot":"","sources":["../../../src/cli/guards/claim-required.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/docs.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/docs.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,aAAa,EAAE,MAAM,CAAC;IACtB,gCAAgC;IAChC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CA6I/C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAuCnD"}
|
package/dist/cli/guards/docs.js
CHANGED
|
@@ -94,7 +94,7 @@ export const GUARD_DOCS = {
|
|
|
94
94
|
'pr-review': {
|
|
95
95
|
purpose: 'Prompts for the review workflow after PR creation. Ensures sprint review artifacts are created.',
|
|
96
96
|
triggers: 'PostToolUse on Bash. Fires after a shell command completes (checks for `gh pr create`).',
|
|
97
|
-
behavior: 'Advisory — if the command created a PR, injects a reminder to run `slope review
|
|
97
|
+
behavior: 'Advisory — if the command created a PR, injects a reminder to run `slope pr review --pr=<N>` and create review artifacts. For connector/API-created PRs where this Bash guard cannot fire, run the same command manually.',
|
|
98
98
|
configuration: 'Disable: add "pr-review" to guidance.disabled.',
|
|
99
99
|
level: 'full',
|
|
100
100
|
},
|
|
@@ -119,6 +119,13 @@ export const GUARD_DOCS = {
|
|
|
119
119
|
configuration: 'Disable: add "worktree-check" to guidance.disabled.',
|
|
120
120
|
level: 'full',
|
|
121
121
|
},
|
|
122
|
+
'claim-required': {
|
|
123
|
+
purpose: 'Keeps implementation edits connected to the sprint workflow. It catches code changes made with no active sprint state, outside the implementing phase, or without a matching claim.',
|
|
124
|
+
triggers: 'PreToolUse on Edit, Write, and Codex apply_patch. Fires when a file modification is attempted.',
|
|
125
|
+
behavior: 'Mixed — asks for permission by default on no-sprint or non-implementing implementation writes, warns by default for missing claims during implementing, and denies when strict mode is enabled.',
|
|
126
|
+
configuration: 'guidance.requireSprintForImplementationWrites controls implementation writes outside active sprint/claim flow: "ask" (default), "deny" (strict), or "off". Disable entirely: add "claim-required" to guidance.disabled.',
|
|
127
|
+
level: 'full',
|
|
128
|
+
},
|
|
122
129
|
'sprint-completion': {
|
|
123
130
|
purpose: 'Enforces sprint lifecycle gates. Blocks PR creation and session end when required gates (build, test, scorecard) are incomplete.',
|
|
124
131
|
triggers: 'PreToolUse on Bash (blocks `gh pr create`), PostToolUse on Bash (auto-detects test pass), Stop (blocks session end).',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/cli/guards/docs.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAehF,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,OAAO,EAAE;QACP,OAAO,EAAE,gKAAgK;QACzK,QAAQ,EAAE,qFAAqF;QAC/F,QAAQ,EAAE,oJAAoJ;QAC9J,aAAa,EAAE,0HAA0H;QACzI,KAAK,EAAE,MAAM;KACd;IACD,MAAM,EAAE;QACN,OAAO,EAAE,8HAA8H;QACvI,QAAQ,EAAE,4EAA4E;QACtF,QAAQ,EAAE,uIAAuI;QACjJ,aAAa,EAAE,qIAAqI;QACpJ,KAAK,EAAE,MAAM;KACd;IACD,cAAc,EAAE;QACd,OAAO,EAAE,kGAAkG;QAC3G,QAAQ,EAAE,wEAAwE;QAClF,QAAQ,EAAE,uHAAuH;QACjI,aAAa,EAAE,+HAA+H;QAC9I,KAAK,EAAE,MAAM;KACd;IACD,aAAa,EAAE;QACb,OAAO,EAAE,wHAAwH;QACjI,QAAQ,EAAE,yEAAyE;QACnF,QAAQ,EAAE,6IAA6I;QACvJ,aAAa,EAAE,wGAAwG;QACvH,KAAK,EAAE,MAAM;KACd;IACD,UAAU,EAAE;QACV,OAAO,EAAE,6IAA6I;QACtJ,QAAQ,EAAE,2EAA2E;QACrF,QAAQ,EAAE,6GAA6G;QACvH,aAAa,EAAE,2IAA2I;QAC1J,KAAK,EAAE,MAAM;KACd;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,wGAAwG;QACjH,QAAQ,EAAE,+CAA+C;QACzD,QAAQ,EAAE,kIAAkI;QAC5I,aAAa,EAAE,iDAAiD;QAChE,KAAK,EAAE,MAAM;KACd;IACD,eAAe,EAAE;QACf,OAAO,EAAE,0IAA0I;QACnJ,QAAQ,EAAE,gEAAgE;QAC1E,QAAQ,EAAE,oHAAoH;QAC9H,aAAa,EAAE,yGAAyG;QACxH,KAAK,EAAE,MAAM;KACd;IACD,YAAY,EAAE;QACZ,OAAO,EAAE,qHAAqH;QAC9H,QAAQ,EAAE,6FAA6F;QACvG,QAAQ,EAAE,uGAAuG;QACjH,aAAa,EAAE,iJAAiJ;QAChK,KAAK,EAAE,MAAM;KACd;IACD,eAAe,EAAE;QACf,OAAO,EAAE,iGAAiG;QAC1G,QAAQ,EAAE,4EAA4E;QACtF,QAAQ,EAAE,yHAAyH;QACnI,aAAa,EAAE,2HAA2H;QAC1I,KAAK,EAAE,MAAM;KACd;IACD,aAAa,EAAE;QACb,OAAO,EAAE,6GAA6G;QACtH,QAAQ,EAAE,qGAAqG;QAC/G,QAAQ,EAAE,+HAA+H;QACzI,aAAa,EAAE,kDAAkD;QACjE,KAAK,EAAE,MAAM;KACd;IACD,eAAe,EAAE;QACf,OAAO,EAAE,qGAAqG;QAC9G,QAAQ,EAAE,+FAA+F;QACzG,QAAQ,EAAE,uIAAuI;QACjJ,aAAa,EAAE,oDAAoD;QACnE,KAAK,EAAE,MAAM;KACd;IACD,aAAa,EAAE;QACb,OAAO,EAAE,qGAAqG;QAC9G,QAAQ,EAAE,mFAAmF;QAC7F,QAAQ,EAAE,wHAAwH;QAClI,aAAa,EAAE,6FAA6F;QAC5G,KAAK,EAAE,MAAM;KACd;IACD,aAAa,EAAE;QACb,OAAO,EAAE,iGAAiG;QAC1G,QAAQ,EAAE,+CAA+C;QACzD,QAAQ,EAAE,uHAAuH;QACjI,aAAa,EAAE,kDAAkD;QACjE,KAAK,EAAE,MAAM;KACd;IACD,WAAW,EAAE;QACX,OAAO,EAAE,iGAAiG;QAC1G,QAAQ,EAAE,yFAAyF;QACnG,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../../src/cli/guards/docs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-review.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/pr-review.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"pr-review.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/pr-review.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,qBAAqB,CAAC;AAE9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAEhE;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA0CvF;AAED;oEACoE;AACpE,iBAAS,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,EAAE,CAenE;AAwBD,iBAAS,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAiB3D;AAED,iBAAS,qBAAqB,CAAC,IAAI,EAAE,oBAAoB,EAAE,GAAG,MAAM,CAKnE;AAGD,eAAO,MAAM,UAAU;;;;CAAsE,CAAC"}
|
|
@@ -18,10 +18,11 @@ export async function prReviewGuard(input, cwd) {
|
|
|
18
18
|
// source of truth: it requires `https://github.com/` literally followed by
|
|
19
19
|
// a path containing `/pull/<digits>`. If it matches, treat it as a real
|
|
20
20
|
// PR URL; if not, the guard skips.
|
|
21
|
-
const urlMatch = response.match(/(https:\/\/github\.com\/[^\s]+\/pull
|
|
21
|
+
const urlMatch = response.match(/(https:\/\/github\.com\/[^\s]+\/pull\/(\d+))/);
|
|
22
22
|
if (!urlMatch)
|
|
23
23
|
return {};
|
|
24
24
|
const prUrl = urlMatch[1];
|
|
25
|
+
const prNumber = urlMatch[2];
|
|
25
26
|
const recs = computeRecommendations(cwd);
|
|
26
27
|
const recLine = formatRecommendations(recs);
|
|
27
28
|
const suggestion = {
|
|
@@ -30,6 +31,7 @@ export async function prReviewGuard(input, cwd) {
|
|
|
30
31
|
context: [
|
|
31
32
|
`A pull request was just created (${prUrl}).`,
|
|
32
33
|
...(recLine ? [`Recommended reviews based on diff: ${recLine}`] : []),
|
|
34
|
+
`Run \`slope pr review --pr=${prNumber}\` to generate the transport-independent review workflow.`,
|
|
33
35
|
`After the review, capture findings with \`slope review findings add\`, then \`slope review amend\` to apply to scorecard.`,
|
|
34
36
|
'Tip: also run `slope pr finalize` to add Closes #N for any issues referenced in commits.',
|
|
35
37
|
].join(' '),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-review.js","sourceRoot":"","sources":["../../../src/cli/guards/pr-review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAgB,EAAE,GAAW;IAC/D,MAAM,OAAO,GAAI,KAAK,CAAC,UAAU,EAAE,OAAkB,IAAI,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAI,KAAK,CAAC,aAAa,EAAE,MAAiB,IAAK,KAAK,CAAC,aAAa,EAAE,MAAiB,IAAI,EAAE,CAAC;IAE1G,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IAEjD,0EAA0E;IAC1E,oEAAoE;IACpE,wEAAwE;IACxE,2EAA2E;IAC3E,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"pr-review.js","sourceRoot":"","sources":["../../../src/cli/guards/pr-review.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -472,6 +472,7 @@ Usage:
|
|
|
472
472
|
slope review recommend Recommend review types for current sprint
|
|
473
473
|
slope review findings add|list|clear Manage implementation review findings
|
|
474
474
|
slope review amend [--sprint=N] Amend scorecard with review findings
|
|
475
|
+
slope pr review [--pr=N] [--sprint=N] Run post-PR review workflow
|
|
475
476
|
slope briefing [--sprint=N] [options] Pre-round briefing
|
|
476
477
|
slope plan --complexity=<level> Pre-shot advisor (club + training + hazards)
|
|
477
478
|
slope classify --scope=... ... Classify a shot from execution trace
|