Put every guide on the map, and run the checks that ran for nobody - #492
Conversation
The page the Start topic offers as the map of the library linked 100 of the 104 guides while stating 104 in the prose and again in its own meta description, in both languages. Two substantial features, the detailed per-band prediction and the marine-mammal exposure chain, were reachable only from the sidebar, and the page contradicted itself in the text a search engine quotes. The four rows are in, each in the section and the order the sidebar gives it. A check follows them, because the page is written by hand and nothing looked at it. It asserts that every guide of every domain topic is linked, that every count stated in figures is the number of guides there are, and that the count in words is the same number, since that is the half nobody remembers to update. It fails on both defects it exists for, verified by removing a row and by changing a figure. Three audits that existed and ran for nobody now run in CI: the colour tokens of both themes against the contrast floor, the landing page at ten viewport and font-size combinations, and the language suggestion bar. They share one preview, because starting three is three times the wait. One of them used to fail outright about one run in five, on a style rule that hides the dev toolbar: the execution context can be replaced between the navigation and that call, and the rejection took the whole run with it. The toolbar exists only under the dev server, so against a preview of the build the rule has nothing to hide and the call is allowed to fail. Puppeteer is a declared dev dependency now. Five checks were resting on it arriving as a transitive dependency of pa11y-ci, which under pnpm's layout is not even linked into site/node_modules: a pa11y-ci upgrade that dropped it would have taken all five with it, and the message would have been about a missing module. Two smaller things found while reading. The sound power from surface vibration guide was listed under the vibration topic while its URL, its module and its mirror all sit under devices: a reader on it got the vibration tree and a Vibration breadcrumb, and the devices tree showed five of the six guides in that folder. And the mirror had one absolute site path left, which GitHub resolves against its own domain, so the errata link 404s for anyone reading the docs folder rather than the site; the same file already does it right elsewhere.
|
You've reached the fair usage limit for the Bito Code Review Agent trial. Upgrade to a paid plan or contact support@bito.in for assistance. Learn more |
Reviewer's GuideAdds missing guides to the start index in both languages and introduces automated checks to ensure all guides are mapped and counts are correct, wires several previously-unused visual audits into CI, declares Puppeteer explicitly, stabilizes dev-toolbar handling in puppeteer checks, fixes a misclassified guide in the topics taxonomy, corrects an errata link path, and updates two docstrings referencing the old File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Warning Review limit reached
Next review available in: 40 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughChangesDocumentation site validation
Documentation reference corrections
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested labels: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@site/scripts/check-guides-index.mjs`:
- Line 107: Update the missing-route check in the routes filter to verify each
guide’s locale-specific Markdown link destination, including the expected
](/phonometry/.../) path, rather than accepting plain-text route occurrences via
index.includes().
In `@site/src/content/docs/start/guides.md`:
- Around line 455-458: Move the CNOSSOS-EU railway source entry from its current
subsection to Outdoor sound in site/src/content/docs/start/guides.md (lines
455-458), placing it alongside the road-emission guide. Apply the equivalent
move for the localized railway entry in site/src/content/docs/es/start/guides.md
(lines 478-481), placing it under Sonido en exteriores; do not alter the entry
text.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 8beeace7-0573-4371-bf54-cb7ddabc374b
⛔ Files ignored due to path filters (1)
site/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (14)
.github/workflows/docs.ymldocs/materials/absorbers/porous-absorbers.mdscripts/api_taxonomy.pysite/package.jsonsite/scripts/check-guides-index.mjssite/scripts/check-home-headings.mjssite/scripts/check-lang-suggest.mjssite/scripts/check-page-chips.mjssite/scripts/check-sidebar.mjssite/scripts/shared/audit.mjssite/src/content/docs/es/start/guides.mdsite/src/content/docs/start/guides.mdsite/src/data/topics.mjssrc/phonometry/_compat.py
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #492 +/- ##
=======================================
Coverage 96.99% 96.99%
=======================================
Files 272 272
Lines 38575 38575
=======================================
Hits 37416 37416
Misses 1159 1159 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Numerical conformance report✅ 533/533 conformance checks pass across 57 domains and 362 standards - filters class 1 - weightings within IEC 61672-1 class 1. Each row pins a standard clause to its expected normative value and the value the library computes. Every section below is collapsible and stays collapsed while all of its rows pass; a section with any failing row opens automatically. ✅ Numerical validation - filters & weightings: class showcase (IEC 61260-1 · IEC 61672-1 · ISO 7196)IEC 61260-1:2014 class per filter architecture (order 6, one-third-octave, 100 Hz-10 kHz, fs = 48 kHz). For each architecture the table shows, at its binding band, the measured relative attenuation and the class-1 limit it must clear, so the number and the range it must sit in are both visible. A positive margin means the acceptance limits are met with that much room.
Only Butterworth (the library default) and Chebyshev-II are class-compliant architectures. Chebyshev-I and elliptic trade the mask for passband ripple, and Bessel for a maximally-flat group delay (soft rolloff); they cannot satisfy the IEC 61260-1 Class 1/2 attenuation mask by construction, so they are labelled By design - this is expected, not a failure or regression. Frequency-weighting conformance (A/C: IEC 61672-1 Table 3; G: ISO 7196 A.3). The max deviation from nominal is informational (it falls at a frequency extreme where the tolerance is widest and asymmetric); compliance is judged at the binding frequency - the one with the least headroom - where the deviation, the applicable tolerance band and the headroom are shown together.
✅ Filters & weightings: 100% (10/10)
✅ Levels & dosimetry: 100% (9/9)
✅ Room & building acoustics: 100% (72/72)
✅ Room acoustics: 100% (16/16)
✅ Psychoacoustics: 100% (14/14)
✅ Speech transmission (IEC 60268-16): 100% (10/10)
✅ System measurement (Golay / Kirkeby / Mueller-Massarani): 100% (5/5)
✅ Intensity & sound power: 100% (10/10)
✅ Building prediction & uncertainty: 100% (15/15)
✅ Outdoor propagation & occupational exposure: 100% (10/10)
✅ Materials: absorption, airflow & impedance: 100% (6/6)
✅ Scattering & diffusion (ISO 17497): 100% (14/14)
✅ In-situ road absorption (ISO 13472): 100% (3/3)
✅ Precision sound power (ISO 3745 / 9614-3): 100% (4/4)
✅ Human vibration (ISO 8041 / 2631 / 5349): 100% (15/15)
✅ Speech intelligibility (ANSI S3.5-1997): 100% (24/24)
✅ Objective intelligibility (STOI / ESTOI): 100% (3/3)
✅ Impulsive-sound prominence (NT ACOU 112): 100% (2/2)
✅ Impulsive-sound prominence (ISO/PAS 1996-3): 100% (2/2)
✅ Room noise (ANSI S12.2-2019): 100% (3/3)
✅ Hearing threshold (ISO 7029 / ISO 389-7): 100% (3/3)
✅ Measurement uncertainty (GUM / Supplement 1): 100% (7/7)
✅ Noise-induced hearing loss (ISO 1999): 100% (6/6)
✅ Multiple-shock whole-body vibration (ISO 2631-5): 100% (6/6)
✅ Sound absorption in enclosed spaces (EN 12354-6): 100% (2/2)
✅ Prominent discrete tones (ECMA-418-1): 100% (2/2)
✅ Tonal audibility (ISO/PAS 20065): 100% (11/11)
✅ Psychoacoustic annoyance & fluctuation strength (Fastl & Zwicker): 100% (3/3)
✅ Electroacoustics: distortion & frequency response: 100% (20/20)
✅ Calibrated spectral analysis (Bendat & Piersol): 100% (12/12)
✅ Multiple-input coherence (Bendat & Piersol): 100% (5/5)
✅ Time-frequency analysis (Bendat & Piersol): 100% (3/3)
✅ Correlation, time delay and envelope (B&P / Knapp & Carter): 100% (7/7)
✅ Cepstrum, liftering and envelope spectrum (Havelock / B&P): 100% (3/3)
✅ Time synchronous averaging (McFadden 1987): 100% (5/5)
✅ Data qualification and Rice statistics (Bendat & Piersol): 100% (8/8)
✅ Underwater acoustics (ISO 18405/17208/18406): 100% (6/6)
✅ Underwater sound propagation (transmission loss): 100% (16/16)
✅ Underwater propagation regimes (Weston flux theory): 100% (3/3)
✅ Marine-mammal auditory weighting (NMFS / Southall): 100% (4/4)
✅ Underwater numerical propagation (modes / rays / PE): 100% (4/4)
✅ Aircraft noise (ICAO Annex 16 / IEC 61265): 100% (15/15)
✅ Rotorcraft noise (ECAC Doc 32 / NORAH2): 100% (12/12)
✅ CNOSSOS-EU road source (Directive 2002/49/EC Annex II): 100% (6/6)
✅ Wind-turbine noise (IEC 61400-11): 100% (3/3)
✅ Porous & multilayer absorbers (Mechel / Bies / Cox & D'Antonio): 100% (20/20)
✅ Slow-sound perfect absorbers (Jimenez et al. Appl. Sci. 2017): 100% (3/3)
✅ Program loudness (ITU-R BS.1770 / EBU R 128): 100% (8/8)
✅ 2D FDTD wave simulation (Attenborough & Van Renterghem 2021, Ch. 4): 100% (4/4)
✅ Swept-sine distortion & phase utilities (Farina / Novak): 100% (7/7)
✅ Spherical ground & barriers (Attenborough / Salomons / Bies): 100% (7/7)
✅ Panel & aperture sound insulation (Bies / Hopkins / Cremer): 100% (17/17)
✅ Bending-wave plate-junction transmission (Cremer / Craik / Hopkins): 100% (6/6)
✅ Atmospheric refraction (Salomons rays / GFPE): 100% (3/3)
✅ Electroacoustics: 100% (9/9)
✅ Industrial noise control: 100% (22/22)
✅ CNOSSOS-EU railway source (Directive 2002/49/EC Annex II): 100% (8/8)
Tests & coverage — 48084 tests, 0 failures (✅ all green)
Conformance harness: |
Both findings were real. The railway row had landed in the aircraft and wind block, because the insertion anchored on the wind-turbine row without checking which block that row sits in; it sits beside the road source now, in both languages. And the coverage check accepted a route appearing as plain text, which a code block or a comment would satisfy while giving the reader nothing to select; it requires the locale's link destination, and still fails when a row's link is emptied while its text remains.
|
|
You've reached the fair usage limit for the Bito Code Review Agent trial. Upgrade to a paid plan or contact support@bito.in for assistance. Learn more |



Follow-ups to the topics change, each verified on main before being fixed.
Every guide is on the map. The page the Start topic offers as the map of
the library linked 100 of the 104 guides while stating 104 in the prose and
again in its own meta description, in both languages: the detailed per-band
prediction, the heavy and soft impact sources, the CNOSSOS rail emission and
the marine-mammal exposure chain were reachable only from the sidebar. The four
rows are in, each in the section and the order the sidebar gives it. A check
follows them, because the page is written by hand and nothing looked at it: it
asserts that every guide of every domain topic is linked, that every count
stated in figures is the number of guides there are, and that the count in
words agrees, since that is the half nobody remembers to update. Proven to fail
on both defects it exists for, by removing a row and by changing a figure.
Three audits that ran for nobody run in CI now. The colour tokens of both
themes against the contrast floor, the landing page at ten viewport and
font-size combinations, and the language suggestion bar. They share one
preview. One of them failed outright about one run in five on a style rule that
hides the dev toolbar: the execution context can be replaced between the
navigation and that call, and the rejection took the whole run with it. The
toolbar exists only under the dev server, so against a preview of the build the
rule has nothing to hide and the call is allowed to fail.
Puppeteer is a declared dev dependency. Five checks rested on it arriving
as a transitive dependency of pa11y-ci, which under pnpm's layout is not even
linked into
site/node_modules: an upgrade that dropped it would have takenall five checks with it, and the message would have been about a missing
module.
Two things found while reading. The sound power from surface vibration
guide was listed under the vibration topic while its URL, its module
(
phonometry.emission.vibration_sound_power) and its mirror all sit underdevices: a reader on it got the vibration tree and a Vibration breadcrumb, and
the devices tree showed five of the six guides in that folder. And the mirror
had one absolute site path left, which GitHub resolves against its own domain,
so the errata link in the porous absorbers page 404s for anyone reading the
docs folder rather than the site; the same file already links it right
elsewhere.
Two docstrings that still said
signalwhere the package issignalsarecorrected in passing.
Summary by CodeRabbit
New Features
Bug Fixes
Tests