renma 0.18.0 → 0.18.2

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 (74) hide show
  1. package/CHANGELOG.md +101 -1
  2. package/README.md +61 -3
  3. package/architecture.md +7 -6
  4. package/design.md +39 -32
  5. package/dist/agent-skills.d.ts +5 -6
  6. package/dist/agent-skills.d.ts.map +1 -1
  7. package/dist/agent-skills.js +2 -10
  8. package/dist/agent-skills.js.map +1 -1
  9. package/dist/catalog.d.ts +27 -1
  10. package/dist/catalog.d.ts.map +1 -1
  11. package/dist/catalog.js +62 -16
  12. package/dist/catalog.js.map +1 -1
  13. package/dist/cli-help.d.ts +8 -8
  14. package/dist/cli-help.d.ts.map +1 -1
  15. package/dist/cli-help.js +19 -4
  16. package/dist/cli-help.js.map +1 -1
  17. package/dist/command-invocation.d.ts +4 -0
  18. package/dist/command-invocation.d.ts.map +1 -0
  19. package/dist/command-invocation.js +14 -0
  20. package/dist/command-invocation.js.map +1 -0
  21. package/dist/commands/inspect.d.ts +5 -0
  22. package/dist/commands/inspect.d.ts.map +1 -1
  23. package/dist/commands/inspect.js +185 -33
  24. package/dist/commands/inspect.js.map +1 -1
  25. package/dist/commands/scaffold.js +30 -9
  26. package/dist/commands/scaffold.js.map +1 -1
  27. package/dist/commands/suggest-metadata.d.ts +6 -2
  28. package/dist/commands/suggest-metadata.d.ts.map +1 -1
  29. package/dist/commands/suggest-metadata.js +516 -72
  30. package/dist/commands/suggest-metadata.js.map +1 -1
  31. package/dist/context-lens.d.ts +1 -0
  32. package/dist/context-lens.d.ts.map +1 -1
  33. package/dist/context-lens.js +19 -1
  34. package/dist/context-lens.js.map +1 -1
  35. package/dist/diagnostic-ids.d.ts +1 -0
  36. package/dist/diagnostic-ids.d.ts.map +1 -1
  37. package/dist/diagnostic-ids.js +1 -0
  38. package/dist/diagnostic-ids.js.map +1 -1
  39. package/dist/discovery.d.ts +33 -1
  40. package/dist/discovery.d.ts.map +1 -1
  41. package/dist/discovery.js +361 -51
  42. package/dist/discovery.js.map +1 -1
  43. package/dist/metadata.d.ts +15 -1
  44. package/dist/metadata.d.ts.map +1 -1
  45. package/dist/metadata.js +235 -0
  46. package/dist/metadata.js.map +1 -1
  47. package/dist/model.d.ts +5 -10
  48. package/dist/model.d.ts.map +1 -1
  49. package/dist/rules.js +69 -23
  50. package/dist/rules.js.map +1 -1
  51. package/dist/scanner.d.ts.map +1 -1
  52. package/dist/scanner.js +66 -2
  53. package/dist/scanner.js.map +1 -1
  54. package/dist/skill-migration.d.ts.map +1 -1
  55. package/dist/skill-migration.js +6 -1
  56. package/dist/skill-migration.js.map +1 -1
  57. package/dist/types.d.ts +72 -0
  58. package/dist/types.d.ts.map +1 -1
  59. package/dist/types.js +50 -1
  60. package/dist/types.js.map +1 -1
  61. package/docs/README.md +2 -1
  62. package/docs/agent-skills-compatibility.md +8 -1
  63. package/docs/authoring-guide.md +100 -13
  64. package/docs/context-lens.md +319 -153
  65. package/docs/diagnostics.md +385 -3
  66. package/docs/metadata-budget.md +32 -0
  67. package/docs/quality-profile.md +17 -5
  68. package/docs/user-manual.md +136 -14
  69. package/examples/context-lens/README.md +8 -3
  70. package/examples/context-lens/contexts/testing/boundary-value-analysis.md +6 -2
  71. package/examples/context-lens/lenses/testing/spec-review-boundary-values.md +27 -5
  72. package/examples/context-lens/lenses/testing/test-design-boundary-values.md +27 -5
  73. package/examples/context-lens/skills/testing/spec-review/SKILL.md +33 -4
  74. package/package.json +1 -1
