star-magic-program 0.2.1__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/CHANGELOG.md +37 -0
  2. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/CITATION.cff +1 -1
  3. {star_magic_program-0.2.1/star_magic_program.egg-info → star_magic_program-0.3.0}/PKG-INFO +5 -4
  4. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/README.md +3 -2
  5. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/SESSION_LOG.md +77 -8
  6. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/WHITEPAPER_INDEX.md +3 -3
  7. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/pyproject.toml +2 -2
  8. {star_magic_program-0.2.1 → star_magic_program-0.3.0/star_magic_program.egg-info}/PKG-INFO +5 -4
  9. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/uqff_calculator.py +46 -9
  10. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/uqff_fidelity_tests.py +23 -1
  11. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/COMMERCIAL.md +0 -0
  12. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/LICENSE +0 -0
  13. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/LICENSE-AGPL-3.0.txt +0 -0
  14. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/LICENSE-MIT-INITIAL.txt +0 -0
  15. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/NOTICE +0 -0
  16. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/UNIFIED_REGISTRY_FALSIFIABILITY.md +0 -0
  17. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/UNIFIED_REGISTRY_PROGRAM_PLAN.md +0 -0
  18. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/UNIFIED_REGISTRY_RESULTS_TABLE.md +0 -0
  19. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/UNIFIED_REGISTRY_SCHEMA.md +0 -0
  20. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/UNIFIED_REGISTRY_STATUS_REPORT.md +0 -0
  21. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/UNIFIED_REGISTRY_VERSION.txt +0 -0
  22. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/_BUILD_LOG.md +0 -0
  23. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/registry_generator.py +0 -0
  24. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/setup.cfg +0 -0
  25. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/star_magic_program.egg-info/SOURCES.txt +0 -0
  26. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/star_magic_program.egg-info/dependency_links.txt +0 -0
  27. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/star_magic_program.egg-info/top_level.txt +0 -0
  28. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/uqff_registry_graph.py +0 -0
  29. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/uqff_registry_primitives.py +0 -0
  30. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/uqff_registry_status.py +0 -0
  31. {star_magic_program-0.2.1 → star_magic_program-0.3.0}/uqff_registry_xgeo.py +0 -0
@@ -7,6 +7,43 @@ Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.3.0] — 2026-07-28 — WIRING CAMPAIGN START
11
+
12
+ ### Added
13
+ - **CLAUDE.md** — campaign charter: sequential wiring from PAPER_001, band
14
+ structure, per-paper protocol, template authorizations, drift auto-corrections,
15
+ rulings queue, gate discipline, ship protocol, standing lessons.
16
+ - **ship.ps1** — one-command band ship (gate → commit → tag-verify → push).
17
+ - **RULINGS_QUEUE.md** — never-block ambiguity protocol.
18
+ - **First wired dispatch: PAPER_001** (GW170817 UQFF Damping Analysis):
19
+ - D_total composed from registry primitives (F_TRZ, D_GW_EROSION, B_CRIT)
20
+ - 16 observables returned; honest 0.10% residual vs 1/3 primitive identity
21
+ - 8 gate assertions (Block 9 opened)
22
+ - +4 UNIFIED_REGISTRY.csv rows, +7 GRAPH edges, +1 CORPUS_CITATIONS row
23
+ - WHITEPAPER_INDEX: PAPER_001 ⬜ → ✓
24
+
25
+ ### Changed
26
+ - Version 0.2.2 → 0.3.0; badges fidelity_gate 55/0, public_surfaces 1.
27
+
28
+ ---
29
+
30
+ ## [0.2.2] — 2026-07-28 — BADGE PATCH
31
+
32
+ ### Added
33
+ - **Documentation Status badge** — the 7th badge from predecessor Star-Magic pattern.
34
+ v0.2.1 tag on PyPI accidentally landed with only 6 badges; v0.2.2 adds
35
+ the missing `Documentation Status` shield pointing at
36
+ `star-magic-program` on readthedocs.org.
37
+
38
+ ### Changed
39
+ - SESSION_LOG.md — badge descriptions expanded with source/link details.
40
+ - Version bumps 0.2.1 → 0.2.2 (pyproject/calc/gate/citation).
41
+
42
+ ### Unchanged
43
+ - All physics content, corpus, registry scaffolds, calculator DISPATCH.
44
+
45
+ ---
46
+
10
47
  ## [0.2.1] — 2026-07-28 — README BADGES
