@specship/specship-win32-arm64 0.17.0 → 0.18.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/lib/dist/activation/steering.d.ts +1 -1
- package/lib/dist/activation/steering.d.ts.map +1 -1
- package/lib/dist/activation/steering.js +11 -7
- package/lib/dist/activation/steering.js.map +1 -1
- package/lib/dist/bin/specship.js +34 -2
- package/lib/dist/bin/specship.js.map +1 -1
- package/lib/dist/commands/specship/learn.md +45 -0
- package/lib/dist/config/runtime-settings.d.ts +25 -0
- package/lib/dist/config/runtime-settings.d.ts.map +1 -0
- package/lib/dist/config/runtime-settings.js +99 -0
- package/lib/dist/config/runtime-settings.js.map +1 -0
- package/lib/dist/index.d.ts +9 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +8 -0
- package/lib/dist/index.js.map +1 -1
- package/lib/dist/installer/index.js +1 -1
- package/lib/dist/installer/index.js.map +1 -1
- package/lib/dist/installer/targets/claude.d.ts.map +1 -1
- package/lib/dist/installer/targets/claude.js +6 -5
- package/lib/dist/installer/targets/claude.js.map +1 -1
- package/lib/dist/mcp/model-context.d.ts +5 -3
- package/lib/dist/mcp/model-context.d.ts.map +1 -1
- package/lib/dist/mcp/model-context.js +10 -6
- package/lib/dist/mcp/model-context.js.map +1 -1
- package/lib/dist/mcp/tools.d.ts +9 -0
- package/lib/dist/mcp/tools.d.ts.map +1 -1
- package/lib/dist/mcp/tools.js +46 -0
- package/lib/dist/mcp/tools.js.map +1 -1
- package/lib/dist/reflect/index.d.ts +3 -1
- package/lib/dist/reflect/index.d.ts.map +1 -1
- package/lib/dist/reflect/index.js +5 -1
- package/lib/dist/reflect/index.js.map +1 -1
- package/lib/dist/reflect/miner.d.ts.map +1 -1
- package/lib/dist/reflect/miner.js +130 -5
- package/lib/dist/reflect/miner.js.map +1 -1
- package/lib/dist/reflect/session-outcomes.d.ts +50 -0
- package/lib/dist/reflect/session-outcomes.d.ts.map +1 -0
- package/lib/dist/reflect/session-outcomes.js +110 -0
- package/lib/dist/reflect/session-outcomes.js.map +1 -0
- package/lib/dist/reflect/sweep.d.ts +11 -0
- package/lib/dist/reflect/sweep.d.ts.map +1 -1
- package/lib/dist/reflect/sweep.js +29 -0
- package/lib/dist/reflect/sweep.js.map +1 -1
- package/lib/dist/server/routes/claude.js +27 -0
- package/lib/dist/workflows/defaults/spec-implement-mixed.yaml +197 -0
- package/lib/node_modules/.package-lock.json +1 -1
- package/lib/package.json +1 -1
- package/package.json +1 -1
|
@@ -31,5 +31,5 @@ export declare const STEERING_TEXT_HAIKU: string;
|
|
|
31
31
|
* haiku sessions get the prescriptive template; sonnet and frontier keep the
|
|
32
32
|
* standard line.
|
|
33
33
|
*/
|
|
34
|
-
export declare function buildSteeringNudge(cwd: string, env?: NodeJS.ProcessEnv): string | null;
|
|
34
|
+
export declare function buildSteeringNudge(cwd: string, env?: NodeJS.ProcessEnv, homedir?: string): string | null;
|
|
35
35
|
//# sourceMappingURL=steering.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../src/activation/steering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"steering.d.ts","sourceRoot":"","sources":["../../src/activation/steering.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAKJ,CAAC;AAEvB;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,QAIqC,CAAC;AAEtE;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,OAAO,CAAC,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAUf"}
|
|
@@ -50,15 +50,17 @@ exports.buildSteeringNudge = buildSteeringNudge;
|
|
|
50
50
|
const fs = __importStar(require("fs"));
|
|
51
51
|
const path = __importStar(require("path"));
|
|
52
52
|
const model_context_1 = require("../mcp/model-context");
|
|
53
|
+
const runtime_settings_1 = require("../config/runtime-settings");
|
|
53
54
|
/**
|
|
54
55
|
* The one steering line injected per prompt. Kept short (~40 tokens) — it is
|
|
55
56
|
* added to EVERY prompt in an initialized project, so brevity is the cost
|
|
56
57
|
* ceiling. Wording is A/B-gated before default-on release (REQ-STEER-003).
|
|
57
58
|
*/
|
|
58
|
-
exports.STEERING_TEXT = 'This project has a SpecShip code-graph index.
|
|
59
|
-
'
|
|
60
|
-
'mcp__specship__specship_explore with the relevant symbol names FIRST
|
|
61
|
-
'
|
|
59
|
+
exports.STEERING_TEXT = 'This project has a SpecShip code-graph index. Before reading or editing ANY ' +
|
|
60
|
+
'code for a task — understanding, implementing, fixing, refactoring — call ' +
|
|
61
|
+
'mcp__specship__specship_explore with the relevant symbol/file names FIRST. ' +
|
|
62
|
+
'Treat the source it returns as already read; use Read/Grep only for content ' +
|
|
63
|
+
'it did not return.';
|
|
62
64
|
/**
|
|
63
65
|
* The haiku-tier template (LOWMODEL-DOC, REQ-LOWMODEL-002): small models
|
|
64
66
|
* follow prescriptive templates far better than principles, and fan-out
|
|
@@ -77,8 +79,10 @@ exports.STEERING_TEXT_HAIKU = 'This project has a SpecShip index. For any code q
|
|
|
77
79
|
* haiku sessions get the prescriptive template; sonnet and frontier keep the
|
|
78
80
|
* standard line.
|
|
79
81
|
*/
|
|
80
|
-
function buildSteeringNudge(cwd, env = process.env) {
|
|
81
|
-
|
|
82
|
+
function buildSteeringNudge(cwd, env = process.env, homedir) {
|
|
83
|
+
// RUNSET-DOC: the opt-out resolves env > project .specship/settings.json >
|
|
84
|
+
// ~/.specship/settings.json, so a repo can silence steering durably.
|
|
85
|
+
if ((0, runtime_settings_1.resolveSetting)('SPECSHIP_NO_STEERING', cwd, env, homedir) === '1')
|
|
82
86
|
return null;
|
|
83
87
|
try {
|
|
84
88
|
if (!fs.statSync(path.join(cwd, '.specship')).isDirectory())
|
|
@@ -87,6 +91,6 @@ function buildSteeringNudge(cwd, env = process.env) {
|
|
|
87
91
|
catch {
|
|
88
92
|
return null;
|
|
89
93
|
}
|
|
90
|
-
return (0, model_context_1.detectModelTier)(cwd, env) === 'haiku' ? exports.STEERING_TEXT_HAIKU : exports.STEERING_TEXT;
|
|
94
|
+
return (0, model_context_1.detectModelTier)(cwd, env, homedir) === 'haiku' ? exports.STEERING_TEXT_HAIKU : exports.STEERING_TEXT;
|
|
91
95
|
}
|
|
92
96
|
//# sourceMappingURL=steering.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steering.js","sourceRoot":"","sources":["../../src/activation/steering.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"steering.js","sourceRoot":"","sources":["../../src/activation/steering.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCH,gDAcC;AAnDD,uCAAyB;AACzB,2CAA6B;AAC7B,wDAAuD;AACvD,iEAA4D;AAE5D;;;;GAIG;AACU,QAAA,aAAa,GACxB,8EAA8E;IAC9E,4EAA4E;IAC5E,6EAA6E;IAC7E,8EAA8E;IAC9E,oBAAoB,CAAC;AAEvB;;;;;GAKG;AACU,QAAA,mBAAmB,GAC9B,0EAA0E;IAC1E,gFAAgF;IAChF,iFAAiF;IACjF,mEAAmE,CAAC;AAEtE;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAChC,GAAW,EACX,MAAyB,OAAO,CAAC,GAAG,EACpC,OAAgB;IAEhB,2EAA2E;IAC3E,qEAAqE;IACrE,IAAI,IAAA,iCAAc,EAAC,sBAAsB,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACnF,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE;YAAE,OAAO,IAAI,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,IAAA,+BAAe,EAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,2BAAmB,CAAC,CAAC,CAAC,qBAAa,CAAC;AAC9F,CAAC"}
|
package/lib/dist/bin/specship.js
CHANGED
|
@@ -1279,6 +1279,8 @@ function main() {
|
|
|
1279
1279
|
.command('reflect [path]')
|
|
1280
1280
|
.description('Mine ingested transcripts for self-improvement proposals (memory rules, skills, hooks)')
|
|
1281
1281
|
.option('-j, --json', 'Output as JSON')
|
|
1282
|
+
.option('--capture', 'Capture a routine as a skill proposal: --title required, content on stdin (LEARN-DOC)')
|
|
1283
|
+
.option('--title <title>', 'Title for --capture')
|
|
1282
1284
|
.action(async (pathArg, options) => {
|
|
1283
1285
|
const projectPath = resolveProjectPath(pathArg);
|
|
1284
1286
|
try {
|
|
@@ -1288,6 +1290,33 @@ function main() {
|
|
|
1288
1290
|
}
|
|
1289
1291
|
const { default: SpecShip } = await loadSpecShip();
|
|
1290
1292
|
const cg = await SpecShip.open(projectPath);
|
|
1293
|
+
// Explicit capture door (LEARN-DOC, REQ-LEARN-002): crystallize a
|
|
1294
|
+
// distilled routine into a human-gated skill proposal. Content on
|
|
1295
|
+
// stdin so multi-line routines survive shell quoting.
|
|
1296
|
+
if (options.capture) {
|
|
1297
|
+
if (!options.title || !options.title.trim()) {
|
|
1298
|
+
error('--capture requires --title "<what this routine does>"');
|
|
1299
|
+
process.exit(1);
|
|
1300
|
+
}
|
|
1301
|
+
const chunks = [];
|
|
1302
|
+
for await (const c of process.stdin)
|
|
1303
|
+
chunks.push(c);
|
|
1304
|
+
const content = Buffer.concat(chunks).toString('utf-8').trim();
|
|
1305
|
+
if (!content) {
|
|
1306
|
+
error('--capture expects the routine content on stdin (pipe or heredoc)');
|
|
1307
|
+
process.exit(1);
|
|
1308
|
+
}
|
|
1309
|
+
const p = cg.reflectCapture({ title: options.title, content });
|
|
1310
|
+
if (options.json) {
|
|
1311
|
+
console.log(JSON.stringify(p, null, 2));
|
|
1312
|
+
}
|
|
1313
|
+
else {
|
|
1314
|
+
info(`Captured as proposal ${p.contentHash.slice(0, 12)} (${p.state}): ${p.title}`);
|
|
1315
|
+
info('Review and apply it from the dashboard Improvements page (preview-diff → confirm).');
|
|
1316
|
+
}
|
|
1317
|
+
cg.destroy();
|
|
1318
|
+
return;
|
|
1319
|
+
}
|
|
1291
1320
|
const result = cg.reflectAnalyze();
|
|
1292
1321
|
if (options.json) {
|
|
1293
1322
|
console.log(JSON.stringify(result, null, 2));
|
|
@@ -2132,7 +2161,8 @@ function main() {
|
|
|
2132
2161
|
.option('-l, --location <where>', 'Install location: "global" or "local". Default: prompt (local)')
|
|
2133
2162
|
.option('-y, --yes', 'Non-interactive: defaults to --location=local, auto-allow on')
|
|
2134
2163
|
.option('--no-permissions', 'Skip writing the auto-allow permissions list')
|
|
2135
|
-
.option('--sdd', '
|
|
2164
|
+
.option('--sdd', '(default) Install the spec-driven-development governance tier (spec/authoring/review/design commands + the spec-author nudge hook)')
|
|
2165
|
+
.option('--no-sdd', 'Skip the governance tier — retrieval-only install (the pre-0.18 default)')
|
|
2136
2166
|
.option('--with-jira', 'Enable the optional JIRA integration (talks to your Atlassian instance; off by default — the core install is 100% local)')
|
|
2137
2167
|
.option('--with-designer', 'Enable the optional Designer integration (EXPERIMENTAL — drives claude.ai/design via a debug Chrome session and may break without notice; off by default)')
|
|
2138
2168
|
.option('--statusline', 'Wire the SpecShip status-line segment into Claude (skips the prompt; never overwrites an existing status line)')
|
|
@@ -2183,7 +2213,9 @@ function main() {
|
|
|
2183
2213
|
target: opts.target,
|
|
2184
2214
|
location: opts.location,
|
|
2185
2215
|
autoAllow,
|
|
2186
|
-
|
|
2216
|
+
// SDD/governance is default-ON (INSTALL-WEDGE-DOC v2): commander's
|
|
2217
|
+
// --no-sdd sets opts.sdd=false; otherwise install the full surface.
|
|
2218
|
+
sdd: opts.sdd === false ? false : true,
|
|
2187
2219
|
withJira: opts.withJira === true ? true : undefined,
|
|
2188
2220
|
withDesigner: opts.withDesigner === true ? true : undefined,
|
|
2189
2221
|
statusLine,
|