renma 0.18.1 → 0.18.3

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 (84) hide show
  1. package/CHANGELOG.md +126 -1
  2. package/README.md +60 -2
  3. package/architecture.md +4 -0
  4. package/dist/agent-skills.d.ts +5 -6
  5. package/dist/agent-skills.d.ts.map +1 -1
  6. package/dist/agent-skills.js +2 -10
  7. package/dist/agent-skills.js.map +1 -1
  8. package/dist/catalog.d.ts +28 -2
  9. package/dist/catalog.d.ts.map +1 -1
  10. package/dist/catalog.js +65 -16
  11. package/dist/catalog.js.map +1 -1
  12. package/dist/cli-help.d.ts +4 -4
  13. package/dist/cli-help.d.ts.map +1 -1
  14. package/dist/cli-help.js +5 -3
  15. package/dist/cli-help.js.map +1 -1
  16. package/dist/command-invocation.d.ts +4 -0
  17. package/dist/command-invocation.d.ts.map +1 -0
  18. package/dist/command-invocation.js +14 -0
  19. package/dist/command-invocation.js.map +1 -0
  20. package/dist/commands/inspect.d.ts +2 -61
  21. package/dist/commands/inspect.d.ts.map +1 -1
  22. package/dist/commands/inspect.js +51 -149
  23. package/dist/commands/inspect.js.map +1 -1
  24. package/dist/commands/readiness.d.ts +3 -0
  25. package/dist/commands/readiness.d.ts.map +1 -1
  26. package/dist/commands/readiness.js +9 -6
  27. package/dist/commands/readiness.js.map +1 -1
  28. package/dist/commands/suggest-metadata.d.ts +4 -17
  29. package/dist/commands/suggest-metadata.d.ts.map +1 -1
  30. package/dist/commands/suggest-metadata.js +214 -219
  31. package/dist/commands/suggest-metadata.js.map +1 -1
  32. package/dist/decisions/metadata-suggestion.d.ts +60 -0
  33. package/dist/decisions/metadata-suggestion.d.ts.map +1 -0
  34. package/dist/decisions/metadata-suggestion.js +176 -0
  35. package/dist/decisions/metadata-suggestion.js.map +1 -0
  36. package/dist/discovery.d.ts +33 -1
  37. package/dist/discovery.d.ts.map +1 -1
  38. package/dist/discovery.js +365 -51
  39. package/dist/discovery.js.map +1 -1
  40. package/dist/evidence/classification.d.ts +4 -0
  41. package/dist/evidence/classification.d.ts.map +1 -0
  42. package/dist/evidence/classification.js +15 -0
  43. package/dist/evidence/classification.js.map +1 -0
  44. package/dist/evidence/inspect.d.ts +68 -0
  45. package/dist/evidence/inspect.d.ts.map +1 -0
  46. package/dist/evidence/inspect.js +2 -0
  47. package/dist/evidence/inspect.js.map +1 -0
  48. package/dist/evidence/target.d.ts +51 -0
  49. package/dist/evidence/target.d.ts.map +1 -0
  50. package/dist/evidence/target.js +161 -0
  51. package/dist/evidence/target.js.map +1 -0
  52. package/dist/model.d.ts +2 -10
  53. package/dist/model.d.ts.map +1 -1
  54. package/dist/model.js.map +1 -1
  55. package/dist/renderers/inspect.d.ts +3 -0
  56. package/dist/renderers/inspect.d.ts.map +1 -0
  57. package/dist/renderers/inspect.js +159 -0
  58. package/dist/renderers/inspect.js.map +1 -0
  59. package/dist/renderers/metadata-suggestion.d.ts +3 -0
  60. package/dist/renderers/metadata-suggestion.d.ts.map +1 -0
  61. package/dist/renderers/metadata-suggestion.js +320 -0
  62. package/dist/renderers/metadata-suggestion.js.map +1 -0
  63. package/dist/repository-evidence.d.ts +7 -1
  64. package/dist/repository-evidence.d.ts.map +1 -1
  65. package/dist/repository-evidence.js +10 -2
  66. package/dist/repository-evidence.js.map +1 -1
  67. package/dist/scanner.d.ts.map +1 -1
  68. package/dist/scanner.js +58 -4
  69. package/dist/scanner.js.map +1 -1
  70. package/dist/skill-migration.d.ts.map +1 -1
  71. package/dist/skill-migration.js +6 -1
  72. package/dist/skill-migration.js.map +1 -1
  73. package/dist/types.d.ts +72 -0
  74. package/dist/types.d.ts.map +1 -1
  75. package/dist/types.js +50 -1
  76. package/dist/types.js.map +1 -1
  77. package/docs/README.md +2 -0
  78. package/docs/agent-skills-compatibility.md +8 -1
  79. package/docs/authoring-guide.md +62 -0
  80. package/docs/diagnostics.md +382 -2
  81. package/docs/internal-architecture.md +296 -0
  82. package/docs/user-manual.md +122 -12
  83. package/package.json +1 -1
  84. package/scripts/verify-package.mjs +154 -9
