Skip to content

feat(uscg): add 33 CFR 183.425 Table 5 amperage and correction factors - #17

Open
mark-brannan wants to merge 1 commit into
claude/additional-standards-tables-ec0e72from
claude/ampacity-standards-copyright-90e578
Open

mark-brannan wants to merge 1 commit into
claude/additional-standards-tables-ec0e72from
claude/ampacity-standards-copyright-90e578

Conversation

@mark-brannan

Copy link
Copy Markdown
Owner

Adds data/uscg-33cfr183.json, fixtures/uscg-fixtures.json and test/uscg.test.mjs: the US Coast Guard's allowable-amperage table for recreational boats (33 CFR 183.425 Table 5), its engine-space correction factors (note 1) and its bundling factors for circuits of 50 V or more (note 2, via 183.435(b)).

Copyright: a work of the US Government, 17 U.S.C. §105, not subject to copyright. Verdict LOW.

Sources, all agreeing on every cell:

Relation to E-11: the amperages, the bundling ladder and the 75–200 °C engine-space factors are identical to data/e11.json; the one difference is 60 °C in engine spaces (E-11: not permitted; CFR: 0.58). The new test asserts that agreement, and e11.json provenance gains an also_in_law line pointing at the regulation, which materially strengthens the copyright footing of the existing ABYC data.

Depends-On: #14

Stacked on #14 because that PR rewrites README, CONTRIBUTING and package.json from ABYC-only to multi-standard; this PR adds one entry to each. Merge #14 first; GitHub retargets this one.

🤖 Generated with Claude Code

Public-domain US Coast Guard regulation for recreational boats, double-sourced
from eCFR, Cornell LII, govinfo 2025 and the 1977 Federal Register final rule,
all identical. The amperages, bundling factors and 75-200 C engine-space
factors are E-11 Table 6A's; the test pins that agreement so a correction to
one file cannot silently orphan the other. e11.json's provenance now records
that its values also appear in federal regulation.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: e206a75b-60dc-43ea-a6ec-dfd590902e4a

📥 Commits

Reviewing files that changed from the base of the PR and between b1e445a and 7084ffd.

📒 Files selected for processing (7)
  • CONTRIBUTING.md
  • README.md
  • data/e11.json
  • data/uscg-33cfr183.json
  • fixtures/uscg-fixtures.json
  • package.json
  • test/uscg.test.mjs

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@claude

claude Bot commented Sep 16, 2026 •

Copy link
Copy Markdown

Claude finished @mark-brannan's task in 4m 3s —— View job


