fix(skills): report unavailable release claims as unverified #113
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/report-unverified-release-claims"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Claims whose documented-release source can't be read are now reported as unverified, instead of being called drift or silently left out of the coverage statement.
Addresses the report-location finding in #109.
Review
01M4DR66EDKBAK9PV7MYR2EB6Z— headb604c074194ba93536540d8f4a17bd3f6f300f1bReview — j4k-oss/agent-skills @
2e28781874Scope: diff against base tree
8e004ccf90c2Status: dispatched — coverage complete (3/3 slots terminal)
Facts: current review-wide projection
Computed under:
Findings (1)
low — The catalog description repeats the audit outcome and routing synonyms
01M4DRA8H67T1XCY5YBNNNTKNXskills/verify-doc-drift/SKILL.md(snippet)01M4DRBB777ZKD15T0HRM62C1Q· valid: The exact-grounded snippet shows the description opening with a task summary ('Audit a repository's documentation against its source code and fix the factual drift') before 'Use when', then restating the same intent in a 'Triggers on' list of paraphrases. The installed skill-packaging reference says a capability description is a routing rule that begins with 'Use when …', does not describe the skill's method or contents, and costs catalog context on every load; it also says each literal phrase acts as an independent trigger and belongs only when that phrase alone identifies a match, which generic phrases such as 'audit documentation' do not. The fix direction lives in the body, so cutting it from the description loses no routing boundary. 'Repository documentation' still covers READMEs, CONTEXT.md, ADRs, and standards, so the proposed replacement keeps the selection intent. One caveat: the replacement adds 'including source doc-comments and examples', which the original description does not contain. Only the reviewer's report that they read the body supports that scope, so keep the clause only if the body really covers doc-comments. That does not affect whether the defect is real. The prior adjudication 01M4DR8EQ4172TVEDX6JA2F51H on the same snippet reached valid for the same reasons. Low severity is appropriate.Other claims
Coverage
Coverage pass: 01M4DR6M13QAJ88Q2K9HPDS3AH
Accounting: complete
Slot health: healthy
@ -27,3 +27,3 @@## The per-unit audit loopSplit the docs into units — root docs (README, standards, glossary, ADRs) and one unit per package/app (its README + CONTEXT + ADRs + source doc-comments). For each unit: read the docs in full, then read the corresponding source, **following imports to the definition**, and check each claim. For versioned documentation, read the source for its documented release; if that source is unavailable, record a proof gap rather than inferring drift from current code. Require a concrete citation — `file:line` plus a short quoted snippet — for every finding: the contradicting source line for `incorrect`/`code-drift`, the canonical doc location for a `duplicate`, the doc line itself for an `obvious`. No citation, no finding. Returning zero findings for accurate docs is the correct outcome; do not pad.Split the docs into units — root docs (README, standards, glossary, ADRs) and one unit per package/app (its README + CONTEXT + ADRs + source doc-comments). For each unit: read the docs in full, then read the corresponding source, **following imports to the definition**, and check each claim. For versioned documentation, read the source for its documented release; if that source is unavailable, list the claim as unverified in the report rather than inferring drift from current code. Require a concrete citation — `file:line` plus a short quoted snippet — for every finding: the contradicting source line for `incorrect`/`code-drift`, the canonical doc location for a `duplicate`, the doc line itself for an `obvious`. No citation, no finding. Returning zero findings for accurate docs is the correct outcome; do not pad.high — Audit-loop citation rule lists every finding category instead of attaching the citation to each category's definition
lens
restated-sets· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M42JE53MH769BAEQ2BTCHQFRof review01M42JAMB37R0G59RRZTRT3Y60@ -74,3 +74,3 @@# OutputA severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State the clean bill of health too — which claims verified — so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.A severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State which claims verified and which could not be checked, so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.low — Changed text calls the same uncheckable claims "unverified" in the audit loop but "could not be checked" in Output
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M42JFG15QBTYVBQ61AWK7SVJof review01M42JAMB37R0G59RRZTRT3Y60Fixed in
4e4199e72d: audit loop and coverage output both call unavailable-source claims unverified.Citation-map duplication (claim
01M42JE53MH769BAEQ2BTCHQFR, including duplicate claims01M42JEE9DD8J64X5QPYR7HQ8Yand01M42JF93ZG8KQANNP3ZSMVVYP) is pre-existing and verified as repeated category/citation wording. It is scope-deferred outside this bounded unavailable-release-source report repair. No category-definition restructuring is adopted, and no fix or disproof is claimed.Current review
01M42JAMB37R0G59RRZTRT3Y60report-only medium01M42JFS1SCEG9B66VV07DQFS8: tracked in #114. Actual main already assigns ADR changes toproject-docs; the child only declares delivery and explicitly loads that existing contract after the user changes a decision. It targets main independently and preserves accepted/status-less/proposed ADR authority and the user's gate. It is not merged; #113 is not claimed fixed by the child.Report-only high
01M42JG3HEXSGXYNDJWAVZXN73: the existing frontmatter repeats categories and describes method. This is the same packaging cleanup already retained as scope-deferred on #110, outside minimal composition. It remains unfixed, not disproved.Report-only low
01M42JGBB4X7JJFBV97H3Q6XM2: opening fix-direction wording repeats its detailed section. It is pre-existing wording cleanup and scope-deferred; no authority rule is removed and no fix is claimed.The three report-only claims have no corresponding inline anchors in the stable surface. No per-claim native transitions are invented. Scoped low
01M42JFG15QBTYVBQ61AWK7SVJis fixed in4e4199e72d6b5f8a31f82661684ddaaa37d06b7f: the coverage statement and audit loop both use "unverified". Review of that new head is still required.@ -74,3 +74,3 @@# OutputA severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State the clean bill of health too — which claims verified — so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.A severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State which claims verified and which are unverified, so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.high — Output and the audit loop each restate the per-category citation mapping across all four finding categories
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M42JW3A9KEM17AVHRYYPQDSEof review01M42JSA8391GTPPAJHXEX3YJVCurrent claim
01M42JW3A9KEM17AVHRYYPQDSEand its two duplicate-of claims repeat the verified pre-existing citation-mapping cleanup already recorded for #112182. This remains scope-deferred outside the bounded unavailable-release-source coverage repair. No category/citation restructuring is adopted, and the repeated mappings remain unfixed. This disposition records the explicit user scope limitation, not empirical disproof or a correction delivered by this PR.@ -80,3 +80,3 @@# OutputA severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State the clean bill of health too — which claims verified — so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.A severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State which claims verified and which are unverified, so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.medium — Citation guidance recopies the finding-category set
lens
restated-sets· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M484A3EY918NDMKQ95QRPVSVof review01M4843PG2WYFJPWKJVXKCPX7VClaim
01M484A3EY918NDMKQ95QRPVSV(and its duplicate01M484C5BWJX849DQSREEPZ777) is valid and pre-existing: the citation mapping is restated in the audit loop and inOutput. Tracked in #126, which moves each category's citation into its definition and points the audit loop at it.Outputis covered by #121. Not fixed in this PR.Report-only claims of review
01M4843PG2WYFJPWKJVXKCPX7V(headcb70087):01M484ATDPD0NT22JB7SXTP4B7(description recopies the categories): pre-existing, tracked in #119.01M484BBF5KCK3959HK889J1MF(verification gate rejects documentary evidence): pre-existing, tracked in #121, #122 and #124, which overlap.None is fixed in #113. This PR stays stacked on #109 and is unchanged.
cb70087a88595fbb4569@ -82,3 +82,3 @@# OutputA severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State the clean bill of health too — which claims verified — so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.A severity-ranked report: for each confirmed finding give the doc `file:line`, the category, the claim, its citation (contradicting code for `incorrect`/`code-drift`, the canonical doc for a `duplicate`, the doc line for an `obvious`), and the precise fix. Group by severity (a non-compiling example or a runtime-crashing snippet outranks a stale dependency label). State which claims verified and which are unverified, so the user knows the coverage. Then apply the confirmed fixes; open a PR only when the user asked for one rather than local edits or work inside an existing PR.medium — The output contract recopies the category-specific citation rules
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M4D9Z1WTWV4X4G2R6Z8MWRYXof review01M4D9TJBR3XEQ2BG1FXN2T6WFAlready fixed on main in
de47351(#127): the Output paragraph now says "its citation (as the per-unit audit loop requires)". Merged into this branch in0c1b135. The companion catalog-description finding in the same report (claim 01M4D9Y9SVRXEVMVPQYJ008DNH) is likewise already fixed on main in664392a(#119).@ -31,3 +31,3 @@## The per-unit audit loopSplit the docs into units — root docs (README, standards, glossary, ADRs) and one unit per package/app (its README + CONTEXT + ADRs + source doc-comments). For each unit: read the docs in full, then read the corresponding source, **following imports to the definition**, and check each claim. For versioned documentation, read the source for its documented release; if that source is unavailable, record a proof gap rather than inferring drift from current code. Require a concrete citation — `file:line` plus a short quoted snippet — for every finding: the contradicting source line for `incorrect`/`code-drift`, the canonical doc location for a `duplicate`, the doc line itself for an `obvious`. No citation, no finding. Returning zero findings for accurate docs is the correct outcome; do not pad.Split the docs into units — root docs (README, standards, glossary, ADRs) and one unit per package/app (its README + CONTEXT + ADRs + source doc-comments). For each unit: read the docs in full, then read the corresponding source, **following imports to the definition**, and check each claim. For versioned documentation, read the source for its documented release; if that source is unavailable, list the claim as unverified in the report rather than inferring drift from current code. Require a concrete citation — `file:line` plus a short quoted snippet — for every finding: the contradicting source line for `incorrect`/`code-drift`, the canonical doc location for a `duplicate`, the doc line itself for an `obvious`. No citation, no finding. Returning zero findings for accurate docs is the correct outcome; do not pad.medium — The citation rule recopies the complete finding-category set
lens
writing-quality· armdefault· tally 1 valid / 0 invalid / 0 uncertainclaim
01M4DKV6E92QC95RE571H0G8JYof review01M4DKQQ14XP5JAJ8GS3PMER2VAlready fixed on main in
d152f38(#126), which moved each category's citation into its definition and left this rule pointing at "Finding categories". Merged into this branch inb604c07; the sentence no longer lists the categories.Report-only low
01M4DRA8H67T1XCY5YBNNNTKNXof review01M4DR66EDKBAK9PV7MYR2EB6Z(headb604c07): theverify-doc-driftdescription does open with a task summary and restate the intent in the "Triggers on" list. I verified this against currentmain, where the text is unchanged. It is wording in lines this PR does not touch, so it is not fixed here. It is tracked in #129, which rewrites the description to state only when to use the skill. No fix is claimed in #113, and #129 is not merged.