greprag 5.71.1 → 5.72.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/procedure.js CHANGED
@@ -50,7 +50,7 @@ var __importStar = (this && this.__importStar) || (function () {
50
50
  };
51
51
  })();
52
52
  Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.BUILTIN_PROCEDURES = exports.SHIP_THROUGH_PROCEDURE = exports.GIT_SEED_SET = exports.PROCEDURE_STORE_VERSION = void 0;
53
+ exports.BUILTIN_PROCEDURES = exports.SHIP_THROUGH_PROCEDURE = exports.GIT_SEED_SET = exports.REPO_BOUNDARY_PRECONDITION = exports.PROCEDURE_STORE_VERSION = void 0;
54
54
  exports.procedureStorePath = procedureStorePath;
55
55
  exports.readProcedureStore = readProcedureStore;
56
56
  exports.writeProcedureStore = writeProcedureStore;
@@ -296,6 +296,8 @@ function buildProcedureInjection(proc) {
296
296
  const lines = [];
297
297
  const tag = proc.destructive ? ' ⚠ DESTRUCTIVE' : '';
298
298
  lines.push(`[Procedure: ${proc.verb} — ${proc.status}${tag}] This repo has a known recipe for "${proc.verb}".`);
299
+ if (proc.preconditions)
300
+ lines.push(` PRECONDITIONS: ${proc.preconditions}`);
299
301
  if (proc.destructive && proc.caveats) {
300
302
  lines.push(` ⛔ GATE: ${proc.caveats}`);
301
303
  lines.push(` STEPS (only after approval): ${proc.steps}`);
@@ -313,6 +315,7 @@ function buildProcedureInjection(proc) {
313
315
  return lines.join('\n');
314
316
  }
315
317
  // ---------- The git-ecosystem seed set ---------------------------------------
318
+ exports.REPO_BOUNDARY_PRECONDITION = 'Before commit/merge/deploy/push/release: confer with reachable same-repo peers, attribute every dirty file to you/a peer/pre-existing user work, and resolve or explicitly claim any unowned dirt.';
316
319
  /** The five operational verbs Travis conflates, encoded with their real recipes
317
320
  * + gates (docs/procedure-system.md). The deliberate contradiction —
318
321
  * deploy = don't-ask, push = always-ask — is exactly what trips a learning
@@ -321,22 +324,25 @@ exports.GIT_SEED_SET = [
321
324
  {
322
325
  verb: 'commit',
323
326
  triggers: ['commit', 'check in', 'check it in', 'checkpoint this', 'land it'],
324
- steps: 'git add -A && git commit -m "wip: <msg>"; then merge the feature branch into the default branch, prune the worktree, delete the merged branch (the /commit flow).',
325
- caveats: 'Scope = only MY work never sweep a parallel workstream\'s pending changes. STOPS before push.',
327
+ preconditions: exports.REPO_BOUNDARY_PRECONDITION,
328
+ steps: 'git add -A && git commit -m "wip: <msg>"; then merge the feature branch into the default branch and run the repo-native cleanup/archive flow.',
329
+ caveats: 'Scope = task-owned work only. Do not sweep a parallel workstream\'s pending changes. STOPS before push.',
326
330
  endpoint: 'changes committed and the feature branch merged into default',
327
331
  status: 'seeded',
328
332
  },
329
333
  {
330
334
  verb: 'merge',
331
335
  triggers: ['merge', 'merge the branch', 'merge to main', 'merge into main'],
336
+ preconditions: exports.REPO_BOUNDARY_PRECONDITION,
332
337
  steps: 'git checkout <default> && git merge <branch> (folded into the commit flow).',
333
- caveats: 'Another session live in this repo? Coordinate with the peer before merging shared state.',
338
+ caveats: 'Do not treat a clean current checkout as whole-repo clearance.',
334
339
  endpoint: 'branch merged into the default branch with no conflicts',
335
340
  status: 'seeded',
336
341
  },
337
342
  {
338
343
  verb: 'push',
339
344
  triggers: ['push', 'git push', 'push to remote', 'push it up', 'push upstream'],
345
+ preconditions: exports.REPO_BOUNDARY_PRECONDITION,
340
346
  steps: 'git push',
341
347
  caveats: 'git push triggers a PRODUCTION deploy. STOP and get explicit fresh approval before pushing — never push without a fresh "yes" this turn.',
342
348
  endpoint: 'operator approved the push AND it completed',
@@ -346,14 +352,16 @@ exports.GIT_SEED_SET = [
346
352
  {
347
353
  verb: 'deploy',
348
354
  triggers: ['deploy', 'deploy the api', 'deploy the worker', 'redeploy'],
349
- steps: 'cd packages/api && npm run deploy',
350
- caveats: 'Routine after a core fix + commit, run this WITHOUT asking. This is the wrangler deploy of the API worker; it is NOT a git push.',
351
- endpoint: 'wrangler prints the published worker version (deploy success output)',
355
+ preconditions: exports.REPO_BOUNDARY_PRECONDITION,
356
+ steps: 'Resolve the repo/target DeploySchema for this deploy intent; run only that schema\'s commands after preconditions are settled.',
357
+ caveats: 'Method-agnostic: the global seed only routes to a learned repo/target DeploySchema. Do not infer provider/tooling from another repo. If the schema is missing, stale, or target-ambiguous, say so and capture the live resolution instead of guessing.',
358
+ endpoint: 'the target DeploySchema success signal and verification pass; missing/stale schema is captured without registering a recipe',
352
359
  status: 'seeded',
353
360
  },
354
361
  {
355
362
  verb: 'release',
356
363
  triggers: ['release', 'ship it', 'ship a release', 'cut a release', 'publish the release', 'do a release'],
364
+ preconditions: exports.REPO_BOUNDARY_PRECONDITION,
357
365
  steps: 'Run the /release flow — greprag\'s actual ship path (version bump + publish).',
358
366
  caveats: 'greprag ships via /release — NOT /commit and NOT /deploy. Do not conflate the three: commit lands code, deploy pushes the worker, release publishes a version.',
359
367
  endpoint: 'the release is published (new version live)',
@@ -366,6 +374,7 @@ exports.GIT_SEED_SET = [
366
374
  exports.SHIP_THROUGH_PROCEDURE = {
367
375
  verb: 'ship-through',
368
376
  triggers: [],
377
+ preconditions: exports.REPO_BOUNDARY_PRECONDITION,
369
378
  steps: [
370
379
  'Start the run with `greprag procedure begin ship-through`, then reach a coherent diff.',
371
380
  'Confer with reachable same-project GrepRAG peers; if none are reachable, use an independent local reviewer/subagent.',
@@ -1 +1 @@
1
- {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../src/procedure.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procedure.js","sourceRoot":"","sources":["../src/procedure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /** Skill source drift — local Git evidence for mirrored skills.
2
+ *
3
+ * A cloud skill can name the local source files it summarizes, but only the
4
+ * local machine can know whether those files have moved. This module keeps the
5
+ * cloud payload dumb: a hidden JSON metadata block in SKILL.md names watched
6
+ * paths plus their baseline commits; `greprag load` checks local Git at serve
7
+ * time and emits a high-signal directive when the skill is stale.
8
+ *
9
+ * docs/load-system.md §Source-bound skill freshness
10
+ * adr/parity-system.md
11
+ */
12
+ export declare const SOURCE_BINDINGS_MARKER = "greprag-source-bindings";
13
+ export interface SkillSourceBinding {
14
+ project: string;
15
+ paths: string[];
16
+ baselineCommit: string;
17
+ baselineHash?: string;
18
+ }
19
+ export interface SourceProjectDrift {
20
+ project: string;
21
+ root?: string;
22
+ baselineCommit: string;
23
+ baselineHash?: string;
24
+ head?: string;
25
+ commitsAhead: number;
26
+ changedPaths: string[];
27
+ dirtyPaths: string[];
28
+ status: 'fresh' | 'stale' | 'dirty' | 'unknown';
29
+ reason?: string;
30
+ }
31
+ export interface SkillSourceDriftReport {
32
+ skillName: string;
33
+ status: 'fresh' | 'stale' | 'dirty' | 'unknown';
34
+ projects: SourceProjectDrift[];
35
+ watchedPathCount: number;
36
+ commitsAhead: number;
37
+ }
38
+ export declare function parseSkillSourceBindings(skillMd: string): SkillSourceBinding[];
39
+ export declare function serializeSkillSourceBindings(bindings: SkillSourceBinding[]): string;
40
+ export declare function upsertSkillSourceBindings(skillMd: string, bindings: SkillSourceBinding[]): string;
41
+ export declare function resolveSourceRoot(project: string, cwd?: string): string | null;
42
+ export declare function computeCommittedPathHash(root: string, ref: string, paths: string[]): string;
43
+ export declare function analyzeSkillSourceDrift(skillName: string, skillMd: string, cwd?: string): SkillSourceDriftReport | null;
44
+ export declare function formatSkillSourceDrift(report: SkillSourceDriftReport | null, options?: {
45
+ details?: boolean;
46
+ }): string;
47
+ export declare function stampSourceBinding(params: {
48
+ skillMd: string;
49
+ project: string;
50
+ root: string;
51
+ paths: string[];
52
+ baselineCommit?: string;
53
+ }): {
54
+ content: string;
55
+ binding: SkillSourceBinding;
56
+ };
@@ -0,0 +1,389 @@
1
+ "use strict";
2
+ /** Skill source drift — local Git evidence for mirrored skills.
3
+ *
4
+ * A cloud skill can name the local source files it summarizes, but only the
5
+ * local machine can know whether those files have moved. This module keeps the
6
+ * cloud payload dumb: a hidden JSON metadata block in SKILL.md names watched
7
+ * paths plus their baseline commits; `greprag load` checks local Git at serve
8
+ * time and emits a high-signal directive when the skill is stale.
9
+ *
10
+ * docs/load-system.md §Source-bound skill freshness
11
+ * adr/parity-system.md
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.SOURCE_BINDINGS_MARKER = void 0;
48
+ exports.parseSkillSourceBindings = parseSkillSourceBindings;
49
+ exports.serializeSkillSourceBindings = serializeSkillSourceBindings;
50
+ exports.upsertSkillSourceBindings = upsertSkillSourceBindings;
51
+ exports.resolveSourceRoot = resolveSourceRoot;
52
+ exports.computeCommittedPathHash = computeCommittedPathHash;
53
+ exports.analyzeSkillSourceDrift = analyzeSkillSourceDrift;
54
+ exports.formatSkillSourceDrift = formatSkillSourceDrift;
55
+ exports.stampSourceBinding = stampSourceBinding;
56
+ const crypto = __importStar(require("crypto"));
57
+ const fs = __importStar(require("fs"));
58
+ const os = __importStar(require("os"));
59
+ const path = __importStar(require("path"));
60
+ const proc_1 = require("./proc");
61
+ exports.SOURCE_BINDINGS_MARKER = 'greprag-source-bindings';
62
+ function asString(value) {
63
+ return typeof value === 'string' ? value.trim() : '';
64
+ }
65
+ function normalizeRelPath(raw) {
66
+ const value = asString(raw).replace(/\\/g, '/').replace(/^\.\/+/, '');
67
+ if (!value || value.startsWith('/') || /^[A-Za-z]:\//.test(value))
68
+ return null;
69
+ if (value.split('/').some(part => !part || part === '.' || part === '..'))
70
+ return null;
71
+ return value;
72
+ }
73
+ function normalizeBinding(raw) {
74
+ if (!raw || typeof raw !== 'object' || Array.isArray(raw))
75
+ return null;
76
+ const obj = raw;
77
+ const project = asString(obj.project);
78
+ const baselineCommit = asString(obj.baselineCommit || obj.baseline_commit);
79
+ const baselineHash = asString(obj.baselineHash || obj.baseline_hash);
80
+ const paths = Array.isArray(obj.paths)
81
+ ? [...new Set(obj.paths.map(normalizeRelPath).filter((p) => !!p))]
82
+ : [];
83
+ if (!/^[A-Za-z0-9._-]{1,80}$/.test(project))
84
+ return null;
85
+ if (!/^[0-9a-f]{7,40}$/i.test(baselineCommit))
86
+ return null;
87
+ if (paths.length === 0)
88
+ return null;
89
+ return { project, paths, baselineCommit, ...(baselineHash ? { baselineHash } : {}) };
90
+ }
91
+ function parseSkillSourceBindings(skillMd) {
92
+ const re = new RegExp(`<!--\\s*${exports.SOURCE_BINDINGS_MARKER}\\s*([\\s\\S]*?)-->`, 'm');
93
+ const match = re.exec(skillMd);
94
+ if (!match)
95
+ return [];
96
+ try {
97
+ const parsed = JSON.parse(match[1].trim());
98
+ const rows = Array.isArray(parsed)
99
+ ? parsed
100
+ : parsed && typeof parsed === 'object'
101
+ ? parsed.sources
102
+ : [];
103
+ if (!Array.isArray(rows))
104
+ return [];
105
+ return rows.map(normalizeBinding).filter((b) => !!b);
106
+ }
107
+ catch {
108
+ return [];
109
+ }
110
+ }
111
+ function sortedBindings(bindings) {
112
+ return [...bindings].sort((a, b) => a.project.localeCompare(b.project));
113
+ }
114
+ function serializeSkillSourceBindings(bindings) {
115
+ const sources = sortedBindings(bindings).map(binding => ({
116
+ project: binding.project,
117
+ baselineCommit: binding.baselineCommit,
118
+ ...(binding.baselineHash ? { baselineHash: binding.baselineHash } : {}),
119
+ paths: [...binding.paths].sort(),
120
+ }));
121
+ return `<!-- ${exports.SOURCE_BINDINGS_MARKER}\n${JSON.stringify({ version: 1, sources }, null, 2)}\n-->`;
122
+ }
123
+ function upsertSkillSourceBindings(skillMd, bindings) {
124
+ const block = serializeSkillSourceBindings(bindings);
125
+ const re = new RegExp(`<!--\\s*${exports.SOURCE_BINDINGS_MARKER}\\s*[\\s\\S]*?-->`, 'm');
126
+ if (re.test(skillMd))
127
+ return skillMd.replace(re, block);
128
+ const frontmatter = /^---\r?\n[\s\S]*?\r?\n---\r?\n?/.exec(skillMd);
129
+ if (frontmatter) {
130
+ const head = frontmatter[0].replace(/\s*$/, '\n');
131
+ return `${head}\n${block}\n\n${skillMd.slice(frontmatter[0].length).replace(/^\s*/, '')}`;
132
+ }
133
+ return `${block}\n\n${skillMd}`;
134
+ }
135
+ function git(root, args) {
136
+ try {
137
+ return (0, proc_1.safeExecFileSync)('git', args, {
138
+ cwd: root,
139
+ encoding: 'utf-8',
140
+ stdio: ['ignore', 'pipe', 'ignore'],
141
+ }).trim();
142
+ }
143
+ catch {
144
+ return null;
145
+ }
146
+ }
147
+ function gitOk(root, args) {
148
+ try {
149
+ (0, proc_1.safeExecFileSync)('git', args, { cwd: root, stdio: 'ignore' });
150
+ return true;
151
+ }
152
+ catch {
153
+ return false;
154
+ }
155
+ }
156
+ function gitBuffer(root, args) {
157
+ try {
158
+ return (0, proc_1.safeExecFileSync)('git', args, {
159
+ cwd: root,
160
+ stdio: ['ignore', 'pipe', 'ignore'],
161
+ });
162
+ }
163
+ catch {
164
+ return null;
165
+ }
166
+ }
167
+ function gitRoot(start) {
168
+ const out = git(start, ['rev-parse', '--show-toplevel']);
169
+ return out ? path.resolve(out) : null;
170
+ }
171
+ function splitLines(value) {
172
+ return (value || '').split(/\r?\n/).map(line => line.trim()).filter(Boolean);
173
+ }
174
+ function parseExplicitRoots() {
175
+ const out = new Map();
176
+ const raw = process.env.GREPRAG_SOURCE_ROOTS || '';
177
+ for (const entry of raw.split(/[;,]/)) {
178
+ const eq = entry.indexOf('=');
179
+ if (eq < 1)
180
+ continue;
181
+ const name = entry.slice(0, eq).trim().toLowerCase();
182
+ const dir = entry.slice(eq + 1).trim();
183
+ if (name && dir)
184
+ out.set(name, path.resolve(dir));
185
+ }
186
+ return out;
187
+ }
188
+ function rootNames(root) {
189
+ const names = new Set([path.basename(root).toLowerCase()]);
190
+ for (const rel of [path.join('.greprag', 'project.json'), path.join('.claude', 'project.json')]) {
191
+ try {
192
+ const raw = JSON.parse(fs.readFileSync(path.join(root, rel), 'utf-8'));
193
+ if (typeof raw.project_name === 'string' && raw.project_name.trim()) {
194
+ names.add(raw.project_name.trim().toLowerCase());
195
+ }
196
+ }
197
+ catch { /* no anchor name */ }
198
+ }
199
+ return names;
200
+ }
201
+ function resolveSourceRoot(project, cwd = process.cwd()) {
202
+ const wanted = project.toLowerCase();
203
+ const explicit = parseExplicitRoots().get(wanted);
204
+ if (explicit) {
205
+ const root = gitRoot(explicit);
206
+ if (root)
207
+ return root;
208
+ }
209
+ const cwdRoot = gitRoot(cwd) || path.resolve(cwd);
210
+ const candidates = [
211
+ cwdRoot,
212
+ path.join(path.dirname(cwdRoot), project),
213
+ path.join(path.parse(cwdRoot).root, project),
214
+ path.join(os.homedir(), project),
215
+ ];
216
+ for (const candidate of candidates) {
217
+ if (!fs.existsSync(candidate))
218
+ continue;
219
+ const root = gitRoot(candidate);
220
+ if (!root)
221
+ continue;
222
+ if (rootNames(root).has(wanted))
223
+ return root;
224
+ }
225
+ return null;
226
+ }
227
+ function shortCommit(root, ref) {
228
+ return git(root, ['rev-parse', '--short', ref]) || ref.slice(0, 8);
229
+ }
230
+ function computeCommittedPathHash(root, ref, paths) {
231
+ const hash = crypto.createHash('sha256');
232
+ for (const rel of [...paths].sort()) {
233
+ hash.update(rel).update('\0');
234
+ const content = gitBuffer(root, ['show', `${ref}:${rel}`]);
235
+ hash.update(content === null ? Buffer.from('<missing>', 'utf8') : content).update('\0');
236
+ }
237
+ return hash.digest('hex');
238
+ }
239
+ function dirtyPaths(root, paths) {
240
+ const dirty = new Set();
241
+ for (const line of splitLines(git(root, ['diff', '--name-only', '--', ...paths])))
242
+ dirty.add(line);
243
+ for (const line of splitLines(git(root, ['diff', '--name-only', '--cached', '--', ...paths])))
244
+ dirty.add(line);
245
+ for (const line of splitLines(git(root, ['ls-files', '--others', '--exclude-standard', '--', ...paths])))
246
+ dirty.add(line);
247
+ return [...dirty].sort();
248
+ }
249
+ function analyzeProject(binding, cwd) {
250
+ const root = resolveSourceRoot(binding.project, cwd);
251
+ if (!root) {
252
+ return {
253
+ project: binding.project,
254
+ baselineCommit: binding.baselineCommit,
255
+ baselineHash: binding.baselineHash,
256
+ commitsAhead: 0,
257
+ changedPaths: [],
258
+ dirtyPaths: [],
259
+ status: 'unknown',
260
+ reason: 'local checkout not found',
261
+ };
262
+ }
263
+ if (!gitOk(root, ['cat-file', '-e', `${binding.baselineCommit}^{commit}`])) {
264
+ return {
265
+ project: binding.project,
266
+ root,
267
+ baselineCommit: binding.baselineCommit,
268
+ baselineHash: binding.baselineHash,
269
+ head: shortCommit(root, 'HEAD'),
270
+ commitsAhead: 0,
271
+ changedPaths: [],
272
+ dirtyPaths: dirtyPaths(root, binding.paths),
273
+ status: 'unknown',
274
+ reason: 'baseline commit not present locally',
275
+ };
276
+ }
277
+ const changedPaths = splitLines(git(root, ['diff', '--name-only', `${binding.baselineCommit}..HEAD`, '--', ...binding.paths]));
278
+ const dirty = dirtyPaths(root, binding.paths);
279
+ const countRaw = git(root, ['rev-list', '--count', `${binding.baselineCommit}..HEAD`, '--', ...binding.paths]) || '0';
280
+ const commitsAhead = Number.parseInt(countRaw, 10) || 0;
281
+ const committedStale = commitsAhead > 0 || changedPaths.length > 0;
282
+ return {
283
+ project: binding.project,
284
+ root,
285
+ baselineCommit: shortCommit(root, binding.baselineCommit),
286
+ baselineHash: binding.baselineHash,
287
+ head: shortCommit(root, 'HEAD'),
288
+ commitsAhead,
289
+ changedPaths,
290
+ dirtyPaths: dirty,
291
+ status: committedStale ? 'stale' : dirty.length > 0 ? 'dirty' : 'fresh',
292
+ };
293
+ }
294
+ function analyzeSkillSourceDrift(skillName, skillMd, cwd = process.cwd()) {
295
+ const bindings = parseSkillSourceBindings(skillMd);
296
+ if (bindings.length === 0)
297
+ return null;
298
+ const projects = bindings.map(binding => analyzeProject(binding, cwd));
299
+ const status = projects.some(p => p.status === 'stale') ? 'stale'
300
+ : projects.some(p => p.status === 'dirty') ? 'dirty'
301
+ : projects.some(p => p.status === 'unknown') ? 'unknown'
302
+ : 'fresh';
303
+ return {
304
+ skillName,
305
+ status,
306
+ projects,
307
+ watchedPathCount: bindings.reduce((sum, binding) => sum + binding.paths.length, 0),
308
+ commitsAhead: projects.reduce((sum, project) => sum + project.commitsAhead, 0),
309
+ };
310
+ }
311
+ function plural(n, one, many = `${one}s`) {
312
+ return `${n} ${n === 1 ? one : many}`;
313
+ }
314
+ function previewPaths(paths, limit = 5) {
315
+ if (paths.length === 0)
316
+ return '';
317
+ const head = paths.slice(0, limit).join(', ');
318
+ return paths.length > limit ? `${head}, +${paths.length - limit}` : head;
319
+ }
320
+ function formatSkillSourceDrift(report, options = {}) {
321
+ if (!report)
322
+ return '';
323
+ if (!options.details && report.status === 'fresh')
324
+ return '';
325
+ const label = report.status === 'unknown'
326
+ ? 'freshness unknown'
327
+ : report.status === 'dirty'
328
+ ? 'source dirty'
329
+ : report.status;
330
+ const lines = [
331
+ '[greprag source drift - show this to the user before using this skill]',
332
+ `/${report.skillName} ${label} - ${plural(report.watchedPathCount, 'watched path')} - ${plural(report.commitsAhead, 'relevant commit')}`,
333
+ ];
334
+ for (const project of report.projects) {
335
+ if (!options.details && project.status === 'fresh')
336
+ continue;
337
+ if (project.status === 'unknown') {
338
+ lines.push(`- ${project.project}: unknown - ${project.reason || 'no local evidence'} (${project.baselineCommit})`);
339
+ continue;
340
+ }
341
+ const changed = previewPaths(project.changedPaths);
342
+ const dirty = previewPaths(project.dirtyPaths);
343
+ const parts = [
344
+ `${project.baselineCommit} -> ${project.head || '?'}`,
345
+ plural(project.commitsAhead, 'commit'),
346
+ ];
347
+ if (changed)
348
+ parts.push(`changed: ${changed}`);
349
+ if (dirty)
350
+ parts.push(`dirty: ${dirty}`);
351
+ if (project.status === 'fresh')
352
+ parts.push('fresh');
353
+ lines.push(`- ${project.project}: ${parts.join(' - ')}`);
354
+ }
355
+ if (report.status === 'stale' || report.status === 'dirty') {
356
+ lines.push('Action: read the changed watched files/diffs and use local source as truth before answering.');
357
+ }
358
+ if (report.projects.some(p => p.dirtyPaths.length > 0)) {
359
+ lines.push('Baseline rule: do not stamp a new baseline while watched local edits are dirty.');
360
+ }
361
+ if (report.status === 'unknown') {
362
+ lines.push('Action: say source freshness is unknown before relying on this skill\'s stateful claims.');
363
+ }
364
+ return lines.join('\n') + '\n';
365
+ }
366
+ function stampSourceBinding(params) {
367
+ const root = gitRoot(params.root);
368
+ if (!root)
369
+ throw new Error(`not a Git checkout: ${params.root}`);
370
+ const commit = git(root, ['rev-parse', params.baselineCommit || 'HEAD']);
371
+ if (!commit)
372
+ throw new Error(`baseline commit not found in ${root}`);
373
+ const paths = [...new Set(params.paths.map(normalizeRelPath).filter((p) => !!p))].sort();
374
+ if (paths.length === 0)
375
+ throw new Error('at least one safe relative --path is required');
376
+ const dirty = dirtyPaths(root, paths);
377
+ if (dirty.length > 0) {
378
+ throw new Error(`watched source paths have uncommitted changes: ${dirty.join(', ')}`);
379
+ }
380
+ const binding = {
381
+ project: params.project,
382
+ baselineCommit: commit,
383
+ baselineHash: computeCommittedPathHash(root, commit, paths),
384
+ paths,
385
+ };
386
+ const others = parseSkillSourceBindings(params.skillMd).filter(b => b.project !== params.project);
387
+ return { content: upsertSkillSourceBindings(params.skillMd, [...others, binding]), binding };
388
+ }
389
+ //# sourceMappingURL=skill-source-drift.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-source-drift.js","sourceRoot":"","sources":["../src/skill-source-drift.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "greprag",
3
- "version": "5.71.1",
3
+ "version": "5.72.0",
4
4
  "description": "GrepRAG — agent memory for Claude Code, Codex, and OpenCode.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -24,8 +24,9 @@ archive clearance (`Clearance: safe to archive` or `Clearance: keep open because
24
24
  cleanup.
25
25
  One landing exception (adr/codex-landing-doctrine.md): a mission whose first
26
26
  line begins `FIX:` (from `greprag fix spawn`) self-lands per its Phase 3 —
27
- peer-confer, merge its own branch to main, native reply as an FYI — while
28
- cleanup stays native (archive clearance) and push/release stays operator-gated.
27
+ peer-confer, attribute repository dirtiness, merge its own branch to main,
28
+ native reply as an FYI — while cleanup stays native (archive clearance) and
29
+ push/release stays operator-gated.
29
30
  All other chip shapes keep the parent-owned landing above.
30
31
  Use `greprag send` only for durable cross-harness or fallback messaging; confirm
31
32
  delivery with a real peer response, not a stored row or a completed empty turn.