11
48
 
12
49
  ### Added
@@ -3,7 +3,7 @@ message: "If you use Star-Magic-Program (UQFF systematic rebuild) in your resear
3
3
  type: software
4
4
  title: "Star-Magic-Program: UQFF Systematic Rebuild"
5
5
  abbreviation: "UQFF"
6
- version: "0.2.1"
6
+ version: "0.3.0"
7
7
  date-released: "2026-07-28"
8
8
  authors:
9
9
  - family-names: "Murphy"
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: star-magic-program
3
- Version: 0.2.1
4
- Summary: UQFF Star-Magic-Program v0.2.1: README badges (pypi/python/license/fidelity gate/whitepapers/public surfaces/CI). Content otherwise identical to v0.2.0: whitepaper corpus 2,419 files split md/tex/pdf/txt + R0-R5 registry scaffolds (empty per clean-start) + 96-constant registry primitives + empty calculator DISPATCH. Predecessor Star-Magic v5.86.0. Next: v0.3.0+ per-paper wiring.
3
+ Version: 0.3.0
4
+ Summary: UQFF Star-Magic-Program v0.3.0 CAMPAIGN START: wiring campaign charter (CLAUDE.md) + ship.ps1 + RULINGS_QUEUE + first wired dispatch PAPER_001 (GW170817 damping: D_total composed from F_TRZ/D_GW_EROSION/B_CRIT registry primitives, 0.10 pct honest residual vs 1/3 primitive identity per PAPER_2154). Registry pantheon live: +4 rows, +7 graph edges, +1 citation row. Gate 55 assertions green. Sequential wiring continues PAPER_002+.
5
5
  Author-email: "Daniel T. Murphy" <daniel.murphy00@enrgyone.com>
6
6
  License: AGPL-3.0-or-later OR LicenseRef-StarMagic-Commercial
7
7
  Project-URL: Homepage, https://github.com/Daniel8Murphy0007/Star-Magic-Program
@@ -32,9 +32,10 @@ Dynamic: license-file
32
32
 
33
33
  [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg)](https://pypi.org/project/star-magic-program/)
34
34
  [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg)](https://pypi.org/project/star-magic-program/)
35
+ [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
35
36
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
36
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-47%2F0-brightgreen)](uqff_fidelity_tests.py)
37
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-0-blue)](uqff_calculator.py)
37
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-55%2F0-brightgreen)](uqff_fidelity_tests.py)
38
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-1-blue)](uqff_calculator.py)
38
39
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2255-orange)](whitepapers/)
39
40
 
40
41
  **UQFF systematic rebuild — v0.2.0 corpus + registry scaffolding**
@@ -2,9 +2,10 @@
2
2
 
3
3
  [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg)](https://pypi.org/project/star-magic-program/)
4
4
  [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg)](https://pypi.org/project/star-magic-program/)
5
+ [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
5
6
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
6
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-47%2F0-brightgreen)](uqff_fidelity_tests.py)
7
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-0-blue)](uqff_calculator.py)
7
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-55%2F0-brightgreen)](uqff_fidelity_tests.py)
8
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-1-blue)](uqff_calculator.py)
8
9
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2255-orange)](whitepapers/)
9
10
 
10
11
  **UQFF systematic rebuild — v0.2.0 corpus + registry scaffolding**
@@ -210,14 +210,19 @@ Star-Magic-Program's README so future PyPI releases render them.
210
210
 
211
211
  ### What shipped
212
212
 
