@ai-dossier/cli 0.81.0 → 0.83.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.
@@ -16,8 +16,218 @@ Object.defineProperty(exports, "isDossierFrontmatter", { enumerable: true, get:
16
16
  const registry_client_1 = require("../registry-client");
17
17
  const skill_collision_1 = require("../skill-collision");
18
18
  const skill_frontmatter_1 = require("../skill-frontmatter");
19
+ const skill_sync_1 = require("../skill-sync");
19
20
  /** Valid values for --for. Anything else is rejected up front. */
20
21
  const VALID_TARGETS = new Set(['claude', 'opencode', 'both']);
22
+ /**
23
+ * Fetch one dossier and write it as a skill (claude and/or opencode copy), recording its
24
+ * registry path as `x_source`. Throws on any failure; callers decide how to report it.
25
+ */
26
+ async function installOne(dossierName, version, ctx) {
27
+ const skillName = dossierName.split('/').pop() ?? dossierName;
28
+ const skillDir = node_path_1.default.join(ctx.skillsDir, skillName);
29
+ const skillFile = node_path_1.default.join(skillDir, 'SKILL.md');
30
+ let resolvedVersion = version;
31
+ // For versionless installs: resolve which version to use via the TTL'd resolver.
32
+ if (!version) {
33
+ const maxAgeSeconds = (0, cache_resolver_1.parseMaxAgeOption)(ctx.maxAge);
34
+ const resolved = await (0, cache_resolver_1.resolveCachedVersion)(dossierName, {
35
+ fresh: ctx.fresh,
36
+ maxAgeSeconds,
37
+ });
38
+ resolvedVersion = resolved.version;
39
+ }
40
+ let content = null;
41
+ let fromCache = false;
42
+ if (!ctx.fresh) {
43
+ const cached = (0, cache_resolver_1.readCachedContent)(dossierName, resolvedVersion);
44
+ if (cached !== null) {
45
+ content = cached;
46
+ fromCache = true;
47
+ }
48
+ }
49
+ if (!content) {
50
+ const { result: fetchedContent } = await (0, multi_registry_1.multiRegistryGetContent)(dossierName, resolvedVersion);
51
+ if (!fetchedContent) {
52
+ throw { statusCode: 404, message: `Not found: ${dossierName}` };
53
+ }
54
+ content = fetchedContent.content;
55
+ // Write to cache so future installs hit it.
56
+ if (!ctx.fresh) {
57
+ (0, cache_resolver_1.writeCachedContent)(dossierName, resolvedVersion, content, fetchedContent._registry);
58
+ }
59
+ }
60
+ // Write the primary claude skill. Always true today; the flag exists so
61
+ // future flows (e.g. opencode-only refreshes via sync-skills) can opt out.
62
+ if (ctx.targets.writeClaude) {
63
+ node_fs_1.default.mkdirSync(skillDir, { recursive: true });
64
+ // Emit YAML frontmatter so the runtime can read `name`/`description`.
65
+ // The signed payload is unchanged — see skill-frontmatter.ts.
66
+ node_fs_1.default.writeFileSync(skillFile, (0, skill_frontmatter_1.toSkillFrontmatter)(content, dossierName), 'utf8');
67
+ }
68
+ // Dual-write the opencode wrapper when requested. YAML-native sources are
69
+ // skipped because opencode reads them directly from ~/.claude/skills/.
70
+ let opencode = 'off';
71
+ if (ctx.targets.writeOpencode) {
72
+ opencode = (0, opencode_sync_1.writeOpencodeWrapper)(skillName, content, dossierName);
73
+ }
74
+ let summary = '';
75
+ try {
76
+ const parsed = (0, core_1.parseDossierContent)(content);
77
+ const fm = parsed.frontmatter;
78
+ summary = fm.objective || '';
79
+ if (!summary) {
80
+ const firstLine = parsed.body.split('\n').find((l) => l.trim().length > 0);
81
+ summary = firstLine?.replace(/^#+\s*/, '').trim() || '';
82
+ }
83
+ }
84
+ catch {
85
+ // Could not parse — skip summary
86
+ }
87
+ return {
88
+ skillName,
89
+ skillFile,
90
+ source: dossierName,
91
+ version: resolvedVersion || null,
92
+ fileSize: Buffer.byteLength(content, 'utf8'),
93
+ summary,
94
+ cached: fromCache,
95
+ opencode,
96
+ };
97
+ }
98
+ const LIST_PAGE_SIZE = 500;
99
+ const LIST_MAX_PAGES = 20;
100
+ /**
101
+ * Every dossier the configured registries list, paginated. Throws when nothing could be
102
+ * listed at all; partial registry failures are returned so the caller can warn.
103
+ */
104
+ async function fetchRegistryDossiers() {
105
+ const seen = new Map();
106
+ const errors = [];
107
+ for (let page = 1; page <= LIST_MAX_PAGES; page++) {
108
+ const res = await (0, multi_registry_1.multiRegistryList)({ page, perPage: LIST_PAGE_SIZE });
109
+ for (const e of res.errors) {
110
+ if (!errors.some((x) => x.registry === e.registry))
111
+ errors.push(e);
112
+ }
113
+ let added = 0;
114
+ for (const d of res.dossiers) {
115
+ if (seen.has(d.name))
116
+ continue;
117
+ seen.set(d.name, {
118
+ name: d.name,
119
+ version: d.version,
120
+ tags: d.tags,
121
+ });
122
+ added++;
123
+ }
124
+ if (added === 0 || res.dossiers.length < LIST_PAGE_SIZE)
125
+ break;
126
+ }
127
+ if (seen.size === 0 && errors.length > 0) {
128
+ throw new Error(errors.map((e) => `${e.registry}: ${e.error}`).join('; '));
129
+ }
130
+ return { dossiers: [...seen.values()], errors };
131
+ }
132
+ /** `--all` / `--outdated`: plan against the registry, install what the plan says, report each. */
133
+ async function runBatchInstall(opts, ctx) {
134
+ const fail = (message) => {
135
+ if (opts.json)
136
+ console.log(JSON.stringify({ success: false, error: message }, null, 2));
137
+ else
138
+ console.error(`\n❌ ${message}\n`);
139
+ process.exit(1);
140
+ };
141
+ let registry;
142
+ try {
143
+ const listed = await fetchRegistryDossiers();
144
+ registry = listed.dossiers;
145
+ if (!opts.json) {
146
+ for (const e of listed.errors)
147
+ console.error(`⚠️ Registry ${e.registry}: ${e.error}`);
148
+ }
149
+ }
150
+ catch (err) {
151
+ return fail(`Could not list registry: ${err.message}`);
152
+ }
153
+ const plan = (0, skill_sync_1.planSync)({
154
+ registry,
155
+ installed: (0, skill_sync_1.readInstalledSkills)(ctx.skillsDir),
156
+ skillsDir: ctx.skillsDir,
157
+ owner: opts.owner,
158
+ all: !!opts.all,
159
+ outdated: !!opts.outdated,
160
+ force: opts.force,
161
+ });
162
+ const rows = [];
163
+ for (const item of plan) {
164
+ const base = {
165
+ name: item.name,
166
+ skill: item.skill,
167
+ installedVersion: item.installedVersion ?? null,
168
+ version: item.latestVersion ?? null,
169
+ };
170
+ if (item.action === 'collision') {
171
+ rows.push({ ...base, status: 'collision', message: item.reason });
172
+ continue;
173
+ }
174
+ if (item.action === 'skip') {
175
+ rows.push({ ...base, status: 'skipped', message: item.reason });
176
+ continue;
177
+ }
178
+ try {
179
+ const r = await installOne(item.name, item.latestVersion, ctx);
180
+ rows.push({ ...base, version: r.version, status: 'ok' });
181
+ }
182
+ catch (err) {
183
+ const e = err;
184
+ rows.push({
185
+ ...base,
186
+ status: 'failed',
187
+ message: e.statusCode === 404 ? 'not found in registry' : (e.message ?? String(err)),
188
+ });
189
+ }
190
+ }
191
+ const count = (s) => rows.filter((r) => r.status === s).length;
192
+ const summary = {
193
+ ok: count('ok'),
194
+ skipped: count('skipped'),
195
+ failed: count('failed'),
196
+ collisions: count('collision'),
197
+ };
198
+ const success = summary.failed === 0 && summary.collisions === 0;
199
+ if (opts.json) {
200
+ console.log(JSON.stringify({ success, summary, results: rows }, null, 2));
201
+ }
202
+ else {
203
+ console.log('');
204
+ if (rows.length === 0)
205
+ console.log('No matching skills.');
206
+ for (const r of rows) {
207
+ const ver = r.installedVersion && r.version && r.installedVersion !== r.version
208
+ ? `${r.installedVersion} -> ${r.version}`
209
+ : (r.version ?? '');
210
+ const tail = r.message ? ` — ${r.message}` : '';
211
+ const tag = r.status === 'ok'
212
+ ? 'ok'
213
+ : r.status === 'skipped'
214
+ ? 'skip'
215
+ : r.status === 'failed'
216
+ ? 'FAIL'
217
+ : 'COLLISION';
218
+ console.log(` ${tag.padEnd(9)} ${r.name}${ver ? ` (${ver})` : ''}${tail}`);
219
+ }
220
+ console.log(`\n${summary.ok} installed, ${summary.skipped} skipped, ${summary.failed} failed, ${summary.collisions} collisions\n`);
221
+ }
222
+ process.exit(success ? 0 : 1);
223
+ }
224
+ /** Installed vs latest for one installed skill. */
225
+ function describeDrift(s, latestByName) {
226
+ if (!s.source)
227
+ return { status: 'unknown-source' };
228
+ const latest = latestByName?.get(s.source)?.version;
229
+ return { status: (0, skill_sync_1.classify)(s.version, latest), latest };
230
+ }
21
231
  function registerInstallSkillCommand(program) {
22
232
  program
23
233
  .command('install-skill')
@@ -26,7 +236,10 @@ function registerInstallSkillCommand(program) {
26
236
  .option('--force', 'Overwrite if skill already exists')
27
237
  .option('--fresh', 'Skip cache, fetch fresh from registry')
28
238
  .option('--max-age <seconds>', 'Max age of cached version resolution before re-checking the registry (default: 300, 0 = always check)')
29
- .option('--list', 'List currently installed skills')
239
+ .option('--list', 'List currently installed skills (with installed vs latest version)')
240
+ .option('--all', 'Install/refresh every registry skill (a dossier named *-skill or tagged skill)')
241
+ .option('--outdated', 'Reinstall only skills whose registry version is newer (alone: installed skills with a recorded source)')
242
+ .option('--owner <owner>', 'Limit --all / --outdated / --list to one registry owner')
30
243
  .option('--remove <skill>', 'Remove an installed skill')
31
244
  .option('--for <target>', 'Install targets: claude | opencode | both (default: claude + auto-detect opencode)')
32
245
  .option('--json', 'Output as JSON')
@@ -39,24 +252,28 @@ function registerInstallSkillCommand(program) {
39
252
  }
40
253
  const targets = (0, opencode_sync_1.resolveTargets)(options.for);
41
254
  if (options.list) {
42
- if (!node_fs_1.default.existsSync(skillsDir)) {
43
- console.log('\nNo installed skills.\n');
255
+ const installedAll = (0, skill_sync_1.readInstalledSkills)(skillsDir).filter((sk) => !options.owner || sk.source?.split('/')[0] === options.owner);
256
+ if (installedAll.length === 0) {
257
+ if (options.json)
258
+ console.log(JSON.stringify({ skills: [] }, null, 2));
259
+ else
260
+ console.log('\nNo installed skills.\n');
44
261
  process.exit(0);
45
262
  }
46
- const entries = node_fs_1.default
47
- .readdirSync(skillsDir, { withFileTypes: true })
48
- .filter((e) => e.isDirectory())
49
- .filter((e) => node_fs_1.default.existsSync(node_path_1.default.join(skillsDir, e.name, 'SKILL.md')));
50
- if (entries.length === 0) {
51
- console.log('\nNo installed skills.\n');
52
- process.exit(0);
263
+ // Latest versions need the registry; if it is unreachable, --list still works offline.
264
+ let latestByName = null;
265
+ let registryError;
266
+ try {
267
+ const listed = await fetchRegistryDossiers();
268
+ latestByName = new Map(listed.dossiers.map((d) => [d.name, d]));
269
+ }
270
+ catch (err) {
271
+ registryError = err.message;
53
272
  }
54
273
  // Cross-reference opencode installs so we can badge dual-installed skills.
55
274
  const opencodeInstalled = new Set((0, opencode_sync_1.listOpencodeSkills)());
56
- console.log(`\n📋 Installed skills (${entries.length}):\n`);
57
- for (const e of entries) {
58
- const skillFile = node_path_1.default.join(skillsDir, e.name, 'SKILL.md');
59
- const content = node_fs_1.default.readFileSync(skillFile, 'utf8');
275
+ const rows = installedAll.map((sk) => {
276
+ const content = node_fs_1.default.readFileSync(node_path_1.default.join(skillsDir, sk.dir, 'SKILL.md'), 'utf8');
60
277
  let description = '';
61
278
  const yamlMatch = content.match(/^---\n([\s\S]*?)\n---/);
62
279
  if (yamlMatch) {
@@ -64,10 +281,40 @@ function registerInstallSkillCommand(program) {
64
281
  if (descMatch)
65
282
  description = descMatch[1].trim();
66
283
  }
67
- const badge = opencodeInstalled.has(e.name) ? ' [claude, opencode]' : ' [claude]';
68
- console.log(` ${e.name}${badge}`);
69
- if (description) {
70
- const snippet = description.length > 80 ? `${description.slice(0, 80)}...` : description;
284
+ const drift = describeDrift(sk, latestByName);
285
+ return {
286
+ skill: sk.dir,
287
+ source: sk.source ?? null,
288
+ installedVersion: sk.version ?? null,
289
+ latestVersion: drift.latest ?? null,
290
+ status: drift.status,
291
+ targets: opencodeInstalled.has(sk.dir) ? ['claude', 'opencode'] : ['claude'],
292
+ description,
293
+ };
294
+ });
295
+ if (options.json) {
296
+ console.log(JSON.stringify({ skills: rows, registryError: registryError ?? null }, null, 2));
297
+ process.exit(0);
298
+ }
299
+ console.log(`\n📋 Installed skills (${rows.length}):\n`);
300
+ if (registryError) {
301
+ console.log(` (registry unreachable — latest versions unknown: ${registryError})\n`);
302
+ }
303
+ for (const r of rows) {
304
+ const badge = r.targets.length > 1 ? ' [claude, opencode]' : ' [claude]';
305
+ let drift = '';
306
+ if (r.status === 'unknown-source')
307
+ drift = ' — unknown source';
308
+ else if (r.installedVersion || r.latestVersion) {
309
+ drift = ` v${r.installedVersion ?? '?'}`;
310
+ if (r.status === 'behind')
311
+ drift += ` (latest ${r.latestVersion}) BEHIND`;
312
+ else if (r.status === 'ahead')
313
+ drift += ` (registry has ${r.latestVersion}) AHEAD`;
314
+ }
315
+ console.log(` ${r.skill}${badge}${drift}`);
316
+ if (r.description) {
317
+ const snippet = r.description.length > 80 ? `${r.description.slice(0, 80)}...` : r.description;
71
318
  console.log(` ${snippet}`);
72
319
  }
73
320
  console.log('');
@@ -94,8 +341,20 @@ function registerInstallSkillCommand(program) {
94
341
  console.log(`\n✅ Removed skill: ${options.remove} (${parts.join(', ')})\n`);
95
342
  process.exit(0);
96
343
  }
344
+ if (options.all || options.outdated) {
345
+ if (name) {
346
+ console.error('\n❌ --all / --outdated install by registry listing; do not pass a name\n');
347
+ process.exit(1);
348
+ }
349
+ await runBatchInstall({ ...options }, { skillsDir, targets, fresh: options.fresh, maxAge: options.maxAge });
350
+ return;
351
+ }
352
+ if (options.owner) {
353
+ console.error('\n❌ --owner only applies with --all, --outdated or --list\n');
354
+ process.exit(1);
355
+ }
97
356
  if (!name) {
98
- console.error('\n❌ Please provide a dossier name to install, or use --list / --remove\n');
357
+ console.error('\n❌ Please provide a dossier name to install, or use --all / --outdated / --list / --remove\n');
99
358
  process.exit(1);
100
359
  }
101
360
  const [dossierName, version] = (0, registry_client_1.parseNameVersion)(name);
@@ -115,64 +374,15 @@ function registerInstallSkillCommand(program) {
115
374
  }
116
375
  }
117
376
  try {
118
- let resolvedVersion = version;
119
- // For versionless installs: resolve which version to use via the TTL'd resolver.
120
- if (!version) {
121
- const maxAgeSeconds = (0, cache_resolver_1.parseMaxAgeOption)(options.maxAge);
122
- const resolved = await (0, cache_resolver_1.resolveCachedVersion)(dossierName, {
123
- fresh: options.fresh,
124
- maxAgeSeconds,
125
- });
126
- resolvedVersion = resolved.version;
127
- }
128
- let content = null;
129
- let fromCache = false;
130
- if (!options.fresh) {
131
- const cached = (0, cache_resolver_1.readCachedContent)(dossierName, resolvedVersion);
132
- if (cached !== null) {
133
- content = cached;
134
- fromCache = true;
135
- }
136
- }
137
- if (!content) {
138
- const { result: fetchedContent } = await (0, multi_registry_1.multiRegistryGetContent)(dossierName, resolvedVersion);
139
- if (!fetchedContent) {
140
- throw { statusCode: 404, message: `Not found: ${dossierName}` };
141
- }
142
- content = fetchedContent.content;
143
- // Write to cache so future installs hit it.
144
- if (!options.fresh) {
145
- (0, cache_resolver_1.writeCachedContent)(dossierName, resolvedVersion, content, fetchedContent._registry);
146
- }
147
- }
148
- // Write the primary claude skill. Always true today; the flag exists so
149
- // future flows (e.g. opencode-only refreshes via sync-skills) can opt out.
150
- if (targets.writeClaude) {
151
- node_fs_1.default.mkdirSync(skillDir, { recursive: true });
152
- // Emit YAML frontmatter so the runtime can read `name`/`description`.
153
- // The signed payload is unchanged — see skill-frontmatter.ts.
154
- node_fs_1.default.writeFileSync(skillFile, (0, skill_frontmatter_1.toSkillFrontmatter)(content, dossierName), 'utf8');
155
- }
156
- // Dual-write the opencode wrapper when requested. YAML-native sources are
157
- // skipped because opencode reads them directly from ~/.claude/skills/.
158
- let opencodeResult = 'off';
159
- if (targets.writeOpencode) {
160
- opencodeResult = (0, opencode_sync_1.writeOpencodeWrapper)(skillName, content);
161
- }
162
- const fileSize = Buffer.byteLength(content, 'utf8');
163
- let summary = '';
164
- try {
165
- const parsed = (0, core_1.parseDossierContent)(content);
166
- const fm = parsed.frontmatter;
167
- summary = fm.objective || '';
168
- if (!summary) {
169
- const firstLine = parsed.body.split('\n').find((l) => l.trim().length > 0);
170
- summary = firstLine?.replace(/^#+\s*/, '').trim() || '';
171
- }
172
- }
173
- catch {
174
- // Could not parse — skip summary
175
- }
377
+ const r = await installOne(dossierName, version ?? undefined, {
378
+ skillsDir,
379
+ targets,
380
+ fresh: options.fresh,
381
+ maxAge: options.maxAge,
382
+ });
383
+ const { fileSize, summary, opencode: opencodeResult } = r;
384
+ const resolvedVersion = r.version;
385
+ const fromCache = r.cached;
176
386
  if (options.json) {
177
387
  console.log(JSON.stringify({
178
388
  success: true,
@@ -1 +1 @@
1
- {"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../src/commands/install-skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"install-skill.js","sourceRoot":"","sources":["../../src/commands/install-skill.ts"],"names":[],"mappings":"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"}
@@ -49,7 +49,7 @@ export declare function isDossierFrontmatter(content: string): boolean;
49
49
  * `skillName` is the filesystem directory name — used as a fallback when the JSON
50
50
  * has no `name` field (edge case: scaffold-project).
51
51
  */
52
- export declare function buildOpencodeWrapper(rawContent: string, skillName: string): string | null;
52
+ export declare function buildOpencodeWrapper(rawContent: string, skillName: string, source?: string): string | null;
53
53
  /**
54
54
  * Write an opencode wrapper for a skill. Idempotent: no-op when content matches.
55
55
  *
@@ -60,7 +60,7 @@ export declare function buildOpencodeWrapper(rawContent: string, skillName: stri
60
60
  * 'skipped' — source is YAML-native, opencode reads it directly (no wrapper needed)
61
61
  */
62
62
  export type WriteResult = 'created' | 'updated' | 'unchanged' | 'skipped';
63
- export declare function writeOpencodeWrapper(skillName: string, rawContent: string): WriteResult;
63
+ export declare function writeOpencodeWrapper(skillName: string, rawContent: string, source?: string): WriteResult;
64
64
  /**
65
65
  * Remove a skill's opencode wrapper if present. Best-effort: no error when missing.
66
66
  * Returns true if a wrapper was removed.
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sync.d.ts","sourceRoot":"","sources":["../src/opencode-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,QAA+C,CAAC;AAE9E,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,QAAiD,CAAC;AAElF,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,QAA2C,CAAC;AAE5E,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAK9E;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAgCzF;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE1E,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAiBvF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAO7C"}
1
+ {"version":3,"file":"opencode-sync.d.ts","sourceRoot":"","sources":["../src/opencode-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,8FAA8F;AAC9F,eAAO,MAAM,iBAAiB,QAA+C,CAAC;AAE9E,sFAAsF;AACtF,eAAO,MAAM,mBAAmB,QAAiD,CAAC;AAElF,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,QAA2C,CAAC;AAE5E,kFAAkF;AAClF,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,eAAe,CAK9E;AAED,sFAAsF;AACtF,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE7D;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAqCf;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE1E,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,CAiBb;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAO7C"}
@@ -87,7 +87,7 @@ function isDelegatingSkill(body) {
87
87
  * `skillName` is the filesystem directory name — used as a fallback when the JSON
88
88
  * has no `name` field (edge case: scaffold-project).
89
89
  */
90
- function buildOpencodeWrapper(rawContent, skillName) {
90
+ function buildOpencodeWrapper(rawContent, skillName, source) {
91
91
  if (!isDossierFrontmatter(rawContent)) {
92
92
  return null;
93
93
  }
@@ -111,13 +111,19 @@ function buildOpencodeWrapper(rawContent, skillName) {
111
111
  lines.push('allowedTools:');
112
112
  lines.push(' - Bash(ai-dossier run *)');
113
113
  }
114
+ // Provenance, so the opencode copy is as re-fetchable as the claude one.
115
+ if (source) {
116
+ lines.push(`x_source: ${source}`);
117
+ if (fm.version != null)
118
+ lines.push(`version: ${yamlSingleQuote(String(fm.version))}`);
119
+ }
114
120
  lines.push('---');
115
121
  // Ensure exactly one blank line between frontmatter and body, then the body verbatim.
116
122
  const body = parsed.body.replace(/^\s*\n/, '');
117
123
  return `${lines.join('\n')}\n\n${body}`;
118
124
  }
119
- function writeOpencodeWrapper(skillName, rawContent) {
120
- const wrapper = buildOpencodeWrapper(rawContent, skillName);
125
+ function writeOpencodeWrapper(skillName, rawContent, source) {
126
+ const wrapper = buildOpencodeWrapper(rawContent, skillName, source);
121
127
  if (wrapper === null)
122
128
  return 'skipped';
123
129
  const targetDir = node_path_1.default.join(exports.OPENCODE_SKILLS_DIR, skillName);
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-sync.js","sourceRoot":"","sources":["../src/opencode-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode-sync.js","sourceRoot":"","sources":["../src/opencode-sync.ts"],"names":[],"mappings":"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"}
@@ -8,8 +8,9 @@
8
8
  * text-keyword approximation of the risk-floor/new-package/deploy-pipeline rules, rule-9 open
9
9
  * dependencies, and — when a plan:v1 artifact is already on the issue — the path-based risk
10
10
  * floor and the >8-files rule). Everything it does not catch (rule 2 beyond the `migration`
11
- * keyword, rule 7 hard rollback, rule 8 visual/browser review, rules 5/6 diff/file size without
12
- * a plan artifact, rule 10 confidence) falls through to the classifier's own bounded
11
+ * keyword, rule 5 file count without a plan artifact, rule 6 predicted diff (no diff signal at
12
+ * all: a plan:v1 artifact carries predicted files only), rule 7 hard rollback, rule 8
13
+ * visual/browser review, rule 10 confidence) falls through to the classifier's own bounded
13
14
  * mechanical-tier pass, which is the intended safety net — not a gap this module needs to close.
14
15
  *
15
16
  * v2 (#772): two outputs. `verdict: full` only for the EXCLUDING checks;
@@ -24,6 +25,10 @@
24
25
  * hard-block label and a rule-9 open dependency. Rule 8 (visual/browser) stays excluding, but
25
26
  * this module never detected it — the classifier's model pass does.
26
27
  *
28
+ * v5-in-behaviour (#784, contract still `prescreen:v4`): the text floor also masks negated mentions,
29
+ * unquoted file/path/workflow names and other word senses (`maskFloorFalsePositives`), so a
30
+ * false-positive class no longer spends a scarce review=full slot.
31
+ *
27
32
  * Pure and dependency-free (no `gh`, network, or fs), same discipline as `plan-artifact.ts` and
28
33
  * `runstate.ts` — unit-testable directly. Subprocess access (fetching the issue, resolving
29
34
  * dependency state, filtering by submitted set) lives in the command layer (`commands/classify.ts`).
@@ -76,6 +81,11 @@ export declare function stripQuotedSpans(text: string): string;
76
81
  * same-line bound behaves exactly as before.
77
82
  */
78
83
  export declare function stripReferenceMaterial(body: string): string;
84
+ /**
85
+ * #784: blank the false-positive spans of {@link stripQuotedSpans}' unquoted cousins — file/spec/
86
+ * workflow names, other word senses, and scope-disclaimed mentions — before the text floor runs.
87
+ */
88
+ export declare function maskFloorFalsePositives(text: string): string;
79
89
  /**
80
90
  * The exact text the text floor scans (#772): title + section/provenance-filtered body + label
81
91
  * names, with quoted spans blanked (#627). Exported so measurement tooling
@@ -1 +1 @@
1
- {"version":3,"file":"prescreen.d.ts","sourceRoot":"","sources":["../src/prescreen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,sJAAsJ;IACtJ,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACxC;AAwBD,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAmD1D,CAAC;AASF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAuHD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyC3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAE5F;AAED,wKAAwK;AACxK,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAY5D;AAED,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,uGAAuG;IACvG,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAC3F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,oGAAoG;IACpG,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAGjE,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAGxE,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,4FAA4F;IAC5F,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AA6BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,CAgDtE"}
1
+ {"version":3,"file":"prescreen.d.ts","sourceRoot":"","sources":["../src/prescreen.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAKH,6FAA6F;AAC7F,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,sJAAsJ;IACtJ,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;CACxC;AAwDD,eAAO,MAAM,mBAAmB,EAAE,SAAS,gBAAgB,EAqB1D,CAAC;AAwBF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrD;AAuHD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyC3D;AA6JD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAI5F;AAED,wKAAwK;AACxK,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAY5D;AAED,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,uGAAuG;IACvG,KAAK,EAAE,kBAAkB,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,GAAG,iBAAiB,CAAC;IAC3F,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,oGAAoG;IACpG,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAGjE,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAGxE,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,OAAO,EAAE,MAAM,GAAG,WAAW,CAAC;IAC9B;;;;;OAKG;IACH,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,4FAA4F;IAC5F,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AA6BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,gBAAgB,CAgDtE"}