renma 0.15.2 → 0.17.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/CHANGELOG.md +54 -1
- package/README.md +216 -655
- package/architecture.md +523 -0
- package/design.md +458 -0
- package/dist/agent-skills.d.ts +77 -0
- package/dist/agent-skills.d.ts.map +1 -0
- package/dist/agent-skills.js +468 -0
- package/dist/agent-skills.js.map +1 -0
- package/dist/catalog.d.ts.map +1 -1
- package/dist/catalog.js +38 -5
- package/dist/catalog.js.map +1 -1
- package/dist/cli-help.d.ts +13 -11
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +36 -11
- package/dist/cli-help.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +139 -40
- package/dist/cli.js.map +1 -1
- package/dist/commands/catalog.d.ts.map +1 -1
- package/dist/commands/catalog.js +4 -3
- package/dist/commands/catalog.js.map +1 -1
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +7 -12
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/readiness.d.ts.map +1 -1
- package/dist/commands/readiness.js +7 -6
- package/dist/commands/readiness.js.map +1 -1
- package/dist/commands/scaffold.d.ts.map +1 -1
- package/dist/commands/scaffold.js +59 -16
- package/dist/commands/scaffold.js.map +1 -1
- package/dist/commands/suggest-metadata.d.ts +3 -1
- package/dist/commands/suggest-metadata.d.ts.map +1 -1
- package/dist/commands/suggest-metadata.js +226 -7
- package/dist/commands/suggest-metadata.js.map +1 -1
- package/dist/commands/suggest-semantic-split.js +3 -3
- package/dist/commands/suggest-semantic-split.js.map +1 -1
- package/dist/dependency-resolution.d.ts +6 -0
- package/dist/dependency-resolution.d.ts.map +1 -0
- package/dist/dependency-resolution.js +11 -0
- package/dist/dependency-resolution.js.map +1 -0
- package/dist/diagnostic-ids.d.ts +29 -0
- package/dist/diagnostic-ids.d.ts.map +1 -1
- package/dist/diagnostic-ids.js +28 -0
- package/dist/diagnostic-ids.js.map +1 -1
- package/dist/discovery.d.ts +50 -0
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +183 -25
- package/dist/discovery.js.map +1 -1
- package/dist/metadata.d.ts +3 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +166 -29
- package/dist/metadata.js.map +1 -1
- package/dist/model.d.ts +1 -0
- package/dist/model.d.ts.map +1 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +16 -1
- package/dist/report.js.map +1 -1
- package/dist/repository-paths.d.ts +13 -0
- package/dist/repository-paths.d.ts.map +1 -1
- package/dist/repository-paths.js +60 -2
- package/dist/repository-paths.js.map +1 -1
- package/dist/rules.d.ts.map +1 -1
- package/dist/rules.js +97 -107
- package/dist/rules.js.map +1 -1
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +3 -1
- package/dist/scanner.js.map +1 -1
- package/dist/security-diagnostics.d.ts.map +1 -1
- package/dist/security-diagnostics.js +98 -35
- package/dist/security-diagnostics.js.map +1 -1
- package/dist/security-policy-inventory.js +11 -4
- package/dist/security-policy-inventory.js.map +1 -1
- package/dist/security-policy.d.ts +27 -1
- package/dist/security-policy.d.ts.map +1 -1
- package/dist/security-policy.js +247 -34
- package/dist/security-policy.js.map +1 -1
- package/dist/skill-migration.d.ts +30 -0
- package/dist/skill-migration.d.ts.map +1 -0
- package/dist/skill-migration.js +566 -0
- package/dist/skill-migration.js.map +1 -0
- package/dist/trust-graph.d.ts.map +1 -1
- package/dist/trust-graph.js +7 -11
- package/dist/trust-graph.js.map +1 -1
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/yaml-frontmatter.d.ts +26 -0
- package/dist/yaml-frontmatter.d.ts.map +1 -0
- package/dist/yaml-frontmatter.js +114 -0
- package/dist/yaml-frontmatter.js.map +1 -0
- package/docs/README.md +55 -0
- package/docs/advanced-skill-authoring.md +140 -0
- package/docs/agent-skills-compatibility.md +500 -0
- package/docs/authoring-guide.md +324 -0
- package/docs/context-conflict-diagnostics.md +32 -0
- package/docs/context-language-diagnostics.md +99 -0
- package/docs/context-lens.md +253 -0
- package/docs/context-lifecycle-diagnostics.md +55 -0
- package/docs/diagnostics.md +373 -0
- package/docs/metadata-budget.md +14 -0
- package/docs/repository-context-bom.md +113 -0
- package/docs/security-policy.md +338 -0
- package/docs/user-manual.md +813 -0
- package/examples/context-lens/README.md +101 -0
- package/examples/context-lens/contexts/testing/boundary-value-analysis.md +23 -0
- package/examples/context-lens/lenses/testing/spec-review-boundary-values.md +29 -0
- package/examples/context-lens/lenses/testing/test-design-boundary-values.md +29 -0
- package/examples/context-lens/skills/testing/spec-review/SKILL.md +49 -0
- package/examples/context-repo/README.md +149 -0
- package/examples/context-repo/contexts/domain/payment/idempotency.md +20 -0
- package/examples/context-repo/contexts/testing/boundary-value-analysis.md +19 -0
- package/examples/context-repo/contexts/testing/negative-testing.md +19 -0
- package/examples/context-repo/lenses/testing/spec-review-boundary-values.md +35 -0
- package/examples/context-repo/renma.config.json +12 -0
- package/examples/context-repo/skills/testing/spec-review/SKILL.md +66 -0
- package/examples/context-repo/tools/appium/README.md +14 -0
- package/examples/github-actions/renma-ci-report.yml +36 -0
- package/examples/interactive-placeholder/README.md +104 -0
- package/examples/interactive-placeholder/assets/template.txt +1 -0
- package/examples/interactive-placeholder/renma.config.json +6 -0
- package/examples/interactive-placeholder/skills/replace-placeholder/SKILL.md +54 -0
- package/examples/interactive-placeholder/tools/README.md +48 -0
- package/examples/interactive-placeholder/tools/placeholder-demo.mjs +99 -0
- package/package.json +11 -1
- package/plan-discovery.md +740 -0
- package/plan.md +150 -0
- package/scripts/verify-package.mjs +97 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
|
+
import { normalizeAgentSkillDirectoryName } from "../agent-skills.js";
|
|
3
4
|
export async function runScaffoldCommand(options) {
|
|
4
5
|
const bundle = buildScaffoldBundle(options);
|
|
5
6
|
if (options.format === "json") {
|
|
@@ -12,7 +13,7 @@ export async function runScaffoldCommand(options) {
|
|
|
12
13
|
}
|
|
13
14
|
await mkdir(path.dirname(options.targetPath), { recursive: true });
|
|
14
15
|
await writeFile(options.targetPath, bundle.content, { flag: "wx" });
|
|
15
|
-
process.stdout.write(`Created ${options.targetPath}\n`);
|
|
16
|
+
process.stdout.write(`Created ${options.targetPath}\n${options.kind === "skill" ? `\n${renderSkillNextSteps()}\n` : ""}`);
|
|
16
17
|
return 0;
|
|
17
18
|
}
|
|
18
19
|
export function buildScaffoldBundle(options) {
|
|
@@ -21,7 +22,13 @@ export function buildScaffoldBundle(options) {
|
|
|
21
22
|
const owner = options.owner ?? "unowned";
|
|
22
23
|
const tags = options.tags && options.tags.length > 0 ? options.tags : ["authoring"];
|
|
23
24
|
const content = options.kind === "skill"
|
|
24
|
-
? renderSkillScaffold({
|
|
25
|
+
? renderSkillScaffold({
|
|
26
|
+
name: canonicalSkillName(options.targetPath),
|
|
27
|
+
id,
|
|
28
|
+
title,
|
|
29
|
+
owner,
|
|
30
|
+
tags,
|
|
31
|
+
})
|
|
25
32
|
: options.kind === "context_lens"
|
|
26
33
|
? renderContextLensScaffold({ id, title, owner, tags })
|
|
27
34
|
: renderContextScaffold({ id, title, owner, tags });
|
|
@@ -47,15 +54,18 @@ export function buildScaffoldBundle(options) {
|
|
|
47
54
|
}
|
|
48
55
|
function renderSkillScaffold(metadata) {
|
|
49
56
|
return `---
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
name: ${metadata.name}
|
|
58
|
+
description: Replace this description with clear routing guidance. Use when the intended workflow applies.
|
|
59
|
+
metadata:
|
|
60
|
+
renma.id: ${yamlString(metadata.id)}
|
|
61
|
+
renma.title: ${yamlString(metadata.title)}
|
|
62
|
+
renma.version: "0.1.0"
|
|
63
|
+
renma.owner: ${yamlString(metadata.owner)}
|
|
64
|
+
renma.status: experimental
|
|
65
|
+
renma.tags: ${yamlString(JSON.stringify(metadata.tags))}
|
|
66
|
+
renma.requires-context: '[]'
|
|
67
|
+
renma.optional-context: '[]'
|
|
68
|
+
renma.conflicts: '[]'
|
|
59
69
|
---
|
|
60
70
|
|
|
61
71
|
# ${metadata.title}
|
|
@@ -76,7 +86,7 @@ Describe the recurring task, decision, or workflow this skill should guide.
|
|
|
76
86
|
|
|
77
87
|
## Context References
|
|
78
88
|
|
|
79
|
-
Use \`
|
|
89
|
+
Use \`metadata.renma.requires-context\` and \`metadata.renma.optional-context\` JSON-array strings to reference durable context assets.
|
|
80
90
|
|
|
81
91
|
Move reusable domain, testing, platform, product, or tool knowledge into separately owned context assets under \`contexts/\`.
|
|
82
92
|
|
|
@@ -173,6 +183,14 @@ This context lens is a purpose-oriented interpretation layer for the context ass
|
|
|
173
183
|
`;
|
|
174
184
|
}
|
|
175
185
|
function renderPrompt(input) {
|
|
186
|
+
const skillGuidance = input.kind === "skill"
|
|
187
|
+
? [
|
|
188
|
+
"- Keep the Skill in Agent Skills format with Renma extensions under `metadata.renma.*`.",
|
|
189
|
+
"- Use `metadata.renma.requires-context` for context the skill normally depends on, encoded as a JSON-array string.",
|
|
190
|
+
"- Use `metadata.renma.optional-context` for context useful only in some cases, encoded as a JSON-array string.",
|
|
191
|
+
"- Use `metadata.renma.requires-lens` or `metadata.renma.optional-lens` for static lens relationships, encoded as JSON-array strings.",
|
|
192
|
+
]
|
|
193
|
+
: [];
|
|
176
194
|
return `Create a Renma ${input.kind} asset at \`${input.targetPath}\`.
|
|
177
195
|
|
|
178
196
|
Use this metadata exactly:
|
|
@@ -189,14 +207,14 @@ Start from this deterministic scaffold and replace placeholder prose with reposi
|
|
|
189
207
|
\`\`\`md
|
|
190
208
|
${input.content}\`\`\`
|
|
191
209
|
|
|
192
|
-
|
|
210
|
+
${input.kind === "skill"
|
|
211
|
+
? `Use your platform's standard Skill authoring guidance to refine the generated Skill's description, instructions, workflow, constraints, and completion criteria. Treat the scaffold as a starting point, preserve the repository's intended behavior, and do not invent owners, policies, dependencies, domain rules, or source-of-truth claims. After editing, run \`renma scan . --fail-on high\`, address relevant diagnostics, and rerun the scan. Do not weaken security policy or add suppressions merely to make validation pass. Have a human review meaningful semantic changes before merging.\n\n`
|
|
212
|
+
: ""}Constraints:
|
|
193
213
|
|
|
194
214
|
- Preserve the YAML frontmatter shape unless the repository already requires a stricter local convention.
|
|
195
215
|
- Use only supported statuses: experimental, stable, deprecated, archived.
|
|
196
216
|
- Move durable domain, testing, platform, product, or tool knowledge into separately owned context assets under \`contexts/\`.
|
|
197
|
-
|
|
198
|
-
- For skill assets, use \`optional_context\` for context useful only in some cases.
|
|
199
|
-
- For skill assets, use \`requires_lens\` or \`optional_lens\` for static lens relationships.
|
|
217
|
+
${skillGuidance.join("\n")}
|
|
200
218
|
- For context lens assets, use \`applies_to\` for context assets the lens interprets.
|
|
201
219
|
- Use simple supported metadata shapes only.
|
|
202
220
|
- For context assets, keep content durable, reviewable, and source-backed.
|
|
@@ -211,10 +229,35 @@ Constraints:
|
|
|
211
229
|
- After creating files, run \`renma scan .\`, \`renma catalog . --format json\`, and \`renma graph . --focus ${input.id} --format mermaid\`.
|
|
212
230
|
`;
|
|
213
231
|
}
|
|
232
|
+
function renderSkillNextSteps() {
|
|
233
|
+
return [
|
|
234
|
+
"Next steps:",
|
|
235
|
+
"1. Review the generated Skill using your platform's standard Skill authoring guidance.",
|
|
236
|
+
"2. Complete the description, instructions, workflow, constraints, completion criteria, and intended metadata.",
|
|
237
|
+
"3. Run `renma scan . --fail-on high`.",
|
|
238
|
+
"4. Fix relevant diagnostics and rerun the scan.",
|
|
239
|
+
"5. Have a human review meaningful semantic changes before merging.",
|
|
240
|
+
].join("\n");
|
|
241
|
+
}
|
|
214
242
|
function renderTagBlock(tags) {
|
|
215
243
|
return `tags:
|
|
216
244
|
${tags.map((tag) => ` - ${tag}`).join("\n")}`;
|
|
217
245
|
}
|
|
246
|
+
function canonicalSkillName(targetPath) {
|
|
247
|
+
const normalizedPath = targetPath.replaceAll("\\", "/");
|
|
248
|
+
if (path.posix.basename(normalizedPath) !== "SKILL.md") {
|
|
249
|
+
throw new Error("Skill scaffolds require the canonical SKILL.md filename.");
|
|
250
|
+
}
|
|
251
|
+
const directory = path.posix.basename(path.posix.dirname(normalizedPath));
|
|
252
|
+
const validation = normalizeAgentSkillDirectoryName(directory);
|
|
253
|
+
if (validation.normalized === undefined || validation.problems.length > 0) {
|
|
254
|
+
throw new Error(`Skill scaffold directory "${directory}" is not a valid Agent Skills name: ${validation.problems.join("; ")}.`);
|
|
255
|
+
}
|
|
256
|
+
return validation.normalized;
|
|
257
|
+
}
|
|
258
|
+
function yamlString(value) {
|
|
259
|
+
return `'${value.replaceAll("'", "''")}'`;
|
|
260
|
+
}
|
|
218
261
|
function inferId(kind, targetPath) {
|
|
219
262
|
const withoutExtension = targetPath.replace(/\.[^/.]+$/, "");
|
|
220
263
|
const normalized = withoutExtension
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/commands/scaffold.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AgentSkillMigrationSuggestion } from "../skill-migration.js";
|
|
1
2
|
import type { ArtifactKind } from "../types.js";
|
|
2
3
|
export type SuggestMetadataFormat = "prompt" | "json";
|
|
3
4
|
export interface SuggestMetadataOptions {
|
|
@@ -11,11 +12,12 @@ export interface BlockedMetadata {
|
|
|
11
12
|
export interface MetadataSuggestion {
|
|
12
13
|
path: string;
|
|
13
14
|
kind: ArtifactKind;
|
|
14
|
-
suggestedMode: "metadata-retrofit";
|
|
15
|
+
suggestedMode: "metadata-retrofit" | "agent-skills-migration" | "agent-skills-metadata-retrofit";
|
|
15
16
|
ownerProvided: boolean;
|
|
16
17
|
instructions: string[];
|
|
17
18
|
candidateMetadata: Record<string, string>;
|
|
18
19
|
blockedMetadata: BlockedMetadata[];
|
|
20
|
+
agentSkills?: AgentSkillMigrationSuggestion;
|
|
19
21
|
}
|
|
20
22
|
export declare class SuggestMetadataTargetError extends Error {
|
|
21
23
|
constructor(target: string, cause: unknown);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest-metadata.d.ts","sourceRoot":"","sources":["../../src/commands/suggest-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"suggest-metadata.d.ts","sourceRoot":"","sources":["../../src/commands/suggest-metadata.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,KAAK,6BAA6B,EACnC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAY,YAAY,EAAiB,MAAM,aAAa,CAAC;AAEzE,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EACT,mBAAmB,GACnB,wBAAwB,GACxB,gCAAgC,CAAC;IACrC,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,CAAC,EAAE,6BAA6B,CAAC;CAC7C;AAID,qBAAa,0BAA2B,SAAQ,KAAK;gBACvC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO;CAM3C;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,kBAAkB,CAAC,CAwH7B;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,CA4B3E"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { readFile } from "node:fs/promises";
|
|
1
|
+
import { lstat, readFile, realpath, stat } from "node:fs/promises";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import { parseDocument } from "../markdown.js";
|
|
4
4
|
import { parseAssetMetadata } from "../metadata.js";
|
|
5
|
+
import { classifyAbsoluteSkillEntrypointPath, classifyRepositorySkillEntrypointPath, } from "../discovery.js";
|
|
6
|
+
import { buildAgentSkillMigrationSuggestion, } from "../skill-migration.js";
|
|
5
7
|
export class SuggestMetadataTargetError extends Error {
|
|
6
8
|
constructor(target, cause) {
|
|
7
9
|
super(`Could not read metadata target ${target}: ${readErrorReason(cause)}`);
|
|
@@ -26,7 +28,8 @@ export async function buildMetadataSuggestion(target, options = {}) {
|
|
|
26
28
|
throw new SuggestMetadataTargetError(target, error);
|
|
27
29
|
}
|
|
28
30
|
const outputPath = toPosix(target);
|
|
29
|
-
const
|
|
31
|
+
const entrypoint = classifySuggestionSkillEntrypointPath(outputPath);
|
|
32
|
+
const initialKind = classifyPath(outputPath, entrypoint);
|
|
30
33
|
const document = parseDocument({
|
|
31
34
|
path: outputPath,
|
|
32
35
|
absolutePath,
|
|
@@ -38,10 +41,62 @@ export async function buildMetadataSuggestion(target, options = {}) {
|
|
|
38
41
|
const kind = initialKind === "context" && metadata.type === "context_lens"
|
|
39
42
|
? "context_lens"
|
|
40
43
|
: initialKind;
|
|
44
|
+
const explicitOwner = optionalText(options.owner);
|
|
45
|
+
if (kind === "skill") {
|
|
46
|
+
const collisionBlock = entrypoint
|
|
47
|
+
? await pathMigrationCollision(entrypoint, absolutePath)
|
|
48
|
+
: undefined;
|
|
49
|
+
const agentSkills = buildAgentSkillMigrationSuggestion(document, {
|
|
50
|
+
...(explicitOwner ? { explicitOwner } : {}),
|
|
51
|
+
...(entrypoint ? { entrypoint } : {}),
|
|
52
|
+
...(collisionBlock ? { additionalBlocks: [collisionBlock] } : {}),
|
|
53
|
+
});
|
|
54
|
+
const metadataRetrofit = agentSkills.proposalKind === "canonical-metadata-retrofit";
|
|
55
|
+
const noMigrationProposed = agentSkills.proposalKind === "none" &&
|
|
56
|
+
agentSkills.sourceFormat === "agent-skills";
|
|
57
|
+
return {
|
|
58
|
+
path: outputPath,
|
|
59
|
+
kind,
|
|
60
|
+
suggestedMode: metadataRetrofit
|
|
61
|
+
? "agent-skills-metadata-retrofit"
|
|
62
|
+
: "agent-skills-migration",
|
|
63
|
+
ownerProvided: Boolean(explicitOwner),
|
|
64
|
+
instructions: noMigrationProposed
|
|
65
|
+
? [
|
|
66
|
+
"Inspect the canonical Agent Skill without rewriting it.",
|
|
67
|
+
"Preserve the Markdown body, standard Agent Skills fields, and metadata.renma.* extensions.",
|
|
68
|
+
"Do not propose reverse migration or an unnecessary frontmatter rewrite.",
|
|
69
|
+
"Only if a separate, intentional authoring change is made, run renma scan . --fail-on high, fix relevant diagnostics, and rerun the scan.",
|
|
70
|
+
]
|
|
71
|
+
: metadataRetrofit
|
|
72
|
+
? [
|
|
73
|
+
"Inspect the canonical Agent Skill before editing.",
|
|
74
|
+
"Preserve the Markdown body and existing standard Agent Skills fields.",
|
|
75
|
+
"Add only the explicitly provided owner as a flat metadata.renma.owner string entry.",
|
|
76
|
+
"Preserve unknown renma.* and other-vendor metadata child keys.",
|
|
77
|
+
"Do not apply a proposal with blocked ownership evidence.",
|
|
78
|
+
"Do not perform reverse migration.",
|
|
79
|
+
"Run renma scan . after human review and application.",
|
|
80
|
+
]
|
|
81
|
+
: [
|
|
82
|
+
"Inspect the existing Skill before editing.",
|
|
83
|
+
"Preserve the Markdown body and existing standard Agent Skills fields.",
|
|
84
|
+
"If present, move only recognized pre-0.16 Renma Skill fields to flat metadata.renma.* string entries.",
|
|
85
|
+
"Preserve unknown renma.* and other-vendor metadata child keys.",
|
|
86
|
+
"Do not discard or automatically relocate unknown top-level fields.",
|
|
87
|
+
"Apply the entrypoint rename or move together with the frontmatter migration when required.",
|
|
88
|
+
"Do not apply a proposal with blocked migration evidence.",
|
|
89
|
+
"Keep selection boundaries in description and execution constraints in the body.",
|
|
90
|
+
"Run renma scan . after human review and application.",
|
|
91
|
+
],
|
|
92
|
+
candidateMetadata: {},
|
|
93
|
+
blockedMetadata: agentSkills.blocked,
|
|
94
|
+
agentSkills,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
41
97
|
const existingId = optionalText(metadataValueText(document.metadata.id));
|
|
42
98
|
const existingTitle = optionalText(metadataValueText(document.metadata.title));
|
|
43
99
|
const existingOwner = optionalText(metadata.owner);
|
|
44
|
-
const explicitOwner = optionalText(options.owner);
|
|
45
100
|
const candidateMetadata = {};
|
|
46
101
|
const candidateId = inferCandidateId(kind, outputPath);
|
|
47
102
|
const candidateTitle = mainHeadingTitle(document.headings);
|
|
@@ -78,8 +133,10 @@ export async function buildMetadataSuggestion(target, options = {}) {
|
|
|
78
133
|
};
|
|
79
134
|
}
|
|
80
135
|
export function renderMetadataPrompt(suggestion) {
|
|
136
|
+
if (suggestion.agentSkills)
|
|
137
|
+
return renderAgentSkillMigrationPrompt(suggestion);
|
|
81
138
|
return `${[
|
|
82
|
-
"#
|
|
139
|
+
"# Renma Task: Safely Retrofit Renma Metadata",
|
|
83
140
|
"",
|
|
84
141
|
"Update this existing Renma asset metadata safely.",
|
|
85
142
|
"",
|
|
@@ -104,6 +161,116 @@ export function renderMetadataPrompt(suggestion) {
|
|
|
104
161
|
"Return a small reviewed patch. Do not rewrite the asset body.",
|
|
105
162
|
].join("\n")}\n`;
|
|
106
163
|
}
|
|
164
|
+
function renderAgentSkillMigrationPrompt(suggestion) {
|
|
165
|
+
const migration = suggestion.agentSkills;
|
|
166
|
+
if (!migration)
|
|
167
|
+
return "";
|
|
168
|
+
const metadataRetrofit = migration.proposalKind === "canonical-metadata-retrofit";
|
|
169
|
+
const noMigrationProposed = migration.proposalKind === "none" &&
|
|
170
|
+
migration.sourceFormat === "agent-skills";
|
|
171
|
+
const candidate = migration.canonicalFrontmatter
|
|
172
|
+
? [
|
|
173
|
+
"Canonical Frontmatter Candidate:",
|
|
174
|
+
"",
|
|
175
|
+
"```yaml",
|
|
176
|
+
migration.canonicalFrontmatter,
|
|
177
|
+
"```",
|
|
178
|
+
]
|
|
179
|
+
: [
|
|
180
|
+
"Canonical Frontmatter Candidate:",
|
|
181
|
+
"",
|
|
182
|
+
"(not generated while migration is blocked or unnecessary)",
|
|
183
|
+
];
|
|
184
|
+
const promptState = suggestion.blockedMetadata.length > 0
|
|
185
|
+
? "blocked"
|
|
186
|
+
: noMigrationProposed || !migration.canonicalFrontmatter
|
|
187
|
+
? "no-proposal"
|
|
188
|
+
: "candidate";
|
|
189
|
+
const verification = renderSkillSuggestionVerification(promptState);
|
|
190
|
+
const nextSteps = renderSkillSuggestionNextSteps(promptState);
|
|
191
|
+
return `${[
|
|
192
|
+
noMigrationProposed
|
|
193
|
+
? "# Renma Task: Inspect Canonical Agent Skill (No Migration Proposed)"
|
|
194
|
+
: metadataRetrofit
|
|
195
|
+
? "# Renma Task: Review Canonical Agent Skills Metadata Retrofit"
|
|
196
|
+
: "# Renma Task: Review One-Way Agent Skills Migration",
|
|
197
|
+
"",
|
|
198
|
+
`Asset: \`${suggestion.path}\``,
|
|
199
|
+
`Source format: \`${migration.sourceFormat}\``,
|
|
200
|
+
`Direction: \`${migration.direction}\``,
|
|
201
|
+
`Proposal: \`${migration.proposalKind}\``,
|
|
202
|
+
`Source path: \`${migration.sourcePath}\``,
|
|
203
|
+
`Target path: \`${migration.targetPath}\``,
|
|
204
|
+
`Entrypoint migration: \`${migration.entrypointMigration}\``,
|
|
205
|
+
"",
|
|
206
|
+
"Rules:",
|
|
207
|
+
...suggestion.instructions.map((instruction) => `- ${instruction}`),
|
|
208
|
+
"",
|
|
209
|
+
"Candidate Agent Skills Fields:",
|
|
210
|
+
...metadataLines(migration.candidateAgentSkillsFields),
|
|
211
|
+
"",
|
|
212
|
+
"Candidate Renma Metadata:",
|
|
213
|
+
...metadataLines(migration.candidateRenmaMetadata),
|
|
214
|
+
"",
|
|
215
|
+
...candidate,
|
|
216
|
+
"",
|
|
217
|
+
"Blocked Migration Evidence:",
|
|
218
|
+
...blockedMetadataLines(suggestion.blockedMetadata),
|
|
219
|
+
"",
|
|
220
|
+
"Human Review:",
|
|
221
|
+
migration.reviewPrompt,
|
|
222
|
+
"",
|
|
223
|
+
...verification,
|
|
224
|
+
"",
|
|
225
|
+
...nextSteps,
|
|
226
|
+
"",
|
|
227
|
+
migration.canonicalFrontmatter
|
|
228
|
+
? migration.entrypointMigration === "none"
|
|
229
|
+
? "Return a small reviewed frontmatter patch. Do not rewrite the Skill body."
|
|
230
|
+
: "Return one small reviewed patch containing both the entrypoint path migration and frontmatter migration. Do not rewrite the Skill body."
|
|
231
|
+
: migration.blocked.length > 0
|
|
232
|
+
? "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."
|
|
233
|
+
: "No frontmatter patch is proposed. Do not return or apply a frontmatter patch; preserve the existing source.",
|
|
234
|
+
].join("\n")}\n`;
|
|
235
|
+
}
|
|
236
|
+
function renderSkillSuggestionVerification(state) {
|
|
237
|
+
if (state === "no-proposal") {
|
|
238
|
+
return [
|
|
239
|
+
"Verification:",
|
|
240
|
+
"- No verification change is required when no separate authoring change is made.",
|
|
241
|
+
"- Only if a separate, intentional authoring change is made: run `renma scan . --fail-on high`, fix relevant diagnostics, and rerun the scan.",
|
|
242
|
+
];
|
|
243
|
+
}
|
|
244
|
+
return ["Verification:", "- Run `renma scan . --fail-on high`."];
|
|
245
|
+
}
|
|
246
|
+
function renderSkillSuggestionNextSteps(state) {
|
|
247
|
+
if (state === "blocked") {
|
|
248
|
+
return [
|
|
249
|
+
"Next steps:",
|
|
250
|
+
"1. Review the conflicts or invalid evidence and confirm the Skill's intent using your platform's standard Skill authoring guidance.",
|
|
251
|
+
"2. Do not apply a candidate while Renma cannot generate it safely.",
|
|
252
|
+
"3. Correct the source evidence, then rerun `renma suggest-metadata <SKILL.md>`.",
|
|
253
|
+
"4. After intended corrections, run `renma scan . --fail-on high`, fix relevant diagnostics, and rerun the scan.",
|
|
254
|
+
];
|
|
255
|
+
}
|
|
256
|
+
if (state === "no-proposal") {
|
|
257
|
+
return [
|
|
258
|
+
"Next steps:",
|
|
259
|
+
"1. Review the Skill's trigger description, instructions, workflow, constraints, and completion criteria using your platform's standard Skill authoring guidance.",
|
|
260
|
+
"2. No metadata or migration change is proposed; preserve the existing source.",
|
|
261
|
+
"3. If a separate, intentionally reviewed authoring change is made, run `renma scan . --fail-on high`, fix relevant diagnostics, and rerun the scan.",
|
|
262
|
+
"4. If no separate change is made, stop without manufacturing work.",
|
|
263
|
+
];
|
|
264
|
+
}
|
|
265
|
+
return [
|
|
266
|
+
"Next steps:",
|
|
267
|
+
"1. Review the suggestion; Renma does not edit the Skill automatically.",
|
|
268
|
+
"2. Review the Skill's trigger description, instructions, workflow, constraints, and completion criteria using your platform's standard Skill authoring guidance.",
|
|
269
|
+
"3. Apply only the intended metadata or migration changes.",
|
|
270
|
+
"4. Run `renma scan . --fail-on high`.",
|
|
271
|
+
"5. Fix relevant diagnostics and rerun the scan.",
|
|
272
|
+
];
|
|
273
|
+
}
|
|
107
274
|
function buildInstructions(input) {
|
|
108
275
|
return [
|
|
109
276
|
"Inspect the existing asset before editing.",
|
|
@@ -144,11 +311,11 @@ function blockedMetadataLines(blockedMetadata) {
|
|
|
144
311
|
}
|
|
145
312
|
return blockedMetadata.map((item) => `- ${item.field}: ${item.reason}`);
|
|
146
313
|
}
|
|
147
|
-
function classifyPath(filePath) {
|
|
314
|
+
function classifyPath(filePath, entrypoint) {
|
|
315
|
+
if (entrypoint)
|
|
316
|
+
return "skill";
|
|
148
317
|
const parts = pathParts(filePath);
|
|
149
318
|
const basename = parts.at(-1) ?? "";
|
|
150
|
-
if (basename === "SKILL.md")
|
|
151
|
-
return "skill";
|
|
152
319
|
if (parts.includes("lenses"))
|
|
153
320
|
return "context_lens";
|
|
154
321
|
if (parts.includes("contexts") || parts.includes("context"))
|
|
@@ -166,6 +333,58 @@ function classifyPath(filePath) {
|
|
|
166
333
|
}
|
|
167
334
|
return "unknown";
|
|
168
335
|
}
|
|
336
|
+
function classifySuggestionSkillEntrypointPath(filePath) {
|
|
337
|
+
return isAbsoluteLike(filePath)
|
|
338
|
+
? classifyAbsoluteSkillEntrypointPath(filePath)
|
|
339
|
+
: classifyRepositorySkillEntrypointPath(filePath);
|
|
340
|
+
}
|
|
341
|
+
async function pathMigrationCollision(entrypoint, sourceAbsolutePath) {
|
|
342
|
+
if (entrypoint.kind === "canonical")
|
|
343
|
+
return undefined;
|
|
344
|
+
const targetAbsolutePath = path.resolve(entrypoint.targetPath);
|
|
345
|
+
try {
|
|
346
|
+
await lstat(targetAbsolutePath);
|
|
347
|
+
}
|
|
348
|
+
catch (error) {
|
|
349
|
+
if (isMissingFileError(error))
|
|
350
|
+
return undefined;
|
|
351
|
+
return {
|
|
352
|
+
field: "targetPath",
|
|
353
|
+
reason: `Could not safely inspect migration target ${entrypoint.targetPath}: ${readErrorReason(error)} Human review is required before migration.`,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
try {
|
|
357
|
+
const [sourceInfo, targetInfo, sourceRealPath, targetRealPath] = await Promise.all([
|
|
358
|
+
stat(sourceAbsolutePath),
|
|
359
|
+
stat(targetAbsolutePath),
|
|
360
|
+
realpath(sourceAbsolutePath),
|
|
361
|
+
realpath(targetAbsolutePath),
|
|
362
|
+
]);
|
|
363
|
+
if (sourceRealPath === targetRealPath ||
|
|
364
|
+
(sourceInfo.dev === targetInfo.dev && sourceInfo.ino === targetInfo.ino)) {
|
|
365
|
+
return undefined;
|
|
366
|
+
}
|
|
367
|
+
return {
|
|
368
|
+
field: "targetPath",
|
|
369
|
+
reason: `Target Agent Skills entrypoint already exists at ${entrypoint.targetPath}. Human review is required before migration.`,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
catch (error) {
|
|
373
|
+
return {
|
|
374
|
+
field: "targetPath",
|
|
375
|
+
reason: `Could not safely verify migration target ${entrypoint.targetPath}: ${readErrorReason(error)} Human review is required before migration.`,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
function isAbsoluteLike(filePath) {
|
|
380
|
+
return path.isAbsolute(filePath) || /^[A-Za-z]:\//.test(filePath);
|
|
381
|
+
}
|
|
382
|
+
function isMissingFileError(error) {
|
|
383
|
+
return (typeof error === "object" &&
|
|
384
|
+
error !== null &&
|
|
385
|
+
"code" in error &&
|
|
386
|
+
error.code === "ENOENT");
|
|
387
|
+
}
|
|
169
388
|
function inferCandidateId(kind, filePath) {
|
|
170
389
|
if (kind === "skill") {
|
|
171
390
|
return inferRootedId("skill", filePath, "skills", (parts) => parts.filter((part) => part !== "SKILL"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest-metadata.js","sourceRoot":"","sources":["../../src/commands/suggest-metadata.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"suggest-metadata.js","sourceRoot":"","sources":["../../src/commands/suggest-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export async function runSuggestSemanticSplitCommand(target, options = {}) {
|
|
|
8
8
|
const format = options.format ?? "prompt";
|
|
9
9
|
process.stdout.write(format === "json"
|
|
10
10
|
? `${JSON.stringify(semanticSplitReviewBundle, null, 2)}\n`
|
|
11
|
-
:
|
|
11
|
+
: renderReviewPrompt(semanticSplitReviewBundle));
|
|
12
12
|
return 0;
|
|
13
13
|
}
|
|
14
14
|
async function buildSemanticSplitReviewBundle(target, options) {
|
|
@@ -48,7 +48,7 @@ async function buildSemanticSplitReviewBundle(target, options) {
|
|
|
48
48
|
},
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
-
function
|
|
51
|
+
function renderReviewPrompt(semanticSplitReviewBundle) {
|
|
52
52
|
const { source } = semanticSplitReviewBundle;
|
|
53
53
|
const { context } = semanticSplitReviewBundle;
|
|
54
54
|
const siblingSummary = context.siblingFiles.length > 0
|
|
@@ -57,7 +57,7 @@ function renderCodexPrompt(semanticSplitReviewBundle) {
|
|
|
57
57
|
.join("\n\n")
|
|
58
58
|
: "(none found)";
|
|
59
59
|
return `${[
|
|
60
|
-
"#
|
|
60
|
+
"# Renma Task: Suggest Semantic Reference Split",
|
|
61
61
|
"",
|
|
62
62
|
"You are improving an AI-agent skill repository.",
|
|
63
63
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest-semantic-split.js","sourceRoot":"","sources":["../../src/commands/suggest-semantic-split.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAuB,MAAM,cAAc,CAAC;AAExE,MAAM,yBAAyB,GAAG,EAAE,GAAG,IAAI,CAAC;AAC5C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;AA8C1E,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,MAAc,EACd,UAAuC,EAAE;IAEzC,MAAM,yBAAyB,GAAG,MAAM,8BAA8B,CACpE,MAAM,EACN,OAAO,CACR,CAAC;IACF,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,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;QAC3D,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"suggest-semantic-split.js","sourceRoot":"","sources":["../../src/commands/suggest-semantic-split.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Asset, Dependency } from "./model.js";
|
|
2
|
+
/** Normalize the supported repository-relative form used by dependency targets. */
|
|
3
|
+
export declare function normalizeDependencyReference(reference: string): string;
|
|
4
|
+
/** Resolve a declared dependency by asset ID or normalized repository-relative path. */
|
|
5
|
+
export declare function resolveDependencyTarget(dependency: Dependency, assets: Asset[]): Asset | undefined;
|
|
6
|
+
//# sourceMappingURL=dependency-resolution.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-resolution.d.ts","sourceRoot":"","sources":["../src/dependency-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpD,mFAAmF;AACnF,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED,wFAAwF;AACxF,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,KAAK,EAAE,GACd,KAAK,GAAG,SAAS,CAOnB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Normalize the supported repository-relative form used by dependency targets. */
|
|
2
|
+
export function normalizeDependencyReference(reference) {
|
|
3
|
+
return reference.replace(/\\/g, "/").replace(/^\.\//, "");
|
|
4
|
+
}
|
|
5
|
+
/** Resolve a declared dependency by asset ID or normalized repository-relative path. */
|
|
6
|
+
export function resolveDependencyTarget(dependency, assets) {
|
|
7
|
+
const target = normalizeDependencyReference(dependency.to);
|
|
8
|
+
return assets.find((asset) => asset.id === dependency.to ||
|
|
9
|
+
normalizeDependencyReference(asset.sourcePath) === target);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=dependency-resolution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency-resolution.js","sourceRoot":"","sources":["../src/dependency-resolution.ts"],"names":[],"mappings":"AAEA,mFAAmF;AACnF,MAAM,UAAU,4BAA4B,CAAC,SAAiB;IAC5D,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,uBAAuB,CACrC,UAAsB,EACtB,MAAe;IAEf,MAAM,MAAM,GAAG,4BAA4B,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,IAAI,CAChB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE;QAC1B,4BAA4B,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,MAAM,CAC5D,CAAC;AACJ,CAAC"}
|