chore: release/repo hygiene, doc truth-up + drift gate, gate governance - #280
chore: release/repo hygiene, doc truth-up + drift gate, gate governance#280qnbs wants to merge 3 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the βοΈ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
β¨ Finishing Touchesπ§ͺ Generate unit tests (beta)
Comment |
9425d0e to
645d3f6
Compare
π CodeAnt Quality Gate ResultsCommit: β Overall Status: PASSEDQuality Gate Details
|
645d3f6 to
27016cf
Compare
96a888c to
9c1bebb
Compare
β¦h CONTRIBUTING files - README.md: removed the duplicate codecov badge (kept the more informative `&label=Coverage` one) and the CII Best Practices badge, which had a literal `projects/XXXX` placeholder (broken image, dead link) β the project was never registered. Added a TODO.md entry with the registration URL; that's an external, interactive signup, so it stays a maintainer action, not something this pass does automatically. - Added .github/CODE_OF_CONDUCT.md (Contributor Covenant 2.1), with an enforcement-contact section that mirrors SECURITY.md's pattern (GitHub Private Vulnerability Reporting, no hardcoded personal email). - .github/CONTRIBUTING.md already referenced a Code of Conduct but linked externally to contributor-covenant.org instead of the new in-repo file β repointed it. - The root CONTRIBUTING.md β the one README.md actually links to β had no Code of Conduct section at all. Added one, linking to the new file. Investigated (no code changes, per the workstream's stop-and-ask boundaries): - The v1.5.0 GitHub release sits chronologically between v1.20.0 and v1.21.0 despite its lower semver, AND its 6 assets are all named "StoryCraft.Studio_1.20.0_..." β the project's pre-rebrand name (rebrand to WorldScript Studio shipped in v1.23.0) with a version that doesn't match the release tag at all. Flagged for the final report; deleting/retitling a public release is a maintainer decision. - Issue #60 (vendor-fork audit, "permanent reminder β do not close") already has a 2026-07-28 maintainer comment documenting the audit as done, and `pnpm run verify:vendor` passes all 12 invariants. No action needed β it's correctly staying open per its own instruction.
β¦ drift gate ROADMAP.md still marked v1.24 as "(PLANNED)" though v1.24.0 (2026-06-21) and v1.24.1 (2026-07-28) had both already shipped, and gave the locale count as 17 β stale since the 11->17 expansion (v1.24.0) plus ru/ko (landed the next day, before v1.24.1). Same "17 locales" drift was independently present in docs/TRANSLATION-GUIDE.md (also missing 1 of 21 modules β desktop.json β from its module list and count), the root CONTRIBUTING.md (the one README.md actually links to), .github/copilot-instructions.md (2 occurrences), and docs/i18n/AUDIT_AND_IMPROVEMENT_PLAN.md's "current state" section. Fixed all of them; left every CHANGELOG.md and dated AUDIT.md/TODO.md historical entry untouched β they correctly describe what was true at a past release. Added scripts/check-doc-metrics.mjs (wired into ci.yml's quality job as `pnpm run docs:check`) so this class of drift fails CI instead of silently accumulating again. It computes the actual locale count, key count (dedup'd the same way check-i18n-keys.mjs does), and latest released version tag, then scans README/ROADMAP/TODO/TRANSLATION-GUIDE/CONTRIBUTING for stale numbers or a "vX.Y.Z ... PLANNED" claim for an already-released version. Historical sections are exempt (Keep-a-Changelog `## [x.y.z]`, `## vX.Y.Z ... RELEASED ...`, a heading suffixed with an emoji checkmark, a `**Status:** β Released/Completed` line just below a heading, or this repo's own TODO.md "β = done" bullet convention) β the first version only recognized the Keep-a-Changelog/RELEASED-heading shapes and produced 26 false positives against TODO.md/ROADMAP.md's other historical conventions; broadened it before wiring the gate in. tests/unit/checkDocMetrics.test.ts covers the exclusion heuristic directly (the plan's explicit requirement β an untested exclusion rule turns a drift gate into noise).
β¦n, mutation-testing status - Re-pinned token-audit-baseline.json to the actual measured total (160, down from a stale 165 dated 2026-06-14) after WS-1..6 landed. Ratchets down only, per the project's hard rule against loosening a quality gate. - Added scripts/check-coverage-ratchet.mjs: reads coverage/coverage-summary.json (added the `json-summary` reporter to vitest.config.ts β it wasn't being generated at all) and suggests raising a threshold when the measured value sits 2+ points above it, matching the "3 green runs, max 5 pts/quarter" rule already documented as a comment in vitest.config.ts but never mechanized. Wired into ci.yml as `continue-on-error: true` β informational only, never blocks the build; the ratchet decision stays with the maintainer. - docs/CODE_QUALITY.md: added a Suppression Reduction Plan grouping all 33 noExplicitAny suppressions (of 52 total, at an exact-match baseline with no headroom) into clusters by root cause and effort β no code changes, visibility only. - docs/CI.md: corrected three places that still described Stryker mutation testing as part of the active `ci.yml` job graph (job-graph diagram, the `mutation` job's table row, and the CI-tier table) β it was removed from the merge pipeline on 2026-06-02 and now runs only via manual `workflow_dispatch` on mutation.yml. Documented why, how to trigger it, and the re-integration criterion.
9c1bebb to
aadad0e
Compare
|
This PR was auto-closed by GitHub when PR #279 merged (its base, |
Summary
Stacked on #279 (OpenRouter). Three related hygiene workstreams:
WS-5 β Release & repo hygiene
projects/XXXXplaceholder β broken image, dead link); added a TODO.md entry with the registration URL (external signup, maintainer action)..github/CODE_OF_CONDUCT.md(Contributor Covenant 2.1); fixed.github/CONTRIBUTING.md's external CoC link to point at it; added a missing CoC section to the rootCONTRIBUTING.md(the one README.md actually links to).v1.5.0GitHub release's 6 assets are all namedStoryCraft.Studio_1.20.0_...β the pre-rebrand product name with a mismatched version, published far out of chronological order. Flagged for maintainer decision (see final report). Issue chore(security): upstream y-webrtc diff check β vendor fork auditΒ #60 already has a maintainer comment confirming the audit is done; no action taken, it's correctly staying open per its own "permanent reminder" note.WS-6 β Doc truth-up + drift gate
docs/TRANSLATION-GUIDE.md(also missingdesktop.jsonfrom its module list), rootCONTRIBUTING.md,.github/copilot-instructions.md, anddocs/i18n/AUDIT_AND_IMPROVEMENT_PLAN.md. Left every CHANGELOG.md/dated AUDIT.md/TODO.md historical entry untouched.scripts/check-doc-metrics.mjs(pnpm run docs:check, wired into CI) β computes actual locale/key counts and the latest release tag, then fails if a target doc states a different number or an already-released version is still marked "PLANNED". Historical sections are exempt via a heuristic covering this repo's several "done" conventions; the exemption logic has its own test file per the plan's explicit requirement.WS-7 β Gate governance
token-audit-baseline.jsonto the actual measured value (160, down from a stale 165) β ratchets down only.scripts/check-coverage-ratchet.mjs(non-blocking,continue-on-error: truein CI) β suggests raising a coverage threshold when the measured value has 2+ points of headroom, mechanizing a rule that existed only as a comment invitest.config.ts. Added thejson-summaryreporter socoverage-summary.jsonactually gets produced.docs/CODE_QUALITY.md: added a Suppression Reduction Plan grouping all 33noExplicitAnysuppressions by cluster/effort (visibility only, no code changes).docs/CI.md: corrected 3 places still describing Stryker as part of the activeci.ymlpipeline β it was removed 2026-06-02 and runs only via manualworkflow_dispatch.Test plan
pnpm run lint/ typecheck β cleanpnpm run docs:checkβ new gate passes; verified it catches injected drift (tested against a corrupted README, then reverted)pnpm run token:auditβ 160 β€ 160 (re-pinned baseline)pnpm run i18n:check/parity:checkβ unaffected, still greentests/unit/checkDocMetrics.test.tsβ 10 tests covering the historical-exclusion heuristicpnpm run build && pnpm run bundle:budgetβ greenπ€ Generated with Claude Code