213
- **7 badges added to README.md top:**
214
- - `pypi` — dynamic version from PyPI (`shields.io/pypi/v/star-magic-program`)
215
- - `python` — dynamic Python versions supported (`shields.io/pypi/pyversions/`)
216
- - `License` — static `AGPL-3.0 + Commercial`
217
- - `Fidelity Gate` static `passing` (updates as gate assertions grow)
218
- - `Whitepapers` static `2,255` (updates as corpus grows)
219
- - `Public Surfaces` — static `0` (updates as calculator gets wired)
220
- - `CI` — dynamic status from GitHub Actions
213
+ **7 badges added to README.md top (matching predecessor Star-Magic pattern exactly):**
214
+ - `PyPI version` — dynamic, queries pypi.org for `star-magic-program`
215
+ - `Python versions` — dynamic, queries pypi.org classifiers
216
+ - `Documentation Status` — readthedocs.org badge for `star-magic-program` project
217
+ (shows `docs | unknown` until RTD project is registered same behavior
218
+ the predecessor had before its RTD site went live)
219
+ - `License: AGPL-3.0 + Commercial` — static, relative link to `LICENSE`
220
+ - `fidelity_gate 47/0` — static, relative link to `uqff_fidelity_tests.py`
221
+ (47 = current assertion count, 0 = current failure count; update per ship)
222
+ - `public_surfaces 0` — static, relative link to `uqff_calculator.py`
223
+ (0 = empty DISPATCH; grows with v0.3.0+ wiring)
224
+ - `whitepapers 2255` — static, relative link to `whitepapers/`
225
+ (2,255 = current .md file count; grows if corpus is extended)
221
226
 
222
227
  **Version bumps 0.2.0 → 0.2.1** (patch):
223
228
  - pyproject.toml
