Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions MANIFEST.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,7 @@ files:

- path: scripts/build.js
role: tooling
hash: sha256:12e43a8be8b10149d6bd3ea4891c65289b50112c0bd7c7b5e44b53142d59e2e5
hash: sha256:0ea9b3d271f36829c75e01943da3956143aa47fb581083894b171ae4067bcf96
note: scripts/build.js

- path: scripts/check-production-search.mjs
Expand Down Expand Up @@ -828,7 +828,7 @@ files:

- path: scripts/lib/verify-policy.js
role: tooling
hash: sha256:647e61a061137ab9ab14d1fd1c856f5defa008427c87302e5744ea04fc2b7adb
hash: sha256:160300832c7319eab1ad67a4809eebcb1a81963c79a12f4e46be0081df47602e
note: scripts/lib/verify-policy.js

- path: scripts/ocr-pdf.sh
Expand All @@ -853,7 +853,7 @@ files:

- path: scripts/verify.js
role: tooling
hash: sha256:dfd3690ef2b8ed18271ba9b8ac2efa24f4015af8f7b69c332c34d94afe77fcd7
hash: sha256:661d837aec73b8cce20f40ecbcb6c169f1969654a3796c4e1a7906f4acc6aaf5
note: scripts/verify.js

- path: scripts/verify-ci.js
Expand Down Expand Up @@ -893,7 +893,7 @@ files:

- path: assets/tables.js
role: site-source
hash: sha256:4ea130b337a1696c85f9c98ebb3b8d391a1e00db690566f24bdcbf1433f39819
hash: sha256:44aeb59b32113a06d418b6ce42cded11e1dc36197b883a82f05616d4ea3d0717
note: assets/tables.js

- path: assets/theme.js
Expand Down Expand Up @@ -981,6 +981,11 @@ files:
hash: sha256:a1b0c0bd67c30c9fa82b2ab45fd3ace3dee00067f11f2f3f7211c08aa9c7f342
note: ElizaChat source review receipt

- path: ops/evidence/utah-overdue-dispositions-2026-09-23.json
role: evidence
hash: sha256:90c25a4874701966486eba0f1405dc4e7680e66173bf7130580a641020821945
note: Agent source-consistency dispositions for the nine overdue Utah records (issue 3)

- path: scripts/lib/freshness-contract.js
role: code
hash: sha256:df27fe4ca8be68fbacfa3e00d8b874d8687d87ffbc97874a9f84dc7e3a943cc8
Expand Down
26 changes: 24 additions & 2 deletions assets/tables.js
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@

// Enhance deterministic absolute verification dates with a relative age.
// The source HTML remains stable across builds; only the browser view ages.
// data-review-days carries the record's review cadence from project.yml.
function initFreshnessBadges() {
var badges = document.querySelectorAll('.freshness-badge[data-last-verified]');
var now = new Date();
Expand All @@ -358,9 +359,29 @@
var verified = new Date(value + 'T00:00:00Z');
if (isNaN(verified.getTime())) continue;
var days = Math.max(0, Math.floor((now.getTime() - verified.getTime()) / 86400000));
var state = days < 90 ? 'fresh' : days < 180 ? 'aging' : 'stale';
var cadence = parseInt(badge.getAttribute('data-review-days'), 10);
var state;
if (cadence > 0) {
state = days > cadence ? 'stale' : 'fresh';
badge.textContent = state === 'fresh' ? 'verified ' + days + 'd ago' : 'review overdue (verified ' + days + 'd ago)';
} else {
state = days < 90 ? 'fresh' : days < 180 ? 'aging' : 'stale';
badge.textContent = state === 'fresh' ? 'verified ' + days + 'd ago' : state + ' (' + days + 'd)';
}
badge.classList.add(state);
badge.textContent = state === 'fresh' ? 'verified ' + days + 'd ago' : state + ' (' + days + 'd)';
}
}

// Recompute build-time countdowns against the reader's current date.
function initCountdowns() {
var cells = document.querySelectorAll('.upcoming-days[data-date]');
var now = new Date();
var today = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate());
for (var i = 0; i < cells.length; i++) {
var target = new Date(cells[i].getAttribute('data-date') + 'T00:00:00Z').getTime();
if (isNaN(target)) continue;
var days = Math.round((target - today) / 86400000);
cells[i].textContent = days < 0 ? 'passed' : days === 0 ? 'today' : days + 'd';
}
}

Expand All @@ -369,6 +390,7 @@
initKeyboardAndDismiss();
initAnchors();
initFreshnessBadges();
initCountdowns();
}