Independent review

  • Read repo conventions (no CLAUDE.md/AGENTS.md exist in this repo)
  • Reviewed diff vs origin/claude/additional-standards-tables-ec0e72
  • Checked data/uscg-33cfr183.json internal consistency and fixture arithmetic
  • Checked the e11.json cross-reference addition
  • Scanned diff for credentials/secrets
  • Ran npm test (no lockfile/deps — npm ci doesn't apply; no build script)
  • Posted inline findings

What I checked and ran:

  • npm test (Node's built-in test runner, no dependencies to install) — 26/26 tests pass, including the new test/uscg.test.mjs suite.
  • Hand-verified all 7 rows in fixtures/uscg-fixtures.json by manually reproducing the base amperage × engine-space factor × bundling factor math against data/uscg-33cfr183.json. All 7 check out exactly, including the 12 AWG/60 °C/engine-space row (25 × 0.58 = 14.5), which is the one cell the CFR permits and E-11 doesn't.
  • Scanned the full diff for anything credential-shaped — nothing found.
  • Could not independently verify the source citations against the live eCFR/Cornell/govinfo pages (no network access granted to this review session) — the "Table 5" numbering and cell values are taken on the PR's word, not re-fetched.

Finding (data/documentation accuracy): the PR body, README.md, data/e11.json's new also_in_law field, and this file's own cross_check field all claim the bundling ladder is identical to E-11 with the only difference being the 60 °C engine-space factor. That's not what the JSON says: data/uscg-33cfr183.json's bundle_factors_50v_and_above starts its first band at max_conductors: 2, while data/e11.json's bundle_factors_dc starts at max_conductors: 1. Using the lookup pattern the test suite itself uses, that means a 2-conductor bundle gets factor 1.0 under this file but 0.7 under E-11 — a second real divergence, quietly excluded from the cross-check test via .slice(1) rather than resolved. Left inline on data/uscg-33cfr183.json:28-34 with a fix-it link.

Nit: the README's ## Provenance section summarizes ABYC E-11 and NEC sourcing but never gained an equivalent bullet for 33 CFR 183, breaking the pattern. Left inline on README.md:22.

Everything else — schema shape, ascending-value invariants, provenance URLs, license reasoning, package.json/CONTRIBUTING.md edits — looks sound and consistent with how E-11 and NEC were added.

Comment thread data/uscg-33cfr183.json
Comment on lines +28 to +34
"bundle_factors_50v_and_above": [
{ "max_conductors": 2, "factor": 1.0 },
{ "max_conductors": 3, "factor": 0.7 },
{ "max_conductors": 6, "factor": 0.6 },
{ "max_conductors": 24, "factor": 0.5 },
{ "max_conductors": null, "factor": 0.4 }
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correctness: the "bundling ladder is identical" claim is contradicted by this file's own data.

cross_check (line 12) says: "the bundling factors ... are identical to the ABYC E-11 Table 6A values ... the one difference is 60 C in engine spaces." The same "one difference" framing is repeated in the PR body, README.md, and data/e11.json's new also_in_law field.

But this array's first band is { "max_conductors": 2, "factor": 1.0 }, while data/e11.json's bundle_factors_dc first band is { "max_conductors": 1, "factor": 1.0 }. Using the same lookup logic the test suite uses elsewhere (first band where bundle <= max_conductors), that's not a cosmetic difference — for exactly 2 bundled conductors:

  • E-11: falls past the max:1 band into max:3, factor:0.7 → derated to 70%.
  • This file: falls into max:2, factor:1.0 → no derate.

test/uscg.test.mjs line ~91 even flags awareness of this ("E-11 has no explicit 1-2 conductor band") but then sidesteps it by comparing .slice(1), so nothing actually asserts which value is correct — the divergence is silently excluded from the cross-check test rather than resolved.

This is either (a) a second real, uncited difference between the two tables that should be documented the same way the 60 °C exception is, or (b) a transcription slip where this array should start at max_conductors: 1 to genuinely match E-11. Since this repository's entire value proposition is "traceable, cross-checked numbers," and the copyright argument in the PR leans on E-11 and the CFR being "identical" data, this is worth resolving against the actual regulatory text (33 CFR 183.435(b) note 2) before merge, not left as an untested edge.

I don't have network access in this review session to check the eCFR text directly — flagging as a data/documentation discrepancy for the author to verify, not asserting which value is wrong.

Fix this →

Comment thread README.md
insulation temperature rating; engine-space correction factors; bundling
factors for circuits of 50 V or more. A work of the US Government, so
public domain. The numbers are E-11 Table 6A's, with one difference: the
regulation permits 60 °C conductors in engine spaces at 0.58, E-11 does not.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor/nit: the new data/uscg-33cfr183.json bullet (lines 17-22) is added to the top file list, but the ## Provenance section further down (lines 32-49) only got summary bullets for ABYC E-11 and the NEC when those were added — no equivalent bullet was added here for 33 CFR 183 sourcing (the eCFR/Cornell/govinfo/Federal-Register cross-check). Not blocking, since the JSON's own provenance block carries it, but it breaks the pattern the other two standards follow in this same doc.

@mergify mergify Bot removed the awaiting-human label Sep 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant