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/metadata.js CHANGED
@@ -1,5 +1,8 @@
1
1
  import { inspectAgentSkill } from "./agent-skills.js";
2
2
  import { isIsoDate, parseDayDuration } from "./freshness.js";
3
+ import { DEFAULT_QUALITY_PROFILE } from "./quality-profile.js";
4
+ import { estimateTokens } from "./token-estimator.js";
5
+ import { parseAgentSkillFrontmatter, } from "./yaml-frontmatter.js";
3
6
  const STATUSES = [
4
7
  "experimental",
5
8
  "stable",
@@ -38,6 +41,231 @@ const CANONICAL_LIST_KEYS = new Set([
38
41
  "conflicts",
39
42
  "superseded_by",
40
43
  ]);
44
+ const TOKEN_BUDGET_KEYS = [
45
+ "token_budget_override",
46
+ "token_budget_rationale",
47
+ "token_budget_reviewed_at",
48
+ ];
49
+ /** Validate one declared support-asset token-budget decision without selecting ambiguous values. */
50
+ export function parseSupportAssetTokenBudgetDecision(document) {
51
+ if (document.artifact.markdownParserEligible !== true ||
52
+ (document.artifact.kind !== "context" &&
53
+ document.artifact.kind !== "reference" &&
54
+ document.artifact.kind !== "profile" &&
55
+ document.artifact.kind !== "example")) {
56
+ return { status: "absent", invalidReasons: [] };
57
+ }
58
+ const defaultLimit = DEFAULT_QUALITY_PROFILE.contentTokenWarn[document.artifact.kind];
59
+ const estimatedTokens = estimateTokens(document.artifact.content);
60
+ const frontmatter = parseAgentSkillFrontmatter(document.artifact.content);
61
+ const parsedFields = frontmatter.fields.filter(isTokenBudgetField);
62
+ const rawFields = rawTokenBudgetFields(document);
63
+ if (parsedFields.length === 0 && rawFields.length === 0) {
64
+ return {
65
+ status: "absent",
66
+ estimatedTokens,
67
+ defaultLimit,
68
+ effectiveLimit: defaultLimit,
69
+ invalidReasons: [],
70
+ };
71
+ }
72
+ const issues = [];
73
+ const firstDecisionEvidence = (parsedFields[0] ? fieldEvidence(document, parsedFields[0]) : undefined) ??
74
+ rawFields[0]?.evidence ??
75
+ documentLineEvidence(document, 1);
76
+ if (!frontmatter.closed) {
77
+ issues.push({
78
+ reason: "token-budget decision frontmatter must be closed",
79
+ evidence: firstDecisionEvidence,
80
+ });
81
+ }
82
+ else if (!frontmatter.mapping) {
83
+ issues.push({
84
+ reason: "token-budget decision frontmatter must be a YAML mapping",
85
+ evidence: firstDecisionEvidence,
86
+ });
87
+ }
88
+ for (const error of frontmatter.errors) {
89
+ issues.push({
90
+ reason: `token-budget decision metadata has invalid YAML (${error.code})`,
91
+ evidence: documentLineEvidence(document, error.line),
92
+ });
93
+ }
94
+ for (const duplicate of frontmatter.duplicateFields.filter(isTokenBudgetField)) {
95
+ issues.push({
96
+ reason: `${duplicate.key} is declared more than once`,
97
+ evidence: fieldEvidence(document, duplicate),
98
+ });
99
+ }
100
+ const fieldsByKey = new Map();
101
+ for (const key of TOKEN_BUDGET_KEYS) {
102
+ fieldsByKey.set(key, parsedFields.filter((field) => field.key === key));
103
+ }
104
+ const uniqueField = (key) => {
105
+ const fields = fieldsByKey.get(key) ?? [];
106
+ return fields.length === 1 ? fields[0] : undefined;
107
+ };
108
+ const overrideField = uniqueField("token_budget_override");
109
+ const rationaleField = uniqueField("token_budget_rationale");
110
+ const reviewedAtField = uniqueField("token_budget_reviewed_at");
111
+ let overrideLimit;
112
+ let rationale;
113
+ let reviewedAt;
114
+ if (!overrideField) {
115
+ if (rationaleField) {
116
+ issues.push({
117
+ reason: "token_budget_rationale requires token_budget_override",
118
+ evidence: fieldEvidence(document, rationaleField),
119
+ });
120
+ }
121
+ if (reviewedAtField) {
122
+ issues.push({
123
+ reason: "token_budget_reviewed_at requires token_budget_override",
124
+ evidence: fieldEvidence(document, reviewedAtField),
125
+ });
126
+ }
127
+ }
128
+ else {
129
+ if (typeof overrideField.value !== "number" ||
130
+ !Number.isInteger(overrideField.value)) {
131
+ issues.push({
132
+ reason: "token_budget_override must be an integer",
133
+ evidence: fieldEvidence(document, overrideField),
134
+ });
135
+ }
136
+ else if (!Number.isSafeInteger(overrideField.value)) {
137
+ issues.push({
138
+ reason: "token_budget_override must be a safe integer",
139
+ evidence: fieldEvidence(document, overrideField),
140
+ });
141
+ }
142
+ else {
143
+ overrideLimit = overrideField.value;
144
+ if (overrideLimit <= 0) {
145
+ issues.push({
146
+ reason: "token_budget_override must be positive",
147
+ evidence: fieldEvidence(document, overrideField),
148
+ });
149
+ }
150
+ else if (overrideLimit <= defaultLimit) {
151
+ issues.push({
152
+ reason: `token_budget_override must be greater than the default limit of ${defaultLimit}`,
153
+ evidence: fieldEvidence(document, overrideField),
154
+ });
155
+ }
156
+ }
157
+ if (!rationaleField) {
158
+ issues.push({
159
+ reason: "token_budget_rationale must be a non-empty string when an override is present",
160
+ evidence: fieldEvidence(document, overrideField),
161
+ });
162
+ }
163
+ else if (typeof rationaleField.value !== "string" ||
164
+ rationaleField.value.trim().length === 0) {
165
+ issues.push({
166
+ reason: "token_budget_rationale must be a non-empty string",
167
+ evidence: fieldEvidence(document, rationaleField),
168
+ });
169
+ }
170
+ else {
171
+ rationale = rationaleField.value.trim();
172
+ }
173
+ if (reviewedAtField) {
174
+ if (typeof reviewedAtField.value !== "string" ||
175
+ !isIsoDate(reviewedAtField.value)) {
176
+ issues.push({
177
+ reason: "token_budget_reviewed_at must be a valid YYYY-MM-DD date",
178
+ evidence: fieldEvidence(document, reviewedAtField),
179
+ });
180
+ }
181
+ else {
182
+ reviewedAt = reviewedAtField.value;
183
+ }
184
+ }
185
+ }
186
+ if (issues.length === 0 && overrideField && estimatedTokens <= defaultLimit) {
187
+ issues.push({
188
+ reason: `token_budget_override is unnecessary because the asset is within the default limit of ${defaultLimit}`,
189
+ evidence: fieldEvidence(document, overrideField),
190
+ });
191
+ }
192
+ if (issues.length > 0) {
193
+ return {
194
+ status: "invalid",
195
+ estimatedTokens,
196
+ defaultLimit,
197
+ ...(overrideLimit !== undefined ? { overrideLimit } : {}),
198
+ effectiveLimit: defaultLimit,
199
+ ...(rationale ? { tokenBudgetRationale: rationale } : {}),
200
+ ...(reviewedAt ? { tokenBudgetReviewedAt: reviewedAt } : {}),
201
+ invalidReasons: issues.map((issue) => issue.reason),
202
+ evidence: issues[0]?.evidence ?? firstDecisionEvidence,
203
+ };
204
+ }
205
+ if (overrideLimit === undefined || rationale === undefined) {
206
+ return {
207
+ status: "invalid",
208
+ estimatedTokens,
209
+ defaultLimit,
210
+ effectiveLimit: defaultLimit,
211
+ invalidReasons: ["token-budget decision metadata is incomplete"],
212
+ evidence: firstDecisionEvidence,
213
+ };
214
+ }
215
+ return {
216
+ status: "active",
217
+ estimatedTokens,
218
+ defaultLimit,
219
+ overrideLimit,
220
+ effectiveLimit: overrideLimit,
221
+ tokenBudgetRationale: rationale,
222
+ ...(reviewedAt ? { tokenBudgetReviewedAt: reviewedAt } : {}),
223
+ invalidReasons: [],
224
+ evidence: fieldEvidence(document, overrideField),
225
+ };
226
+ }
227
+ function isTokenBudgetField(field) {
228
+ return TOKEN_BUDGET_KEYS.includes(field.key);
229
+ }
230
+ function rawTokenBudgetFields(document) {
231
+ if (document.lines[0]?.replace(/^\uFEFF/, "").trim() !== "---")
232
+ return [];
233
+ const fields = [];
234
+ for (let index = 1; index < document.lines.length; index += 1) {
235
+ const line = document.lines[index] ?? "";
236
+ if (/^---\s*$/.test(line))
237
+ break;
238
+ const match = line.match(/^(token_budget_override|token_budget_rationale|token_budget_reviewed_at)\s*:/);
239
+ if (!match)
240
+ continue;
241
+ fields.push({
242
+ key: match[1],
243
+ evidence: documentLineEvidence(document, index + 1),
244
+ });
245
+ }
246
+ return fields;
247
+ }
248
+ function fieldEvidence(document, field) {
249
+ if (!field)
250
+ return documentLineEvidence(document, 1);
251
+ return {
252
+ path: document.artifact.path,
253
+ startLine: field.startLine,
254
+ endLine: field.endLine,
255
+ snippet: document.lines
256
+ .slice(field.startLine - 1, field.endLine)
257
+ .join("\n"),
258
+ };
259
+ }
260
+ function documentLineEvidence(document, requestedLine) {
261
+ const line = Math.min(Math.max(requestedLine, 1), document.lines.length || 1);
262
+ return {
263
+ path: document.artifact.path,
264
+ startLine: line,
265
+ endLine: line,
266
+ snippet: document.lines[line - 1] ?? "",
267
+ };
268
+ }
41
269
  /** Normalize parsed frontmatter into asset metadata plus validation diagnostics. */
42
270
  export function parseAssetMetadata(document) {
43
271
  const diagnostics = [];
@@ -50,6 +278,7 @@ export function parseAssetMetadata(document) {
50
278
  const lastReviewedAt = optionalText(metadataText(source.values.last_reviewed_at));
51
279
  const reviewCycle = optionalText(metadataText(source.values.review_cycle));
52
280
  const expiresAt = optionalText(metadataText(source.values.expires_at));
281
+ const tokenBudget = parseSupportAssetTokenBudgetDecision(document);
53
282
  const metadata = {
54
283
  tags: operationalListValue(document, source, "tags", diagnostics),
55
284
  whenToUse: operationalListValue(document, source, "when_to_use", diagnostics),
@@ -80,6 +309,11 @@ export function parseAssetMetadata(document) {
80
309
  assignOptional(metadata, "lastReviewedAt", lastReviewedAt);
81
310
  assignOptional(metadata, "reviewCycle", reviewCycle);
82
311
  assignOptional(metadata, "expiresAt", expiresAt);
312
+ if (tokenBudget.status === "active") {
313
+ assignOptional(metadata, "tokenBudgetOverride", tokenBudget.overrideLimit);
314
+ assignOptional(metadata, "tokenBudgetRationale", tokenBudget.tokenBudgetRationale);
315
+ assignOptional(metadata, "tokenBudgetReviewedAt", tokenBudget.tokenBudgetReviewedAt);
316
+ }
83
317
  assignOptionalList(metadata, "appliesTo", operationalListValue(document, source, "applies_to", diagnostics));
84
318
  assignOptionalList(metadata, "focus", operationalListValue(document, source, "focus", diagnostics));
85
319
  assignOptionalList(metadata, "expectedOutputs", operationalListValue(document, source, "expected_outputs", diagnostics));
@@ -97,6 +331,7 @@ export function parseAssetMetadata(document) {
97
331
  }
98
332
  return {
99
333
  metadata,
334
+ tokenBudgetDecision: tokenBudget,
100
335
  metadataFields: source.fields,
101
336
  metadataListItems: source.listItems,
102
337
  diagnostics,
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"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"}
package/dist/model.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import type { ArtifactKind, Evidence, MetadataFieldEvidence } from "./types.js";
1
+ import type { ArtifactKind, AssetOwnership, Evidence, MetadataFieldEvidence } from "./types.js";
2
+ export type { AssetOwnership } from "./types.js";
2
3
  /** Lifecycle state for a skill or context asset. */
3
4
  export type AssetStatus = "experimental" | "stable" | "deprecated" | "archived";
4
5
  /** Artifact kinds Renma keeps in the normalized model. */
@@ -17,6 +18,9 @@ export interface AssetMetadata {
17
18
  lastReviewedAt?: string;
18
19
  reviewCycle?: string;
19
20
  expiresAt?: string;
21
+ tokenBudgetOverride?: number;
22
+ tokenBudgetRationale?: string;
23
+ tokenBudgetReviewedAt?: string;
20
24
  tags: string[];
21
25
  whenToUse: string[];
22
26
  whenNotToUse: string[];
@@ -30,15 +34,6 @@ export interface AssetMetadata {
30
34
  requiresLens?: string[];
31
35
  optionalLens?: string[];
32
36
  }
33
- export interface AssetOwnership {
34
- declaredOwner: string | null;
35
- effectiveOwner: string | null;
36
- source: "declared" | "inherited" | "unowned";
37
- inheritedFrom?: {
38
- id: string;
39
- sourcePath: string;
40
- };
41
- }
42
37
  /** Repository object Renma can catalog, validate, reference, or report on. */
43
38
  export interface Asset {
44
39
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAEhF,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;AAEzD,2EAA2E;AAC3E,MAAM,MAAM,cAAc,GACtB,UAAU,GACV,UAAU,GACV,WAAW,GACX,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,YAAY,GACZ,qBAAqB,GACrB,uBAAuB,GACvB,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,8EAA8E;AAC9E,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzC,sBAAsB,EAAE,OAAO,CAAC;IAChC,iEAAiE;IACjE,SAAS,EAAE,cAAc,CAAC;IAC1B,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;CAC5D;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,MAAM,WAAW,KAAM,SAAQ,KAAK;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK;IACzC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;CACxD;AAED,wFAAwF;AACxF,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,YAAY,CAAC;AAEhD,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,sFAAsF;AACtF,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,YAAY,EAAE,UAAU,EAAE,CAAC;CAC5B"}
package/dist/rules.js CHANGED
@@ -1215,35 +1215,81 @@ function contextBudgetFindings(document) {
1215
1215
  document.artifact.kind !== "example") {
1216
1216
  return [];
1217
1217
  }
1218
- const limit = CONTEXT_TOKEN_LIMITS[document.artifact.kind];
1219
- const estimatedTokens = estimateTokens(document.artifact.content);
1220
- if (estimatedTokens <= limit)
1221
- return [];
1222
- return [
1223
- documentFinding(document, DIAGNOSTIC_IDS.QUAL_SUPPORT_ASSET_TOKEN_BUDGET, "Support asset exceeds token guidance", "quality", "low", `Review whether this ${document.artifact.kind} asset still has one coherent scope. Size alone does not require a split. Consider headings, read conditions, reference depth, mixed responsibilities, and maintained duplication before using \`renma suggest-semantic-split ${document.artifact.path}\`.`, {
1224
- whyItMatters: "Large content assets deserve a low-advisory coherence review, but an intentionally focused asset can remain intact above the threshold.",
1218
+ const tokenBudget = parseAssetMetadata(document).tokenBudgetDecision;
1219
+ const defaultLimit = tokenBudget.defaultLimit ?? CONTEXT_TOKEN_LIMITS[document.artifact.kind];
1220
+ const estimatedTokens = tokenBudget.estimatedTokens ?? estimateTokens(document.artifact.content);
1221
+ const effectiveLimit = tokenBudget.effectiveLimit ?? defaultLimit;
1222
+ const overrideActive = tokenBudget.status === "active";
1223
+ const findings = [];
1224
+ if (tokenBudget.status === "invalid") {
1225
+ const invalidFinding = documentFinding(document, DIAGNOSTIC_IDS.QUAL_INVALID_TOKEN_BUDGET_OVERRIDE, "Support asset has invalid token-budget override metadata", "quality", "low", "Correct or remove the malformed token-budget decision metadata. An override is valid only after a human decides the asset should remain intentionally coherent or ordered; do not add or increase an override merely to make diagnostics pass.", {
1226
+ whyItMatters: "Token-budget overrides record a declared human decision. Malformed, ambiguous, incomplete, orphaned, or unnecessary metadata cannot safely replace the default advisory limit.",
1225
1227
  constraints: [
1226
- "Do not introduce runtime context resolution.",
1227
- "Do not create prompt packages.",
1228
- "Do not split based on size alone.",
1229
- "Preserve concrete procedural steps losslessly if a semantic split is chosen.",
1230
- "Keep static references from the parent file or SKILL.md to every split part.",
1231
- ],
1232
- verificationSteps: [
1233
- "Run renma scan.",
1234
- "Run the repository-specific validation or test command, if one exists.",
1235
- "Confirm the finding is resolved or reduced and every split part remains reachable.",
1228
+ "Do not automatically insert token-budget override metadata.",
1229
+ "Do not treat the override as a general ignore mechanism.",
1230
+ "Ask whether a meaningful split preserves coherence and execution order before proposing an override.",
1236
1231
  ],
1237
- llmHint: "Review scope, headings, read conditions, reference depth, responsibilities, and duplication. Propose a semantic split only when those signals justify it.",
1232
+ verificationSteps: ["Run renma scan."],
1233
+ llmHint: "Report the invalid fields to the user. First ask whether the asset can be split along meaningful boundaries without harming coherence or execution order. Only if the user confirms it should remain long should you repair explicit override metadata with their rationale.",
1238
1234
  details: {
1239
- measured: estimatedTokens,
1240
- limit,
1241
- unit: "estimated_tokens",
1235
+ estimatedTokens,
1236
+ defaultLimit,
1237
+ ...(tokenBudget.overrideLimit !== undefined
1238
+ ? { overrideLimit: tokenBudget.overrideLimit }
1239
+ : {}),
1240
+ effectiveLimit,
1241
+ overrideActive,
1242
+ ...(tokenBudget.tokenBudgetRationale
1243
+ ? { tokenBudgetRationale: tokenBudget.tokenBudgetRationale }
1244
+ : {}),
1245
+ invalidReasons: tokenBudget.invalidReasons,
1242
1246
  profile: QUALITY.profile,
1243
1247
  measurement: "full_file",
1244
1248
  },
1245
- }),
1246
- ];
1249
+ });
1250
+ findings.push({
1251
+ ...invalidFinding,
1252
+ ...(tokenBudget.evidence ? { evidence: tokenBudget.evidence } : {}),
1253
+ });
1254
+ }
1255
+ if (estimatedTokens <= effectiveLimit)
1256
+ return findings;
1257
+ findings.push(documentFinding(document, DIAGNOSTIC_IDS.QUAL_SUPPORT_ASSET_TOKEN_BUDGET, "Support asset exceeds token guidance", "quality", "low", `Ask the user whether this ${document.artifact.kind} asset can be split along meaningful boundaries without harming coherence or execution order. Split it only after the user agrees. If the user confirms it should remain intentionally long, they may record an explicit token-budget override and rationale; do not recommend an override merely to make this diagnostic pass.`, {
1258
+ whyItMatters: "Large content assets deserve a low-advisory coherence review. A meaningful split is preferred when it preserves semantic boundaries, while an explicit override can record the user's declared decision for an intentionally coherent or ordered long-form asset.",
1259
+ constraints: [
1260
+ "Do not introduce runtime context resolution.",
1261
+ "Do not create prompt packages.",
1262
+ "Do not split based on size alone.",
1263
+ "Require the user's decision before splitting or treating the asset as intentionally long.",
1264
+ "Do not automatically add or increase token-budget override metadata.",
1265
+ "Preserve concrete procedural steps losslessly if a semantic split is chosen.",
1266
+ "Keep static references from the parent file or SKILL.md to every split part.",
1267
+ ],
1268
+ verificationSteps: [
1269
+ "Run renma scan.",
1270
+ "Run the repository-specific validation or test command, if one exists.",
1271
+ "Confirm every agreed split part remains reachable, or that an intentional-long decision uses valid declared metadata.",
1272
+ ],
1273
+ llmHint: "Ask the user whether the asset can be split along meaningful boundaries without harming coherence or execution order. Split only with agreement. If the user confirms it must remain intentionally long, use their explicit rationale for a valid override; never add one only to silence the finding.",
1274
+ details: {
1275
+ estimatedTokens,
1276
+ defaultLimit,
1277
+ ...(tokenBudget.overrideLimit !== undefined
1278
+ ? { overrideLimit: tokenBudget.overrideLimit }
1279
+ : {}),
1280
+ effectiveLimit,
1281
+ overrideActive,
1282
+ ...(tokenBudget.tokenBudgetRationale
1283
+ ? { tokenBudgetRationale: tokenBudget.tokenBudgetRationale }
1284
+ : {}),
1285
+ measured: estimatedTokens,
1286
+ limit: effectiveLimit,
1287
+ unit: "estimated_tokens",
1288
+ profile: QUALITY.profile,
1289
+ measurement: "full_file",
1290
+ },
1291
+ }));
1292
+ return findings;
1247
1293
  }
1248
1294
  function profileFindings(document) {
1249
1295
  if (document.artifact.kind !== "profile")