@@ -1,9 +1,11 @@
1
- import { lstat, readFile, realpath, stat } from "node:fs/promises";
1
+ import { lstat, realpath, stat } from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { parseDocument } from "../markdown.js";
4
- import { parseAssetMetadata } from "../metadata.js";
5
- import { classifyAbsoluteSkillEntrypointPath, classifyRepositorySkillEntrypointPath, } from "../discovery.js";
6
- import { buildAgentSkillMigrationSuggestion, } from "../skill-migration.js";
3
+ import { renmaCommand } from "../command-invocation.js";
4
+ import { buildMetadataCandidateSuggestionDecision, buildSkillLocalParentUnresolvedDecision, buildSkillLocalSuggestionDecision, buildSkillSuggestionDecision, buildUnsupportedTargetSuggestionDecision, evaluateOwnerConflict, } from "../decisions/metadata-suggestion.js";
5
+ import { collectTargetDocumentEvidence, collectTargetRepositoryEvidence, } from "../evidence/target.js";
6
+ import { buildAgentSkillMigrationSuggestion } from "../skill-migration.js";
7
+ import { renderMetadataPrompt } from "../renderers/metadata-suggestion.js";
8
+ export { renderMetadataPrompt };
7
9
  export class SuggestMetadataTargetError extends Error {
8
10
  constructor(target, cause) {
9
11
  super(`Could not read metadata target ${target}: ${readErrorReason(cause)}`);
@@ -19,49 +21,43 @@ export async function runSuggestMetadataCommand(target, options = {}) {
19
21
  return 0;
20
22
  }
21
23
  export async function buildMetadataSuggestion(target, options = {}) {
22
- const absolutePath = path.resolve(target);
23
- let content;
24
+ let targetEvidence;
24
25
  try {
25
- content = await readFile(absolutePath, "utf8");
26
+ targetEvidence = await collectTargetDocumentEvidence(target, {
27
+ unresolvedArtifactPath: "input",
28
+ });
26
29
  }
27
30
  catch (error) {
28
31
  throw new SuggestMetadataTargetError(target, error);
29
32
  }
30
- const outputPath = toPosix(target);
31
- const entrypoint = classifySuggestionSkillEntrypointPath(outputPath);
32
- const initialKind = classifyPath(outputPath, entrypoint);
33
- const document = parseDocument({
34
- path: outputPath,
35
- absolutePath,
36
- kind: initialKind,
37
- sizeBytes: Buffer.byteLength(content),
38
- contentClassification: "text",
39
- markdownParserEligible: /\.mdx?$/i.test(outputPath),
40
- content,
41
- });
42
- const { metadata } = parseAssetMetadata(document);
43
- const kind = initialKind === "context" && metadata.type === "context_lens"
44
- ? "context_lens"
45
- : initialKind;
33
+ const { absolutePath, outputPath, repositoryBoundary: classificationContext, repositoryRelativePath: classificationPath, repositoryRoot, entrypoint, document, metadata, } = targetEvidence;
34
+ let { classification } = targetEvidence;
35
+ const kind = classification.kind;
46
36
  const explicitOwner = optionalText(options.owner);
47
37
  if (kind === "skill") {
48
- const collisionBlock = entrypoint
49
- ? await pathMigrationCollision(entrypoint, absolutePath)
38
+ const collisionBlock = entrypoint && repositoryRoot
39
+ ? await pathMigrationCollision(entrypoint, absolutePath, repositoryRoot)
50
40
  : undefined;
51
41
  const agentSkills = buildAgentSkillMigrationSuggestion(document, {
52
42
  ...(explicitOwner ? { explicitOwner } : {}),
53
43
  ...(entrypoint ? { entrypoint } : {}),
54
44
  ...(collisionBlock ? { additionalBlocks: [collisionBlock] } : {}),
55
45
  });
56
- const metadataRetrofit = agentSkills.proposalKind === "canonical-metadata-retrofit";
57
46
  const noMigrationProposed = agentSkills.proposalKind === "none" &&
58
47
  agentSkills.sourceFormat === "agent-skills";
48
+ const metadataRetrofit = agentSkills.proposalKind === "canonical-metadata-retrofit";
49
+ const decision = buildSkillSuggestionDecision(agentSkills);
59
50
  return {
60
51
  path: outputPath,
61
52
  kind,
62
- suggestedMode: metadataRetrofit
63
- ? "agent-skills-metadata-retrofit"
64
- : "agent-skills-migration",
53
+ suggestedMode: noMigrationProposed
54
+ ? "no-proposal"
55
+ : metadataRetrofit
56
+ ? "agent-skills-metadata-retrofit"
57
+ : "agent-skills-migration",
58
+ decisionStatus: decision.status,
59
+ decision: decision.decision,
60
+ classification,
65
61
  ownerProvided: Boolean(explicitOwner),
66
62
  instructions: noMigrationProposed
67
63
  ? [
@@ -93,6 +89,7 @@ export async function buildMetadataSuggestion(target, options = {}) {
93
89
  ],
94
90
  candidateMetadata: {},
95
91
  blockedMetadata: agentSkills.blocked,
92
+ nextActions: suggestionNextActions(outputPath, classification, repositoryRoot),
96
93
  agentSkills,
97
94
  };
98
95
  }
@@ -100,8 +97,89 @@ export async function buildMetadataSuggestion(target, options = {}) {
100
97
  const existingTitle = optionalText(metadataValueText(document.metadata.title));
101
98
  const existingOwner = optionalText(metadata.owner);
102
99
  const candidateMetadata = {};
103
- const candidateId = inferCandidateId(kind, outputPath);
100
+ const candidateId = inferCandidateId(kind, classificationPath);
104
101
  const candidateTitle = mainHeadingTitle(document.headings);
102
+ if (classification.scope === "skill-local") {
103
+ const localContext = resolveSkillLocalContext(await collectTargetRepositoryEvidence(targetEvidence));
104
+ classification = localContext.classification;
105
+ if (localContext.parent.state !== "resolved") {
106
+ const parentState = localContext.parent.state === "not-applicable"
107
+ ? "structural-candidate"
108
+ : localContext.parent.state;
109
+ const blockedMetadata = [
110
+ {
111
+ field: "parent_skill",
112
+ reason: `The structural parent Skill is ${parentState}; inheritance is not established. Review the repository layout before adding local metadata.`,
113
+ },
114
+ ];
115
+ const decision = buildSkillLocalParentUnresolvedDecision();
116
+ return {
117
+ path: outputPath,
118
+ kind,
119
+ suggestedMode: "no-proposal",
120
+ decisionStatus: decision.status,
121
+ decision: decision.decision,
122
+ classification,
123
+ ownerProvided: Boolean(explicitOwner),
124
+ instructions: skillLocalInstructions(classification, false, true, false),
125
+ candidateMetadata: {},
126
+ blockedMetadata,
127
+ nextActions: suggestionNextActions(outputPath, classification, repositoryRoot),
128
+ };
129
+ }
130
+ const ownerConflict = evaluateOwnerConflict(existingOwner, explicitOwner);
131
+ const blockedMetadata = ownerConflict.blockedMetadata;
132
+ if (!existingOwner && explicitOwner)
133
+ candidateMetadata.owner = explicitOwner;
134
+ const hasOverride = Object.keys(candidateMetadata).length > 0;
135
+ const hasLocalGovernance = Boolean(existingOwner) || localContext.hasLocalPolicyMetadata;
136
+ const inherited = localContext.ownershipSource === "inherited";
137
+ const decision = buildSkillLocalSuggestionDecision({
138
+ hasOwnerConflict: ownerConflict.hasConflict,
139
+ hasOverride,
140
+ hasLocalGovernance,
141
+ inheritsGovernance: inherited,
142
+ });
143
+ return {
144
+ path: outputPath,
145
+ kind,
146
+ suggestedMode: hasOverride ? "metadata-retrofit" : "no-proposal",
147
+ decisionStatus: decision.status,
148
+ decision: decision.decision,
149
+ classification,
150
+ ownerProvided: Boolean(explicitOwner),
151
+ instructions: skillLocalInstructions(classification, hasOverride, false, hasLocalGovernance),
152
+ candidateMetadata,
153
+ blockedMetadata,
154
+ nextActions: suggestionNextActions(outputPath, classification, repositoryRoot),
155
+ };
156
+ }
157
+ if (classification.matchedRule === "repository-tool" ||
158
+ classification.matchedRule === "unknown") {
159
+ const decision = buildUnsupportedTargetSuggestionDecision({
160
+ matchedRule: classification.matchedRule,
161
+ ...(classificationContext.state === "unresolved"
162
+ ? { boundaryReasonCode: classificationContext.reasonCode }
163
+ : {}),
164
+ });
165
+ return {
166
+ path: outputPath,
167
+ kind,
168
+ suggestedMode: "no-proposal",
169
+ decisionStatus: decision.status,
170
+ decision: decision.decision,
171
+ classification,
172
+ ownerProvided: Boolean(explicitOwner),
173
+ instructions: [
174
+ "Preserve the existing file.",
175
+ "Do not infer that the target should become a Context Asset from its content or filename.",
176
+ "Do not move the file or add Renma metadata without a human repository-design decision.",
177
+ ],
178
+ candidateMetadata: {},
179
+ blockedMetadata: [],
180
+ nextActions: suggestionNextActions(outputPath, classification, repositoryRoot),
181
+ };
182
+ }
105
183
  if (!existingId && candidateId) {
106
184
  candidateMetadata.id = candidateId;
107
185
  }
@@ -111,168 +189,35 @@ export async function buildMetadataSuggestion(target, options = {}) {
111
189
  if (!existingOwner && explicitOwner) {
112
190
  candidateMetadata.owner = explicitOwner;
113
191
  }
114
- const blockedMetadata = [];
192
+ const ownerConflict = evaluateOwnerConflict(existingOwner, explicitOwner);
193
+ const blockedMetadata = ownerConflict.blockedMetadata;
115
194
  if (!existingOwner && !explicitOwner) {
116
195
  blockedMetadata.push({
117
196
  field: "owner",
118
197
  reason: "No owner was explicitly provided. Missing owner is allowed.",
119
198
  });
120
199
  }
121
- if (existingOwner && explicitOwner && existingOwner !== explicitOwner) {
122
- blockedMetadata.push({
123
- field: "owner",
124
- reason: `Existing owner "${existingOwner}" differs from explicitly provided owner "${explicitOwner}". Do not change ownership without human review.`,
125
- });
126
- }
200
+ const hasCandidate = Object.keys(candidateMetadata).length > 0;
201
+ const hasConflict = ownerConflict.hasConflict;
202
+ const decision = buildMetadataCandidateSuggestionDecision({
203
+ hasOwnerConflict: hasConflict,
204
+ hasCandidate,
205
+ scope: classification.scope,
206
+ });
127
207
  return {
128
208
  path: outputPath,
129
209
  kind,
130
- suggestedMode: "metadata-retrofit",
210
+ suggestedMode: hasConflict || !hasCandidate ? "no-proposal" : "metadata-retrofit",
211
+ decisionStatus: decision.status,
212
+ decision: decision.decision,
213
+ classification,
131
214
  ownerProvided: Boolean(explicitOwner),
132
215
  instructions: buildInstructions({ existingOwner, explicitOwner }),
133
- candidateMetadata,
216
+ candidateMetadata: hasConflict ? {} : candidateMetadata,
134
217
  blockedMetadata,
218
+ nextActions: suggestionNextActions(outputPath, classification, repositoryRoot),
135
219
  };
136
220
  }
137
- export function renderMetadataPrompt(suggestion) {
138
- if (suggestion.agentSkills)
139
- return renderAgentSkillMigrationPrompt(suggestion);
140
- return `${[
141
- "# Renma Task: Safely Retrofit Renma Metadata",
142
- "",
143
- "Update this existing Renma asset metadata safely.",
144
- "",
145
- "Asset:",
146
- `- Path: \`${suggestion.path}\``,
147
- `- Kind: \`${suggestion.kind}\``,
148
- `- Mode: \`${suggestion.suggestedMode}\``,
149
- "",
150
- "Rules:",
151
- ...suggestion.instructions.map((instruction) => `- ${instruction}`),
152
- "",
153
- "Candidate Metadata:",
154
- ...metadataLines(suggestion.candidateMetadata),
155
- "",
156
- "Blocked Metadata:",
157
- ...blockedMetadataLines(suggestion.blockedMetadata),
158
- "",
159
- "Verification:",
160
- "- Run `renma scan .`.",
161
- "- Run `renma ownership .`.",
162
- "",
163
- "Return a small reviewed patch. Do not rewrite the asset body.",
164
- ].join("\n")}\n`;
165
- }
166
- function renderAgentSkillMigrationPrompt(suggestion) {
167
- const migration = suggestion.agentSkills;
168
- if (!migration)
169
- return "";
170
- const metadataRetrofit = migration.proposalKind === "canonical-metadata-retrofit";
171
- const noMigrationProposed = migration.proposalKind === "none" &&
172
- migration.sourceFormat === "agent-skills";
173
- const candidate = migration.canonicalFrontmatter
174
- ? [
175
- "Canonical Frontmatter Candidate:",
176
- "",
177
- "```yaml",
178
- migration.canonicalFrontmatter,
179
- "```",
180
- ]
181
- : [
182
- "Canonical Frontmatter Candidate:",
183
- "",
184
- "(not generated while migration is blocked or unnecessary)",
185
- ];
186
- const promptState = suggestion.blockedMetadata.length > 0
187
- ? "blocked"
188
- : noMigrationProposed || !migration.canonicalFrontmatter
189
- ? "no-proposal"
190
- : "candidate";
191
- const verification = renderSkillSuggestionVerification(promptState);
192
- const nextSteps = renderSkillSuggestionNextSteps(promptState);
193
- return `${[
194
- noMigrationProposed
195
- ? "# Renma Task: Inspect Canonical Agent Skill (No Migration Proposed)"
196
- : metadataRetrofit
197
- ? "# Renma Task: Review Canonical Agent Skills Metadata Retrofit"
198
- : "# Renma Task: Review One-Way Agent Skills Migration",
199
- "",
200
- `Asset: \`${suggestion.path}\``,
201
- `Source format: \`${migration.sourceFormat}\``,
202
- `Direction: \`${migration.direction}\``,
203
- `Proposal: \`${migration.proposalKind}\``,
204
- `Source path: \`${migration.sourcePath}\``,
205
- `Target path: \`${migration.targetPath}\``,
206
- `Entrypoint migration: \`${migration.entrypointMigration}\``,
207
- "",
208
- "Rules:",
209
- ...suggestion.instructions.map((instruction) => `- ${instruction}`),
210
- "",
211
- "Candidate Agent Skills Fields:",
212
- ...metadataLines(migration.candidateAgentSkillsFields),
213
- "",
214
- "Candidate Renma Metadata:",
215
- ...metadataLines(migration.candidateRenmaMetadata),
216
- "",
217
- ...candidate,
218
- "",
219
- "Blocked Migration Evidence:",
220
- ...blockedMetadataLines(suggestion.blockedMetadata),
221
- "",
222
- "Human Review:",
223
- migration.reviewPrompt,
224
- "",
225
- ...verification,
226
- "",
227
- ...nextSteps,
228
- "",
229
- migration.canonicalFrontmatter
230
- ? migration.entrypointMigration === "none"
231
- ? "Return a small reviewed frontmatter patch. Do not rewrite the Skill body."
232
- : "Return one small reviewed patch containing both the entrypoint path migration and frontmatter migration. Do not rewrite the Skill body."
233
- : migration.blocked.length > 0
234
- ? "Do not return or apply a frontmatter patch while migration is blocked. Preserve the existing source until every blocked item is resolved with human review."
235
- : "No frontmatter patch is proposed. Do not return or apply a frontmatter patch; preserve the existing source.",
236
- ].join("\n")}\n`;
237
- }
238
- function renderSkillSuggestionVerification(state) {
239
- if (state === "no-proposal") {
240
- return [
241
- "Verification:",
242
- "- No verification change is required when no separate authoring change is made.",
243
- "- Only if a separate, intentional authoring change is made: run `renma scan . --fail-on high`, fix relevant diagnostics, and rerun the scan.",
244
- ];
245
- }
246
- return ["Verification:", "- Run `renma scan . --fail-on high`."];
247
- }
248
- function renderSkillSuggestionNextSteps(state) {
249
- if (state === "blocked") {
250
- return [
251
- "Next steps:",
252
- "1. Review the conflicts or invalid evidence and confirm the Skill's intent using your platform's standard Skill authoring guidance.",
253
- "2. Do not apply a candidate while Renma cannot generate it safely.",
254
- "3. Correct the source evidence, then rerun `renma suggest-metadata <SKILL.md>`.",
255
- "4. After intended corrections, run `renma scan . --fail-on high`, fix relevant diagnostics, and rerun the scan.",
256
- ];
257
- }
258
- if (state === "no-proposal") {
259
- return [
260
- "Next steps:",
261
- "1. Review the Skill's trigger description, instructions, workflow, constraints, and completion criteria using your platform's standard Skill authoring guidance.",
262
- "2. No metadata or migration change is proposed; preserve the existing source.",
263
- "3. If a separate, intentionally reviewed authoring change is made, run `renma scan . --fail-on high`, fix relevant diagnostics, and rerun the scan.",
264
- "4. If no separate change is made, stop without manufacturing work.",
265
- ];
266
- }
267
- return [
268
- "Next steps:",
269
- "1. Review the suggestion; Renma does not edit the Skill automatically.",
270
- "2. Review the Skill's trigger description, instructions, workflow, constraints, and completion criteria using your platform's standard Skill authoring guidance.",
271
- "3. Apply only the intended metadata or migration changes.",
272
- "4. Run `renma scan . --fail-on high`.",
273
- "5. Fix relevant diagnostics and rerun the scan.",
274
- ];
275
- }
276
221
  function buildInstructions(input) {
277
222
  return [
278
223
  "Inspect the existing asset before editing.",
@@ -300,50 +245,103 @@ function ownerInstruction(input) {
300
245
  }
301
246
  return "Do not add owner unless the existing asset already declares one or a maintainer provides one.";
302
247
  }
303
- function metadataLines(candidateMetadata) {
304
- const entries = Object.entries(candidateMetadata);
305
- if (entries.length === 0) {
306
- return ["- (none)"];
307
- }
308
- return entries.map(([field, value]) => `- ${field}: \`${value}\``);
248
+ function skillLocalInstructions(classification, hasOverride, parentBlocked, hasLocalGovernance) {
249
+ return [
250
+ "Preserve the existing Skill-local file and any explicitly declared supported metadata.",
251
+ parentBlocked
252
+ ? "Do not claim inherited governance until exactly one parent Skill resolves."
253
+ : hasLocalGovernance
254
+ ? "Keep existing explicit local governance separate from parent inheritance."
255
+ : `Treat ${classification.parentAssetPath ?? "the resolved parent Skill"} as the default governance source.`,
256
+ "Independent metadata is not required merely because this is a Skill-local file.",
257
+ hasOverride
258
+ ? "Apply only the explicit human-provided override; do not describe it as mandatory local metadata."
259
+ : "Do not add metadata, move the file, or create a patch solely to manufacture work.",
260
+ "Never infer owner from the path, prose, Git history, or author.",
261
+ ];
309
262
  }
