specweave 3.1.8 → 3.1.10

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.
Files changed (66) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/README.md +2 -0
  3. package/bin/specweave.js +5 -0
  4. package/dist/src/cli/commands/create-increment.d.ts +2 -0
  5. package/dist/src/cli/commands/create-increment.d.ts.map +1 -1
  6. package/dist/src/cli/commands/create-increment.js +22 -2
  7. package/dist/src/cli/commands/create-increment.js.map +1 -1
  8. package/dist/src/cli/commands/generate-rubric.d.ts.map +1 -1
  9. package/dist/src/cli/commands/generate-rubric.js +13 -0
  10. package/dist/src/cli/commands/generate-rubric.js.map +1 -1
  11. package/dist/src/cli/commands/handoff.d.ts +2 -0
  12. package/dist/src/cli/commands/handoff.d.ts.map +1 -1
  13. package/dist/src/cli/commands/handoff.js +6 -0
  14. package/dist/src/cli/commands/handoff.js.map +1 -1
  15. package/dist/src/cli/commands/reopen.js +1 -1
  16. package/dist/src/cli/commands/reopen.js.map +1 -1
  17. package/dist/src/cli/commands/task.d.ts +4 -0
  18. package/dist/src/cli/commands/task.d.ts.map +1 -1
  19. package/dist/src/cli/commands/task.js +58 -23
  20. package/dist/src/cli/commands/task.js.map +1 -1
  21. package/dist/src/core/auto/config.d.ts.map +1 -1
  22. package/dist/src/core/auto/config.js +1 -3
  23. package/dist/src/core/auto/config.js.map +1 -1
  24. package/dist/src/core/auto/types.d.ts +0 -1
  25. package/dist/src/core/auto/types.d.ts.map +1 -1
  26. package/dist/src/core/auto/types.js +0 -2
  27. package/dist/src/core/auto/types.js.map +1 -1
  28. package/dist/src/core/config/types.d.ts +13 -1
  29. package/dist/src/core/config/types.d.ts.map +1 -1
  30. package/dist/src/core/config/types.js +1 -0
  31. package/dist/src/core/config/types.js.map +1 -1
  32. package/dist/src/core/hooks/handlers/pre-compact.d.ts +14 -4
  33. package/dist/src/core/hooks/handlers/pre-compact.d.ts.map +1 -1
  34. package/dist/src/core/hooks/handlers/pre-compact.js +36 -6
  35. package/dist/src/core/hooks/handlers/pre-compact.js.map +1 -1
  36. package/dist/src/core/hooks/handlers/require-increment.d.ts +6 -0
  37. package/dist/src/core/hooks/handlers/require-increment.d.ts.map +1 -1
  38. package/dist/src/core/hooks/handlers/require-increment.js +1 -1
  39. package/dist/src/core/hooks/handlers/require-increment.js.map +1 -1
  40. package/dist/src/core/increment/auto-commit.d.ts +91 -0
  41. package/dist/src/core/increment/auto-commit.d.ts.map +1 -0
  42. package/dist/src/core/increment/auto-commit.js +371 -0
  43. package/dist/src/core/increment/auto-commit.js.map +1 -0
  44. package/dist/src/core/increment/completion-validator.d.ts.map +1 -1
  45. package/dist/src/core/increment/completion-validator.js +11 -12
  46. package/dist/src/core/increment/completion-validator.js.map +1 -1
  47. package/dist/src/core/increment/metadata-manager.d.ts +1 -1
  48. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  49. package/dist/src/core/increment/metadata-manager.js +3 -9
  50. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  51. package/dist/src/core/rubric/rubric-generator.d.ts.map +1 -1
  52. package/dist/src/core/rubric/rubric-generator.js +19 -18
  53. package/dist/src/core/rubric/rubric-generator.js.map +1 -1
  54. package/dist/src/core/session/handoff-remote.d.ts +2 -0
  55. package/dist/src/core/session/handoff-remote.d.ts.map +1 -1
  56. package/dist/src/core/session/handoff-remote.js +4 -1
  57. package/dist/src/core/session/handoff-remote.js.map +1 -1
  58. package/dist/src/core/session/work-handoff.d.ts +5 -0
  59. package/dist/src/core/session/work-handoff.d.ts.map +1 -1
  60. package/dist/src/core/session/work-handoff.js +17 -2
  61. package/dist/src/core/session/work-handoff.js.map +1 -1
  62. package/package.json +1 -1
  63. package/plugins/specweave/.claude-plugin/plugin.json +1 -1
  64. package/plugins/specweave/defaults/rubric-defaults.md +4 -5
  65. package/plugins/specweave/skills/do/SKILL.md +3 -3
  66. package/src/core/schemas/specweave-config.schema.json +31 -46
