Skip to content

Renma Quality Profile

The User Manual's authoritative metadata table owns the complete field inventory. This document owns the deterministic quality thresholds and the deeper token-budget decision policy.

renma-quality is Renma's internal quality-profile family. Reports identify the active profile as renma-quality@<Renma package version>, derived from package.json at build time. The source is src/quality-profile.ts. The current implementation does not expose quality overrides in Renma configuration; fixed defaults preserve comparable repository reports. The internal shape is versioned so later releases can add declared overrides without scattering constants across rules.

estimated_tokens means Renma's deterministic, model-neutral estimate. Latin words, identifiers, URLs, and paths are lexical units; consecutive CJK text is grouped in two-code-point units; other punctuation is grouped in units of up to three code points. It is not an exact token count for any model. Skill budgets measure Markdown after frontmatter. Content-asset budgets measure the full file.

Contexts, references, profiles, and examples may record a declared human decision and effective limit with top-level token_budget_override and token_budget_rationale metadata. The override must be a positive safe integer greater than the asset kind's unchanged default. Optional token_budget_reviewed_at must be a real YYYY-MM-DD date. Renma does not add these fields automatically. When an asset exceeds its default, an agent should first ask whether it can be split along meaningful boundaries without harming coherence or execution order, and split only after the user agrees. An override is appropriate only when the user confirms the long-form asset is intentionally coherent or ordered; it is not a general ignore mechanism. Renma validates the declaration but cannot prove that human review occurred.

Agent Skills requirements and recommendations

FieldValueUnit and triggerSeveritySourceRationale and false-positive riskDiagnosticReviewedConfigurable later
agentSkills.nameMaxChars64characters; above is invaliderrorAgent Skills specificationPortable identity limitAS-SKILL-INVALID-NAME0.18.0no
agentSkills.descriptionMinChars1characters; below is invaliderrorAgent Skills specificationRequired discovery metadataAS-SKILL-MISSING-DESCRIPTION / AS-SKILL-INVALID-DESCRIPTION0.18.0no
agentSkills.descriptionMaxChars1,024characters; above is invaliderrorAgent Skills specificationPortable hard limitAS-SKILL-DESCRIPTION-TOO-LONG0.18.0no
agentSkills.compatibilityMaxChars500characters; above is invaliderrorAgent Skills specificationKeeps optional environment requirements conciseAS-SKILL-COMPATIBILITY-TOO-LONG0.18.0no
agentSkills.skillBodyRecommendedMaxTokens5,000recommended body tokensmedium Renma advisory aboveAgent Skills recommendationLarge focused workflows can still be validQUAL-SKILL-TOKEN-BUDGET0.18.0no
agentSkills.skillRecommendedMaxLines500recommended SKILL.md linesdocumented review evidenceAgent Skills recommendationLine count alone does not prove mixed responsibilitynone0.18.0no
agentSkills.recommendedReferenceDepth1resource hop from SKILL.md; Renma accepts one additional index hoplow beyond two static hopsAgent Skills recommendation plus Renma reachability policyAn index may be useful; deep chains are easy to missSUPPORT-DEEP-REFERENCE-CHAIN0.18.0possibly

The Agent Skills body has no prescribed format. Step-by-step instructions, examples, edge cases, short commands, and the optional scripts/, references/, and assets/ directories are valid. See the official specification and description guidance.

Renma workflow and content advisories

FieldValueUnit and triggerSeveritySourceRationale and false-positive riskDiagnosticReviewedConfigurable later
descriptionMinChars0characters; disablednoneRenmaLength does not establish selection clarityQUAL-SHORT-DESCRIPTION removed from default behavior0.18.0possibly
skillTokenWarn2,000estimated_tokens; body abovelowRenmaEarly progressive-disclosure review; focused workflows may exceed itQUAL-SKILL-TOKEN-BUDGET0.18.0possibly
skillTokenStrongWarn5,000estimated_tokens; body abovemediumAgent Skills recommendation with Renma severityStronger review, not a required splitQUAL-SKILL-TOKEN-BUDGET0.18.0possibly
contentTokenWarn.context4,000estimated_tokens; full file above effective limitlowRenmaPrefer an agreed semantic split when coherence survives; intentionally coherent or ordered assets may record a declared decisionQUAL-SUPPORT-ASSET-TOKEN-BUDGET0.18.1metadata only after human decision
contentTokenWarn.reference5,000samelowRenmaDetailed local references may legitimately be longsame0.18.1same
contentTokenWarn.profile2,000samelowRenmaProfiles should remain reviewable overlayssame0.18.1same
contentTokenWarn.example2,500samelowRenmaComplete examples may legitimately be longsame0.18.1same
lowHeadingDensityMinTokens400body estimated_tokens, with fewer than 2 headingslowRenmaLong prose can still be intentionally linearQUAL-LOW-HEADING-DENSITY0.18.0possibly
lowHeadingDensityMinHeadings2headingslowRenmaNavigation heuristic onlysame0.18.0possibly