310
- function blockedMetadataLines(blockedMetadata) {
311
- if (blockedMetadata.length === 0) {
312
- return ["- (none)"];
263
+ function suggestionNextActions(targetPath, classification, repositoryRoot) {
264
+ // Do not manufacture an action relative to cwd when the repository root is
265
+ // unresolved; a parent workspace may contain unrelated repositories.
266
+ if (!repositoryRoot)
267
+ return [];
268
+ const actions = [];
269
+ // Verification is anchored to the resolved root, never to `scan .` from the
270
+ // caller's workspace or to a guessed parent directory.
271
+ const scanTarget = repositoryRoot;
272
+ if (classification.parentResolution === "resolved" &&
273
+ classification.parentAssetPath) {
274
+ actions.push({
275
+ kind: "inspect-parent",
276
+ invocation: renmaCommand([
277
+ "inspect",
278
+ path.join(repositoryRoot, classification.parentAssetPath),
279
+ "--format",
280
+ "json",
281
+ ]),
282
+ });
313
283
  }
314
- return blockedMetadata.map((item) => `- ${item.field}: ${item.reason}`);
315
- }
316
- function classifyPath(filePath, entrypoint) {
317
- if (entrypoint)
318
- return "skill";
319
- const parts = pathParts(filePath);
320
- const basename = parts.at(-1) ?? "";
321
- if (parts.includes("lenses"))
322
- return "context_lens";
323
- if (parts.includes("contexts") || parts.includes("context"))
324
- return "context";
325
- if (parts.includes("profiles"))
326
- return "profile";
327
- if (parts.includes("references"))
328
- return "reference";
329
- if (parts.includes("examples"))
330
- return "example";
331
- if (basename === "AGENTS.md" || parts.includes(".agents"))
332
- return "agent";
333
- if (basename === "renma.config.json" || basename === ".renma.json") {
334
- return "config";
284
+ else if (classification.scope === "skill-local" &&
285
+ classification.parentResolution !== "resolved") {
286
+ actions.push({
287
+ kind: "review-layout",
288
+ invocation: renmaCommand([
289
+ "scan",
290
+ scanTarget,
291
+ "--fail-on",
292
+ "high",
293
+ "--format",
294
+ "json",
295
+ ]),
296
+ });
297
+ return actions;
335
298
  }
336
- return "unknown";
299
+ else {
300
+ actions.push({
301
+ kind: "inspect-target",
302
+ invocation: renmaCommand(["inspect", targetPath, "--format", "json"]),
303
+ });
304
+ }
305
+ actions.push({
306
+ kind: "verify",
307
+ invocation: renmaCommand([
308
+ "scan",
309
+ scanTarget,
310
+ "--fail-on",
311
+ "high",
312
+ "--format",
313
+ "json",
314
+ ]),
315
+ });
316
+ return actions;
337
317
  }
338
- function classifySuggestionSkillEntrypointPath(filePath) {
339
- return isAbsoluteLike(filePath)
340
- ? classifyAbsoluteSkillEntrypointPath(filePath)
341
- : classifyRepositorySkillEntrypointPath(filePath);
318
+ function resolveSkillLocalContext(repository) {
319
+ if (repository.state === "unavailable") {
320
+ // Snapshot failure is unresolved evidence. Keep the command fail-closed
321
+ // instead of treating structural placement as inherited governance.
322
+ return {
323
+ classification: repository.classification,
324
+ parent: { state: "not-applicable" },
325
+ ownershipSource: "unowned",
326
+ hasLocalPolicyMetadata: false,
327
+ };
328
+ }
329
+ return {
330
+ classification: repository.classification,
331
+ parent: repository.parent,
332
+ ownershipSource: repository.governance?.ownership.source ??
333
+ (repository.parent.state === "resolved" && repository.parent.parent.owner
334
+ ? "inherited"
335
+ : "unowned"),
336
+ hasLocalPolicyMetadata: repository.policy?.hasLocalPolicyMetadata ?? false,
337
+ };
342
338
  }
343
- async function pathMigrationCollision(entrypoint, sourceAbsolutePath) {
339
+ async function pathMigrationCollision(entrypoint, sourceAbsolutePath, repositoryRoot) {
344
340
  if (entrypoint.kind === "canonical")
345
341
  return undefined;
346
- const targetAbsolutePath = path.resolve(entrypoint.targetPath);
342
+ // Public migration paths remain repository-relative. Collision I/O must be
343
+ // rebased against the resolved repository root, not process.cwd().
344
+ const targetAbsolutePath = path.resolve(repositoryRoot, entrypoint.targetPath);
347
345
  try {
348
346
  await lstat(targetAbsolutePath);
349
347
  }
@@ -378,9 +376,6 @@ async function pathMigrationCollision(entrypoint, sourceAbsolutePath) {
378
376
  };
379
377
  }
380
378
  }
381
- function isAbsoluteLike(filePath) {
382
- return path.isAbsolute(filePath) || /^[A-Za-z]:\//.test(filePath);
383
- }
384
379
  function isMissingFileError(error) {
385
380
  return (typeof error === "object" &&
386
381
  error !== null &&
@@ -1 +1 @@
1
- {"version":3,"file":"suggest-metadata.js","sourceRoot":"","sources":["../../src/commands/suggest-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,mCAAmC,EACnC,qCAAqC,GAEtC,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,kCAAkC,GAEnC,MAAM,uBAAuB,CAAC;AA+B/B,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD,YAAY,MAAc,EAAE,KAAc;QACxC,KAAK,CACH,kCAAkC,MAAM,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CACtE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,MAAc,EACd,UAAkC,EAAE;IAEpC,MAAM,UAAU,GAAG,MAAM,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,KAAK,MAAM;QACf,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;QAC5C,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CACrC,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAc,EACd,UAAkC,EAAE;IAEpC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,qCAAqC,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,aAAa,CAAC;QAC7B,IAAI,EAAE,UAAU;QAChB,YAAY;QACZ,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC;QACrC,qBAAqB,EAAE,MAAM;QAC7B,sBAAsB,EAAE,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;QACnD,OAAO;KACW,CAAC,CAAC;IACtB,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,IAAI,GACR,WAAW,KAAK,SAAS,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc;QAC3D,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,WAAW,CAAC;IAClB,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,cAAc,GAAG,UAAU;YAC/B,CAAC,CAAC,MAAM,sBAAsB,CAAC,UAAU,EAAE,YAAY,CAAC;YACxD,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,WAAW,GAAG,kCAAkC,CAAC,QAAQ,EAAE;YAC/D,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,MAAM,gBAAgB,GACpB,WAAW,CAAC,YAAY,KAAK,6BAA6B,CAAC;QAC7D,MAAM,mBAAmB,GACvB,WAAW,CAAC,YAAY,KAAK,MAAM;YACnC,WAAW,CAAC,YAAY,KAAK,cAAc,CAAC;QAC9C,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI;YACJ,aAAa,EAAE,gBAAgB;gBAC7B,CAAC,CAAC,gCAAgC;gBAClC,CAAC,CAAC,wBAAwB;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;YACrC,YAAY,EAAE,mBAAmB;gBAC/B,CAAC,CAAC;oBACE,yDAAyD;oBACzD,4FAA4F;oBAC5F,yEAAyE;oBACzE,0IAA0I;iBAC3I;gBACH,CAAC,CAAC,gBAAgB;oBAChB,CAAC,CAAC;wBACE,mDAAmD;wBACnD,uEAAuE;wBACvE,qFAAqF;wBACrF,gEAAgE;wBAChE,0DAA0D;wBAC1D,mCAAmC;wBACnC,sDAAsD;qBACvD;oBACH,CAAC,CAAC;wBACE,4CAA4C;wBAC5C,uEAAuE;wBACvE,uGAAuG;wBACvG,gEAAgE;wBAChE,oEAAoE;wBACpE,4FAA4F;wBAC5F,0DAA0D;wBAC1D,iFAAiF;wBACjF,sDAAsD;qBACvD;YACP,iBAAiB,EAAE,EAAE;YACrB,eAAe,EAAE,WAAW,CAAC,OAAO;YACpC,WAAW;SACZ,CAAC;IACJ,CAAC;IACD,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,aAAa,GAAG,YAAY,CAChC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC3C,CAAC;IACF,MAAM,aAAa,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAA2B,EAAE,CAAC;IACrD,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;QAC/B,iBAAiB,CAAC,EAAE,GAAG,WAAW,CAAC;IACrC,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,cAAc,EAAE,CAAC;QACrC,iBAAiB,CAAC,KAAK,GAAG,cAAc,CAAC;IAC3C,CAAC;IACD,IAAI,CAAC,aAAa,IAAI,aAAa,EAAE,CAAC;QACpC,iBAAiB,CAAC,KAAK,GAAG,aAAa,CAAC;IAC1C,CAAC;IAED,MAAM,eAAe,GAAsB,EAAE,CAAC;IAC9C,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,eAAe,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,6DAA6D;SACtE,CAAC,CAAC;IACL,CAAC;IACD,IAAI,aAAa,IAAI,aAAa,IAAI,aAAa,KAAK,aAAa,EAAE,CAAC;QACtE,eAAe,CAAC,IAAI,CAAC;YACnB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,mBAAmB,aAAa,6CAA6C,aAAa,kDAAkD;SACrJ,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,IAAI;QACJ,aAAa,EAAE,mBAAmB;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;QACrC,YAAY,EAAE,iBAAiB,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;QACjE,iBAAiB;QACjB,eAAe;KAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAA8B;IACjE,IAAI,UAAU,CAAC,WAAW;QACxB,OAAO,+BAA+B,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,GAAG;QACR,8CAA8C;QAC9C,EAAE;QACF,mDAAmD;QACnD,EAAE;QACF,QAAQ;QACR,aAAa,UAAU,CAAC,IAAI,IAAI;QAChC,aAAa,UAAU,CAAC,IAAI,IAAI;QAChC,aAAa,UAAU,CAAC,aAAa,IAAI;QACzC,EAAE;QACF,QAAQ;QACR,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;QACnE,EAAE;QACF,qBAAqB;QACrB,GAAG,aAAa,CAAC,UAAU,CAAC,iBAAiB,CAAC;QAC9C,EAAE;QACF,mBAAmB;QACnB,GAAG,oBAAoB,CAAC,UAAU,CAAC,eAAe,CAAC;QACnD,EAAE;QACF,eAAe;QACf,uBAAuB;QACvB,4BAA4B;QAC5B,EAAE;QACF,+DAA+D;KAChE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,+BAA+B,CACtC,UAA8B;IAE9B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC;IACzC,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAC1B,MAAM,gBAAgB,GACpB,SAAS,CAAC,YAAY,KAAK,6BAA6B,CAAC;IAC3D,MAAM,mBAAmB,GACvB,SAAS,CAAC,YAAY,KAAK,MAAM;QACjC,SAAS,CAAC,YAAY,KAAK,cAAc,CAAC;IAC5C,MAAM,SAAS,GAAG,SAAS,CAAC,oBAAoB;QAC9C,CAAC,CAAC;YACE,kCAAkC;YAClC,EAAE;YACF,SAAS;YACT,SAAS,CAAC,oBAAoB;YAC9B,KAAK;SACN;QACH,CAAC,CAAC;YACE,kCAAkC;YAClC,EAAE;YACF,2DAA2D;SAC5D,CAAC;IACN,MAAM,WAAW,GACf,UAAU,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QACnC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,oBAAoB;YACtD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,WAAW,CAAC;IACpB,MAAM,YAAY,GAAG,iCAAiC,CAAC,WAAW,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,8BAA8B,CAAC,WAAW,CAAC,CAAC;IAC9D,OAAO,GAAG;QACR,mBAAmB;YACjB,CAAC,CAAC,qEAAqE;YACvE,CAAC,CAAC,gBAAgB;gBAChB,CAAC,CAAC,+DAA+D;gBACjE,CAAC,CAAC,qDAAqD;QAC3D,EAAE;QACF,YAAY,UAAU,CAAC,IAAI,IAAI;QAC/B,oBAAoB,SAAS,CAAC,YAAY,IAAI;QAC9C,gBAAgB,SAAS,CAAC,SAAS,IAAI;QACvC,eAAe,SAAS,CAAC,YAAY,IAAI;QACzC,kBAAkB,SAAS,CAAC,UAAU,IAAI;QAC1C,kBAAkB,SAAS,CAAC,UAAU,IAAI;QAC1C,2BAA2B,SAAS,CAAC,mBAAmB,IAAI;QAC5D,EAAE;QACF,QAAQ;QACR,GAAG,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;QACnE,EAAE;QACF,gCAAgC;QAChC,GAAG,aAAa,CAAC,SAAS,CAAC,0BAA0B,CAAC;QACtD,EAAE;QACF,2BAA2B;QAC3B,GAAG,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC;QAClD,EAAE;QACF,GAAG,SAAS;QACZ,EAAE;QACF,6BAA6B;QAC7B,GAAG,oBAAoB,CAAC,UAAU,CAAC,eAAe,CAAC;QACnD,EAAE;QACF,eAAe;QACf,SAAS,CAAC,YAAY;QACtB,EAAE;QACF,GAAG,YAAY;QACf,EAAE;QACF,GAAG,SAAS;QACZ,EAAE;QACF,SAAS,CAAC,oBAAoB;YAC5B,CAAC,CAAC,SAAS,CAAC,mBAAmB,KAAK,MAAM;gBACxC,CAAC,CAAC,2EAA2E;gBAC7E,CAAC,CAAC,yIAAyI;YAC7I,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;gBAC5B,CAAC,CAAC,6JAA6J;gBAC/J,CAAC,CAAC,6GAA6G;KACpH,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACnB,CAAC;AAED,SAAS,iCAAiC,CACxC,KAAiC;IAEjC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO;YACL,eAAe;YACf,iFAAiF;YACjF,8IAA8I;SAC/I,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,eAAe,EAAE,sCAAsC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,8BAA8B,CACrC,KAAiC;IAEjC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO;YACL,aAAa;YACb,qIAAqI;YACrI,oEAAoE;YACpE,iFAAiF;YACjF,iHAAiH;SAClH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO;YACL,aAAa;YACb,kKAAkK;YAClK,+EAA+E;YAC/E,qJAAqJ;YACrJ,oEAAoE;SACrE,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa;QACb,wEAAwE;QACxE,kKAAkK;QAClK,2DAA2D;QAC3D,uCAAuC;QACvC,iDAAiD;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAG1B;IACC,OAAO;QACL,4CAA4C;QAC5C,8CAA8C;QAC9C,kFAAkF;QAClF,uIAAuI;QACvI,+BAA+B;QAC/B,mEAAmE;QACnE,2BAA2B;QAC3B,6BAA6B;QAC7B,wBAAwB;QACxB,gBAAgB,CAAC,KAAK,CAAC;QACvB,uDAAuD;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,KAGzB;IACC,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,IAAI,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa,EAAE,CAAC;YACvE,OAAO,qBAAqB,KAAK,CAAC,aAAa,mCAAmC,KAAK,CAAC,aAAa,4DAA4D,CAAC;QACpK,CAAC;QACD,OAAO,4BAA4B,KAAK,CAAC,aAAa,GAAG,CAAC;IAC5D,CAAC;IACD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,OAAO,cAAc,KAAK,CAAC,aAAa,2CAA2C,CAAC;IACtF,CAAC;IACD,OAAO,+FAA+F,CAAC;AACzG,CAAC;AAED,SAAS,aAAa,CAAC,iBAAyC;IAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,KAAK,IAAI,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,oBAAoB,CAAC,eAAkC;IAC9D,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,YAAY,CACnB,QAAgB,EAChB,UAA2C;IAE3C,IAAI,UAAU;QAAE,OAAO,OAAO,CAAC;IAC/B,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEpC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,cAAc,CAAC;IACpD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9E,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO,WAAW,CAAC;IACrD,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,QAAQ,KAAK,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,OAAO,CAAC;IAC1E,IAAI,QAAQ,KAAK,mBAAmB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QACnE,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,qCAAqC,CAC5C,QAAgB;IAEhB,OAAO,cAAc,CAAC,QAAQ,CAAC;QAC7B,CAAC,CAAC,mCAAmC,CAAC,QAAQ,CAAC;QAC/C,CAAC,CAAC,qCAAqC,CAAC,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,UAA+B,EAC/B,kBAA0B;IAE1B,IAAI,UAAU,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC/D,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,kBAAkB,CAAC,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QAChD,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,6CAA6C,UAAU,CAAC,UAAU,KAAK,eAAe,CAAC,KAAK,CAAC,6CAA6C;SACnJ,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC,GAC5D,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,IAAI,CAAC,kBAAkB,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC;YACxB,QAAQ,CAAC,kBAAkB,CAAC;YAC5B,QAAQ,CAAC,kBAAkB,CAAC;SAC7B,CAAC,CAAC;QACL,IACE,cAAc,KAAK,cAAc;YACjC,CAAC,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,EACxE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,oDAAoD,UAAU,CAAC,UAAU,8CAA8C;SAChI,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,4CAA4C,UAAU,CAAC,UAAU,KAAK,eAAe,CAAC,KAAK,CAAC,6CAA6C;SAClJ,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACd,KAA4B,CAAC,IAAI,KAAK,QAAQ,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAkB,EAClB,QAAgB;IAEhB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAC1D,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CACzC,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,OAAO,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CACpB,MAAc,EACd,QAAgB,EAChB,WAAmB,EACnB,YAA2C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IAE3D,MAAM,KAAK,GAAG,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,IAAI,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAChD,IAAI,SAAS,GAAG,CAAC,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;QAChD,SAAS,GAAG,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAEpC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;SAClD,GAAG,CAAC,OAAO,CAAC;SACZ,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgD;IACxE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACtE,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAgC;IAEhC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,MAAgB,EAAE,MAAc;IACnD,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;IAC7C,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,qBAAqB,CAAC;IACpD,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,uBAAuB,CAAC;IACtD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,mBAAmB,CAAC;IACtE,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,IAAI,GAAI,KAA4B,CAAC,IAAI,CAAC;IAChD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"suggest-metadata.js","sourceRoot":"","sources":["../../src/commands/suggest-metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import type { AgentSkillMigrationSuggestion } from "../skill-migration.js";
2
+ import type { ArtifactKind, AssetClassificationEvidence, AssetDecisionEvidence, DecisionStatus, SuggestedNextAction } from "../types.js";
3
+ export interface BlockedMetadata {
4
+ field: string;
5
+ reason: string;
6
+ }
7
+ /** Public suggestion DTO consumed by both JSON and human renderers. */
8
+ export interface MetadataSuggestion {
9
+ path: string;
10
+ kind: ArtifactKind;
11
+ suggestedMode: "metadata-retrofit" | "agent-skills-migration" | "agent-skills-metadata-retrofit" | "no-proposal";
12
+ decisionStatus: DecisionStatus;
13
+ decision: AssetDecisionEvidence;
14
+ classification: AssetClassificationEvidence;
15
+ ownerProvided: boolean;
16
+ instructions: string[];
17
+ candidateMetadata: Record<string, string>;
18
+ blockedMetadata: BlockedMetadata[];
19
+ nextActions: SuggestedNextAction[];
20
+ agentSkills?: AgentSkillMigrationSuggestion;
21
+ }
22
+ export interface SuggestionDecision {
23
+ status: DecisionStatus;
24
+ decision: AssetDecisionEvidence;
25
+ }
26
+ export interface OwnerConflictEvidence {
27
+ hasConflict: boolean;
28
+ blockedMetadata: BlockedMetadata[];
29
+ }
30
+ export interface SkillLocalSuggestionDecisionInput {
31
+ hasOwnerConflict: boolean;
32
+ hasOverride: boolean;
33
+ hasLocalGovernance: boolean;
34
+ inheritsGovernance: boolean;
35
+ }
36
+ export interface UnsupportedTargetSuggestionDecisionInput {
37
+ matchedRule: "repository-tool" | "unknown";
38
+ boundaryReasonCode?: "repository-boundary-unresolved" | "repository-boundary-ambiguous";
39
+ }
40
+ export interface MetadataCandidateSuggestionDecisionInput {
41
+ hasOwnerConflict: boolean;
42
+ hasCandidate: boolean;
43
+ scope: AssetClassificationEvidence["scope"];
44
+ }
45
+ /**
46
+ * Decide Skill migration applicability before rendering any candidate text.
47
+ *
48
+ * Blocked migrations intentionally retain partial diagnostic candidate fields
49
+ * for 0.18.2 JSON compatibility. `canonicalFrontmatter` and renderer patch
50
+ * instructions remain gated by the decision status, so those fields are not
51
+ * an independently applicable patch.
52
+ */
53
+ export declare function buildSkillSuggestionDecision(migration: AgentSkillMigrationSuggestion): SuggestionDecision;
54
+ export declare function buildSkillLocalParentUnresolvedDecision(): SuggestionDecision;
55
+ export declare function buildSkillLocalSuggestionDecision(input: SkillLocalSuggestionDecisionInput): SuggestionDecision;
56
+ export declare function buildUnsupportedTargetSuggestionDecision(input: UnsupportedTargetSuggestionDecisionInput): SuggestionDecision;
57
+ export declare function buildMetadataCandidateSuggestionDecision(input: MetadataCandidateSuggestionDecisionInput): SuggestionDecision;
58
+ /** Build typed conflict evidence; command branching must not parse prose. */
59
+ export declare function evaluateOwnerConflict(existingOwner: string | undefined, explicitOwner: string | undefined): OwnerConflictEvidence;
60
+ //# sourceMappingURL=metadata-suggestion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-suggestion.d.ts","sourceRoot":"","sources":["../../src/decisions/metadata-suggestion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,KAAK,EACV,YAAY,EACZ,2BAA2B,EAC3B,qBAAqB,EACrB,cAAc,EACd,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EACT,mBAAmB,GACnB,wBAAwB,GACxB,gCAAgC,GAChC,aAAa,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,qBAAqB,CAAC;IAChC,cAAc,EAAE,2BAA2B,CAAC;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,eAAe,EAAE,eAAe,EAAE,CAAC;IACnC,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,WAAW,CAAC,EAAE,6BAA6B,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,qBAAqB,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,eAAe,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,iCAAiC;IAChD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,wCAAwC;IACvD,WAAW,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC3C,kBAAkB,CAAC,EACf,gCAAgC,GAChC,+BAA+B,CAAC;CACrC;AAED,MAAM,WAAW,wCAAwC;IACvD,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,2BAA2B,CAAC,OAAO,CAAC,CAAC;CAC7C;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,6BAA6B,GACvC,kBAAkB,CA8CpB;AAED,wBAAgB,uCAAuC,IAAI,kBAAkB,CAW5E;AAED,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,iCAAiC,GACvC,kBAAkB,CAiDpB;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,wCAAwC,GAC9C,kBAAkB,CAwBpB;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,wCAAwC,GAC9C,kBAAkB,CAuCpB;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,GAAG,SAAS,EACjC,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,qBAAqB,CAevB"}