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.
Files changed (126) hide show
  1. package/CHANGELOG.md +54 -1
  2. package/README.md +216 -655
  3. package/architecture.md +523 -0
  4. package/design.md +458 -0
  5. package/dist/agent-skills.d.ts +77 -0
  6. package/dist/agent-skills.d.ts.map +1 -0
  7. package/dist/agent-skills.js +468 -0
  8. package/dist/agent-skills.js.map +1 -0
  9. package/dist/catalog.d.ts.map +1 -1
  10. package/dist/catalog.js +38 -5
  11. package/dist/catalog.js.map +1 -1
  12. package/dist/cli-help.d.ts +13 -11
  13. package/dist/cli-help.d.ts.map +1 -1
  14. package/dist/cli-help.js +36 -11
  15. package/dist/cli-help.js.map +1 -1
  16. package/dist/cli.d.ts.map +1 -1
  17. package/dist/cli.js +139 -40
  18. package/dist/cli.js.map +1 -1
  19. package/dist/commands/catalog.d.ts.map +1 -1
  20. package/dist/commands/catalog.js +4 -3
  21. package/dist/commands/catalog.js.map +1 -1
  22. package/dist/commands/graph.d.ts.map +1 -1
  23. package/dist/commands/graph.js +7 -12
  24. package/dist/commands/graph.js.map +1 -1
  25. package/dist/commands/readiness.d.ts.map +1 -1
  26. package/dist/commands/readiness.js +7 -6
  27. package/dist/commands/readiness.js.map +1 -1
  28. package/dist/commands/scaffold.d.ts.map +1 -1
  29. package/dist/commands/scaffold.js +59 -16
  30. package/dist/commands/scaffold.js.map +1 -1
  31. package/dist/commands/suggest-metadata.d.ts +3 -1
  32. package/dist/commands/suggest-metadata.d.ts.map +1 -1
  33. package/dist/commands/suggest-metadata.js +226 -7
  34. package/dist/commands/suggest-metadata.js.map +1 -1
  35. package/dist/commands/suggest-semantic-split.js +3 -3
  36. package/dist/commands/suggest-semantic-split.js.map +1 -1
  37. package/dist/dependency-resolution.d.ts +6 -0
  38. package/dist/dependency-resolution.d.ts.map +1 -0
  39. package/dist/dependency-resolution.js +11 -0
  40. package/dist/dependency-resolution.js.map +1 -0
  41. package/dist/diagnostic-ids.d.ts +29 -0
  42. package/dist/diagnostic-ids.d.ts.map +1 -1
  43. package/dist/diagnostic-ids.js +28 -0
  44. package/dist/diagnostic-ids.js.map +1 -1
  45. package/dist/discovery.d.ts +50 -0
  46. package/dist/discovery.d.ts.map +1 -1
  47. package/dist/discovery.js +183 -25
  48. package/dist/discovery.js.map +1 -1
  49. package/dist/metadata.d.ts +3 -1
  50. package/dist/metadata.d.ts.map +1 -1
  51. package/dist/metadata.js +166 -29
  52. package/dist/metadata.js.map +1 -1
  53. package/dist/model.d.ts +1 -0
  54. package/dist/model.d.ts.map +1 -1
  55. package/dist/report.d.ts.map +1 -1
  56. package/dist/report.js +16 -1
  57. package/dist/report.js.map +1 -1
  58. package/dist/repository-paths.d.ts +13 -0
  59. package/dist/repository-paths.d.ts.map +1 -1
  60. package/dist/repository-paths.js +60 -2
  61. package/dist/repository-paths.js.map +1 -1
  62. package/dist/rules.d.ts.map +1 -1
  63. package/dist/rules.js +97 -107
  64. package/dist/rules.js.map +1 -1
  65. package/dist/scanner.d.ts.map +1 -1
  66. package/dist/scanner.js +3 -1
  67. package/dist/scanner.js.map +1 -1
  68. package/dist/security-diagnostics.d.ts.map +1 -1
  69. package/dist/security-diagnostics.js +98 -35
  70. package/dist/security-diagnostics.js.map +1 -1
  71. package/dist/security-policy-inventory.js +11 -4
  72. package/dist/security-policy-inventory.js.map +1 -1
  73. package/dist/security-policy.d.ts +27 -1
  74. package/dist/security-policy.d.ts.map +1 -1
  75. package/dist/security-policy.js +247 -34
  76. package/dist/security-policy.js.map +1 -1
  77. package/dist/skill-migration.d.ts +30 -0
  78. package/dist/skill-migration.d.ts.map +1 -0
  79. package/dist/skill-migration.js +566 -0
  80. package/dist/skill-migration.js.map +1 -0
  81. package/dist/trust-graph.d.ts.map +1 -1
  82. package/dist/trust-graph.js +7 -11
  83. package/dist/trust-graph.js.map +1 -1
  84. package/dist/types.d.ts +3 -1
  85. package/dist/types.d.ts.map +1 -1
  86. package/dist/yaml-frontmatter.d.ts +26 -0
  87. package/dist/yaml-frontmatter.d.ts.map +1 -0
  88. package/dist/yaml-frontmatter.js +114 -0
  89. package/dist/yaml-frontmatter.js.map +1 -0
  90. package/docs/README.md +55 -0
  91. package/docs/advanced-skill-authoring.md +140 -0
  92. package/docs/agent-skills-compatibility.md +500 -0
  93. package/docs/authoring-guide.md +324 -0
  94. package/docs/context-conflict-diagnostics.md +32 -0
  95. package/docs/context-language-diagnostics.md +99 -0
  96. package/docs/context-lens.md +253 -0
  97. package/docs/context-lifecycle-diagnostics.md +55 -0
  98. package/docs/diagnostics.md +373 -0
  99. package/docs/metadata-budget.md +14 -0
  100. package/docs/repository-context-bom.md +113 -0
  101. package/docs/security-policy.md +338 -0
  102. package/docs/user-manual.md +813 -0
  103. package/examples/context-lens/README.md +101 -0
  104. package/examples/context-lens/contexts/testing/boundary-value-analysis.md +23 -0
  105. package/examples/context-lens/lenses/testing/spec-review-boundary-values.md +29 -0
  106. package/examples/context-lens/lenses/testing/test-design-boundary-values.md +29 -0
  107. package/examples/context-lens/skills/testing/spec-review/SKILL.md +49 -0
  108. package/examples/context-repo/README.md +149 -0
  109. package/examples/context-repo/contexts/domain/payment/idempotency.md +20 -0
  110. package/examples/context-repo/contexts/testing/boundary-value-analysis.md +19 -0
  111. package/examples/context-repo/contexts/testing/negative-testing.md +19 -0
  112. package/examples/context-repo/lenses/testing/spec-review-boundary-values.md +35 -0
  113. package/examples/context-repo/renma.config.json +12 -0
  114. package/examples/context-repo/skills/testing/spec-review/SKILL.md +66 -0
  115. package/examples/context-repo/tools/appium/README.md +14 -0
  116. package/examples/github-actions/renma-ci-report.yml +36 -0
  117. package/examples/interactive-placeholder/README.md +104 -0
  118. package/examples/interactive-placeholder/assets/template.txt +1 -0
  119. package/examples/interactive-placeholder/renma.config.json +6 -0
  120. package/examples/interactive-placeholder/skills/replace-placeholder/SKILL.md +54 -0
  121. package/examples/interactive-placeholder/tools/README.md +48 -0
  122. package/examples/interactive-placeholder/tools/placeholder-demo.mjs +99 -0
  123. package/package.json +11 -1
  124. package/plan-discovery.md +740 -0
  125. package/plan.md +150 -0
  126. package/scripts/verify-package.mjs +97 -0
