@slope-dev/slope 1.12.0 → 1.13.1
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/README.md +17 -2
- package/dist/adapters.d.ts +12 -0
- package/dist/adapters.d.ts.map +1 -0
- package/dist/adapters.js +15 -0
- package/dist/adapters.js.map +1 -0
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +2 -0
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/hook.d.ts +4 -0
- package/dist/cli/commands/hook.d.ts.map +1 -1
- package/dist/cli/commands/hook.js +57 -83
- package/dist/cli/commands/hook.js.map +1 -1
- package/dist/cli/commands/init.d.ts +10 -3
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +78 -9
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/map.d.ts.map +1 -1
- package/dist/cli/commands/map.js +8 -19
- package/dist/cli/commands/map.js.map +1 -1
- package/dist/cli/commands/roadmap.d.ts.map +1 -1
- package/dist/cli/commands/roadmap.js +94 -1
- package/dist/cli/commands/roadmap.js.map +1 -1
- package/dist/cli/guards/branch-before-commit.d.ts +7 -0
- package/dist/cli/guards/branch-before-commit.d.ts.map +1 -0
- package/dist/cli/guards/branch-before-commit.js +43 -0
- package/dist/cli/guards/branch-before-commit.js.map +1 -0
- package/dist/cli/guards/stop-check.d.ts +4 -0
- package/dist/cli/guards/stop-check.d.ts.map +1 -1
- package/dist/cli/guards/stop-check.js +50 -16
- package/dist/cli/guards/stop-check.js.map +1 -1
- package/dist/cli/registry.d.ts +12 -0
- package/dist/cli/registry.d.ts.map +1 -0
- package/dist/cli/registry.js +40 -0
- package/dist/cli/registry.js.map +1 -0
- package/dist/core/adapters/claude-code.d.ts +25 -0
- package/dist/core/adapters/claude-code.d.ts.map +1 -0
- package/dist/core/adapters/claude-code.js +133 -0
- package/dist/core/adapters/claude-code.js.map +1 -0
- package/dist/core/adapters/cursor.d.ts +35 -0
- package/dist/core/adapters/cursor.d.ts.map +1 -0
- package/dist/core/adapters/cursor.js +138 -0
- package/dist/core/adapters/cursor.js.map +1 -0
- package/dist/core/adapters/generic.d.ts +26 -0
- package/dist/core/adapters/generic.d.ts.map +1 -0
- package/dist/core/adapters/generic.js +137 -0
- package/dist/core/adapters/generic.js.map +1 -0
- package/dist/core/adapters/windsurf.d.ts +34 -0
- package/dist/core/adapters/windsurf.d.ts.map +1 -0
- package/dist/core/adapters/windsurf.js +165 -0
- package/dist/core/adapters/windsurf.js.map +1 -0
- 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 +10 -3
- package/dist/core/guard.d.ts.map +1 -1
- package/dist/core/guard.js +33 -59
- package/dist/core/guard.js.map +1 -1
- package/dist/core/harness.d.ts +55 -0
- package/dist/core/harness.d.ts.map +1 -0
- package/dist/core/harness.js +88 -0
- package/dist/core/harness.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +7 -0
- package/dist/core/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -72,7 +72,7 @@ Or per-command: `slope review --metaphor=tennis`
|
|
|
72
72
|
|
|
73
73
|
Published as a single package: [`@slope-dev/slope`](https://www.npmjs.com/package/@slope-dev/slope)
|
|
74
74
|
|
|
75
|
-
Includes the core scoring engine, SQLite store, CLI (
|
|
75
|
+
Includes the core scoring engine, SQLite store, CLI (30 commands), and MCP server.
|
|
76
76
|
|
|
77
77
|
## CLI Commands
|
|
78
78
|
|
|
@@ -83,6 +83,9 @@ Includes the core scoring engine, SQLite store, CLI (22 commands), and MCP serve
|
|
|
83
83
|
| `slope card` | Display handicap card with rolling windows |
|
|
84
84
|
| `slope validate [path]` | Validate scorecard(s) |
|
|
85
85
|
| `slope review [path] [--plain] [--metaphor=id]` | Format sprint review as markdown |
|
|
86
|
+
| `slope review recommend` | Recommend review types for current sprint |
|
|
87
|
+
| `slope review findings add\|list\|clear` | Track implementation review findings |
|
|
88
|
+
| `slope review amend [--sprint=N]` | Apply review findings as hazards and recalculate score |
|
|
86
89
|
| `slope report --html [--output=path] [--metaphor=id]` | Generate HTML performance report |
|
|
87
90
|
| `slope tournament --id=<id> --sprints=N..M` | Build tournament review from sprint range |
|
|
88
91
|
| `slope auto-card --sprint=N [--ci=path]` | Generate scorecard from git + CI signals |
|
|
@@ -163,7 +166,7 @@ Installs:
|
|
|
163
166
|
|
|
164
167
|
## Agent Guidance Hooks
|
|
165
168
|
|
|
166
|
-
SLOPE can guide AI agents in real-time via hook integration.
|
|
169
|
+
SLOPE can guide AI agents in real-time via hook integration. 15 guards provide contextual hints:
|
|
167
170
|
|
|
168
171
|
| Guard | Trigger | What it does |
|
|
169
172
|
|-------|---------|-------------|
|
|
@@ -173,6 +176,15 @@ SLOPE can guide AI agents in real-time via hook integration. Six guards provide
|
|
|
173
176
|
| `scope-drift` | Before file edit | Warns when editing outside claimed scope |
|
|
174
177
|
| `compaction` | Before context compact | Saves checkpoint to store |
|
|
175
178
|
| `stop-check` | Before session end | Blocks if uncommitted/unpushed work exists |
|
|
179
|
+
| `next-action` | Before session end | Suggests next actions based on sprint state |
|
|
180
|
+
| `subagent-gate` | Before task spawn | Enforces model and turn limits on subagents |
|
|
181
|
+
| `push-nudge` | After tool use | Nudges push after prolonged period without pushing |
|
|
182
|
+
| `workflow-gate` | Before tool use | Enforces sprint workflow compliance |
|
|
183
|
+
| `review-tier` | Before tool use | Suggests review tier based on sprint complexity |
|
|
184
|
+
| `version-check` | Before tool use | Warns when SLOPE version is outdated |
|
|
185
|
+
| `stale-flows` | Before file edit | Warns when editing files in stale flow definitions |
|
|
186
|
+
| `pr-review` | After tool use | Suggests PR review actions |
|
|
187
|
+
| `transcript` | After tool use | Captures session transcript data |
|
|
176
188
|
|
|
177
189
|
Install all guards:
|
|
178
190
|
|
|
@@ -219,6 +231,9 @@ import {
|
|
|
219
231
|
generateHtmlReport,
|
|
220
232
|
getMetaphor,
|
|
221
233
|
loadScorecards,
|
|
234
|
+
recommendReviews,
|
|
235
|
+
findingToHazard,
|
|
236
|
+
amendScorecardWithFindings,
|
|
222
237
|
} from '@slope-dev/slope';
|
|
223
238
|
|
|
224
239
|
// Build a scorecard
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import './core/adapters/claude-code.js';
|
|
2
|
+
import './core/adapters/cursor.js';
|
|
3
|
+
import './core/adapters/windsurf.js';
|
|
4
|
+
import './core/adapters/generic.js';
|
|
5
|
+
export { registerAdapter, getAdapter, listAdapters, detectAdapter, clearAdapters, resolveToolMatcher, ADAPTER_PRIORITY, TOOL_CATEGORIES, CLAUDE_CODE_TOOLS } from './core/harness.js';
|
|
6
|
+
export type { HarnessAdapter, HarnessId, ToolCategory, ToolNameMap } from './core/harness.js';
|
|
7
|
+
export { ClaudeCodeAdapter, claudeCodeAdapter } from './core/adapters/claude-code.js';
|
|
8
|
+
export { CursorAdapter, cursorAdapter } from './core/adapters/cursor.js';
|
|
9
|
+
export { WindsurfAdapter, windsurfAdapter } from './core/adapters/windsurf.js';
|
|
10
|
+
export { GenericAdapter, genericAdapter } from './core/adapters/generic.js';
|
|
11
|
+
export type { GuardManifestEntry } from './core/adapters/generic.js';
|
|
12
|
+
//# sourceMappingURL=adapters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.d.ts","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAIA,OAAO,gCAAgC,CAAC;AACxC,OAAO,2BAA2B,CAAC;AACnC,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AAGpC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtL,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG9F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC"}
|
package/dist/adapters.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// SLOPE Adapter Barrel — lightweight subpath export for `@slope-dev/slope/adapters`.
|
|
2
|
+
// Consumers can import adapter framework functions + types without pulling in the entire core.
|
|
3
|
+
// Side-effect imports: ensure all adapters are registered
|
|
4
|
+
import './core/adapters/claude-code.js';
|
|
5
|
+
import './core/adapters/cursor.js';
|
|
6
|
+
import './core/adapters/windsurf.js';
|
|
7
|
+
import './core/adapters/generic.js';
|
|
8
|
+
// Framework functions
|
|
9
|
+
export { registerAdapter, getAdapter, listAdapters, detectAdapter, clearAdapters, resolveToolMatcher, ADAPTER_PRIORITY, TOOL_CATEGORIES, CLAUDE_CODE_TOOLS } from './core/harness.js';
|
|
10
|
+
// Adapter classes + singletons
|
|
11
|
+
export { ClaudeCodeAdapter, claudeCodeAdapter } from './core/adapters/claude-code.js';
|
|
12
|
+
export { CursorAdapter, cursorAdapter } from './core/adapters/cursor.js';
|
|
13
|
+
export { WindsurfAdapter, windsurfAdapter } from './core/adapters/windsurf.js';
|
|
14
|
+
export { GenericAdapter, genericAdapter } from './core/adapters/generic.js';
|
|
15
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../src/adapters.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,+FAA+F;AAE/F,0DAA0D;AAC1D,OAAO,gCAAgC,CAAC;AACxC,OAAO,2BAA2B,CAAC;AACnC,OAAO,6BAA6B,CAAC;AACrC,OAAO,4BAA4B,CAAC;AAEpC,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAKtL,+BAA+B;AAC/B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AACA,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":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAsB,MAAM,qBAAqB,CAAC;AAmBjG,KAAK,YAAY,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AAqB5E,+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,CA0FhE;AAuCD;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDtE"}
|
|
@@ -14,6 +14,7 @@ import { versionCheckGuard } from '../guards/version-check.js';
|
|
|
14
14
|
import { nextActionGuard } from '../guards/next-action.js';
|
|
15
15
|
import { prReviewGuard } from '../guards/pr-review.js';
|
|
16
16
|
import { transcriptGuard } from '../guards/transcript.js';
|
|
17
|
+
import { branchBeforeCommitGuard } from '../guards/branch-before-commit.js';
|
|
17
18
|
import { execSync } from 'node:child_process';
|
|
18
19
|
/** Registry of guard handler implementations */
|
|
19
20
|
const handlers = {
|
|
@@ -31,6 +32,7 @@ const handlers = {
|
|
|
31
32
|
'next-action': nextActionGuard,
|
|
32
33
|
'pr-review': prReviewGuard,
|
|
33
34
|
transcript: transcriptGuard,
|
|
35
|
+
'branch-before-commit': branchBeforeCommitGuard,
|
|
34
36
|
};
|
|
35
37
|
/** Register a guard handler */
|
|
36
38
|
export function registerGuard(name, handler) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErL,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,gDAAgD;AAChD,MAAM,QAAQ,GAA6C;IACzD,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,cAAc,EAAE,gBAAgB;IAChC,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,eAAe;IAC3B,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,eAAe;
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/cli/commands/guard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
import '../../core/adapters/claude-code.js';
|
|
2
|
+
import '../../core/adapters/cursor.js';
|
|
3
|
+
import '../../core/adapters/windsurf.js';
|
|
4
|
+
import '../../core/adapters/generic.js';
|
|
1
5
|
export declare function hookCommand(args: string[]): Promise<void>;
|
|
2
6
|
//# sourceMappingURL=hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"AAMA,OAAO,oCAAoC,CAAC;AAC5C,OAAO,+BAA+B,CAAC;AACvC,OAAO,iCAAiC,CAAC;AACzC,OAAO,gCAAgC,CAAC;AAkFxC,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyC/D"}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { writeFileSync, readFileSync, existsSync, unlinkSync, mkdirSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { loadHooksConfig, saveHooksConfig } from '../hooks-config.js';
|
|
4
|
-
import { getAllGuardDefinitions,
|
|
4
|
+
import { getAllGuardDefinitions, loadPluginGuards, loadConfig, detectAdapter, getAdapter, listAdapters } from '../../core/index.js';
|
|
5
|
+
// Import to trigger auto-registration of adapters
|
|
6
|
+
import '../../core/adapters/claude-code.js';
|
|
7
|
+
import '../../core/adapters/cursor.js';
|
|
8
|
+
import '../../core/adapters/windsurf.js';
|
|
9
|
+
import '../../core/adapters/generic.js';
|
|
5
10
|
const HOOK_TEMPLATES = {
|
|
6
11
|
'session-start': {
|
|
7
12
|
description: 'Start a SLOPE session and show a compact briefing',
|
|
@@ -33,21 +38,22 @@ const HOOK_TEMPLATES = {
|
|
|
33
38
|
managed: ['slope auto-card --sprint="$1" --dry-run'],
|
|
34
39
|
},
|
|
35
40
|
};
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (existsSync(join(cwd, '.cursor')))
|
|
40
|
-
return 'cursor';
|
|
41
|
-
return 'claude-code'; // default
|
|
42
|
-
}
|
|
43
|
-
function getHooksDir(cwd, provider) {
|
|
44
|
-
switch (provider) {
|
|
41
|
+
/** Map harness adapter id to its hooks directory */
|
|
42
|
+
function getHooksDir(cwd, harnessId) {
|
|
43
|
+
switch (harnessId) {
|
|
45
44
|
case 'claude-code': return join(cwd, '.claude', 'hooks');
|
|
46
45
|
case 'cursor': return join(cwd, '.cursor', 'hooks');
|
|
46
|
+
case 'windsurf': return join(cwd, '.windsurf', 'hooks');
|
|
47
|
+
default: return join(cwd, '.slope', 'hooks');
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
/** Resolve harness id for lifecycle hooks — uses adapter framework detection */
|
|
51
|
+
function resolveHarnessId(cwd) {
|
|
52
|
+
const adapter = detectAdapter(cwd);
|
|
53
|
+
return adapter?.id ?? 'claude-code';
|
|
54
|
+
}
|
|
55
|
+
function hookFilePath(cwd, harnessId, name) {
|
|
56
|
+
return join(getHooksDir(cwd, harnessId), `slope-${name}.sh`);
|
|
51
57
|
}
|
|
52
58
|
function generateHookScript(name) {
|
|
53
59
|
const template = HOOK_TEMPLATES[name];
|
|
@@ -84,7 +90,7 @@ export async function hookCommand(args) {
|
|
|
84
90
|
switch (sub) {
|
|
85
91
|
case 'add':
|
|
86
92
|
if (flags.level === 'full' || flags.level === 'scoring') {
|
|
87
|
-
installGuardHooks(cwd, flags.level);
|
|
93
|
+
installGuardHooks(cwd, flags.level, flags.harness);
|
|
88
94
|
}
|
|
89
95
|
else {
|
|
90
96
|
addHook(hookName, cwd);
|
|
@@ -104,10 +110,13 @@ export async function hookCommand(args) {
|
|
|
104
110
|
slope hook — Manage SLOPE lifecycle hooks
|
|
105
111
|
|
|
106
112
|
Usage:
|
|
107
|
-
slope hook add <name>
|
|
108
|
-
slope hook
|
|
109
|
-
slope hook
|
|
110
|
-
slope hook
|
|
113
|
+
slope hook add <name> Install a hook from the catalog
|
|
114
|
+
slope hook add --level=full [--harness=<id>] Install guard hooks (auto-detect or specify harness)
|
|
115
|
+
slope hook remove <name> Remove an installed hook
|
|
116
|
+
slope hook list [--available] Show installed hooks (or full catalog)
|
|
117
|
+
slope hook show <name> Display hook file contents
|
|
118
|
+
|
|
119
|
+
Harness adapters: ${listAdapters().join(', ') || '(none registered)'}
|
|
111
120
|
|
|
112
121
|
Available hooks:
|
|
113
122
|
${Object.entries(HOOK_TEMPLATES).map(([k, v]) => ` ${k.padEnd(20)} ${v.description}`).join('\n')}
|
|
@@ -125,10 +134,10 @@ function addHook(name, cwd) {
|
|
|
125
134
|
console.error(`Error: unknown hook "${name}". Available: ${Object.keys(HOOK_TEMPLATES).join(', ')}`);
|
|
126
135
|
process.exit(1);
|
|
127
136
|
}
|
|
128
|
-
const
|
|
129
|
-
const dir = getHooksDir(cwd,
|
|
137
|
+
const harnessId = resolveHarnessId(cwd);
|
|
138
|
+
const dir = getHooksDir(cwd, harnessId);
|
|
130
139
|
mkdirSync(dir, { recursive: true });
|
|
131
|
-
const filePath = hookFilePath(cwd,
|
|
140
|
+
const filePath = hookFilePath(cwd, harnessId, name);
|
|
132
141
|
if (existsSync(filePath)) {
|
|
133
142
|
console.error(`Hook "${name}" already installed at ${filePath}`);
|
|
134
143
|
console.error('Remove it first with: slope hook remove ' + name);
|
|
@@ -137,11 +146,11 @@ function addHook(name, cwd) {
|
|
|
137
146
|
const script = generateHookScript(name);
|
|
138
147
|
writeFileSync(filePath, script, { mode: 0o755 });
|
|
139
148
|
const config = loadHooksConfig(cwd);
|
|
140
|
-
config.installed[name] = { provider, installed_at: new Date().toISOString() };
|
|
149
|
+
config.installed[name] = { provider: harnessId, installed_at: new Date().toISOString() };
|
|
141
150
|
saveHooksConfig(cwd, config);
|
|
142
151
|
console.log(`\nInstalled hook: ${name}`);
|
|
143
152
|
console.log(` File: ${filePath}`);
|
|
144
|
-
console.log(`
|
|
153
|
+
console.log(` Harness: ${harnessId}`);
|
|
145
154
|
console.log(`\nEdit the file to add custom commands below the SLOPE END marker.\n`);
|
|
146
155
|
}
|
|
147
156
|
function removeHook(name, cwd) {
|
|
@@ -211,8 +220,7 @@ function showHook(name, cwd) {
|
|
|
211
220
|
console.error(`Unknown hook: "${name}"`);
|
|
212
221
|
process.exit(1);
|
|
213
222
|
}
|
|
214
|
-
function installGuardHooks(cwd, level) {
|
|
215
|
-
const provider = detectProvider(cwd);
|
|
223
|
+
function installGuardHooks(cwd, level, harnessId) {
|
|
216
224
|
// Load custom guard plugins
|
|
217
225
|
const config = loadConfig(cwd);
|
|
218
226
|
loadPluginGuards(cwd, config.plugins);
|
|
@@ -222,74 +230,40 @@ function installGuardHooks(cwd, level) {
|
|
|
222
230
|
console.log('\n No guards to install for this level.\n');
|
|
223
231
|
return;
|
|
224
232
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
console.log(`\n Guard hooks for ${provider} are not yet supported.`);
|
|
230
|
-
console.log(' Guards are currently available for Claude Code.\n');
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
function installClaudeCodeGuards(cwd, guards) {
|
|
234
|
-
const hooksDir = join(cwd, '.claude', 'hooks');
|
|
235
|
-
mkdirSync(hooksDir, { recursive: true });
|
|
236
|
-
// Create the guard dispatcher script
|
|
237
|
-
const dispatcherPath = join(hooksDir, 'slope-guard.sh');
|
|
238
|
-
if (!existsSync(dispatcherPath)) {
|
|
239
|
-
const script = [
|
|
240
|
-
'#!/usr/bin/env bash',
|
|
241
|
-
'# SLOPE guard dispatcher — routes hook events to slope guard handlers',
|
|
242
|
-
'# Auto-generated by slope hook add --level=full',
|
|
243
|
-
'',
|
|
244
|
-
'# === SLOPE MANAGED (do not edit above this line) ===',
|
|
245
|
-
'slope guard "$@"',
|
|
246
|
-
'# === SLOPE END ===',
|
|
247
|
-
'',
|
|
248
|
-
].join('\n');
|
|
249
|
-
writeFileSync(dispatcherPath, script, { mode: 0o755 });
|
|
250
|
-
console.log(` Created ${dispatcherPath}`);
|
|
233
|
+
// Safety check: ensure at least one adapter is registered
|
|
234
|
+
if (listAdapters().length === 0) {
|
|
235
|
+
console.error('\n No harness adapters registered. This is a bug — adapters should auto-register on import.\n');
|
|
236
|
+
process.exit(1);
|
|
251
237
|
}
|
|
252
|
-
//
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
settings = JSON.parse(readFileSync(settingsPath, 'utf8'));
|
|
238
|
+
// Resolve adapter: explicit --harness flag, auto-detect, or error
|
|
239
|
+
let adapter;
|
|
240
|
+
if (harnessId) {
|
|
241
|
+
adapter = getAdapter(harnessId);
|
|
242
|
+
if (!adapter) {
|
|
243
|
+
const available = listAdapters().join(', ');
|
|
244
|
+
console.error(`\n Unknown harness: "${harnessId}". Available: ${available}\n`);
|
|
245
|
+
process.exit(1);
|
|
261
246
|
}
|
|
262
|
-
catch { /* start fresh */ }
|
|
263
247
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
for (const [event, entries] of Object.entries(hooksConfig)) {
|
|
267
|
-
if (!existingHooks[event]) {
|
|
268
|
-
existingHooks[event] = [];
|
|
269
|
-
}
|
|
270
|
-
// Add SLOPE guard entries (avoid duplicates by checking command + matcher)
|
|
271
|
-
for (const entry of entries) {
|
|
272
|
-
const entryWithMatcher = entry;
|
|
273
|
-
const existing = existingHooks[event];
|
|
274
|
-
const isDuplicate = existing.some(e => e.matcher === entryWithMatcher.matcher &&
|
|
275
|
-
e.hooks?.some(h => h.command?.includes('slope-guard.sh')));
|
|
276
|
-
if (!isDuplicate) {
|
|
277
|
-
existingHooks[event].push(entry);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
248
|
+
else {
|
|
249
|
+
adapter = detectAdapter(cwd);
|
|
280
250
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
251
|
+
if (!adapter) {
|
|
252
|
+
console.log('\n No harness adapter detected.');
|
|
253
|
+
console.log(' Use --harness=<id> to specify one. Available: ' + listAdapters().join(', ') + '\n');
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
// Delegate installation to the adapter
|
|
257
|
+
adapter.installGuards(cwd, guards);
|
|
284
258
|
// Update hooks registry
|
|
285
|
-
const
|
|
259
|
+
const hooksConfig = loadHooksConfig(cwd);
|
|
286
260
|
for (const g of guards) {
|
|
287
|
-
|
|
288
|
-
provider:
|
|
261
|
+
hooksConfig.installed[`guard-${g.name}`] = {
|
|
262
|
+
provider: adapter.id,
|
|
289
263
|
installed_at: new Date().toISOString(),
|
|
290
264
|
};
|
|
291
265
|
}
|
|
292
|
-
saveHooksConfig(cwd,
|
|
266
|
+
saveHooksConfig(cwd, hooksConfig);
|
|
293
267
|
console.log(`\n Installed ${guards.length} guard hooks (level: ${guards.some(g => g.level === 'full') ? 'full' : 'scoring'}):`);
|
|
294
268
|
for (const g of guards) {
|
|
295
269
|
console.log(` ${g.name.padEnd(16)} [${g.hookEvent}] ${g.description}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
|
-
type
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { HarnessId } from '../../core/harness.js';
|
|
2
|
+
import '../../core/adapters/claude-code.js';
|
|
3
|
+
import '../../core/adapters/cursor.js';
|
|
4
|
+
import '../../core/adapters/windsurf.js';
|
|
5
|
+
import '../../core/adapters/generic.js';
|
|
6
|
+
/** Init supports all harness adapters plus OpenCode (template-only, no adapter) */
|
|
7
|
+
type InitProvider = HarnessId | 'opencode';
|
|
8
|
+
export declare function detectProvidersFromArgs(args: string[]): InitProvider[];
|
|
9
|
+
/** Detect platforms present in the project directory using the adapter framework */
|
|
10
|
+
export declare function detectPlatforms(cwd: string): InitProvider[];
|
|
4
11
|
export declare function initCommand(args: string[]): Promise<void>;
|
|
5
12
|
export {};
|
|
6
13
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
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,gCAAgC,CAAC;AA0FxC,mFAAmF;AACnF,KAAK,YAAY,GAAG,SAAS,GAAG,UAAU,CAAC;AAE3C,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAYtE;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,EAAE,CAa3D;AAydD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG/D"}
|
|
@@ -6,6 +6,12 @@ import { saveHooksConfig } from '../hooks-config.js';
|
|
|
6
6
|
import { resolveMetaphor } from '../metaphor.js';
|
|
7
7
|
import { saveVision } from '../../core/vision.js';
|
|
8
8
|
import { generateProjectContext, generateSprintChecklist, generateCommitDiscipline, generateReviewLoop, generateCodebaseContextRule, generateCursorSprintChecklist, generateCursorCommitDiscipline, generateCursorReviewLoop, generateCursorCodebaseContextRule, generateCursorrules, generateAgentsMd, generateOpenCodePlugin, generateGenericChecklist, } from '../template-generator.js';
|
|
9
|
+
import { getAdapter, ADAPTER_PRIORITY } from '../../core/harness.js';
|
|
10
|
+
// Side-effect imports: ensure all adapters are registered for detectPlatforms()
|
|
11
|
+
import '../../core/adapters/claude-code.js';
|
|
12
|
+
import '../../core/adapters/cursor.js';
|
|
13
|
+
import '../../core/adapters/windsurf.js';
|
|
14
|
+
import '../../core/adapters/generic.js';
|
|
9
15
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
10
16
|
const EXAMPLE_SCORECARD = {
|
|
11
17
|
sprint_number: 1,
|
|
@@ -90,29 +96,38 @@ const STARTER_ROADMAP = {
|
|
|
90
96
|
},
|
|
91
97
|
],
|
|
92
98
|
};
|
|
93
|
-
function detectProvidersFromArgs(args) {
|
|
99
|
+
export function detectProvidersFromArgs(args) {
|
|
94
100
|
const providers = [];
|
|
95
101
|
if (args.includes('--claude-code'))
|
|
96
102
|
providers.push('claude-code');
|
|
97
103
|
if (args.includes('--cursor'))
|
|
98
104
|
providers.push('cursor');
|
|
105
|
+
if (args.includes('--windsurf'))
|
|
106
|
+
providers.push('windsurf');
|
|
99
107
|
if (args.includes('--opencode'))
|
|
100
108
|
providers.push('opencode');
|
|
101
109
|
if (args.includes('--generic'))
|
|
102
110
|
providers.push('generic');
|
|
111
|
+
// Unified --harness=<id> flag
|
|
112
|
+
const harnessArg = args.find(a => a.startsWith('--harness='));
|
|
113
|
+
if (harnessArg)
|
|
114
|
+
providers.push(harnessArg.slice('--harness='.length));
|
|
103
115
|
if (args.includes('--all'))
|
|
104
|
-
return ['claude-code', 'cursor', 'opencode'];
|
|
116
|
+
return ['claude-code', 'cursor', 'windsurf', 'opencode'];
|
|
105
117
|
return providers;
|
|
106
118
|
}
|
|
107
|
-
/** Detect platforms present in the project directory */
|
|
119
|
+
/** Detect platforms present in the project directory using the adapter framework */
|
|
108
120
|
export function detectPlatforms(cwd) {
|
|
109
121
|
const detected = [];
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
122
|
+
// Check all registered adapters via ADAPTER_PRIORITY
|
|
123
|
+
for (const id of ADAPTER_PRIORITY) {
|
|
124
|
+
if (id === 'generic')
|
|
125
|
+
continue;
|
|
126
|
+
const a = getAdapter(id);
|
|
127
|
+
if (a?.detect(cwd))
|
|
128
|
+
detected.push(id);
|
|
115
129
|
}
|
|
130
|
+
// OpenCode: no adapter, but has init templates
|
|
116
131
|
if (existsSync(join(cwd, 'opencode.json')) || existsSync(join(cwd, 'AGENTS.md'))) {
|
|
117
132
|
detected.push('opencode');
|
|
118
133
|
}
|
|
@@ -184,6 +199,31 @@ function installCursorTemplates(cwd, metaphor) {
|
|
|
184
199
|
}
|
|
185
200
|
console.log('\n Cursor rules installed to .cursor/rules/ and .cursorrules');
|
|
186
201
|
}
|
|
202
|
+
function installWindsurfTemplates(cwd, metaphor) {
|
|
203
|
+
const rulesDir = join(cwd, '.windsurf', 'rules');
|
|
204
|
+
mkdirSync(rulesDir, { recursive: true });
|
|
205
|
+
// Windsurf uses .mdc rule format (same as Cursor)
|
|
206
|
+
const ruleGenerators = {
|
|
207
|
+
'slope-sprint-checklist.mdc': generateCursorSprintChecklist(metaphor),
|
|
208
|
+
'slope-commit-discipline.mdc': generateCursorCommitDiscipline(metaphor),
|
|
209
|
+
'slope-review-loop.mdc': generateCursorReviewLoop(),
|
|
210
|
+
'slope-codebase-context.mdc': generateCursorCodebaseContextRule(),
|
|
211
|
+
};
|
|
212
|
+
for (const [file, content] of Object.entries(ruleGenerators)) {
|
|
213
|
+
const dest = join(rulesDir, file);
|
|
214
|
+
if (!existsSync(dest)) {
|
|
215
|
+
writeFileSync(dest, content);
|
|
216
|
+
console.log(` Created ${dest}`);
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
// Generate .windsurfrules (project root context file — same content as .cursorrules)
|
|
220
|
+
const windsurfrulesDest = join(cwd, '.windsurfrules');
|
|
221
|
+
if (!existsSync(windsurfrulesDest)) {
|
|
222
|
+
writeFileSync(windsurfrulesDest, generateCursorrules(metaphor));
|
|
223
|
+
console.log(` Created ${windsurfrulesDest}`);
|
|
224
|
+
}
|
|
225
|
+
console.log('\n Windsurf rules installed to .windsurf/rules/ and .windsurfrules');
|
|
226
|
+
}
|
|
187
227
|
function installGenericTemplates(cwd, metaphor) {
|
|
188
228
|
const dest = join(cwd, 'SLOPE-CHECKLIST.md');
|
|
189
229
|
if (!existsSync(dest)) {
|
|
@@ -233,6 +273,25 @@ function installCursorMcpConfig(cwd) {
|
|
|
233
273
|
writeFileSync(mcpPath, JSON.stringify(config, null, 2) + '\n');
|
|
234
274
|
console.log(` Created/updated ${mcpPath} (slope MCP server)`);
|
|
235
275
|
}
|
|
276
|
+
function installWindsurfMcpConfig(cwd) {
|
|
277
|
+
const mcpPath = join(cwd, '.windsurf', 'mcp.json');
|
|
278
|
+
let config = {};
|
|
279
|
+
if (existsSync(mcpPath)) {
|
|
280
|
+
try {
|
|
281
|
+
const raw = readFileSync(mcpPath, 'utf8');
|
|
282
|
+
config = JSON.parse(raw);
|
|
283
|
+
}
|
|
284
|
+
catch {
|
|
285
|
+
config = {};
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
if (!config.mcpServers)
|
|
289
|
+
config.mcpServers = {};
|
|
290
|
+
config.mcpServers.slope = SLOPE_MCP_ENTRY;
|
|
291
|
+
mkdirSync(join(cwd, '.windsurf'), { recursive: true });
|
|
292
|
+
writeFileSync(mcpPath, JSON.stringify(config, null, 2) + '\n');
|
|
293
|
+
console.log(` Created/updated ${mcpPath} (slope MCP server)`);
|
|
294
|
+
}
|
|
236
295
|
function installOpenCodeTemplates(cwd, metaphor) {
|
|
237
296
|
// Generate AGENTS.md (OpenCode's project context file)
|
|
238
297
|
const agentsMdDest = join(cwd, 'AGENTS.md');
|
|
@@ -282,7 +341,9 @@ function installDefaultHooks(cwd, provider) {
|
|
|
282
341
|
};
|
|
283
342
|
const hooksDir = provider === 'claude-code'
|
|
284
343
|
? join(cwd, '.claude', 'hooks')
|
|
285
|
-
:
|
|
344
|
+
: provider === 'windsurf'
|
|
345
|
+
? join(cwd, '.windsurf', 'hooks')
|
|
346
|
+
: join(cwd, '.cursor', 'hooks');
|
|
286
347
|
mkdirSync(hooksDir, { recursive: true });
|
|
287
348
|
const { loadHooksConfig } = { loadHooksConfig: (c) => {
|
|
288
349
|
try {
|
|
@@ -326,6 +387,11 @@ function installForProvider(cwd, provider, metaphor) {
|
|
|
326
387
|
installCursorMcpConfig(cwd);
|
|
327
388
|
installDefaultHooks(cwd, 'cursor');
|
|
328
389
|
break;
|
|
390
|
+
case 'windsurf':
|
|
391
|
+
installWindsurfTemplates(cwd, metaphor);
|
|
392
|
+
installWindsurfMcpConfig(cwd);
|
|
393
|
+
installDefaultHooks(cwd, 'windsurf');
|
|
394
|
+
break;
|
|
329
395
|
case 'opencode':
|
|
330
396
|
installOpenCodeTemplates(cwd, metaphor);
|
|
331
397
|
installOpenCodeMcpConfig(cwd);
|
|
@@ -334,6 +400,9 @@ function installForProvider(cwd, provider, metaphor) {
|
|
|
334
400
|
case 'generic':
|
|
335
401
|
installGenericTemplates(cwd, metaphor);
|
|
336
402
|
break;
|
|
403
|
+
default:
|
|
404
|
+
console.warn(` Warning: no templates for provider "${provider}". Use --generic for a basic setup.`);
|
|
405
|
+
break;
|
|
337
406
|
}
|
|
338
407
|
}
|
|
339
408
|
async function runInteractiveInit(cwd, args) {
|