@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.
- package/dist/cli/commands/agent.d.ts +35 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +345 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/briefing.d.ts.map +1 -1
- package/dist/cli/commands/briefing.js +5 -3
- package/dist/cli/commands/briefing.js.map +1 -1
- package/dist/cli/commands/commit-ready.d.ts +29 -0
- package/dist/cli/commands/commit-ready.d.ts.map +1 -0
- package/dist/cli/commands/commit-ready.js +263 -0
- package/dist/cli/commands/commit-ready.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +97 -0
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/gate.d.ts +2 -0
- package/dist/cli/commands/gate.d.ts.map +1 -0
- package/dist/cli/commands/gate.js +175 -0
- package/dist/cli/commands/gate.js.map +1 -0
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +4 -0
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +23 -6
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/pr.d.ts +49 -0
- package/dist/cli/commands/pr.d.ts.map +1 -0
- package/dist/cli/commands/pr.js +214 -0
- package/dist/cli/commands/pr.js.map +1 -0
- package/dist/cli/commands/review-state.d.ts +1 -2
- package/dist/cli/commands/review-state.d.ts.map +1 -1
- package/dist/cli/commands/review-state.js +71 -25
- package/dist/cli/commands/review-state.js.map +1 -1
- package/dist/cli/commands/roadmap.d.ts.map +1 -1
- package/dist/cli/commands/roadmap.js +31 -4
- package/dist/cli/commands/roadmap.js.map +1 -1
- package/dist/cli/commands/sprint-plan.d.ts +21 -0
- package/dist/cli/commands/sprint-plan.d.ts.map +1 -0
- package/dist/cli/commands/sprint-plan.js +226 -0
- package/dist/cli/commands/sprint-plan.js.map +1 -0
- package/dist/cli/commands/sprint.d.ts.map +1 -1
- package/dist/cli/commands/sprint.js +137 -0
- package/dist/cli/commands/sprint.js.map +1 -1
- package/dist/cli/commands/ticket.d.ts +9 -0
- package/dist/cli/commands/ticket.d.ts.map +1 -0
- package/dist/cli/commands/ticket.js +168 -0
- package/dist/cli/commands/ticket.js.map +1 -0
- package/dist/cli/commands/version.d.ts.map +1 -1
- package/dist/cli/commands/version.js +33 -4
- package/dist/cli/commands/version.js.map +1 -1
- package/dist/cli/commands/vision.d.ts.map +1 -1
- package/dist/cli/commands/vision.js +14 -1
- package/dist/cli/commands/vision.js.map +1 -1
- package/dist/cli/guards/branch-before-commit.d.ts.map +1 -1
- package/dist/cli/guards/branch-before-commit.js +2 -1
- package/dist/cli/guards/branch-before-commit.js.map +1 -1
- package/dist/cli/guards/next-action.d.ts.map +1 -1
- package/dist/cli/guards/next-action.js +3 -2
- package/dist/cli/guards/next-action.js.map +1 -1
- package/dist/cli/guards/post-hole-enforcement.d.ts +18 -0
- package/dist/cli/guards/post-hole-enforcement.d.ts.map +1 -0
- package/dist/cli/guards/post-hole-enforcement.js +100 -0
- package/dist/cli/guards/post-hole-enforcement.js.map +1 -0
- package/dist/cli/guards/pr-review.d.ts +16 -1
- package/dist/cli/guards/pr-review.d.ts.map +1 -1
- package/dist/cli/guards/pr-review.js +87 -5
- package/dist/cli/guards/pr-review.js.map +1 -1
- package/dist/cli/guards/roadmap-edit-shipped.d.ts +12 -0
- package/dist/cli/guards/roadmap-edit-shipped.d.ts.map +1 -0
- package/dist/cli/guards/roadmap-edit-shipped.js +155 -0
- package/dist/cli/guards/roadmap-edit-shipped.js.map +1 -0
- package/dist/cli/index.js +40 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/registry.d.ts +1 -1
- package/dist/cli/registry.d.ts.map +1 -1
- package/dist/cli/registry.js +57 -1
- package/dist/cli/registry.js.map +1 -1
- package/dist/core/analyzers/git.d.ts +14 -0
- package/dist/core/analyzers/git.d.ts.map +1 -1
- package/dist/core/analyzers/git.js +47 -0
- package/dist/core/analyzers/git.js.map +1 -1
- package/dist/core/formatter.d.ts.map +1 -1
- package/dist/core/formatter.js +51 -2
- package/dist/core/formatter.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 +16 -0
- package/dist/core/guard.js.map +1 -1
- package/dist/core/index.d.ts +3 -2
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -2
- package/dist/core/index.js.map +1 -1
- package/dist/core/json-memory-backend.d.ts +23 -0
- package/dist/core/json-memory-backend.d.ts.map +1 -0
- package/dist/core/json-memory-backend.js +98 -0
- package/dist/core/json-memory-backend.js.map +1 -0
- package/dist/core/memory-backend.d.ts +30 -0
- package/dist/core/memory-backend.d.ts.map +1 -0
- package/dist/core/memory-backend.js +14 -0
- package/dist/core/memory-backend.js.map +1 -0
- package/dist/core/memory-types.d.ts +25 -0
- package/dist/core/memory-types.d.ts.map +1 -0
- package/dist/core/memory-types.js +4 -0
- package/dist/core/memory-types.js.map +1 -0
- package/dist/core/memory-validation.d.ts +4 -0
- package/dist/core/memory-validation.d.ts.map +1 -0
- package/dist/core/memory-validation.js +35 -0
- package/dist/core/memory-validation.js.map +1 -0
- package/dist/core/memory.d.ts +21 -37
- package/dist/core/memory.d.ts.map +1 -1
- package/dist/core/memory.js +97 -147
- package/dist/core/memory.js.map +1 -1
- package/dist/core/pi-settings.d.ts.map +1 -1
- package/dist/core/pi-settings.js +8 -0
- package/dist/core/pi-settings.js.map +1 -1
- package/dist/core/roadmap.d.ts +16 -2
- package/dist/core/roadmap.d.ts.map +1 -1
- package/dist/core/roadmap.js +81 -24
- package/dist/core/roadmap.js.map +1 -1
- package/dist/core/vision.d.ts +10 -0
- package/dist/core/vision.d.ts.map +1 -1
- package/dist/core/vision.js +68 -1
- package/dist/core/vision.js.map +1 -1
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/index.js +18 -0
- package/dist/store/index.js.map +1 -1
- package/dist/store/sqlite-memory-backend.d.ts +43 -0
- package/dist/store/sqlite-memory-backend.d.ts.map +1 -0
- package/dist/store/sqlite-memory-backend.js +181 -0
- package/dist/store/sqlite-memory-backend.js.map +1 -0
- package/dist/store-pg/index.d.ts.map +1 -1
- package/dist/store-pg/index.js +23 -0
- package/dist/store-pg/index.js.map +1 -1
- package/package.json +1 -1
- package/packages/pi-extension/dist/index.d.ts +19 -0
- package/packages/pi-extension/dist/index.js +339 -15
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { HookInput, GuardResult } from '../../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Post-hole enforcement guard: fires on Stop.
|
|
4
|
+
*
|
|
5
|
+
* Detects "silent roadmap drift" — sprints with shipped commits on main
|
|
6
|
+
* that haven't been properly closed out per the post-hole routine. A
|
|
7
|
+
* sprint is considered drifting if either:
|
|
8
|
+
* • roadmap.json status is not "complete", OR
|
|
9
|
+
* • no scorecard exists at docs/retros/sprint-N.json
|
|
10
|
+
*
|
|
11
|
+
* Advisory by default — surfaces the drift list with fix commands. Set
|
|
12
|
+
* SLOPE_POST_HOLE_BLOCK=1 to upgrade to a mechanical block on session end.
|
|
13
|
+
*
|
|
14
|
+
* Tied to GH #291. Builds on the validator drift detector from S86-1
|
|
15
|
+
* (findShippedSprintsOnMain in src/core/analyzers/git.ts).
|
|
16
|
+
*/
|
|
17
|
+
export declare function postHoleEnforcementGuard(_input: HookInput, cwd: string): Promise<GuardResult>;
|
|
18
|
+
//# sourceMappingURL=post-hole-enforcement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-hole-enforcement.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/post-hole-enforcement.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlE;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA8FnG"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { findShippedSprintsOnMain } from '../../core/index.js';
|
|
4
|
+
import { loadConfig } from '../config.js';
|
|
5
|
+
/**
|
|
6
|
+
* Post-hole enforcement guard: fires on Stop.
|
|
7
|
+
*
|
|
8
|
+
* Detects "silent roadmap drift" — sprints with shipped commits on main
|
|
9
|
+
* that haven't been properly closed out per the post-hole routine. A
|
|
10
|
+
* sprint is considered drifting if either:
|
|
11
|
+
* • roadmap.json status is not "complete", OR
|
|
12
|
+
* • no scorecard exists at docs/retros/sprint-N.json
|
|
13
|
+
*
|
|
14
|
+
* Advisory by default — surfaces the drift list with fix commands. Set
|
|
15
|
+
* SLOPE_POST_HOLE_BLOCK=1 to upgrade to a mechanical block on session end.
|
|
16
|
+
*
|
|
17
|
+
* Tied to GH #291. Builds on the validator drift detector from S86-1
|
|
18
|
+
* (findShippedSprintsOnMain in src/core/analyzers/git.ts).
|
|
19
|
+
*/
|
|
20
|
+
export async function postHoleEnforcementGuard(_input, cwd) {
|
|
21
|
+
let roadmapAbs;
|
|
22
|
+
let scorecardDirAbs;
|
|
23
|
+
let scorecardPattern;
|
|
24
|
+
try {
|
|
25
|
+
const config = loadConfig(cwd);
|
|
26
|
+
roadmapAbs = join(cwd, config.roadmapPath);
|
|
27
|
+
scorecardDirAbs = join(cwd, config.scorecardDir);
|
|
28
|
+
scorecardPattern = config.scorecardPattern;
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
// Pattern must contain a '*' wildcard so each sprint's scorecard resolves
|
|
34
|
+
// to a unique filename. Misconfigured patterns (e.g. 'sprint.json') would
|
|
35
|
+
// collide every sprint to the same path, making this check meaningless.
|
|
36
|
+
if (!scorecardPattern.includes('*')) {
|
|
37
|
+
return {
|
|
38
|
+
context: `SLOPE post-hole enforcement: scorecardPattern "${scorecardPattern}" has no '*' wildcard — drift detection skipped. Update .slope/config.json to e.g. "sprint-*.json".`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (!existsSync(roadmapAbs))
|
|
42
|
+
return {};
|
|
43
|
+
// Loose JSON parse — only need .sprints[]; phases and other fields are
|
|
44
|
+
// out of scope for this guard.
|
|
45
|
+
let parsed;
|
|
46
|
+
try {
|
|
47
|
+
parsed = JSON.parse(readFileSync(roadmapAbs, 'utf8'));
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return {};
|
|
51
|
+
}
|
|
52
|
+
const sprints = parsed?.sprints;
|
|
53
|
+
if (!Array.isArray(sprints))
|
|
54
|
+
return {};
|
|
55
|
+
const statusById = new Map();
|
|
56
|
+
for (const s of sprints) {
|
|
57
|
+
const id = s?.id;
|
|
58
|
+
const status = s?.status;
|
|
59
|
+
if (typeof id === 'number') {
|
|
60
|
+
statusById.set(id, typeof status === 'string' ? status : null);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const shipped = findShippedSprintsOnMain(cwd);
|
|
64
|
+
if (shipped.size === 0)
|
|
65
|
+
return {};
|
|
66
|
+
const drifts = [];
|
|
67
|
+
for (const id of [...shipped].sort((a, b) => b - a)) {
|
|
68
|
+
const status = statusById.get(id);
|
|
69
|
+
// Replace EVERY '*' so patterns with multiple wildcards are sanitized
|
|
70
|
+
// (CodeQL js/incomplete-sanitization): single .replace() leaves later
|
|
71
|
+
// occurrences as literal '*' which won't match real filenames.
|
|
72
|
+
const scorecardFile = join(scorecardDirAbs, scorecardPattern.replaceAll('*', String(id)));
|
|
73
|
+
const hasScorecard = existsSync(scorecardFile);
|
|
74
|
+
const issues = [];
|
|
75
|
+
if (status !== 'complete')
|
|
76
|
+
issues.push(`status="${status ?? 'unset'}"`);
|
|
77
|
+
if (!hasScorecard)
|
|
78
|
+
issues.push('no scorecard');
|
|
79
|
+
if (issues.length > 0)
|
|
80
|
+
drifts.push({ sprint: id, issues });
|
|
81
|
+
}
|
|
82
|
+
if (drifts.length === 0)
|
|
83
|
+
return {};
|
|
84
|
+
const shown = drifts.slice(0, 5);
|
|
85
|
+
const remainder = drifts.length - shown.length;
|
|
86
|
+
const lines = [
|
|
87
|
+
`SLOPE post-hole enforcement: ${drifts.length} shipped sprint${drifts.length === 1 ? '' : 's'} with incomplete close-out:`,
|
|
88
|
+
'',
|
|
89
|
+
...shown.map(d => ` • S${d.sprint}: ${d.issues.join(', ')}`),
|
|
90
|
+
];
|
|
91
|
+
if (remainder > 0)
|
|
92
|
+
lines.push(` …and ${remainder} more`);
|
|
93
|
+
lines.push('', 'Per the post-hole routine, each shipped sprint needs:', ' • status:complete in roadmap.json', ' • scorecard at docs/retros/sprint-N.json', '', 'Fix commands:', ' - Build scorecard: slope auto-card --sprint=<N>', ' - Validate scorecard: slope validate', ' - Roadmap status: edit docs/backlog/roadmap.json (or slope sprint complete)');
|
|
94
|
+
const message = lines.join('\n');
|
|
95
|
+
if (process.env.SLOPE_POST_HOLE_BLOCK === '1') {
|
|
96
|
+
return { decision: 'deny', blockReason: message };
|
|
97
|
+
}
|
|
98
|
+
return { context: message };
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=post-hole-enforcement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-hole-enforcement.js","sourceRoot":"","sources":["../../../src/cli/guards/post-hole-enforcement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
import type { HookInput, GuardResult } from '../../core/index.js';
|
|
2
|
+
import type { ReviewRecommendation } from '../../core/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* PR review guard: fires PostToolUse on Bash.
|
|
5
|
+
*
|
|
4
6
|
* Detects `gh pr create` output and prompts for review workflow choice.
|
|
7
|
+
* As of S91-4 (#302) the suggestion includes recommended review types
|
|
8
|
+
* computed from the PR's diff (file patterns) and current sprint metadata.
|
|
5
9
|
*/
|
|
6
|
-
export declare function prReviewGuard(input: HookInput,
|
|
10
|
+
export declare function prReviewGuard(input: HookInput, cwd: string): Promise<GuardResult>;
|
|
11
|
+
/** Inspect the current branch's diff and call recommendReviews(). Best-effort
|
|
12
|
+
* — returns [] if git is unavailable or the diff can't be read. */
|
|
13
|
+
declare function computeRecommendations(cwd: string): ReviewRecommendation[];
|
|
14
|
+
declare function inferTicketCount(cwd: string, base: string): number;
|
|
15
|
+
declare function formatRecommendations(recs: ReviewRecommendation[]): string;
|
|
16
|
+
export declare const _internals: {
|
|
17
|
+
computeRecommendations: typeof computeRecommendations;
|
|
18
|
+
formatRecommendations: typeof formatRecommendations;
|
|
19
|
+
inferTicketCount: typeof inferTicketCount;
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
7
22
|
//# sourceMappingURL=pr-review.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-review.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/pr-review.ts"],"names":[],"mappings":"
|
|
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,CAkCvF;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"}
|
|
@@ -1,23 +1,32 @@
|
|
|
1
|
+
import { execSync } from 'node:child_process';
|
|
2
|
+
import { recommendReviews } from '../../core/review.js';
|
|
1
3
|
/**
|
|
2
4
|
* PR review guard: fires PostToolUse on Bash.
|
|
5
|
+
*
|
|
3
6
|
* Detects `gh pr create` output and prompts for review workflow choice.
|
|
7
|
+
* As of S91-4 (#302) the suggestion includes recommended review types
|
|
8
|
+
* computed from the PR's diff (file patterns) and current sprint metadata.
|
|
4
9
|
*/
|
|
5
|
-
export async function prReviewGuard(input,
|
|
10
|
+
export async function prReviewGuard(input, cwd) {
|
|
6
11
|
const command = input.tool_input?.command ?? '';
|
|
7
12
|
const response = input.tool_response?.stdout ?? input.tool_response?.result ?? '';
|
|
8
|
-
// Only fire after gh pr create commands
|
|
9
13
|
if (!command.includes('gh pr create'))
|
|
10
14
|
return {};
|
|
11
|
-
// Verify a PR URL was returned (successful creation)
|
|
12
15
|
if (!response.includes('github.com/') || !response.includes('/pull/'))
|
|
13
16
|
return {};
|
|
14
|
-
// Extract PR URL from response
|
|
15
17
|
const urlMatch = response.match(/(https:\/\/github\.com\/[^\s]+\/pull\/\d+)/);
|
|
16
18
|
const prUrl = urlMatch ? urlMatch[1] : 'the PR';
|
|
19
|
+
const recs = computeRecommendations(cwd);
|
|
20
|
+
const recLine = formatRecommendations(recs);
|
|
17
21
|
const suggestion = {
|
|
18
22
|
id: 'pr-review',
|
|
19
23
|
title: 'PR Review',
|
|
20
|
-
context:
|
|
24
|
+
context: [
|
|
25
|
+
`A pull request was just created (${prUrl}).`,
|
|
26
|
+
...(recLine ? [`Recommended reviews based on diff: ${recLine}`] : []),
|
|
27
|
+
`After the review, capture findings with \`slope review findings add\`, then \`slope review amend\` to apply to scorecard.`,
|
|
28
|
+
'Tip: also run `slope pr finalize` to add Closes #N for any issues referenced in commits.',
|
|
29
|
+
].join(' '),
|
|
21
30
|
options: [
|
|
22
31
|
{ id: 'code', label: 'Code Review', description: 'Detailed line-by-line code review of the diff' },
|
|
23
32
|
{ id: 'architect', label: 'Architect Review', description: 'High-level architecture and design review' },
|
|
@@ -30,4 +39,77 @@ export async function prReviewGuard(input, _cwd) {
|
|
|
30
39
|
};
|
|
31
40
|
return { suggestion };
|
|
32
41
|
}
|
|
42
|
+
/** Inspect the current branch's diff and call recommendReviews(). Best-effort
|
|
43
|
+
* — returns [] if git is unavailable or the diff can't be read. */
|
|
44
|
+
function computeRecommendations(cwd) {
|
|
45
|
+
try {
|
|
46
|
+
const base = inferBaseRef(cwd) ?? 'origin/main';
|
|
47
|
+
const filesRaw = execSync(`git diff ${base}...HEAD --name-only`, { cwd, encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
48
|
+
const filePatterns = filesRaw ? filesRaw.split('\n').filter(Boolean) : [];
|
|
49
|
+
const ticketCount = inferTicketCount(cwd, base);
|
|
50
|
+
return recommendReviews({
|
|
51
|
+
ticketCount,
|
|
52
|
+
slope: 1,
|
|
53
|
+
filePatterns,
|
|
54
|
+
hasNewInfra: filePatterns.some(p => /(\.sql|migration|schema|infra|terraform|k8s|deploy)/i.test(p)),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function refExists(cwd, ref) {
|
|
62
|
+
try {
|
|
63
|
+
execSync(`git rev-parse --verify ${ref}`, { cwd, stdio: ['pipe', 'pipe', 'pipe'] });
|
|
64
|
+
return true;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function inferBaseRef(cwd) {
|
|
71
|
+
try {
|
|
72
|
+
const remoteHead = execSync('git symbolic-ref --short refs/remotes/origin/HEAD', { cwd, encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
73
|
+
// Verify the ref exists locally — symbolic-ref can return a name that
|
|
74
|
+
// points at a branch the local repo doesn't track yet (no fetch).
|
|
75
|
+
if (remoteHead && refExists(cwd, remoteHead))
|
|
76
|
+
return remoteHead;
|
|
77
|
+
}
|
|
78
|
+
catch { /* fall through */ }
|
|
79
|
+
for (const r of ['origin/main', 'origin/master', 'main', 'master']) {
|
|
80
|
+
if (refExists(cwd, r))
|
|
81
|
+
return r;
|
|
82
|
+
}
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
function inferTicketCount(cwd, base) {
|
|
86
|
+
try {
|
|
87
|
+
const subjects = execSync(`git log ${base}..HEAD --format=%s`, { cwd, encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
|
|
88
|
+
if (!subjects)
|
|
89
|
+
return 1;
|
|
90
|
+
// Count distinct ticket keys (S{N}-{M}) referenced across commit subjects;
|
|
91
|
+
// fall back to commit count if no ticket keys found.
|
|
92
|
+
const keys = new Set();
|
|
93
|
+
const re = /\bS(\d+)-(\d+)\b/g;
|
|
94
|
+
let m;
|
|
95
|
+
while ((m = re.exec(subjects)) !== null) {
|
|
96
|
+
keys.add(`${m[1]}-${m[2]}`);
|
|
97
|
+
}
|
|
98
|
+
if (keys.size > 0)
|
|
99
|
+
return keys.size;
|
|
100
|
+
return Math.max(1, subjects.split('\n').length);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
return 1;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
function formatRecommendations(recs) {
|
|
107
|
+
if (recs.length === 0)
|
|
108
|
+
return '';
|
|
109
|
+
return recs
|
|
110
|
+
.map(r => r.priority === 'required' ? `${r.review_type} (required)` : r.review_type)
|
|
111
|
+
.join(', ');
|
|
112
|
+
}
|
|
113
|
+
// Exported for tests
|
|
114
|
+
export const _internals = { computeRecommendations, formatRecommendations, inferTicketCount };
|
|
33
115
|
//# sourceMappingURL=pr-review.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-review.js","sourceRoot":"","sources":["../../../src/cli/guards/pr-review.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pr-review.js","sourceRoot":"","sources":["../../../src/cli/guards/pr-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { HookInput, GuardResult } from '../../core/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* roadmap-edit-shipped guard: PreToolUse on Edit|Write.
|
|
4
|
+
* Blocks edits to roadmap.json that modify any sprint with status:"complete".
|
|
5
|
+
* Shipped sprints are historical record — adding tickets, changing fields,
|
|
6
|
+
* or removing entries retroactively creates "paper-tickets" against frozen
|
|
7
|
+
* sprints (see GH #320 / commit 9255ee8).
|
|
8
|
+
*
|
|
9
|
+
* Override: set SLOPE_ALLOW_SHIPPED_EDIT=1 in the shell to bypass.
|
|
10
|
+
*/
|
|
11
|
+
export declare function roadmapEditShippedGuard(input: HookInput, cwd: string): Promise<GuardResult>;
|
|
12
|
+
//# sourceMappingURL=roadmap-edit-shipped.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roadmap-edit-shipped.d.ts","sourceRoot":"","sources":["../../../src/cli/guards/roadmap-edit-shipped.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKlE;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAuFjG"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { loadConfig } from '../../core/index.js';
|
|
4
|
+
const DEFAULT_ROADMAP_PATH = 'docs/backlog/roadmap.json';
|
|
5
|
+
/**
|
|
6
|
+
* roadmap-edit-shipped guard: PreToolUse on Edit|Write.
|
|
7
|
+
* Blocks edits to roadmap.json that modify any sprint with status:"complete".
|
|
8
|
+
* Shipped sprints are historical record — adding tickets, changing fields,
|
|
9
|
+
* or removing entries retroactively creates "paper-tickets" against frozen
|
|
10
|
+
* sprints (see GH #320 / commit 9255ee8).
|
|
11
|
+
*
|
|
12
|
+
* Override: set SLOPE_ALLOW_SHIPPED_EDIT=1 in the shell to bypass.
|
|
13
|
+
*/
|
|
14
|
+
export async function roadmapEditShippedGuard(input, cwd) {
|
|
15
|
+
if (process.env.SLOPE_ALLOW_SHIPPED_EDIT === '1')
|
|
16
|
+
return {};
|
|
17
|
+
const filePath = input.tool_input?.file_path;
|
|
18
|
+
if (!filePath)
|
|
19
|
+
return {};
|
|
20
|
+
let roadmapAbs;
|
|
21
|
+
try {
|
|
22
|
+
const config = loadConfig(cwd);
|
|
23
|
+
roadmapAbs = resolve(cwd, config.roadmapPath ?? DEFAULT_ROADMAP_PATH);
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
roadmapAbs = resolve(cwd, DEFAULT_ROADMAP_PATH);
|
|
27
|
+
}
|
|
28
|
+
if (resolve(filePath) !== roadmapAbs)
|
|
29
|
+
return {};
|
|
30
|
+
let currentContent;
|
|
31
|
+
try {
|
|
32
|
+
currentContent = readFileSync(roadmapAbs, 'utf8');
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return {}; // file doesn't exist yet — nothing to protect
|
|
36
|
+
}
|
|
37
|
+
const newString = input.tool_input?.new_string;
|
|
38
|
+
const oldString = input.tool_input?.old_string;
|
|
39
|
+
if (newString === undefined)
|
|
40
|
+
return {};
|
|
41
|
+
let wouldBeContent;
|
|
42
|
+
if (oldString !== undefined) {
|
|
43
|
+
if (!currentContent.includes(oldString))
|
|
44
|
+
return {}; // Edit will fail with its own error
|
|
45
|
+
wouldBeContent = currentContent.replace(oldString, newString);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
wouldBeContent = newString;
|
|
49
|
+
}
|
|
50
|
+
let current;
|
|
51
|
+
let next;
|
|
52
|
+
try {
|
|
53
|
+
current = JSON.parse(currentContent);
|
|
54
|
+
next = JSON.parse(wouldBeContent);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return {}; // malformed JSON on either side — let other tools surface that
|
|
58
|
+
}
|
|
59
|
+
if (!Array.isArray(current.sprints) || !Array.isArray(next.sprints))
|
|
60
|
+
return {};
|
|
61
|
+
const nextById = new Map();
|
|
62
|
+
for (const s of next.sprints) {
|
|
63
|
+
const id = s?.id;
|
|
64
|
+
if (typeof id === 'number')
|
|
65
|
+
nextById.set(id, s);
|
|
66
|
+
}
|
|
67
|
+
const violations = [];
|
|
68
|
+
for (const cur of current.sprints) {
|
|
69
|
+
const c = cur;
|
|
70
|
+
if (c?.status !== 'complete')
|
|
71
|
+
continue;
|
|
72
|
+
const id = c.id;
|
|
73
|
+
if (typeof id !== 'number')
|
|
74
|
+
continue;
|
|
75
|
+
const nxt = nextById.get(id);
|
|
76
|
+
if (nxt === undefined) {
|
|
77
|
+
violations.push(`S${id}: removed (was status:complete)`);
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
if (!deepEqual(cur, nxt)) {
|
|
81
|
+
violations.push(`S${id}: shipped sprint fields modified`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (violations.length === 0)
|
|
85
|
+
return {};
|
|
86
|
+
return {
|
|
87
|
+
decision: 'deny',
|
|
88
|
+
blockReason: [
|
|
89
|
+
'SLOPE: Cannot edit shipped sprints (status:complete).',
|
|
90
|
+
'',
|
|
91
|
+
'Violations:',
|
|
92
|
+
...violations.map(v => ` • ${v}`),
|
|
93
|
+
'',
|
|
94
|
+
'Shipped sprints are historical record. Modifying their tickets, status,',
|
|
95
|
+
'or theme creates "paper-tickets" against frozen sprints (GH #320).',
|
|
96
|
+
'File the work as a NEW sprint instead.',
|
|
97
|
+
'',
|
|
98
|
+
'Override: set SLOPE_ALLOW_SHIPPED_EDIT=1 if you genuinely need to',
|
|
99
|
+
'correct shipped-sprint history.',
|
|
100
|
+
].join('\n'),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/** Detect built-in object types that need special equality handling.
|
|
104
|
+
* Plain objects fall through to recursive key comparison. */
|
|
105
|
+
function isNonPlainObject(v) {
|
|
106
|
+
if (v === null || typeof v !== 'object')
|
|
107
|
+
return false;
|
|
108
|
+
const proto = Object.getPrototypeOf(v);
|
|
109
|
+
return proto !== Object.prototype && proto !== null && !Array.isArray(v);
|
|
110
|
+
}
|
|
111
|
+
function deepEqual(a, b) {
|
|
112
|
+
if (a === b)
|
|
113
|
+
return true;
|
|
114
|
+
if (typeof a !== typeof b)
|
|
115
|
+
return false;
|
|
116
|
+
if (a === null || b === null)
|
|
117
|
+
return a === b;
|
|
118
|
+
if (typeof a !== 'object')
|
|
119
|
+
return false;
|
|
120
|
+
if (Array.isArray(a) !== Array.isArray(b))
|
|
121
|
+
return false;
|
|
122
|
+
if (Array.isArray(a) && Array.isArray(b)) {
|
|
123
|
+
if (a.length !== b.length)
|
|
124
|
+
return false;
|
|
125
|
+
for (let i = 0; i < a.length; i++) {
|
|
126
|
+
if (!deepEqual(a[i], b[i]))
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
// Non-plain objects (Date, RegExp, Map, Set, etc.) — compare via JSON
|
|
132
|
+
// serialization as a conservative fallback. roadmap.json never contains
|
|
133
|
+
// these in practice, but guarding here prevents future schema additions
|
|
134
|
+
// from triggering infinite recursion or incorrect equality.
|
|
135
|
+
if (isNonPlainObject(a) || isNonPlainObject(b)) {
|
|
136
|
+
try {
|
|
137
|
+
return JSON.stringify(a) === JSON.stringify(b);
|
|
138
|
+
}
|
|
139
|
+
catch {
|
|
140
|
+
return false; // circular references → conservatively flag as unequal
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
const ka = Object.keys(a).sort();
|
|
144
|
+
const kb = Object.keys(b).sort();
|
|
145
|
+
if (ka.length !== kb.length)
|
|
146
|
+
return false;
|
|
147
|
+
for (let i = 0; i < ka.length; i++) {
|
|
148
|
+
if (ka[i] !== kb[i])
|
|
149
|
+
return false;
|
|
150
|
+
if (!deepEqual(a[ka[i]], b[kb[i]]))
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=roadmap-edit-shipped.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roadmap-edit-shipped.js","sourceRoot":"","sources":["../../../src/cli/guards/roadmap-edit-shipped.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -28,6 +28,11 @@ import { statusCommand } from './commands/status.js';
|
|
|
28
28
|
import { tournamentCommand } from './commands/tournament.js';
|
|
29
29
|
import { autoCardCommand } from './commands/auto-card.js';
|
|
30
30
|
import { nextCommand } from './commands/next.js';
|
|
31
|
+
import { agentCommand } from './commands/agent.js';
|
|
32
|
+
import { ticketCommand } from './commands/ticket.js';
|
|
33
|
+
import { gateCommand } from './commands/gate.js';
|
|
34
|
+
import { commitReadyCommand } from './commands/commit-ready.js';
|
|
35
|
+
import { prCommand } from './commands/pr.js';
|
|
31
36
|
import { sessionCommand } from './commands/session.js';
|
|
32
37
|
import { hookCommand } from './commands/hook.js';
|
|
33
38
|
import { roadmapCommand } from './commands/roadmap.js';
|
|
@@ -76,8 +81,9 @@ if (subcommand === '--help' || subcommand === '-h') {
|
|
|
76
81
|
SLOPE CLI — Sprint Lifecycle & Operational Performance Engine
|
|
77
82
|
|
|
78
83
|
Usage:
|
|
79
|
-
slope init [--claude-code|--cursor|--opencode|--generic|--all] Initialize .slope/ directory
|
|
84
|
+
slope init [--claude-code|--cursor|--codex|--opencode|--generic|--all] Initialize .slope/ directory
|
|
80
85
|
slope init --team Enable multi-developer team mode
|
|
86
|
+
slope init --with-example Also seed docs/retros/sprint-1.json with an example
|
|
81
87
|
slope card Show handicap card
|
|
82
88
|
slope card --player=<name> Show handicap for a specific player
|
|
83
89
|
slope card --team Show per-player comparison table
|
|
@@ -188,6 +194,36 @@ switch (subcommand) {
|
|
|
188
194
|
case 'next':
|
|
189
195
|
nextCommand();
|
|
190
196
|
break;
|
|
197
|
+
case 'agent':
|
|
198
|
+
agentCommand(process.argv.slice(3)).catch(err => {
|
|
199
|
+
console.error('Error:', err.message);
|
|
200
|
+
process.exit(1);
|
|
201
|
+
});
|
|
202
|
+
break;
|
|
203
|
+
case 'ticket':
|
|
204
|
+
ticketCommand(process.argv.slice(3)).catch(err => {
|
|
205
|
+
console.error('Error:', err.message);
|
|
206
|
+
process.exit(1);
|
|
207
|
+
});
|
|
208
|
+
break;
|
|
209
|
+
case 'gate':
|
|
210
|
+
gateCommand(process.argv.slice(3)).catch(err => {
|
|
211
|
+
console.error('Error:', err.message);
|
|
212
|
+
process.exit(1);
|
|
213
|
+
});
|
|
214
|
+
break;
|
|
215
|
+
case 'commit-ready':
|
|
216
|
+
commitReadyCommand(process.argv.slice(3)).catch(err => {
|
|
217
|
+
console.error('Error:', err.message);
|
|
218
|
+
process.exit(1);
|
|
219
|
+
});
|
|
220
|
+
break;
|
|
221
|
+
case 'pr':
|
|
222
|
+
prCommand(process.argv.slice(3)).catch(err => {
|
|
223
|
+
console.error('Error:', err.message);
|
|
224
|
+
process.exit(1);
|
|
225
|
+
});
|
|
226
|
+
break;
|
|
191
227
|
case 'roadmap':
|
|
192
228
|
roadmapCommand(process.argv.slice(3)).catch(err => {
|
|
193
229
|
console.error('Error:', err.message);
|
|
@@ -414,8 +450,9 @@ switch (subcommand) {
|
|
|
414
450
|
SLOPE CLI — Sprint Lifecycle & Operational Performance Engine
|
|
415
451
|
|
|
416
452
|
Usage:
|
|
417
|
-
slope init [--claude-code|--cursor|--opencode|--generic|--all] Initialize .slope/ directory
|
|
453
|
+
slope init [--claude-code|--cursor|--codex|--opencode|--generic|--all] Initialize .slope/ directory
|
|
418
454
|
slope init --team Enable multi-developer team mode
|
|
455
|
+
slope init --with-example Also seed docs/retros/sprint-1.json with an example
|
|
419
456
|
slope card Show handicap card
|
|
420
457
|
slope card --player=<name> Show handicap for a specific player
|
|
421
458
|
slope card --team Show per-player comparison table
|
|
@@ -482,6 +519,7 @@ Examples:
|
|
|
482
519
|
slope init --cursor Also install Cursor IDE rules
|
|
483
520
|
slope init --cursor Also add SLOPE MCP server to .cursor/mcp.json
|
|
484
521
|
slope init --claude-code Also install Claude Code rules + hooks
|
|
522
|
+
slope init --codex Also install Codex CLI hooks + AGENTS.md guidance
|
|
485
523
|
slope init --opencode Also install OpenCode AGENTS.md + MCP config
|
|
486
524
|
slope init --team Enable multi-developer mode
|
|
487
525
|
slope card Show handicap across all scorecards
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/registry.d.ts
CHANGED
|
@@ -25,6 +25,6 @@ export interface CliCommandMeta {
|
|
|
25
25
|
flags?: CliFlag[];
|
|
26
26
|
}
|
|
27
27
|
/** Command files that are internal implementation modules, not user-invocable top-level commands. */
|
|
28
|
-
export declare const CLI_INTERNAL_MODULES: readonly ["phase", "review-state", "review-run"];
|
|
28
|
+
export declare const CLI_INTERNAL_MODULES: readonly ["phase", "review-state", "review-run", "sprint-plan"];
|
|
29
29
|
export declare const CLI_COMMAND_REGISTRY: readonly CliCommandMeta[];
|
|
30
30
|
//# sourceMappingURL=registry.d.ts.map
|