@@ -262,3 +267,67 @@ Before every ship, check (in order):
262
267
  **v0.3.0 — first wiring batch** (unchanged from v0.2.0's next-ship note).
263
268
 
264
269
  ---
270
+
271
+ ## 2026-07-28 — v0.2.2 PATCH — DOCUMENTATION STATUS BADGE
272
+
273
+ ### Purpose
274
+
275
+ v0.2.1 tag on PyPI landed with only 6 of the 7 predecessor badges.
276
+ The `Documentation Status` (readthedocs.org) badge was dropped and later
277
+ added to master but the v0.2.1 tag never advanced. v0.2.2 patch ships
278
+ the corrected 7-badge state so PyPI project page shows the complete
279
+ predecessor pattern.
280
+
281
+ ### What shipped
282
+
283
+ - README.md — Documentation Status badge added (7th badge, matches predecessor exactly).
284
+ - CHANGELOG.md — v0.2.2 entry prepended.
285
+ - SESSION_LOG.md — this entry appended + earlier v0.2.1 badge descriptions polished.
286
+ - Version bumps 0.2.1 → 0.2.2 (pyproject.toml, uqff_calculator.py, uqff_fidelity_tests.py, CITATION.cff).
287
+
288
+ ### What DIDN'T change
289
+
290
+ - Physics content, whitepapers, registry, calculator DISPATCH — all identical to v0.2.0.
291
+
292
+ ### Lesson
293
+
294
+ Standing rule addition: **when a patch ship is retagged, verify tag points at
295
+ the LATEST commit before pushing.** In this case v0.2.1 tag was created early
296
+ in the badge-fix sequence, then more edits landed on master, but the tag was
297
+ never moved. Command `git rev-parse v0.X.Y` compared against `git log --oneline -1`
298
+ before pushing catches this instantly.
299
+
300
+ ### Next ship
301
+
302
+ **v0.3.0 — first wiring batch** (still queued, unchanged).
303
+
304
+ ---
305
+
306
+ ## 2026-07-28 — v0.3.0 — WIRING CAMPAIGN START (charter + PAPER_001)
307
+
308
+ ### Authorized
309
+
310
+ Daniel: "I can't loose anything by experimenting with the idea of setting you
311
+ loose over the first 500... Build the charter." Campaign authorized: autonomous
312
+ band wiring, ship per session via ship.ps1, full stop at PAPER_500 for manual
313
+ review.
314
+
315
+ ### What shipped
316
+
317
+ - **CLAUDE.md** — the campaign charter (every session self-configures from it)
318
+ - **ship.ps1** — one-command ship encoding all 2026-07-28 standing lessons
319
+ - **RULINGS_QUEUE.md** — never-block protocol
320
+ - **PAPER_001 wired end-to-end** (the pattern proof):
321
+ - Dispatch `_paper_001` composed from F_TRZ, D_GW_EROSION, B_CRIT primitives
322
+ - D_total = 0.333 (paper chain); 0.10% honest residual vs 1/3 (PAPER_2154)
323
+ - Registry pantheon: +4 rows, +7 edges, +1 citations row
324
+ - Gate Block 9 opened: 8 assertions, all green (55 total)
325
+ - Index: PAPER_001 ✓
326
+ - Version 0.3.0 across pyproject/calculator/gate/citation; badges updated.
327
+
328
+ ### Next
329
+
330
+ Band 1 continues: PAPER_002-020 (GW family template). Ship per session.
331
+
332
+ ---
333
+
@@ -11,9 +11,9 @@
11
11
  ## Summary
12
12
 
13
13
  - **Total papers:** 2255
14
- - **Wired (v0.2.0):** 0
14
+ - **Wired:** 1
15
15
  - **OPEN targets:** 0
16
- - **Not yet touched:** 2255
16
+ - **Not yet touched:** 2254
17
17
 
18
18
  ---
19
19
 
@@ -22,7 +22,7 @@
22
22
  | Status | Paper ID | Title fragment |
23
23
  |---|---|---|
24
24
  | ⬜ | COMPLETE_UQFF_EQUATIONS_REFERENCE | (no PAPER_N prefix) |
25
- | | PAPER_001 | GW170817 UQFF Damping Analysis |
25
+ | | PAPER_001 | GW170817 UQFF Damping Analysis |
26
26
  | ⬜ | PAPER_002 | GW190425 Mass Gap Interpretation |
27
27
  | ⬜ | PAPER_003 | GW150914 UQFF vs LIGO Strain |
28
28
  | ⬜ | PAPER_004 | GW170817 BNS Chirp Phase Evolution |
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "star-magic-program"
7
- version = "0.2.1"
8
- description = "UQFF Star-Magic-Program v0.2.1: README badges (pypi/python/license/fidelity gate/whitepapers/public surfaces/CI). Content otherwise identical to v0.2.0: whitepaper corpus 2,419 files split md/tex/pdf/txt + R0-R5 registry scaffolds (empty per clean-start) + 96-constant registry primitives + empty calculator DISPATCH. Predecessor Star-Magic v5.86.0. Next: v0.3.0+ per-paper wiring."
7
+ version = "0.3.0"
8
+ description = "UQFF Star-Magic-Program v0.3.0 CAMPAIGN START: wiring campaign charter (CLAUDE.md) + ship.ps1 + RULINGS_QUEUE + first wired dispatch PAPER_001 (GW170817 damping: D_total composed from F_TRZ/D_GW_EROSION/B_CRIT registry primitives, 0.10 pct honest residual vs 1/3 primitive identity per PAPER_2154). Registry pantheon live: +4 rows, +7 graph edges, +1 citation row. Gate 55 assertions green. Sequential wiring continues PAPER_002+."
9
9
  readme = "README.md"
10
10
  authors = [
11
11
  { name = "Daniel T. Murphy", email = "daniel.murphy00@enrgyone.com" }
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: star-magic-program
3
- Version: 0.2.1
4
- Summary: UQFF Star-Magic-Program v0.2.1: README badges (pypi/python/license/fidelity gate/whitepapers/public surfaces/CI). Content otherwise identical to v0.2.0: whitepaper corpus 2,419 files split md/tex/pdf/txt + R0-R5 registry scaffolds (empty per clean-start) + 96-constant registry primitives + empty calculator DISPATCH. Predecessor Star-Magic v5.86.0. Next: v0.3.0+ per-paper wiring.
3
+ Version: 0.3.0
4
+ Summary: UQFF Star-Magic-Program v0.3.0 CAMPAIGN START: wiring campaign charter (CLAUDE.md) + ship.ps1 + RULINGS_QUEUE + first wired dispatch PAPER_001 (GW170817 damping: D_total composed from F_TRZ/D_GW_EROSION/B_CRIT registry primitives, 0.10 pct honest residual vs 1/3 primitive identity per PAPER_2154). Registry pantheon live: +4 rows, +7 graph edges, +1 citation row. Gate 55 assertions green. Sequential wiring continues PAPER_002+.
5
5
  Author-email: "Daniel T. Murphy" <daniel.murphy00@enrgyone.com>
6
6
  License: AGPL-3.0-or-later OR LicenseRef-StarMagic-Commercial
7
7
  Project-URL: Homepage, https://github.com/Daniel8Murphy0007/Star-Magic-Program
@@ -32,9 +32,10 @@ Dynamic: license-file
32
32
 
33
33
  [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg)](https://pypi.org/project/star-magic-program/)
34
34
  [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg)](https://pypi.org/project/star-magic-program/)
35
+ [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
35
36
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
36
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-47%2F0-brightgreen)](uqff_fidelity_tests.py)
37
- [![Public surfaces](https://img.shields.io/badge/public_surfaces-0-blue)](uqff_calculator.py)
37
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-55%2F0-brightgreen)](uqff_fidelity_tests.py)
38
+ [![Public surfaces](https://img.shields.io/badge/public_surfaces-1-blue)](uqff_calculator.py)
38
39
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2255-orange)](whitepapers/)
39
40
 
40
41
  **UQFF systematic rebuild — v0.2.0 corpus + registry scaffolding**
@@ -57,7 +57,7 @@ from uqff_registry_primitives import (
57
57
  DELTA_M2_21_EV2, DELTA_M2_32_EV2,
58
58
  )
59
59
 
60
- VERSION = "0.2.1"
60
+ VERSION = "0.3.0"
61
61
 
62
62
  # =============================================================================
63
63
  # DISPATCH TABLE — grown one whitepaper at a time.
@@ -98,12 +98,49 @@ def wired_count():
98
98
 
99
99
 
100
100
  # =============================================================================
101
- # PAPER_N DISPATCHES — populated in subsequent ships (v0.2.0 and later)
102
- # =============================================================================
103
- # Wiring campaign order:
104
- # v0.2.0 — 46 UQFF_LANDMARK papers (structural spine)
105
- # v0.3.0 — PAPER_001 through PAPER_099 (foundation: GW, paradox, BSM)
106
- # v0.4.0 — PAPER_100 through PAPER_299
107
- # ...continued...
108
- # v1.0.0 — Full whitepaper coverage (2,156 papers)
101
+ # PAPER_N DISPATCHES — sequential wiring campaign from PAPER_001 (see CLAUDE.md)
109
102
  # =============================================================================
103
+
104
+
105
+ @_register('PAPER_001')
106
+ def _paper_001(dataset):
107
+ """GW170817 UQFF Damping Analysis (Session 1).
108
+
109
+ BNS merger strain damping: D_total = D_Aether*D_SCm*D_TRZ*D_String.
110
+ Headline 66.7% reduction later canonized as D_GW_EROSION = D_phys/D_BSFG
111
+ = 2/3 EXACT (PAPER_2154 5th primitive-reduction landmark); paper chain
112
+ (0.9*0.37 = 0.333) sits 0.10% from the primitive identity 1/3.
113
+ """
114
+ B_NS = 1.0e4 # T — typical NS field, paper Table 3.1
115
+ D_aether = 1.0 # negligible aether coupling at 40 Mpc
116
+ D_scm = 1.0 # B_NS/B_CRIT = 2.27e-10 << 1
117
+ D_trz = 1.0 - F_TRZ # 0.9 EXACT (topological resonance zone)
118
+ D_string = 0.37 # paper-stated string-sector factor
119
+ D_total = D_aether * D_scm * D_trz * D_string # 0.333
120
+ h_gr = 5.4176e-22 # LIGO GR peak strain anchor (paper §3.3)
121
+ snr_gr = 32.4 # GR SNR anchor (paper §3.4)
122
+ d_primitive = 1.0 - D_GW_EROSION # 1/3 EXACT per PAPER_2154
123
+ return {
124
+ 'value': {
125
+ 'D_aether': D_aether,
126
+ 'D_scm': D_scm,
127
+ 'D_trz': D_trz,
128
+ 'D_string': D_string,
129
+ 'D_total': D_total,
130
+ 'D_total_primitive_identity': d_primitive,
131
+ 'h_gr_strain': h_gr,
132
+ 'h_uqff_strain': D_total * h_gr, # 1.8041e-22
133
+ 'snr_gr': snr_gr,
134
+ 'snr_uqff': D_total * snr_gr, # 10.79
135
+ 'mismatch': 1.0 - D_total, # 0.667
136
+ 'B_NS_over_B_crit': B_NS / B_CRIT, # 2.27e-10
137
+ 'chirp_mass_msun': 1.188, # LIGO O2 anchor
138
+ 'total_mass_msun': 2.73, # LIGO O2 anchor
139
+ 'distance_mpc': 40.0, # NGC 4993 anchor
140
+ 'grb_delay_s': 1.74, # GRB 170817A anchor
141
+ },
142
+ 'formula': ('D_total = D_Aether*D_SCm*(1-F_TRZ)*D_String; '
143
+ 'h_UQFF = D_total*h_GR; mismatch ~ D_GW_EROSION (PAPER_2154)'),
144
+ 'source': 'PAPER_001',
145
+ 'residual_pct': abs(D_total - d_primitive) / d_primitive * 100.0, # 0.10%
146
+ }
@@ -98,7 +98,7 @@ assert_that(abs(P.N_EFF_NEUTRINO - n_eff_expected) < 1e-15,
98
98
  # =============================================================================
99
99
  # BLOCK 7 — CALCULATOR SCAFFOLD INTEGRITY
100
100
  # =============================================================================
101
- assert_that(C.VERSION == "0.2.1", "uqff_calculator.VERSION = 0.2.1")
101
+ assert_that(C.VERSION == "0.3.0", "uqff_calculator.VERSION = 0.3.0")
102
102
  assert_that(isinstance(C.DISPATCH, dict), "DISPATCH is a dict")
103
103
  assert_that(C.wired_count() >= 0, "wired_count is queryable (>= 0)")
104
104
  assert_that(callable(C.calc), "calc is callable")
@@ -121,6 +121,28 @@ for tok in BANNED:
121
121
  pass
122
122
  assert_that(tok not in calc_src, f"Banned registry-duplicating literal in calculator: {tok}")
123
123
 
124
+ # =============================================================================
125
+ # BLOCK 9 — WIRED-PAPER ASSERTIONS (grows with the campaign, one block per band)
126
+ # =============================================================================
127
+
128
+ # --- Band 1: PAPER_001-020 (GW foundation) ---
129
+ _r001 = C.calc('PAPER_001')['value']
130
+ assert_that(abs(_r001['D_total'] - 0.333) < 1e-12,
131
+ "PAPER_001: D_total = 0.333 (paper damping chain 1*1*0.9*0.37)")
132
+ assert_that(abs(_r001['D_trz'] - 0.9) < 1e-15,
133
+ "PAPER_001: D_TRZ = 1 - F_TRZ = 0.9 EXACT")
134
+ assert_that(abs(_r001['D_total'] - (1.0 - P.D_GW_EROSION)) / (1.0 - P.D_GW_EROSION) < 0.0011,
135
+ "PAPER_001: D_total within 0.11% of primitive identity 1/3 (PAPER_2154)")
136
+ assert_that(abs(_r001['h_uqff_strain'] - 1.8041e-22) < 1e-25,
137
+ "PAPER_001: h_UQFF = 1.8041e-22 strain")
138
+ assert_that(abs(_r001['snr_uqff'] - 10.8) < 0.02,
139
+ "PAPER_001: SNR_UQFF = 10.8")
140
+ assert_that(abs(_r001['mismatch'] - 0.667) < 1e-12,
141
+ "PAPER_001: mismatch = 0.667 (paper precision)")
142
+ assert_that(abs(_r001['B_NS_over_B_crit'] - 2.27e-10) < 0.01e-10,
143
+ "PAPER_001: B_NS/B_crit = 2.27e-10 (negligible SCm damping)")
144
+ assert_that(C.wired_count() >= 1, "wired_count >= 1 (campaign started)")
145
+
124
146
  # =============================================================================
125
147
  # REPORT
126
148
  # =============================================================================