@@ -0,0 +1,371 @@
1
+ /**
2
+ * Opt-in commit of an increment's own bookkeeping files right after the CLI
3
+ * writes them, so specs, ledgers and claims reach other machines with a plain
4
+ * `git pull` instead of drifting as untracked folders.
5
+ *
6
+ * Off unless `.specweave/config.json` sets `git.autoCommitIncrement: true`;
7
+ * `--no-commit` turns it off for one command. Only `spec.md`, `ledger.jsonl`
8
+ * and `metadata.json` at the top of the increment folder (plus `handoff.md`
9
+ * when the repo already tracks it) are committed, through a pathspec
10
+ * (`git commit --only -- <paths>`), so anything else staged in a shared index
11
+ * stays staged and out of the commit. The names are fixed files, so
12
+ * `evidence/` and `reports/` can never match, and ignored files are never
13
+ * added. The repo's hooks run.
14
+ *
15
+ * Every failure is one warning: the ledger write already happened and is the
16
+ * source of truth, and the ledger is cumulative, so the next successful
17
+ * command commits whatever this one missed.
18
+ *
19
+ * `git.autoPushIncrement: true` then pushes the branch to its upstream with a
20
+ * plain (fast-forward only) push, through the upstream's remote as git config
21
+ * has it, so the remote URL (HTTPS or SSH) is whatever the checkout uses. It
22
+ * pushes only to a same-named branch on a real remote, and only when every
23
+ * unpushed commit is one of these auto-commits, so it never publishes other
24
+ * work or lands a feature branch on the branch it was cut from.
25
+ *
26
+ * @module core/increment/auto-commit
27
+ */
28
+ import { spawnSync } from 'child_process';
29
+ import * as fs from 'fs';
30
+ import * as path from 'path';
31
+ /** Always committed when present. */
32
+ export const AUTO_COMMIT_FILES = ['spec.md', 'ledger.jsonl', 'metadata.json'];
33
+ /** Committed only when the repo already tracks them (handoff docs are often gitignored). */
34
+ export const TRACKED_ONLY_FILES = ['handoff.md'];
35
+ /** Subjects stay under 72 characters. */
36
+ const SUBJECT_LIMIT = 71;
37
+ const COMMIT_TIMEOUT_MS = 120000;
38
+ const PUSH_TIMEOUT_MS = 60000;
39
+ /** `git.autoCommitIncrement` / `git.autoPushIncrement`, both off unless exactly `true`. */
40
+ export function readAutoCommitConfig(projectRoot) {
41
+ try {
42
+ const cfg = JSON.parse(fs.readFileSync(path.join(projectRoot, '.specweave', 'config.json'), 'utf-8'));
43
+ return { commit: cfg.git?.autoCommitIncrement === true, push: cfg.git?.autoPushIncrement === true };
44
+ }
45
+ catch {
46
+ return { commit: false, push: false };
47
+ }
48
+ }
49
+ /**
50
+ * Subjects {@link autoCommitIncrement} writes, as a POSIX extended regex that
51
+ * `git log -E --grep` and JavaScript read the same way.
52
+ */
53
+ export const AUTO_COMMIT_SUBJECT_ERE = '^[0-9]{3,}[A-Za-z]?: (((claim|done|skip|block|release) T-[A-Za-z0-9_.-]+(, T-[A-Za-z0-9_.-]+)*( and [0-9]+ more)?)|create increment|handoff)$';
54
+ const ACTION_SUBJECT = new RegExp(AUTO_COMMIT_SUBJECT_ERE);
55
+ /** Is this a subject {@link autoCommitIncrement} writes? */
56
+ export function isAutoCommitSubject(subject) {
57
+ return ACTION_SUBJECT.test(subject.trim());
58
+ }
59
+ /** `1058: done T-02`, `1058: release T-01, T-03`, `1058: create increment`, `1058: handoff`. */
60
+ export function autoCommitSubject(incrementId, action, tasks = []) {
61
+ const num = incrementId.match(/^\d{3,}[A-Za-z]?(?=-|$)/)?.[0] ?? incrementId.replace(/[^\w.-]/g, '').slice(0, 20);
62
+ const head = `${num}: ${action === 'create' ? 'create increment' : action}`;
63
+ const ids = tasks.map((t) => t.replace(/[^\w.-]/g, '')).filter(Boolean);
64
+ if (!ids.length)
65
+ return head;
66
+ for (let shown = ids.length; shown > 0; shown--) {
67
+ const rest = ids.length - shown;
68
+ const subject = `${head} ${ids.slice(0, shown).join(', ')}${rest ? ` and ${rest} more` : ''}`;
69
+ if (subject.length <= SUBJECT_LIMIT)
70
+ return subject;
71
+ }
72
+ return head;
73
+ }
74
+ /**
75
+ * Literal pathspec, so a folder named with `*`, `?` or `[` never matches its
76
+ * neighbours. Per path rather than GIT_LITERAL_PATHSPECS, which the repo's
77
+ * hooks would inherit.
78
+ */
79
+ const literal = (paths) => paths.map((p) => `:(literal)${p}`);
80
+ /** Inherited pathspec modes would reinterpret the `:(literal)` paths (check-ignore refuses magic). */
81
+ const PATHSPEC_ENV = ['GIT_LITERAL_PATHSPECS', 'GIT_GLOB_PATHSPECS', 'GIT_NOGLOB_PATHSPECS', 'GIT_ICASE_PATHSPECS'];
82
+ function runGit(cwd, args, timeout = COMMIT_TIMEOUT_MS, input) {
83
+ const env = { ...process.env, GIT_TERMINAL_PROMPT: '0', GIT_OPTIONAL_LOCKS: '0' };
84
+ for (const name of PATHSPEC_ENV)
85
+ delete env[name];
86
+ const r = spawnSync('git', args, {
87
+ cwd,
88
+ encoding: 'utf8',
89
+ ...(input === undefined ? { stdio: ['ignore', 'pipe', 'pipe'] } : { input, stdio: ['pipe', 'pipe', 'pipe'] }),
90
+ timeout,
91
+ maxBuffer: 16 * 1024 * 1024,
92
+ env,
93
+ });
94
+ if (r.error)
95
+ return { code: -1, out: '', err: r.error.message };
96
+ return { code: r.status ?? -1, out: (r.stdout ?? '').trim(), err: (r.stderr ?? '').trim() };
97
+ }
98
+ /**
99
+ * Top of the checkout holding `dir` and `dir`'s path inside it, both as Git
100
+ * spells them (symlinks resolved, on-disk letter case), or null outside Git.
101
+ */
102
+ function gitLocate(dir) {
103
+ const r = runGit(dir, ['rev-parse', '--show-toplevel', '--show-prefix']);
104
+ if (r.code !== 0)
105
+ return null;
106
+ const [top, prefix = ''] = r.out.split('\n');
107
+ return top ? { top, prefix } : null;
108
+ }
109
+ /** Top of the checkout holding `dir`, or null outside Git. */
110
+ export function gitTopFor(dir) {
111
+ return gitLocate(dir)?.top ?? null;
112
+ }
113
+ /** Commit (and optionally push) the increment's own files. Never throws. */
114
+ export function autoCommitIncrement(projectRoot, incDir, req) {
115
+ const cfg = readAutoCommitConfig(projectRoot);
116
+ if (!cfg.commit || req.commit === false)
117
+ return { status: 'off', warnings: [] };
118
+ try {
119
+ return commitIncrementFiles(incDir, req, cfg.push && req.push !== false);
120
+ }
121
+ catch (e) {
122
+ return { status: 'failed', warnings: [`${req.incrementId} files not committed (${e.message}); the ledger is saved`] };
123
+ }
124
+ }
125
+ function commitIncrementFiles(incDir, req, push) {
126
+ const notCommitted = (status, why) => ({
127
+ status,
128
+ warnings: [`${req.incrementId} files not committed: ${why}; the ledger is saved, commit it later`],
129
+ });
130
+ const located = gitLocate(incDir);
131
+ if (!located)
132
+ return notCommitted('skipped', 'not a git repository');
133
+ const top = located.top;
134
+ const git = (args, timeout, input) => runGit(top, args, timeout, input);
135
+ // A repo mid-operation must not get a commit in the middle of it.
136
+ const markers = [
137
+ ['index.lock', 'another git process holds index.lock'],
138
+ ['MERGE_HEAD', 'a merge is in progress'],
139
+ ['rebase-merge', 'a rebase is in progress'],
140
+ ['rebase-apply', 'a rebase or am is in progress'],
141
+ ['CHERRY_PICK_HEAD', 'a cherry-pick is in progress'],
142
+ ['REVERT_HEAD', 'a revert is in progress'],
143
+ ['BISECT_LOG', 'a bisect is in progress'],
144
+ ];
145
+ const paths = git(['rev-parse', '--path-format=absolute', ...markers.flatMap(([m]) => ['--git-path', m])]);
146
+ if (paths.code !== 0)
147
+ return notCommitted('skipped', `git rev-parse failed (${firstLine(paths.err)})`);
148
+ const markerPaths = paths.out.split('\n');
149
+ for (let i = 0; i < markers.length; i++) {
150
+ if (markerPaths[i] && fs.existsSync(markerPaths[i]))
151
+ return notCommitted('skipped', markers[i][1]);
152
+ }
153
+ // The full ref: `--short` gives `heads/<name>` when a tag or remote shares the name.
154
+ const head = git(['symbolic-ref', '--quiet', 'HEAD']);
155
+ if (head.code !== 0 || !head.out.startsWith('refs/heads/'))
156
+ return notCommitted('skipped', 'detached HEAD');
157
+ const branch = head.out.slice('refs/heads/'.length);
158
+ if (git(['rev-parse', '--verify', '--quiet', 'HEAD']).code !== 0)
159
+ return notCommitted('skipped', 'no commits yet');
160
+ if (req.callerPushesBranch) {
161
+ const problem = upstreamProblem(git, branch);
162
+ if (problem)
163
+ return notCommitted('skipped', `${problem}, and the handoff push would carry the commit there`);
164
+ }
165
+ // Fixed file names at the top of each increment folder.
166
+ const candidates = [];
167
+ const trackedOnly = [];
168
+ for (const dir of [incDir, ...(req.alsoDirs ?? [])]) {
169
+ // Git names the folder inside the repo, so case and symlinks match its index.
170
+ const at = dir === incDir ? located : gitLocate(dir);
171
+ if (!at || at.top !== top)
172
+ continue;
173
+ const add = (list, name) => {
174
+ const st = fs.lstatSync(path.join(dir, name), { throwIfNoEntry: false });
175
+ if (st?.isFile())
176
+ list.push(`${at.prefix}${name}`);
177
+ };
178
+ for (const name of AUTO_COMMIT_FILES)
179
+ add(candidates, name);
180
+ for (const name of TRACKED_ONLY_FILES)
181
+ add(trackedOnly, name);
182
+ }
183
+ const all = [...candidates, ...trackedOnly];
184
+ if (!all.length)
185
+ return { status: 'nothing', warnings: [] };
186
+ const listed = git(['ls-files', '-z', '--', ...literal(all)]);
187
+ if (listed.code !== 0)
188
+ return notCommitted('failed', `git ls-files failed (${firstLine(listed.err)})`);
189
+ const tracked = new Set(listed.out.split('\0').filter(Boolean));
190
+ const untracked = candidates.filter((p) => !tracked.has(p));
191
+ // check-ignore exits 1 when nothing is ignored, 0 when something is; -z keeps non-ASCII paths unquoted.
192
+ const ignoredRun = untracked.length ? git(['check-ignore', '-z', '--stdin'], undefined, untracked.map((p) => `${p}\0`).join('')) : { code: 1, out: '', err: '' };
193
+ if (ignoredRun.code > 1 || ignoredRun.code < 0)
194
+ return notCommitted('failed', `git check-ignore failed (${firstLine(ignoredRun.err)})`);
195
+ const ignored = new Set(ignoredRun.out.split('\0').filter(Boolean));
196
+ const fresh = untracked.filter((p) => !ignored.has(p));
197
+ const known = all.filter((p) => tracked.has(p));
198
+ // What `--only` commits: the working-tree content of these paths against HEAD.
199
+ const changed = known.length ? git(['diff', '--quiet', 'HEAD', '--', ...literal(known)]).code === 1 : false;
200
+ if (!fresh.length && !changed)
201
+ return { status: 'nothing', warnings: [] };
202
+ const files = [...known, ...fresh];
203
+ if (fresh.length) {
204
+ const added = git(['add', '--', ...literal(fresh)]);
205
+ if (added.code !== 0) {
206
+ const why = `git add failed (${firstLine(added.err)})`;
207
+ return notCommitted('failed', unstage(git, fresh) ? why : `${why}, and ${fresh.join(', ')} may stay staged`);
208
+ }
209
+ }
210
+ const subject = autoCommitSubject(req.incrementId, req.action, req.tasks);
211
+ const commit = git(['commit', '--only', '--quiet', '-m', subject, '--', ...literal(files)]);
212
+ if (commit.code !== 0) {
213
+ const why = firstLine(commit.err) || firstLine(commit.out) || `exit ${commit.code}`;
214
+ // Leave the index as the command found it; another lane may hold the lock briefly.
215
+ if (fresh.length && !unstage(git, fresh)) {
216
+ return notCommitted('failed', `git commit failed (${why}), and ${fresh.join(', ')} stay staged (git reset failed)`);
217
+ }
218
+ return notCommitted('failed', `git commit failed (${why})`);
219
+ }
220
+ const sha = git(['rev-parse', '--short', 'HEAD']).out || undefined;
221
+ const result = { status: 'committed', sha, subject, files, warnings: [] };
222
+ if (push)
223
+ pushToUpstream(git, branch, result);
224
+ return result;
225
+ }
226
+ /**
227
+ * Put the index entries of files `git add` staged back to HEAD, retrying
228
+ * briefly on a held lock. `reset` rather than `rm --cached`: when another lane
229
+ * committed the same file in the meantime, the entry matches HEAD instead of
230
+ * becoming a staged deletion.
231
+ */
232
+ function unstage(git, files) {
233
+ for (let attempt = 0; attempt < 3; attempt++) {
234
+ if (attempt)
235
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 200);
236
+ if (git(['reset', '--quiet', '--', ...literal(files)]).code === 0)
237
+ return true;
238
+ }
239
+ return false;
240
+ }
241
+ /**
242
+ * Plain push of HEAD to the branch's upstream. Only to a same-named branch on
243
+ * a real remote that is also where git would push, and only when every
244
+ * unpushed commit is an auto-commit; anything else is a warning.
245
+ */
246
+ function pushToUpstream(git, branch, result) {
247
+ const notPushed = (why) => result.warnings.push(`${result.subject ?? 'increment commit'} not pushed: ${why}`);
248
+ const up = upstreamOf(git, branch);
249
+ if (!up || up.remote === '.') {
250
+ notPushed(`${branch} has no upstream on a remote (set one with \`git push -u\`)`);
251
+ return;
252
+ }
253
+ const mismatch = upstreamProblem(git, branch);
254
+ if (mismatch) {
255
+ notPushed(`${mismatch}; push it yourself`);
256
+ return;
257
+ }
258
+ const pushRemote = git(['config', '--get', `branch.${branch}.pushRemote`]).out || git(['config', '--get', 'remote.pushDefault']).out;
259
+ if (pushRemote && pushRemote !== up.remote) {
260
+ notPushed(`${branch} pushes to ${pushRemote}, not its upstream ${up.remote}; push it yourself`);
261
+ return;
262
+ }
263
+ if (git(['rev-parse', '--verify', '--quiet', '@{u}']).code !== 0) {
264
+ notPushed(`${up.short} has not been fetched; fetch first`);
265
+ return;
266
+ }
267
+ if (git(['merge-base', '--is-ancestor', '@{u}', 'HEAD']).code !== 0) {
268
+ notPushed(`${branch} has diverged from ${up.short}; pull first`);
269
+ return;
270
+ }
271
+ const others = unpushedOthers(git);
272
+ if (others !== 0) {
273
+ notPushed(others > 0
274
+ ? `${others} other unpushed commit${others === 1 ? '' : 's'} on ${branch} would go with it; push yourself`
275
+ : 'could not list the unpushed commits');
276
+ return;
277
+ }
278
+ const pushed = git(['push', '--quiet', up.remote, `HEAD:${up.merge}`], PUSH_TIMEOUT_MS);
279
+ if (pushed.code !== 0) {
280
+ notPushed(`git push failed (${firstLine(pushed.err) || `exit ${pushed.code}`})`);
281
+ return;
282
+ }
283
+ result.pushed = up.short;
284
+ }
285
+ /** An increment's bookkeeping file, in `_archive`/`_abandoned`/`_paused` too. */
286
+ const BOOKKEEPING_PATH = /(^|\/)\.specweave\/increments\/(_[a-z]+\/)?[^/]+\/(spec\.md|ledger\.jsonl|metadata\.json|handoff\.md)$/;
287
+ /**
288
+ * Unpushed commits that are not auto-commits, or -1 when they cannot be
289
+ * listed. An auto-commit has an auto subject and touches only increment
290
+ * bookkeeping files, so a code commit titled `0042: done T-02` still counts.
291
+ * `--no-renames` lists a rename's source path too.
292
+ */
293
+ function unpushedOthers(git) {
294
+ const log = git(['-c', 'core.quotePath=false', '-c', 'log.showSignature=false', 'log', '--no-renames', '--format=%x00%s', '--name-only', '@{u}..HEAD']);
295
+ if (log.code !== 0)
296
+ return -1;
297
+ return log.out.split('\0').slice(1).filter((entry) => {
298
+ const [subject = '', ...rest] = entry.split('\n');
299
+ const files = rest.filter(Boolean);
300
+ return !(isAutoCommitSubject(subject) && files.length && files.every((f) => BOOKKEEPING_PATH.test(f)));
301
+ }).length;
302
+ }
303
+ /**
304
+ * Why `handoff` should hold its branch push: the branch is ahead of a local
305
+ * or differently named upstream by auto-commits alone, so the push would land
306
+ * only this bookkeeping there. Undefined otherwise, including when other
307
+ * commits are unpushed (the branch push is then the user's, as before).
308
+ */
309
+ export function autoCommitPushHold(dir) {
310
+ const at = gitLocate(dir);
311
+ if (!at)
312
+ return undefined;
313
+ const git = (args) => runGit(at.top, args);
314
+ const head = git(['symbolic-ref', '--quiet', 'HEAD']);
315
+ if (head.code !== 0 || !head.out.startsWith('refs/heads/'))
316
+ return undefined;
317
+ const branch = head.out.slice('refs/heads/'.length);
318
+ const problem = upstreamProblem(git, branch);
319
+ // Without a resolvable `@{u}` the handoff pushes to a same-named branch.
320
+ if (!problem || git(['rev-parse', '--verify', '--quiet', '@{u}']).code !== 0)
321
+ return undefined;
322
+ const ahead = Number(git(['rev-list', '--count', '@{u}..HEAD']).out || '0');
323
+ if (!ahead || unpushedOthers(git) !== 0)
324
+ return undefined;
325
+ return `${problem}, and only increment auto-commits are unpushed; push them yourself`;
326
+ }
327
+ /**
328
+ * The branch's upstream as git resolves `@{u}` (and so `pushHandoff`): the
329
+ * first `merge` value, none when half set. `config --get` would read the last.
330
+ * `tracking` is the remote-tracking ref, empty when no fetch refspec maps it.
331
+ */
332
+ function upstreamOf(git, branch) {
333
+ const ref = `refs/heads/${branch}`;
334
+ const r = git(['for-each-ref', '--format=%(refname)%00%(upstream:remotename)%00%(upstream:remoteref)%00%(upstream:short)%00%(upstream)', ref]);
335
+ for (const line of r.out.split('\n')) {
336
+ const [name, remote = '', merge = '', short = '', tracking = ''] = line.split('\0');
337
+ if (name === ref)
338
+ return remote && merge ? { remote, merge, short, tracking } : null;
339
+ }
340
+ return null;
341
+ }
342
+ /**
343
+ * Why pushing `branch` to its upstream would land it somewhere else: a local
344
+ * upstream, a differently named branch, or a fetch refspec that files it under
345
+ * another name (`pushHandoff` pushes to the name it reads off `@{u}`).
346
+ * Undefined when it is a same-named branch on a remote, or when there is no
347
+ * upstream at all.
348
+ */
349
+ function upstreamProblem(git, branch) {
350
+ const up = upstreamOf(git, branch);
351
+ if (!up)
352
+ return undefined;
353
+ if (up.remote === '.')
354
+ return `${branch} tracks the local branch ${up.short}`;
355
+ if (up.merge !== `refs/heads/${branch}`)
356
+ return `${branch} tracks ${up.short}, a different branch`;
357
+ if (up.tracking !== `refs/remotes/${up.remote}/${branch}`) {
358
+ return `${branch}'s upstream is fetched as ${up.short || 'no remote-tracking branch'}, not ${up.remote}/${branch}`;
359
+ }
360
+ return undefined;
361
+ }
362
+ /** One line for the user, or undefined when nothing happened. */
363
+ export function describeAutoCommit(r) {
364
+ if (r.status !== 'committed')
365
+ return undefined;
366
+ return `Committed${r.sha ? ` ${r.sha}` : ''} "${r.subject}"${r.pushed ? `, pushed to ${r.pushed}` : ''}`;
367
+ }
368
+ function firstLine(text) {
369
+ return text.split('\n').map((l) => l.trim()).find(Boolean)?.slice(0, 160) ?? '';
370
+ }
371
+ //# sourceMappingURL=auto-commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-commit.js","sourceRoot":"","sources":["../../../../src/core/increment/auto-commit.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"completion-validator.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/completion-validator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAMpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;GAMG;AACH,qBAAa,4BAA4B;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;WACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC7E,OAAO,CAAC,gBAAgB,CAAC;IA+N5B;;;;;;;;;;;;;;;;OAgBG;WACU,+BAA+B,CAC1C,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IA8DhB;;;;;;;;;;;OAWG;mBACkB,kBAAkB;IAoEvC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAiDtC;;;;;;;;;;;OAWG;WACU,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc/D;;;;;;;;;OASG;WACU,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOrE"}
1
+ {"version":3,"file":"completion-validator.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/completion-validator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAMpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;;;;GAMG;AACH,qBAAa,4BAA4B;IACvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;WACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO,GAC7E,OAAO,CAAC,gBAAgB,CAAC;IA8N5B;;;;;;;;;;;;;;;;OAgBG;WACU,+BAA+B,CAC1C,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC;IA8DhB;;;;;;;;;;;OAWG;mBACkB,kBAAkB;IAoEvC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAiDtC;;;;;;;;;;;OAWG;WACU,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc/D;;;;;;;;;OASG;WACU,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAOrE"}
@@ -172,30 +172,32 @@ export class IncrementCompletionValidator {
172
172
  catch {
173
173
  // Best-effort: signal emission must never affect closure.
174
174
  }
175
- // NEW (v1.0.105): Test coverage validation for TDD increments
176
- // Validates that coverage meets target when testMode != 'none' and coverageTarget > 0
177
- // See: ADR-0163 (TDD Enforcement Implementation)
175
+ // Coverage is opt-in: checked only when the user set `testing.coverage.unit`.
176
+ // A metadata.json `coverageTarget` is ignored, since older releases stamped
177
+ // 80 into every increment, and test order never defaults to TDD.
178
178
  try {
179
179
  const metadataPath = path.join(incrementPath, 'metadata.json');
180
180
  if (await fs.pathExists(metadataPath)) {
181
181
  const metadataContent = await fs.readFile(metadataPath, 'utf-8');
182
182
  const metadata = JSON.parse(metadataContent);
183
- const testMode = (metadata.testMode || 'TDD');
184
- // Resolve coverage target: config.json > metadata.json fallback
185
- let coverageTarget = metadata.coverageTarget ?? 0;
183
+ let coverageTarget = 0;
184
+ let configMode;
186
185
  try {
187
186
  const configPath = path.join(resolveEffectiveRoot(), '.specweave', 'config.json');
188
187
  if (await fs.pathExists(configPath)) {
189
188
  const config = JSON.parse(await fs.readFile(configPath, 'utf-8'));
190
- const configTarget = config?.testing?.coverage?.unit;
189
+ // `coverageTargets` is the 1.x name, before migrate-to-2 rewrites it.
190
+ const configTarget = config?.testing?.coverage?.unit ?? config?.testing?.coverageTargets?.unit;
191
191
  if (typeof configTarget === 'number') {
192
192
  coverageTarget = configTarget;
193
193
  }
194
+ configMode = config?.testing?.mode;
194
195
  }
195
196
  }
196
197
  catch {
197
- // Config read failed — fall back to metadata target
198
+ // Config read failed — no coverage target
198
199
  }
200
+ const testMode = (configMode || metadata.testMode || 'test-after');
199
201
  // Only validate if coverage target is set and testMode is not 'none'
200
202
  if (coverageTarget > 0 && testMode !== 'none') {
201
203
  const coverageResult = await validateCoverage({
@@ -207,10 +209,7 @@ export class IncrementCompletionValidator {
207
209
  logger.info(`Coverage validation skipped: ${coverageResult.reason}`);
208
210
  }
209
211
  else if (!coverageResult.coverageFile && !coverageResult.details) {
210
- // No coverage data at all is missing evidence, not 0% coverage:
211
- // create-increment writes coverageTarget 80 into every new
212
- // increment, so a project without coverage tooling would warn
213
- // "0.0% < 80%" on every close.
212
+ // No coverage data at all is missing evidence, not 0% coverage.
214
213
  logger.info(`Coverage validation skipped: ${coverageResult.reason}`);
215
214
  }
216
215
  else if (!coverageResult.passed) {
@@ -1 +1 @@
1
- {"version":3,"file":"completion-validator.js","sourceRoot":"","sources":["../../../../src/core/increment/completion-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion-validator.js","sourceRoot":"","sources":["../../../../src/core/increment/completion-validator.ts"],"names":[],"mappings":"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"}
@@ -175,7 +175,7 @@ export declare class MetadataManager {
175
175
  * - type: non-standard aliases mapped to canonical enum values
176
176
  * - created/createdAt: legacy field renamed
177
177
  * - externalLinks: ensured to exist (defaults to {})
178
- * - status/priority/testMode/coverageTarget: sensible defaults applied
178
+ * - status/priority: sensible defaults applied
179
179
  *
180
180
  * @returns corrected metadata, whether any correction was made, and warnings
181
181
  */
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata-manager.d.ts","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"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"}
@@ -614,7 +614,7 @@ export class MetadataManager {
614
614
  * - type: non-standard aliases mapped to canonical enum values
615
615
  * - created/createdAt: legacy field renamed
616
616
  * - externalLinks: ensured to exist (defaults to {})
617
- * - status/priority/testMode/coverageTarget: sensible defaults applied
617
+ * - status/priority: sensible defaults applied
618
618
  *
619
619
  * @returns corrected metadata, whether any correction was made, and warnings
620
620
  */
@@ -728,14 +728,8 @@ export class MetadataManager {
728
728
  metadata.lastActivity = metadata.updated || metadata.created;
729
729
  corrected = true;
730
730
  }
731
- if (metadata.testMode === undefined) {
732
- metadata.testMode = 'test-after';
733
- corrected = true;
734
- }
735
- if (metadata.coverageTarget === undefined) {
736
- metadata.coverageTarget = 80;
737
- corrected = true;
738
- }
731
+ // No testMode or coverageTarget default: test order and coverage are the
732
+ // user's opt-in (config `testing.mode` / `testing.coverage`), never implied.
739
733
  if (!metadata.type) {
740
734
  metadata.type = IncrementType.FEATURE;
741
735
  warnings.push(`Missing 'type' — defaulted to '${IncrementType.FEATURE}'`);