Metadata advisories

FieldValueUnit and triggerSeveritySourceRationale and false-positive riskDiagnosticReviewedConfigurable later
frontmatterMaxLines48lines; abovelowRenmaMetadata should be a compact indexMETA-FRONTMATTER-TOO-LARGE0.18.0possibly
frontmatterMaxChars4,096characters; abovelowRenmaSeparate from Agent Skills validitysame0.18.0possibly
metadataListItemMaxChars256characters per JSON-array or YAML-list element; abovelowRenmaTags and prose routing should be compact; IDs, URLs, and paths are exempt where practicalMETA-LIST-ITEM-TOO-LONG0.18.0possibly

Reuse candidate advisories

DetectorEligibility and evidenceSeveritySourceRationale and false-positive riskDiagnosticReviewedConfigurable later
reusableContextCandidate60 lines or 800 body estimated_tokens; 4 distinct reusable signals; at least one reusable-knowledge signallowRenmaVerification, Examples, Edge Cases, Risks, Do not, Always, Never, and procedure headings do not qualify by themselvesQUAL-SKILL-MIXED-RESPONSIBILITY0.18.0possibly
sharedSupportCandidate80 lines or 1,200 full-file estimated_tokens; 3 reusable headings; 4 reusable phraseslowRenmaPromotion still requires cross-Skill use, duplication, independent lifecycle, or source-of-truth evidenceMAINT-SUPPORT-ASSET-SHARED-CONTEXT-CANDIDATE0.18.0possibly

Repeated-context evidence

FieldDefaultTriggerSeveritySourceFalse-positive controlDiagnosticReviewedConfigurable later
repeatedContext.exactSectionMinTokens40normalized section estimated tokens at or abovemediumRenmacombined with character and file floorsMAINT-REPEATED-SECTION0.18.0possibly
repeatedContext.exactSectionMinChars240normalized section characters at or abovemediumRenmacombined with token and file floorssame0.18.0possibly
repeatedContext.exactSectionMinFiles2files containing the exact sectionmediumRenmarequires maintained duplicationsame0.18.0possibly
repeatedContext.exactCodeMinChars80normalized fenced-code characters at or abovemediumRenmacombined with token and file floorsMAINT-REPEATED-CODE-BLOCK0.18.0possibly
repeatedContext.exactCodeMinTokens10normalized fenced-code estimated tokens at or abovemediumRenmacombined with character and file floorssame0.18.0possibly
repeatedContext.exactCodeMinFiles2files containing the exact blockmediumRenmarequires maintained duplicationsame0.18.0possibly
repeatedContext.headingMinChars24normalized heading characters at or abovelowRenmaexcludes short generic headingsMAINT-REPEATED-HEADING0.18.0possibly
repeatedContext.headingMinTokens3normalized heading estimated tokens at or abovelowRenmaexcludes terse boilerplatesame0.18.0possibly
repeatedContext.headingMinFiles3files containing the same headinglowRenmaheading equality is review evidence onlysame0.18.0possibly
repeatedContext.tokenShingleTokens40estimated tokens in one normalized sequencemediumRenmacommon boilerplate excluded; near duplicates collapsedMAINT-REPEATED-CONTEXT-PATTERN0.18.0possibly
repeatedContext.tokenShingleMinFiles3files containing the sequencemediumRenmarequires broader repeated evidencesame0.18.0possibly
repeatedContext.tokenShingleNearbyLineWindow8source linesn/aRenmacollapses overlapping nearby matches from the same repeated passagesame0.18.0possibly
repeatedContext.tokenShingleMinUniqueTokens12unique estimated-token unitsmediumRenmaexcludes repetitive boilerplate sequencessame0.18.0possibly
repeatedContext.tokenShingleMinUsefulTokens14non-boilerplate estimated-token unitsmediumRenmarequires meaningful lexical evidencesame0.18.0possibly
repeatedContext.tokenShingleMinChars140normalized charactersmediumRenmaexcludes compact coincidental matchessame0.18.0possibly
repeatedContext.findingCap10findings per repeated-context categoryn/aRenmapresentation only; prevents category dominationall repeated-context IDs0.18.0possibly
repeated linksdisabledsame target repeatednoneRenmalinks to the same official source are normalMAINT-REPEATED-LINK removed from default findings0.18.0possibly

Readiness policy

Readiness starts at 100. Specification failures, high or critical security findings, diagnostic errors, and unresolved required graph closure remain blocking even when the numeric score would otherwise pass. Deprecated or archived assets have no existence penalty.