package/dist/types.d.ts CHANGED
@@ -8,6 +8,78 @@ export type Severity = "low" | "medium" | "high" | "critical";
8
8
  export type RiskClass = "violation" | "suspicious" | "advisory";
9
9
  /** Classified artifact kind discovered from repository paths. */
10
10
  export type ArtifactKind = "skill" | "agent" | "context" | "context_lens" | "profile" | "reference" | "example" | "script" | "asset" | "config" | "unknown";
11
+ /** Repository governance boundary determined from a normalized asset path. */
12
+ export type AssetScope = "independent" | "skill-local" | "repository-support" | "unknown";
13
+ /** Stable registry of deterministic asset-classification rules. */
14
+ export declare const ASSET_CLASSIFICATION_RULES: readonly ["skill-entrypoint", "skill-local-support", "context-root", "context-root-legacy", "lens-root", "agent-root", "repository-tool", "config-file", "generic-profile", "generic-reference", "generic-example", "unknown"];
15
+ export type AssetClassificationRule = (typeof ASSET_CLASSIFICATION_RULES)[number];
16
+ /** Stable registry of positive and competing asset-classification reasons. */
17
+ export declare const ASSET_CLASSIFICATION_REASON_CODES: readonly ["under-canonical-skill-root", "under-skill-support-directory", "outside-recognized-asset-boundary", "unsupported-skill-local-directory", "under-recognized-context-root", "under-legacy-context-root", "under-recognized-lens-root", "under-recognized-agent-root", "repository-tool-not-context", "recognized-config-file", "under-generic-support-directory", "outside-recognized-skill-boundary", "outside-recognized-context-root"];
18
+ export type AssetClassificationReasonCode = (typeof ASSET_CLASSIFICATION_REASON_CODES)[number];
19
+ /** Resolution state for the structurally implied parent of Skill-local support. */
20
+ export type ParentAssetResolution = "structural-candidate" | "resolved" | "missing" | "ambiguous";
21
+ /** Stable negative evidence for a nearby classification rule. */
22
+ export interface AssetCompetingRuleEvidence {
23
+ rule: AssetClassificationRule;
24
+ matched: false;
25
+ reasonCode: AssetClassificationReasonCode;
26
+ reason: string;
27
+ }
28
+ /** Deterministic, machine-readable evidence explaining one path classification. */
29
+ export interface AssetClassificationEvidence {
30
+ kind: ArtifactKind;
31
+ scope: AssetScope;
32
+ matchedRule: AssetClassificationRule;
33
+ reasonCode: AssetClassificationReasonCode;
34
+ reason: string;
35
+ recognizedRoot?: string;
36
+ /** Structural path candidate; it does not prove that a parent asset exists. */
37
+ parentAssetCandidatePath?: string;
38
+ /** Resolved parent source path; present only for one unambiguous parent. */
39
+ parentAssetPath?: string;
40
+ parentResolution?: ParentAssetResolution;
41
+ parentAssetCandidates?: string[];
42
+ supportDirectory?: string;
43
+ ignoredNestedSegments?: string[];
44
+ competingRules?: AssetCompetingRuleEvidence[];
45
+ }
46
+ /** Explicit outcome for commands that may recommend an authoring change. */
47
+ export type DecisionStatus = "deterministic" | "human-confirmation-required" | "blocked" | "no-change-recommended";
48
+ /** Stable registry of suggestion decision reasons. */
49
+ export declare const ASSET_DECISION_REASON_CODES: readonly ["conflicting-ownership-evidence", "explicit-human-provided-override", "skill-local-governance-inherited", "skill-local-existing-metadata-preserved", "skill-local-unowned", "skill-local-parent-unresolved", "repository-boundary-unresolved", "repository-boundary-ambiguous", "repository-tool-not-context", "outside-recognized-asset-boundary", "independent-governance-intent-unconfirmed", "deterministic-metadata-candidate", "metadata-already-sufficient", "conflicting-or-incomplete-skill-evidence", "canonical-agent-skill-no-change", "agent-skills-migration-review-required"];
50
+ export type AssetDecisionReasonCode = (typeof ASSET_DECISION_REASON_CODES)[number];
51
+ export interface AssetDecisionEvidence {
52
+ reasonCode: AssetDecisionReasonCode;
53
+ summary: string;
54
+ question?: string;
55
+ }
56
+ /** Declared and effective ownership with explicit provenance. */
57
+ export interface AssetOwnership {
58
+ declaredOwner: string | null;
59
+ effectiveOwner: string | null;
60
+ source: "declared" | "inherited" | "unowned";
61
+ inheritedFrom?: {
62
+ id: string;
63
+ sourcePath: string;
64
+ };
65
+ }
66
+ /** Governance provenance kept separate from path classification evidence. */
67
+ export interface AssetGovernanceEvidence {
68
+ ownership: AssetOwnership;
69
+ policySource?: "declared" | "inherited" | "missing";
70
+ policyInheritedFrom?: string;
71
+ metadataState?: "declared" | "partial" | "missing" | "not-required";
72
+ }
73
+ /** Executable command data plus a shell-oriented human display string. */
74
+ export interface CommandInvocation<Args extends string[] = string[]> {
75
+ command: "renma";
76
+ args: Args;
77
+ display: string;
78
+ }
79
+ export interface SuggestedNextAction {
80
+ kind: "inspect-parent" | "inspect-target" | "review-layout" | "verify";
81
+ invocation: CommandInvocation;
82
+ }
11
83
  /** Source location and snippet used to justify a finding. */