@@ -66,6 +66,7 @@ export declare const DIAGNOSTIC_IDS: {
66
66
  readonly SEC_EXTERNAL_UPLOAD_INSTRUCTION: "SEC-EXTERNAL-UPLOAD-INSTRUCTION";
67
67
  readonly SEC_FORBIDDEN_INPUT_INSTRUCTION: "SEC-FORBIDDEN-INPUT-INSTRUCTION";
68
68
  readonly SEC_INSTRUCTION_VIOLATES_POLICY: "SEC-INSTRUCTION-VIOLATES-POLICY";
69
+ readonly SEC_INVALID_CANONICAL_POLICY_METADATA: "SEC-INVALID-CANONICAL-POLICY-METADATA";
69
70
  readonly SEC_LITERAL_SECRET: "SEC-LITERAL-SECRET";
70
71
  readonly SEC_MISSING_HUMAN_APPROVAL_GUARD: "SEC-MISSING-HUMAN-APPROVAL-GUARD";
71
72
  readonly SEC_MISSING_POLICY_METADATA: "SEC-MISSING-POLICY-METADATA";
@@ -91,4 +92,32 @@ export declare const DIAGNOSTIC_IDS: {
91
92
  readonly SUPPORT_UNREACHABLE_REFERENCE: "SUPPORT-UNREACHABLE-REFERENCE";
92
93
  };
93
94
  export type DiagnosticId = (typeof DIAGNOSTIC_IDS)[keyof typeof DIAGNOSTIC_IDS];
95
+ /** Stable Agent Skills validation identifiers emitted in scan.agentSkills. */
96
+ export declare const AGENT_SKILL_DIAGNOSTIC_IDS: {
97
+ readonly AS_NONCANONICAL_FILENAME: "AS-SKILL-NONCANONICAL-FILENAME";
98
+ readonly AS_MISSING_FRONTMATTER: "AS-SKILL-MISSING-FRONTMATTER";
99
+ readonly AS_UNCLOSED_FRONTMATTER: "AS-SKILL-UNCLOSED-FRONTMATTER";
100
+ readonly AS_INVALID_YAML: "AS-SKILL-INVALID-YAML";
101
+ readonly AS_FRONTMATTER_NOT_MAPPING: "AS-SKILL-FRONTMATTER-NOT-MAPPING";
102
+ readonly AS_DUPLICATE_FIELD: "AS-SKILL-DUPLICATE-FIELD";
103
+ readonly AS_DUPLICATE_METADATA_KEY: "AS-SKILL-DUPLICATE-METADATA-KEY";
104
+ readonly AS_UNEXPECTED_TOP_LEVEL_FIELD: "AS-SKILL-UNEXPECTED-TOP-LEVEL-FIELD";
105
+ readonly AS_MISSING_NAME: "AS-SKILL-MISSING-NAME";
106
+ readonly AS_INVALID_NAME: "AS-SKILL-INVALID-NAME";
107
+ readonly AS_NAME_DIRECTORY_MISMATCH: "AS-SKILL-NAME-DIRECTORY-MISMATCH";
108
+ readonly AS_MISSING_DESCRIPTION: "AS-SKILL-MISSING-DESCRIPTION";
109
+ readonly AS_INVALID_DESCRIPTION: "AS-SKILL-INVALID-DESCRIPTION";
110
+ readonly AS_DESCRIPTION_TOO_LONG: "AS-SKILL-DESCRIPTION-TOO-LONG";
111
+ readonly AS_INVALID_COMPATIBILITY: "AS-SKILL-INVALID-COMPATIBILITY";
112
+ readonly AS_COMPATIBILITY_TOO_LONG: "AS-SKILL-COMPATIBILITY-TOO-LONG";
113
+ readonly AS_INVALID_LICENSE: "AS-SKILL-INVALID-LICENSE";
114
+ readonly AS_INVALID_ALLOWED_TOOLS: "AS-SKILL-INVALID-ALLOWED-TOOLS";
115
+ readonly AS_INVALID_METADATA: "AS-SKILL-INVALID-METADATA";
116
+ readonly RN_DESCRIPTION_MISSING_USAGE_BOUNDARY: "RN-SKILL-DESCRIPTION-MISSING-USAGE-BOUNDARY";
117
+ readonly RN_DESCRIPTION_OMITS_SELECTION_BOUNDARY: "RN-SKILL-DESCRIPTION-OMITS-SELECTION-BOUNDARY";
118
+ readonly RN_EXECUTION_CONSTRAINT_NOT_PROMINENT: "RN-SKILL-EXECUTION-CONSTRAINT-NOT-PROMINENT";
119
+ readonly RN_EXECUTION_CONSTRAINT_SCATTERED: "RN-SKILL-EXECUTION-CONSTRAINT-SCATTERED";
120
+ readonly RN_EXECUTION_CONSTRAINT_MISSING_ALTERNATIVE: "RN-SKILL-EXECUTION-CONSTRAINT-MISSING-ALTERNATIVE";
121
+ };
122
+ export type AgentSkillDiagnosticId = (typeof AGENT_SKILL_DIAGNOSTIC_IDS)[keyof typeof AGENT_SKILL_DIAGNOSTIC_IDS];
94
123
  //# sourceMappingURL=diagnostic-ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-ids.d.ts","sourceRoot":"","sources":["../src/diagnostic-ids.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"diagnostic-ids.d.ts","sourceRoot":"","sources":["../src/diagnostic-ids.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqGjB,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEhF,8EAA8E;AAC9E,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;CA6B7B,CAAC;AAEX,MAAM,MAAM,sBAAsB,GAChC,CAAC,OAAO,0BAA0B,CAAC,CAAC,MAAM,OAAO,0BAA0B,CAAC,CAAC"}
@@ -66,6 +66,7 @@ export const DIAGNOSTIC_IDS = {
66
66
  SEC_EXTERNAL_UPLOAD_INSTRUCTION: "SEC-EXTERNAL-UPLOAD-INSTRUCTION",
67
67
  SEC_FORBIDDEN_INPUT_INSTRUCTION: "SEC-FORBIDDEN-INPUT-INSTRUCTION",
68
68
  SEC_INSTRUCTION_VIOLATES_POLICY: "SEC-INSTRUCTION-VIOLATES-POLICY",
69
+ SEC_INVALID_CANONICAL_POLICY_METADATA: "SEC-INVALID-CANONICAL-POLICY-METADATA",
69
70
  SEC_LITERAL_SECRET: "SEC-LITERAL-SECRET",
70
71
  SEC_MISSING_HUMAN_APPROVAL_GUARD: "SEC-MISSING-HUMAN-APPROVAL-GUARD",
71
72
  SEC_MISSING_POLICY_METADATA: "SEC-MISSING-POLICY-METADATA",
@@ -90,4 +91,31 @@ export const DIAGNOSTIC_IDS = {
90
91
  SUPPORT_UNREACHABLE_PROFILE: "SUPPORT-UNREACHABLE-PROFILE",
91
92
  SUPPORT_UNREACHABLE_REFERENCE: "SUPPORT-UNREACHABLE-REFERENCE",
92
93
  };
94
+ /** Stable Agent Skills validation identifiers emitted in scan.agentSkills. */
95
+ export const AGENT_SKILL_DIAGNOSTIC_IDS = {
96
+ AS_NONCANONICAL_FILENAME: "AS-SKILL-NONCANONICAL-FILENAME",
97
+ AS_MISSING_FRONTMATTER: "AS-SKILL-MISSING-FRONTMATTER",
98
+ AS_UNCLOSED_FRONTMATTER: "AS-SKILL-UNCLOSED-FRONTMATTER",
99
+ AS_INVALID_YAML: "AS-SKILL-INVALID-YAML",
100
+ AS_FRONTMATTER_NOT_MAPPING: "AS-SKILL-FRONTMATTER-NOT-MAPPING",
101
+ AS_DUPLICATE_FIELD: "AS-SKILL-DUPLICATE-FIELD",
102
+ AS_DUPLICATE_METADATA_KEY: "AS-SKILL-DUPLICATE-METADATA-KEY",
103
+ AS_UNEXPECTED_TOP_LEVEL_FIELD: "AS-SKILL-UNEXPECTED-TOP-LEVEL-FIELD",
104
+ AS_MISSING_NAME: "AS-SKILL-MISSING-NAME",
105
+ AS_INVALID_NAME: "AS-SKILL-INVALID-NAME",
106
+ AS_NAME_DIRECTORY_MISMATCH: "AS-SKILL-NAME-DIRECTORY-MISMATCH",
107
+ AS_MISSING_DESCRIPTION: "AS-SKILL-MISSING-DESCRIPTION",
108
+ AS_INVALID_DESCRIPTION: "AS-SKILL-INVALID-DESCRIPTION",
109
+ AS_DESCRIPTION_TOO_LONG: "AS-SKILL-DESCRIPTION-TOO-LONG",
110
+ AS_INVALID_COMPATIBILITY: "AS-SKILL-INVALID-COMPATIBILITY",
111
+ AS_COMPATIBILITY_TOO_LONG: "AS-SKILL-COMPATIBILITY-TOO-LONG",
112
+ AS_INVALID_LICENSE: "AS-SKILL-INVALID-LICENSE",
113
+ AS_INVALID_ALLOWED_TOOLS: "AS-SKILL-INVALID-ALLOWED-TOOLS",
114
+ AS_INVALID_METADATA: "AS-SKILL-INVALID-METADATA",
115
+ RN_DESCRIPTION_MISSING_USAGE_BOUNDARY: "RN-SKILL-DESCRIPTION-MISSING-USAGE-BOUNDARY",
116
+ RN_DESCRIPTION_OMITS_SELECTION_BOUNDARY: "RN-SKILL-DESCRIPTION-OMITS-SELECTION-BOUNDARY",
117
+ RN_EXECUTION_CONSTRAINT_NOT_PROMINENT: "RN-SKILL-EXECUTION-CONSTRAINT-NOT-PROMINENT",
118
+ RN_EXECUTION_CONSTRAINT_SCATTERED: "RN-SKILL-EXECUTION-CONSTRAINT-SCATTERED",
119
+ RN_EXECUTION_CONSTRAINT_MISSING_ALTERNATIVE: "RN-SKILL-EXECUTION-CONSTRAINT-MISSING-ALTERNATIVE",
120
+ };
93
121
  //# sourceMappingURL=diagnostic-ids.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagnostic-ids.js","sourceRoot":"","sources":["../src/diagnostic-ids.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagnostic-ids.js","sourceRoot":"","sources":["../src/diagnostic-ids.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,54 @@
1
1
  import type { Artifact, Diagnostic, ScanConfig } from "./types.js";
2
+ export declare const RESERVED_SKILL_SUPPORT_DIRS: readonly ["assets", "examples", "profiles", "references", "scripts"];
3
+ export type ReservedSkillSupportDirectory = (typeof RESERVED_SKILL_SUPPORT_DIRS)[number];
4
+ export type SkillEntrypointPath = {
5
+ kind: "canonical";
6
+ currentPath: string;
7
+ targetPath: string;
8
+ candidateName: string;
9
+ } | {
10
+ kind: "lowercase-entrypoint";
11
+ currentPath: string;
12
+ targetPath: string;
13
+ candidateName: string;
14
+ } | {
15
+ kind: "flat-legacy-entrypoint";
16
+ currentPath: string;
17
+ targetPath: string;
18
+ candidateName: string;
19
+ };
20
+ export type RepositorySkillPath = {
21
+ kind: "entrypoint";
22
+ currentPath: string;
23
+ root: "skills" | ".agents/skills";
24
+ skillDirectory: string;
25
+ skillName: string;
26
+ domainPath: string[];
27
+ relativeToSkillDirectory: string;
28
+ entrypoint: SkillEntrypointPath;
29
+ } | {
30
+ kind: "support";
31
+ currentPath: string;
32
+ root: "skills" | ".agents/skills";
33
+ skillDirectory: string;
34
+ skillName: string;
35
+ domainPath: string[];
36
+ relativeToSkillDirectory: string;
37
+ supportDirectory: ReservedSkillSupportDirectory;
38
+ } | {
39
+ kind: "reserved-root";
40
+ currentPath: string;
41
+ root: "skills" | ".agents/skills";
42
+ supportDirectory: ReservedSkillSupportDirectory;
43
+ };
44
+ /** Classify canonical, historical, and reserved support paths at explicit Skill roots. */
45
+ export declare function classifyRepositorySkillPath(relativePath: string): RepositorySkillPath | undefined;
46
+ /** Classify a repository-relative Skill entrypoint only at an explicit root. */
47
+ export declare function classifyRepositorySkillEntrypointPath(relativePath: string): SkillEntrypointPath | undefined;
48
+ /** Classify an absolute Skill path only when it contains one unambiguous root. */
49
+ export declare function classifyAbsoluteSkillEntrypointPath(absolutePath: string): SkillEntrypointPath | undefined;
50
+ /** Normalize a repository-relative Skill path without allowing root escape. */
51
+ export declare function normalizeRepositoryRelativePath(filePath: string): string | undefined;
2
52
  /** Discover and read scan artifacts according to the provided scan configuration. */
3
53
  export declare function discoverArtifacts(root: string, config: ScanConfig): Promise<{
4
54
  artifacts: Artifact[];
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAER,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;AA4BpB,qFAAqF;AACrF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC,CA4E/D"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,QAAQ,EAER,UAAU,EACV,UAAU,EACX,MAAM,YAAY,CAAC;AAMpB,eAAO,MAAM,2BAA2B,sEAM9B,CAAC;AACX,MAAM,MAAM,6BAA6B,GACvC,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAiB/C,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,wBAAwB,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,UAAU,EAAE,mBAAmB,CAAC;CACjC,GACD;IACE,IAAI,EAAE,SAAS,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,gBAAgB,EAAE,6BAA6B,CAAC;CACjD,GACD;IACE,IAAI,EAAE,eAAe,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAAC;IAClC,gBAAgB,EAAE,6BAA6B,CAAC;CACjD,CAAC;AAEN,0FAA0F;AAC1F,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,GACnB,mBAAmB,GAAG,SAAS,CAyDjC;AAED,gFAAgF;AAChF,wBAAgB,qCAAqC,CACnD,YAAY,EAAE,MAAM,GACnB,mBAAmB,GAAG,SAAS,CAGjC;AAED,kFAAkF;AAClF,wBAAgB,mCAAmC,CACjD,YAAY,EAAE,MAAM,GACnB,mBAAmB,GAAG,SAAS,CAUjC;AAED,+EAA+E;AAC/E,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAyBpB;AAuCD,qFAAqF;AACrF,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAAC,WAAW,EAAE,UAAU,EAAE,CAAA;CAAE,CAAC,CA4E/D"}
package/dist/discovery.js CHANGED
@@ -2,7 +2,8 @@ import { glob, lstat, readFile, stat } from "node:fs/promises";
2
2
  import path from "node:path";
3
3
  const SKILL_LIKE_FILE_OUTSIDE_SKILLS_DIR_CODE = "LAYOUT-SKILL-LIKE-FILE-OUTSIDE-SKILLS-DIR";
4
4
  const SKILL_ENTRYPOINT_UNDER_RESERVED_SUPPORT_DIR_CODE = "LAYOUT-SKILL-ENTRYPOINT-UNDER-RESERVED-SUPPORT-DIR";
5
- const RESERVED_SKILL_SUPPORT_DIRS = [
5
+ export const RESERVED_SKILL_SUPPORT_DIRS = [
6
+ "assets",
6
7
  "examples",
7
8
  "profiles",
8
9
  "references",
@@ -21,6 +22,144 @@ const SKILL_LIKE_FILE_GLOBS = [
21
22
  ];
22
23
  const SKILL_LIKE_FILE_LLM_HINT = "No action is required unless this file is intended to be a Renma skill. If it is intended to be a skill, move it under skills/** or .agents/skills/**.";
23
24
  const SKILL_ENTRYPOINT_UNDER_RESERVED_SUPPORT_DIR_LLM_HINT = "Do not move or rename this file only to reduce diagnostics. Rename the skill directory only if this file is intended to define a Renma skill. For example, use `skills/example-review/SKILL.md` instead of `skills/examples/SKILL.md`.";
25
+ /** Classify canonical, historical, and reserved support paths at explicit Skill roots. */
26
+ export function classifyRepositorySkillPath(relativePath) {
27
+ const currentPath = normalizeRepositoryRelativePath(relativePath);
28
+ if (!currentPath)
29
+ return undefined;
30
+ const segments = currentPath.split("/").filter(Boolean);
31
+ const rootEndIndex = repositorySkillRootEndIndex(segments);
32
+ if (rootEndIndex === undefined)
33
+ return undefined;
34
+ const root = repositorySkillRoot(segments);
35
+ const localSegments = segments.slice(rootEndIndex);
36
+ const supportIndex = localSegments.findIndex(isReservedSkillSupportDirectory);
37
+ if (supportIndex >= 0) {
38
+ const supportDirectory = localSegments[supportIndex];
39
+ if (supportIndex === 0) {
40
+ return { kind: "reserved-root", currentPath, root, supportDirectory };
41
+ }
42
+ const skillSegments = localSegments.slice(0, supportIndex);
43
+ const skillName = skillSegments.at(-1);
44
+ if (!skillName)
45
+ return undefined;
46
+ const skillDirectory = [
47
+ ...segments.slice(0, rootEndIndex),
48
+ ...skillSegments,
49
+ ].join("/");
50
+ return {
51
+ kind: "support",
52
+ currentPath,
53
+ root,
54
+ skillDirectory,
55
+ skillName,
56
+ domainPath: skillSegments.slice(0, -1),
57
+ relativeToSkillDirectory: localSegments.slice(supportIndex).join("/"),
58
+ supportDirectory,
59
+ };
60
+ }
61
+ const entrypoint = classifySkillEntrypointAtRoot(currentPath, segments, rootEndIndex);
62
+ if (!entrypoint)
63
+ return undefined;
64
+ const skillDirectory = path.posix.dirname(entrypoint.targetPath);
65
+ const skillDirectorySegments = skillDirectory.split("/").filter(Boolean);
66
+ const skillSegments = skillDirectorySegments.slice(rootEndIndex);
67
+ const skillName = skillSegments.at(-1);
68
+ if (!skillName)
69
+ return undefined;
70
+ return {
71
+ kind: "entrypoint",
72
+ currentPath,
73
+ root,
74
+ skillDirectory,
75
+ skillName,
76
+ domainPath: skillSegments.slice(0, -1),
77
+ relativeToSkillDirectory: path.posix.relative(skillDirectory, currentPath),
78
+ entrypoint,
79
+ };
80
+ }
81
+ /** Classify a repository-relative Skill entrypoint only at an explicit root. */
82
+ export function classifyRepositorySkillEntrypointPath(relativePath) {
83
+ const classified = classifyRepositorySkillPath(relativePath);
84
+ return classified?.kind === "entrypoint" ? classified.entrypoint : undefined;
85
+ }
86
+ /** Classify an absolute Skill path only when it contains one unambiguous root. */
87
+ export function classifyAbsoluteSkillEntrypointPath(absolutePath) {
88
+ const rawPath = toPosix(absolutePath);
89
+ if (!isAbsoluteLike(rawPath))
90
+ return undefined;
91
+ const rawRoots = absoluteSkillRoots(rawPath.split("/").filter(Boolean));
92
+ if (rawRoots.length !== 1)
93
+ return undefined;
94
+ const currentPath = path.posix.normalize(rawPath);
95
+ const segments = currentPath.split("/").filter(Boolean);
96
+ const roots = absoluteSkillRoots(segments);
97
+ if (roots.length !== 1)
98
+ return undefined;
99
+ return classifySkillEntrypointAtRoot(currentPath, segments, roots[0]);
100
+ }
101
+ /** Normalize a repository-relative Skill path without allowing root escape. */
102
+ export function normalizeRepositoryRelativePath(filePath) {
103
+ const normalizedSeparators = toPosix(filePath);
104
+ if (isAbsoluteLike(normalizedSeparators))
105
+ return undefined;
106
+ const rawSegments = normalizedSeparators.split("/");
107
+ while (rawSegments[0] === "." || rawSegments[0] === "") {
108
+ rawSegments.shift();
109
+ }
110
+ const rootEndIndex = repositorySkillRootEndIndex(rawSegments);
111
+ if (rootEndIndex === undefined)
112
+ return undefined;
113
+ const resolved = rawSegments.slice(0, rootEndIndex);
114
+ for (const segment of rawSegments.slice(rootEndIndex)) {
115
+ if (!segment || segment === ".")
116
+ continue;
117
+ if (segment === "..") {
118
+ if (resolved.length <= rootEndIndex)
119
+ return undefined;
120
+ resolved.pop();
121
+ continue;
122
+ }
123
+ resolved.push(segment);
124
+ }
125
+ const normalized = resolved.join("/");
126
+ if (normalized === ".." || normalized.startsWith("../"))
127
+ return undefined;
128
+ const normalizedRootEndIndex = repositorySkillRootEndIndex(resolved);
129
+ return normalizedRootEndIndex === rootEndIndex ? normalized : undefined;
130
+ }
131
+ function classifySkillEntrypointAtRoot(currentPath, segments, rootEndIndex) {
132
+ const basename = path.posix.basename(currentPath);
133
+ const directory = path.posix.dirname(currentPath);
134
+ const localDirectories = segments.slice(rootEndIndex, -1);
135
+ if (localDirectories.some(isReservedSkillSupportDirectory)) {
136
+ return undefined;
137
+ }
138
+ if (basename === "SKILL.md" || basename === "skill.md") {
139
+ const candidateName = path.posix.basename(directory);
140
+ if (!candidateName || candidateName === ".")
141
+ return undefined;
142
+ return {
143
+ kind: basename === "SKILL.md" ? "canonical" : "lowercase-entrypoint",
144
+ currentPath,
145
+ targetPath: basename === "SKILL.md"
146
+ ? currentPath
147
+ : path.posix.join(directory, "SKILL.md"),
148
+ candidateName,
149
+ };
150
+ }
151
+ if (!basename.endsWith(".skill.md"))
152
+ return undefined;
153
+ const candidateName = basename.slice(0, -".skill.md".length);
154
+ if (!candidateName)
155
+ return undefined;
156
+ return {
157
+ kind: "flat-legacy-entrypoint",
158
+ currentPath,
159
+ targetPath: path.posix.join(directory, candidateName, "SKILL.md"),
160
+ candidateName,
161
+ };
162
+ }
24
163
  /** Discover and read scan artifacts according to the provided scan configuration. */
25
164
  export async function discoverArtifacts(root, config) {
26
165
  const diagnostics = [];
@@ -119,7 +258,13 @@ function classify(relativePath) {
119
258
  return "unknown";
120
259
  }
121
260
  function classifyExplicitSkillSupportPath(relativePath) {
122
- switch (skillSupportPathSegment(relativePath)) {
261
+ const classified = classifyRepositorySkillPath(relativePath);
262
+ const supportDirectory = classified?.kind === "support" || classified?.kind === "reserved-root"
263
+ ? classified.supportDirectory
264
+ : undefined;
265
+ switch (supportDirectory) {
266
+ case "assets":
267
+ return "unknown";
123
268
  case "profiles":
124
269
  return "profile";
125
270
  case "references":
@@ -196,32 +341,45 @@ async function skillLikeLayoutDiagnostics(root, config) {
196
341
  return diagnostics;
197
342
  }
198
343
  function isExplicitSkillEntrypoint(relativePath) {
199
- const normalized = toPosix(relativePath);
200
- const basename = path.posix.basename(normalized);
201
- const lowerBasename = basename.toLowerCase();
202
- if (!isSkillLikeFilename(lowerBasename))
203
- return false;
204
- if (!isExplicitSkillsPath(normalized))
205
- return false;
206
- if (skillSupportPathSegment(normalized) !== undefined)
207
- return false;
208
- return true;
344
+ return classifyRepositorySkillEntrypointPath(relativePath) !== undefined;
209
345
  }
210
346
  function isExplicitSkillsPath(relativePath) {
211
- return (relativePath.startsWith("skills/") ||
212
- relativePath.startsWith(".agents/skills/"));
213
- }
214
- function isSkillLikeFilename(lowerBasename) {
215
- return lowerBasename === "skill.md" || lowerBasename.endsWith(".skill.md");
347
+ return normalizeRepositoryRelativePath(relativePath) !== undefined;
216
348
  }
217
349
  function skillSupportPathSegment(relativePath) {
218
- const normalized = toPosix(relativePath);
219
- if (!isExplicitSkillsPath(normalized))
220
- return undefined;
221
- const segments = normalized.split("/");
222
- const rootSegmentCount = normalized.startsWith(".agents/skills/") ? 2 : 1;
223
- const skillLocalSegments = segments.slice(rootSegmentCount, -1);
224
- return skillLocalSegments.find((segment) => RESERVED_SKILL_SUPPORT_DIRS.includes(segment));
350
+ const classified = classifyRepositorySkillPath(relativePath);
351
+ return classified?.kind === "support" || classified?.kind === "reserved-root"
352
+ ? classified.supportDirectory
353
+ : undefined;
354
+ }
355
+ function isReservedSkillSupportDirectory(segment) {
356
+ return RESERVED_SKILL_SUPPORT_DIRS.includes(segment);
357
+ }
358
+ function repositorySkillRoot(segments) {
359
+ return segments[0] === "skills" ? "skills" : ".agents/skills";
360
+ }
361
+ function repositorySkillRootEndIndex(segments) {
362
+ if (segments[0] === "skills")
363
+ return 1;
364
+ if (segments[0] === ".agents" && segments[1] === "skills")
365
+ return 2;
366
+ return undefined;
367
+ }
368
+ function absoluteSkillRoots(segments) {
369
+ const roots = [];
370
+ for (let index = 0; index < segments.length; index += 1) {
371
+ if (segments[index] === ".agents" && segments[index + 1] === "skills") {
372
+ roots.push(index + 2);
373
+ index += 1;
374
+ }
375
+ else if (segments[index] === "skills") {
376
+ roots.push(index + 1);
377
+ }
378
+ }
379
+ return roots;
380
+ }
381
+ function isAbsoluteLike(filePath) {
382
+ return filePath.startsWith("/") || /^[A-Za-z]:\//.test(filePath);
225
383
  }
226
384
  async function mapLimit(items, limit, mapper) {
227
385
  const results = new Array(items.length);
@@ -254,7 +412,7 @@ function depth(relativePath) {
254
412
  return relativePath.split("/").filter(Boolean).length;
255
413
  }
256
414
  function toPosix(value) {
257
- return value.split(path.sep).join(path.posix.sep);
415
+ return value.replaceAll("\\", path.posix.sep);
258
416
  }
259
417
  function errorMessage(error) {
260
418
  return error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
1
  import type { AssetMetadata } from "./model.js";
2
- import type { Diagnostic, ParsedDocument } from "./types.js";
2
+ import type { Diagnostic, MetadataFieldEvidence, ParsedDocument } from "./types.js";
3
3
  /** Normalize parsed frontmatter into asset metadata plus validation diagnostics. */
4
4
  export declare function parseAssetMetadata(document: ParsedDocument): {
5
5
  metadata: AssetMetadata;
6
+ metadataFields: Record<string, MetadataFieldEvidence>;
7
+ metadataListItems: Record<string, MetadataFieldEvidence[]>;
6
8
  diagnostics: Diagnostic[];
7
9
  };
8
10
  //# sourceMappingURL=metadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAU5E,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG;IAC5D,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CAuHA"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAE7D,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EAErB,cAAc,EACf,MAAM,YAAY,CAAC;AA2DpB,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG;IAC5D,QAAQ,EAAE,aAAa,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACtD,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;IAC3D,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CA8JA"}