The 0.23.0 Skill Discovery checks are visibility-first and have no separate score weight. Partial or not-adopted coverage never subtracts points, and a cycle warning alone never creates a hard failure. Authoritative coverage and declared-route problems reuse existing prepared diagnostics as compact check evidence; those diagnostics are not copied into Readiness diagnostics, so the new checks cannot subtract a second time for the same condition. Existing Readiness penalties and thresholds below are unchanged.

FieldDefaultUnit and triggerEffectSourceRationale and false-positive riskRelated check or diagnosticReviewedConfigurable later
readiness.blockingDiagnosticPenalty40points; one or more diagnostic errorssubtract once and fail checkRenmaStructural errors require correction; diagnostic aggregation avoids multiplying one root causediagnostics.errors0.18.0possibly
readiness.unresolvedRequiredGraphPenalty30points; one or more unresolved required edgessubtract once and fail checkRenmaRequired context closure is operationally necessary; optional edges are excludedgraph.unresolved_edges0.18.0possibly
readiness.ownershipMaximumPenalty20points; proportional to unowned assetssubtract 0-20RenmaOwnership supports review, but small or imported repositories may intentionally omit itownership.coverage0.18.0possibly
readiness.emptyInventoryPenalty10points; no cataloged assetssubtract onceRenmaUsually signals a wrong root or incomplete repository; an intentionally empty repository can be validassets.minimum_inventory0.18.0possibly
readiness.workflowClarityPenalty10points; workflow clarity warningsubtract onceRenmaMissing routing clarity impairs use; prose phrasing may evade static recognitionworkflow.clarity and related RN-SKILL-* diagnostics0.18.0possibly
readiness.workflowOptionalContextPenalty5points; unusable optional contextsubtract onceRenmaOptional context should resolve but does not block the core workflowworkflow.optional_context0.18.0possibly
readiness.workflowRequiredInputsPenalty5points; required inputs are unclearsubtract onceRenmaReview signal only because some Skills require no external inputsworkflow.required_inputs0.18.0possibly
readiness.workflowCompletionCriteriaPenalty10points; completion criteria are unclearsubtract onceRenmaReview signal only because completion language varies by workflowworkflow.completion_criteria0.18.0possibly
readiness.layoutWarningPenalty5points per warning layout/path checksubtract per checkRenmaKeeps resolvable path and layout debt visible without making one advisory blockinglayout.* / paths.helper_commands0.18.0possibly
readiness.layoutFailurePenalty15points per failing layout/path checksubtract per check and failRenmaStrict layout failures can make repository evidence unusablelayout.* / paths.helper_commands0.18.0possibly
readiness.readyMinimumScore90score; at or above with no failing checkreadyRenmaMaintains a high bar without making subjective advisories blockingReadiness level0.18.0possibly
readiness.needsAttentionMinimumScore70score; belownot_ready; 70-89 is needs_attentionRenmaSeparates accumulated review debt from isolated advisoriesReadiness level0.18.0possibly

Security proximity, scan operations, and presentation

FieldDefaultUnit and triggerEffectSourceRationale and false-positive riskRelated check or diagnosticReviewedConfigurable later
security.precedingLineFastPath2preceding source linessupplements structural guard associationRenmaPreserves nearby-guard detection while headings, paragraphs, and list structure reduce formatting false positivesapplicable SEC-* command diagnostics0.18.0no
scan.defaultMaxFileSizeBytes524,288bytes per discovered filebound reading and hashing workRenma operational defaultProtects scans from unexpectedly large files; larger legitimate files may require existing scan configurationdiscovery diagnostic0.18.0already configurable
scan.defaultMaxDepth16directory levelsbound discovery depthRenma operational defaultPrevents runaway traversal; unusually deep repositories may need existing scan configurationdiscovery diagnostic0.18.0already configurable
scan.defaultConcurrency16concurrent file operationsbound scan concurrencyRenma operational defaultBalances throughput and file-descriptor pressurenone0.18.0already configurable
presentation.markdownReadinessFindingCap50findings in Readiness Markdowntruncate presentation onlyRenmaKeeps human reports readable without changing JSON evidence or scoreReadiness Markdown0.18.0possibly
presentation.topSummaryItemCap10items in compact summariestruncate presentation onlyRenmaAvoids unbounded summaries; reviewers can use full reportsreport summaries0.18.0possibly

Structural guard proximity includes the same constraint or safety section, the same list item, a directly associated paragraph, or a parent Human Approval, Safety, or Constraints heading. The two-line fast path does not cross a Markdown heading or frontmatter boundary, so a guard in an unrelated peer section cannot authorize a later action. Binary snippets are never exposed. Scan operational limits retain their existing public config fields; none of the quality or Readiness thresholds above are currently configurable.