if (document.readyState === 'loading') {
Expand Down
13 changes: 9 additions & 4 deletions docs/MANIFEST.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -598,7 +598,7 @@ files:

- path: scripts/build.js
role: tooling
hash: sha256:12e43a8be8b10149d6bd3ea4891c65289b50112c0bd7c7b5e44b53142d59e2e5
hash: sha256:0ea9b3d271f36829c75e01943da3956143aa47fb581083894b171ae4067bcf96
note: scripts/build.js

- path: scripts/check-production-search.mjs
Expand Down Expand Up @@ -828,7 +828,7 @@ files:

- path: scripts/lib/verify-policy.js
role: tooling
hash: sha256:647e61a061137ab9ab14d1fd1c856f5defa008427c87302e5744ea04fc2b7adb
hash: sha256:160300832c7319eab1ad67a4809eebcb1a81963c79a12f4e46be0081df47602e
note: scripts/lib/verify-policy.js

- path: scripts/ocr-pdf.sh
Expand All @@ -853,7 +853,7 @@ files:

- path: scripts/verify.js
role: tooling
hash: sha256:dfd3690ef2b8ed18271ba9b8ac2efa24f4015af8f7b69c332c34d94afe77fcd7
hash: sha256:661d837aec73b8cce20f40ecbcb6c169f1969654a3796c4e1a7906f4acc6aaf5
note: scripts/verify.js

- path: scripts/verify-ci.js
Expand Down Expand Up @@ -893,7 +893,7 @@ files:

- path: assets/tables.js
role: site-source
hash: sha256:4ea130b337a1696c85f9c98ebb3b8d391a1e00db690566f24bdcbf1433f39819
hash: sha256:44aeb59b32113a06d418b6ce42cded11e1dc36197b883a82f05616d4ea3d0717
note: assets/tables.js

- path: assets/theme.js
Expand Down Expand Up @@ -981,6 +981,11 @@ files:
hash: sha256:a1b0c0bd67c30c9fa82b2ab45fd3ace3dee00067f11f2f3f7211c08aa9c7f342
note: ElizaChat source review receipt

- path: ops/evidence/utah-overdue-dispositions-2026-09-23.json
role: evidence
hash: sha256:90c25a4874701966486eba0f1405dc4e7680e66173bf7130580a641020821945
note: Agent source-consistency dispositions for the nine overdue Utah records (issue 3)

- path: scripts/lib/freshness-contract.js
role: code
hash: sha256:df27fe4ca8be68fbacfa3e00d8b874d8687d87ffbc97874a9f84dc7e3a943cc8
Expand Down
26 changes: 24 additions & 2 deletions docs/assets/tables.js
Original file line number Diff line number Diff line change
Expand Up @@ -349,6 +349,7 @@

// Enhance deterministic absolute verification dates with a relative age.
// The source HTML remains stable across builds; only the browser view ages.
// data-review-days carries the record's review cadence from project.yml.
function initFreshnessBadges() {
var badges = document.querySelectorAll('.freshness-badge[data-last-verified]');
var now = new Date();
Expand All @@ -358,9 +359,29 @@
var verified = new Date(value + 'T00:00:00Z');
if (isNaN(verified.getTime())) continue;
var days = Math.max(0, Math.floor((now.getTime() - verified.getTime()) / 86400000));
var state = days < 90 ? 'fresh' : days < 180 ? 'aging' : 'stale';
var cadence = parseInt(badge.getAttribute('data-review-days'), 10);
var state;
if (cadence > 0) {
state = days > cadence ? 'stale' : 'fresh';
badge.textContent = state === 'fresh' ? 'verified ' + days + 'd ago' : 'review overdue (verified ' + days + 'd ago)';
} else {
state = days < 90 ? 'fresh' : days < 180 ? 'aging' : 'stale';
badge.textContent = state === 'fresh' ? 'verified ' + days + 'd ago' : state + ' (' + days + 'd)';
}
badge.classList.add(state);
badge.textContent = state === 'fresh' ? 'verified ' + days + 'd ago' : state + ' (' + days + 'd)';
}
}

// Recompute build-time countdowns against the reader's current date.
function initCountdowns() {
var cells = document.querySelectorAll('.upcoming-days[data-date]');
var now = new Date();
var today = Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate());
for (var i = 0; i < cells.length; i++) {
var target = new Date(cells[i].getAttribute('data-date') + 'T00:00:00Z').getTime();
if (isNaN(target)) continue;
var days = Math.round((target - today) / 86400000);
cells[i].textContent = days < 0 ? 'passed' : days === 0 ? 'today' : days + 'd';
}
}