12
84
  export interface Evidence {
13
85
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,2 +1,51 @@
1
- export {};
1
+ /** Stable registry of deterministic asset-classification rules. */
2
+ export const ASSET_CLASSIFICATION_RULES = [
3
+ "skill-entrypoint",
4
+ "skill-local-support",
5
+ "context-root",
6
+ "context-root-legacy",
7
+ "lens-root",
8
+ "agent-root",
9
+ "repository-tool",
10
+ "config-file",
11
+ "generic-profile",
12
+ "generic-reference",
13
+ "generic-example",
14
+ "unknown",
15
+ ];
16
+ /** Stable registry of positive and competing asset-classification reasons. */
17
+ export const ASSET_CLASSIFICATION_REASON_CODES = [
18
+ "under-canonical-skill-root",
19
+ "under-skill-support-directory",
20
+ "outside-recognized-asset-boundary",
21
+ "unsupported-skill-local-directory",
22
+ "under-recognized-context-root",
23
+ "under-legacy-context-root",
24
+ "under-recognized-lens-root",
25
+ "under-recognized-agent-root",
26
+ "repository-tool-not-context",
27
+ "recognized-config-file",
28
+ "under-generic-support-directory",
29
+ "outside-recognized-skill-boundary",
30
+ "outside-recognized-context-root",
31
+ ];
32
+ /** Stable registry of suggestion decision reasons. */
33
+ export const ASSET_DECISION_REASON_CODES = [
34
+ "conflicting-ownership-evidence",
35
+ "explicit-human-provided-override",
36
+ "skill-local-governance-inherited",
37
+ "skill-local-existing-metadata-preserved",
38
+ "skill-local-unowned",
39
+ "skill-local-parent-unresolved",
40
+ "repository-boundary-unresolved",
41
+ "repository-boundary-ambiguous",
42
+ "repository-tool-not-context",
43
+ "outside-recognized-asset-boundary",
44
+ "independent-governance-intent-unconfirmed",
45
+ "deterministic-metadata-candidate",
46
+ "metadata-already-sufficient",
47
+ "conflicting-or-incomplete-skill-evidence",
48
+ "canonical-agent-skill-no-change",
49
+ "agent-skills-migration-review-required",
50
+ ];
2
51
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAgCA,mEAAmE;AACnE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,kBAAkB;IAClB,qBAAqB;IACrB,cAAc;IACd,qBAAqB;IACrB,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;IACjB,SAAS;CACD,CAAC;AAIX,8EAA8E;AAC9E,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,4BAA4B;IAC5B,+BAA+B;IAC/B,mCAAmC;IACnC,mCAAmC;IACnC,+BAA+B;IAC/B,2BAA2B;IAC3B,4BAA4B;IAC5B,6BAA6B;IAC7B,6BAA6B;IAC7B,wBAAwB;IACxB,iCAAiC;IACjC,mCAAmC;IACnC,iCAAiC;CACzB,CAAC;AA6CX,sDAAsD;AACtD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,gCAAgC;IAChC,kCAAkC;IAClC,kCAAkC;IAClC,yCAAyC;IACzC,qBAAqB;IACrB,+BAA+B;IAC/B,gCAAgC;IAChC,+BAA+B;IAC/B,6BAA6B;IAC7B,mCAAmC;IACnC,2CAA2C;IAC3C,kCAAkC;IAClC,6BAA6B;IAC7B,0CAA0C;IAC1C,iCAAiC;IACjC,wCAAwC;CAChC,CAAC"}
package/docs/README.md CHANGED
@@ -32,7 +32,8 @@ Use this index to choose the smallest document that answers your question.
32
32
 
33
33
  - [Advanced Skill Authoring](advanced-skill-authoring.md): deriving focused,
34
34
  bounded Skills from existing workflows while using progressive disclosure.
35
- - [Context Lens](context-lens.md)
35
+ - [Context Lens](context-lens.md): canonical semantics, placement decisions,
36
+ persona guidance, fields, examples, and runtime boundaries.
36
37
  - [Context Lifecycle Diagnostics](context-lifecycle-diagnostics.md)
37
38
  - [Context Conflict Diagnostics](context-conflict-diagnostics.md)
38
39
  - [Context Language Diagnostics](context-language-diagnostics.md)
@@ -216,7 +216,10 @@ requires a rename. A flat `*.skill.md` requires a move into the filename-derived
216
216
  directory plus a rename. Structured `suggest-metadata` output reports
217
217
  `sourcePath`, `targetPath`, and `entrypointMigration` (`none`, `rename`, or
218
218
  `move-and-rename`) so the path change cannot be mistaken for an apply-ready
219
- frontmatter-only result.
219
+ frontmatter-only result. Both paths are normalized repository-relative paths.
220
+ Renma uses that same identity for entrypoint classification and rebases the
221
+ target against the resolved repository root only when checking the filesystem
222
+ for collisions.
220
223
 
221
224
  Repository discovery recognizes these roots only at the beginning of a
222
225
  repository-relative path. A nested path such as `docs/skills/demo/SKILL.md` is
@@ -224,6 +227,10 @@ not a repository Skill, and a later `skills` segment cannot escape a reserved
224
227
  `references` or `examples` directory. For absolute `suggest-metadata` targets,
225
228
  Renma requires one unambiguous Skill root and rejects paths with multiple
226
229
  possible roots.
230
+ When structural evidence leaves multiple repository roots plausible, Renma
231
+ returns `repository-boundary-ambiguous` and does not recommend scanning the
232
+ caller's current directory. Add a repository marker or supply an explicit root
233
+ before retrying.
227
234
 
228
235
  Repository-relative classification normalizes leading and internal `.` segments
229
236
  and safe `..` segments before checking the root. A path is rejected if `..`
@@ -1,7 +1,7 @@
1
1
  # Renma Authoring Guide
2
2
 
3
- This is the canonical guide for authoring and improving Skills and Context
4
- Assets in a Renma repository.
3
+ This is the canonical guide for placing, authoring, and improving Skills,
4
+ Context Assets, Context Lenses, and Skill-local support in a Renma repository.
5
5
 
6
6
  ## Responsibility Boundary
7
7
 
@@ -48,17 +48,21 @@ Use Agent Skills progressive disclosure deliberately:
48
48
  3. Resources: local files are read or executed only when the workflow calls
49
49
  for them.
50
50
 
51
- Choose placement by responsibility, not size alone:
52
-
53
- | Content | Place it in | Ownership test |
54
- | --- | --- | --- |
55
- | Selection boundaries, ordered workflow, constraints, completion | `SKILL.md` | Required to perform this focused workflow |
56
- | Skill-specific detail, variants, edge cases | `references/` | Owned and loaded by one Skill |
57
- | Deterministic repeatedly executed implementation | `scripts/` | Code is safer and more repeatable than prose |
58
- | Templates, images, data, output resources | `assets/` | Consumed or copied as material, not instructions |
59
- | Shared knowledge | `contexts/` | Used by multiple Skills or needs independent ownership, lifecycle, or source-of-truth status |
60
- | Purpose-specific interpretation of Context | `lenses/` | A static governance view over Context Assets |
61
- | Provider-specific UI metadata | provider-owned files such as `agents/openai.yaml` | Optional interface metadata, not Renma core schema |
51
+ Choose placement by responsibility, ownership, and reuse—not size alone:
52
+
53
+ | Content or responsibility | Correct placement | Ownership or reuse test | Common misuse |
54
+ | --- | --- | --- | --- |
55
+ | Review supplied test code and produce prioritized findings; define selection boundaries, inputs, ordered steps, decisions, constraints, verification, output, and completion | Skill in `SKILL.md` | Required to perform one focused workflow | Reducing the Skill to a thin redirect or moving its task contract into Context |
56
+ | Shared rules for reliable automated tests or other durable, source-backed knowledge | Context Asset under `contexts/` | May outlive or serve multiple Skills, or needs independent ownership, lifecycle, or source-of-truth status | Storing one workflow's instructions or transient task state as shared knowledge |
57
+ | Emphasize determinism, isolation, and false-confidence risk while interpreting declared test-quality Context | Context Lens under `lenses/` | The same Context benefits from reusable purpose-specific interpretation | Creating a Lens with no Context target, copying Context, or storing only a persona or runtime route |
58
+ | A stricter review variant for one Skill | Skill-local Profile under `profiles/`, if current Profile semantics fit | An overlay or variant owned and loaded by one Skill | Treating Profiles as generic global personas or a substitute for shared Context |
59
+ | Detailed framework-specific review notes used only by one Skill | Skill-local Reference under `references/` | Supporting detail owned and loaded by one Skill | Promoting local detail without evidence of independent reuse or ownership |
60
+ | A representative good or bad test implementation | Skill-local Example under `examples/` | A fixture or demonstration owned by one Skill | Hiding required workflow instructions only in an example |
61
+ | Deterministic, repeatedly executed implementation | Script under Skill-local `scripts/`, or shared helper under `tools/` | Code is safer and more repeatable than prose; use `tools/` when implementation is shared | Embedding a large executable implementation in prose or treating a script as knowledge |
62
+ | Templates, images, data, fonts, PDFs, or output resources | Asset under Skill-local `assets/` | Consumed, copied, or transformed as material rather than read as instructions | Putting workflow or reusable knowledge in an opaque asset |
63
+ | Provider-specific UI or presentation metadata | Provider-owned metadata such as `agents/openai.yaml` | Optional interface behavior owned by the consuming provider | Adding provider fields to Renma core metadata |
64
+ | Dynamically select a Lens, load or inject Context, assemble prompts, execute tools, or apply the workflow | External agent or runtime | Depends on the live request or execution environment | Encoding runtime behavior in a Lens or claiming Renma performs it |
65
+ | “Act as a senior QA engineer” with no concrete criteria | Usually keep as brief local framing; create no asset solely for it | Persona or tone alone has no reusable interpretation contract | Treating generic role wording as a Context Lens |
62
66
 
63
67
  The canonical defaults and their Agent Skills/Renma provenance are in the
64
68
  [Quality Profile](quality-profile.md).
@@ -254,6 +258,24 @@ Do not route an already canonical Skill through `suggest-metadata` as ceremony.
254
258
  Use it only for a metadata retrofit, explicit owner retrofit, recognized
255
259
  pre-0.16 one-way migration, or blocked migration review.
256
260
 
261
+ ### Evidence-first LLM preflight
262
+
263
+ When an LLM is asked to improve one existing Skill:
264
+
265
+ 1. Run `renma scan . --fail-on high --format json`.
266
+ 2. Run `renma inspect <SKILL.md> --format json`.
267
+ 3. Inspect relevant local resources and referenced Context Assets.
268
+ 4. Use `renma suggest-metadata` only when metadata retrofit or migration
269
+ evidence exists.
270
+ 5. Prepare the smallest intended patch.
271
+ 6. Run `renma scan . --fail-on high --format json` again.
272
+ 7. Stop without manufacturing work when Renma returns `no-proposal`.
273
+ 8. Report unresolved human decisions.
274
+
275
+ For a classification-only question, `renma inspect <target> --format json` may
276
+ be the first command. `scan` remains the normal repository-level starting
277
+ point.
278
+
257
279
  ### 4. Review before applying
258
280
 
259
281
  Treat the output as a candidate. Compare it with the source and apply only the
@@ -333,9 +355,74 @@ Skill -> Context Asset
333
355
  These metadata relationships are static governance evidence. Renma does not
334
356
  select, load, or inject Context at runtime.
335
357
 
358
+ Use this placement sequence before creating an asset:
359
+
360
+ 1. Is this the task, workflow, or completion contract? Put it in the Skill.
361
+ 2. Is this durable, reusable, source-backed knowledge? Create or reuse a Context
362
+ Asset.
363
+ 3. Does declared Context need a reusable purpose-specific interpretation?
364
+ Create a Context Lens. Do not create a Lens when there is no Context Asset to
365
+ interpret.
366
+ 4. Is this a Skill-local overlay or execution variant? Use a Profile only when
367
+ the current Profile semantics fit.
368
+ 5. Is this supporting detail used by only one Skill? Use a Reference.
369
+ 6. Is this a local fixture or demonstration? Use an Example.
370
+ 7. Is this only generic persona or tone framing? Usually keep it local and do
371
+ not create an asset solely for the persona.
372
+
373
+ A Skill can reference a Context Asset directly when no separate interpretation
374
+ layer adds value. A Lens is justified only when it adds meaningful, reusable
375
+ structure to how declared Context is read for a purpose. See the
376
+ [Context Lens guide](context-lens.md) for field semantics, persona guidance,
377
+ examples, and a zero-context classification self-check.
378
+
336
379
  Context and Context Lens scaffolds keep their top-level Renma metadata syntax;
337
380
  the Agent Skills `metadata.renma.*` serialization boundary applies to Skills.
338
381
 
382
+ ## Context Asset Discovery Boundary
383
+
384
+ The classification precedence is: explicit Skill entrypoint, explicit local
385
+ support inside a recognized Skill, recognized top-level asset root,
386
+ repository-level support or configuration, compatible generic nested rules,
387
+ then unknown. This makes the repository root authoritative:
388
+
389
+ ```text
390
+ contexts/foo/references/policy.md
391
+ -> independent Context Asset
392
+
393
+ skills/foo/references/policy.md
394
+ -> Skill-local Reference
395
+
396
+ references/policy.md
397
+ -> outside the Context root
398
+
399
+ tools/helper.mjs
400
+ -> repository implementation
401
+
402
+ skills/foo/tools/helper.mjs
403
+ -> not canonical Skill-local support
404
+ ```
405
+
406
+ Use `contexts/**` for preferred independent Context and `context/**` only for
407
+ compatibility. Nested `references/`, `examples/`, `profiles/`, `scripts/`, or
408
+ `assets/` does not override either Context root. The same names are Skill-local
409
+ only inside `skills/**` or `.agents/skills/**`, where they establish a structural
410
+ parent candidate. Local metadata overrides remain supported where valid, but
411
+ are not required. `tools/**` is shared repository implementation, and a Skill
412
+ uses `scripts/`, not `tools/`, for canonical local executable support.
413
+
414
+ The Skill-local path rule establishes only a structural parent candidate. The
415
+ catalog must resolve exactly one parent entrypoint before Renma reports
416
+ inherited governance. A missing or ambiguous parent remains structurally
417
+ Skill-local but unowned or unresolved; `suggest-metadata` blocks instead of
418
+ adding independent metadata automatically. Existing explicit local owner or
419
+ policy metadata is preserved and is not described as inherited.
420
+
421
+ Humans decide whether knowledge needs independent ownership, lifecycle, reuse,
422
+ and source-of-truth status. Renma classifies the resulting placement but never
423
+ promotes or moves content automatically. A `no-proposal` result is successful:
424
+ preserve the file and stop unless a separate intentional change is supported.
425
+
339
426
  For current guidance on deriving several focused, bounded workflows from a broad
340
427
  existing Skill—including focused `inspect`, graph, Context reuse, and Appium
341
428
  examples—see [Advanced Skill Authoring](advanced-skill-authoring.md). That guide