Expand All @@ -369,6 +390,7 @@
initKeyboardAndDismiss();
initAnchors();
initFreshnessBadges();
initCountdowns();
}

if (document.readyState === 'loading') {
Expand Down
4 changes: 2 additions & 2 deletions docs/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,14 @@ <h2>Upcoming Milestones</h2>
<p style="color:var(--muted);margin-top:-0.5em;">Closest enforcement and term-end dates across the registry. Subscribe: <a href="/calendar.ics">calendar.ics</a>.</p>
<div class="upcoming-widget">
<a class="upcoming-card" href="/us/utah/oaip/rma/2025-002/">
<div class="upcoming-days">42d</div>
<div class="upcoming-days" data-date="2026-10-24">42d</div>
<div class="upcoming-kind">Term ends</div>
<div class="upcoming-title">Utah OAIP × Doctronic — AI Prescription Renewal RMA (2025)</div>
<div class="upcoming-date">Oct 24, 2026</div>
</a>

<a class="upcoming-card" href="/us/colorado/legislature/statute/2026-001/">
<div class="upcoming-days">111d</div>
<div class="upcoming-days" data-date="2027-01-01">111d</div>
<div class="upcoming-kind">Effective</div>
<div class="upcoming-title">Colorado SB 26-189 (2026) — Automated Decision-Making Technology (ADMT) Act</div>
<div class="upcoming-date">Jan 1, 2027</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/colorado/legislature/statute/2024-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Colorado SB 24-205 (2024) — Consumer Protections for Interactions with Art
<div class="detail-meta">
<span class="status-badge superseded">superseded</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-07-25" title="Last verified 2026-07-25">Verified 2026-07-25</span>
<span class="freshness-badge" data-last-verified="2026-07-25" data-review-days="90" title="Last verified 2026-07-25; review cadence 90 days">Verified 2026-07-25</span>
<span><strong>Effective:</strong> Jun 30, 2026</span>
<span><a href="https://leg.colorado.gov/bills/sb24-205" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/colorado/legislature/statute/2025-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Colorado SB 25B-004 (2025) — Increase Transparency for Algorithmic Systems
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-09-05" title="Last verified 2026-09-05">Verified 2026-09-05</span>
<span class="freshness-badge" data-last-verified="2026-09-05" data-review-days="90" title="Last verified 2026-09-05; review cadence 90 days">Verified 2026-09-05</span>
<span><strong>Effective:</strong> Nov 25, 2025</span>
<span><a href="https://leg.colorado.gov/bills/sb25b-004" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/colorado/legislature/statute/2026-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Colorado SB 26-189 (2026) — Automated Decision-Making Technology (ADMT) Ac
<div class="detail-meta">
<span class="status-badge enacted">enacted</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-07-25" title="Last verified 2026-07-25">Verified 2026-07-25</span>
<span class="freshness-badge" data-last-verified="2026-07-25" data-review-days="90" title="Last verified 2026-07-25; review cadence 90 days">Verified 2026-07-25</span>
<span><strong>Effective:</strong> Jan 1, 2027</span>
<span><a href="https://leg.colorado.gov/bills/sb26-189" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/federal/cfpb/ao/2022-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>CFPB Advisory Opinion — Pay-to-Pay Fees (Regulation F)<a class="anchor-lin
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-04-19" title="Last verified 2026-04-19">Verified 2026-04-19</span>
<span class="freshness-badge" data-last-verified="2026-04-19" data-review-days="365" title="Last verified 2026-04-19; review cadence 365 days">Verified 2026-04-19</span>
<span><strong>Effective:</strong> Jun 29, 2022</span>
<span><a href="https://www.consumerfinance.gov/rules-policy/final-rules/advisory-opinion-on-debt-collectors-collection-of-pay-to-pay-fees/" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/federal/cftc-dsio/il/2017-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>CFTC Letter 17-65 — CTA Registration Exemption Survives MiFID II Fee Unbun
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-04-19" title="Last verified 2026-04-19">Verified 2026-04-19</span>
<span class="freshness-badge" data-last-verified="2026-04-19" data-review-days="365" title="Last verified 2026-04-19; review cadence 365 days">Verified 2026-04-19</span>
<span><strong>Effective:</strong> Dec 11, 2017</span>
<span><a href="https://cftc.gov/csl/17-65/download" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/federal/irs-chief-counsel/plr/2025-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>IRS Private Letter Ruling 202506001 — Management Contract Private Business
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-04-19" title="Last verified 2026-04-19">Verified 2026-04-19</span>
<span class="freshness-badge" data-last-verified="2026-04-19" data-review-days="365" title="Last verified 2026-04-19; review cadence 365 days">Verified 2026-04-19</span>
<span><strong>Effective:</strong> Feb 7, 2025</span>
<span><a href="https://www.irs.gov/pub/irs-wd/202506001.pdf" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/federal/irs-tege/plr/2026-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>IRS PLR 202614036 — Adverse Determination: §501(c)(3) Exemption Denied, M
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-04-19" title="Last verified 2026-04-19">Verified 2026-04-19</span>
<span class="freshness-badge" data-last-verified="2026-04-19" data-review-days="365" title="Last verified 2026-04-19; review cadence 365 days">Verified 2026-04-19</span>
<span><strong>Effective:</strong> Jan 12, 2026</span>
<span><a href="https://irs.gov/pub/irs-wd/202614036.pdf" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/federal/sec-corpfin/nal/2025-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>SEC No-Action Letter — Latham &amp; Watkins (Rule 506(c) Verification)<a c
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-04-19" title="Last verified 2026-04-19">Verified 2026-04-19</span>
<span class="freshness-badge" data-last-verified="2026-04-19" data-review-days="365" title="Last verified 2026-04-19; review cadence 365 days">Verified 2026-04-19</span>
<span><strong>Effective:</strong> Mar 12, 2025</span>
<span><a href="https://www.sec.gov/rules-regulations/no-action-interpretive-exemptive-letters/division-corporation-finance-no-action/latham-watkins-503c-031225" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/utah/legislature/statute/2024-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Utah SB 149 (2024) — Artificial Intelligence Amendments<a class="anchor-li
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-06-04" title="Last verified 2026-06-04">Verified 2026-06-04</span>
<span class="freshness-badge" data-last-verified="2026-06-04" data-review-days="90" title="Last verified 2026-06-04; review cadence 90 days">Verified 2026-06-04</span>
<span><strong>Effective:</strong> May 1, 2024</span>
<span><a href="https://le.utah.gov/~2024/bills/static/SB0149.html" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/utah/legislature/statute/2025-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Utah SB 226 (2025) — Artificial Intelligence Consumer Protection Amendment
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-06-04" title="Last verified 2026-06-04">Verified 2026-06-04</span>
<span class="freshness-badge" data-last-verified="2026-06-04" data-review-days="90" title="Last verified 2026-06-04; review cadence 90 days">Verified 2026-06-04</span>
<span><strong>Effective:</strong> May 7, 2025</span>
<span><a href="https://le.utah.gov/~2025/bills/static/SB0226.html" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/utah/legislature/statute/2025-002/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Utah HB 452 (2025) — Mental Health Chatbot Regulations<a class="anchor-lin
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-06-04" title="Last verified 2026-06-04">Verified 2026-06-04</span>
<span class="freshness-badge" data-last-verified="2026-06-04" data-review-days="90" title="Last verified 2026-06-04; review cadence 90 days">Verified 2026-06-04</span>
<span><strong>Effective:</strong> May 7, 2025</span>
<span><a href="https://le.utah.gov/~2025/bills/static/HB0452.html" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/utah/legislature/statute/2025-003/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Utah SB 332 (2025) — Artificial Intelligence Revisions (AIPA Sunset Extens
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-06-04" title="Last verified 2026-06-04">Verified 2026-06-04</span>
<span class="freshness-badge" data-last-verified="2026-06-04" data-review-days="90" title="Last verified 2026-06-04; review cadence 90 days">Verified 2026-06-04</span>
<span><strong>Effective:</strong> May 7, 2025</span>
<span><a href="https://le.utah.gov/~2025/bills/static/SB0332.html" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
2 changes: 1 addition & 1 deletion docs/us/utah/legislature/statute/2026-001/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ <h2>Utah HB 320 (2026) — AI Learning Lab Restructure + Joint Interpretation Ag
<div class="detail-meta">
<span class="status-badge enforcing">enforcing</span>
<span><strong>Editorial:</strong> Published</span>
<span class="freshness-badge" data-last-verified="2026-06-04" title="Last verified 2026-06-04">Verified 2026-06-04</span>
<span class="freshness-badge" data-last-verified="2026-06-04" data-review-days="90" title="Last verified 2026-06-04; review cadence 90 days">Verified 2026-06-04</span>
<span><strong>Effective:</strong> May 6, 2026</span>
<span><a href="https://le.utah.gov/~2026/bills/static/HB0320.html" target="_blank" rel="noopener">Official source</a></span>
</div>
Expand Down
Loading
Loading