star-magic-program 0.394.0__tar.gz → 0.396.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 (74) hide show
  1. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/CHANGELOG.md +60 -0
  2. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/CITATION.cff +3 -3
  3. {star_magic_program-0.394.0/star_magic_program.egg-info → star_magic_program-0.396.0}/PKG-INFO +8 -8
  4. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/README.md +6 -6
  5. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/SESSION_LOG.md +86 -0
  6. star_magic_program-0.396.0/UNIFIED_REGISTRY_VERSION.txt +1 -0
  7. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_XGEO_QUEUE.csv +2 -0
  8. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_XGEO_ROUTES.csv +2 -0
  9. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/_BUILD_LOG.md +6 -0
  10. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/pyproject.toml +2 -2
  11. {star_magic_program-0.394.0 → star_magic_program-0.396.0/star_magic_program.egg-info}/PKG-INFO +8 -8
  12. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/star_magic_program.egg-info/SOURCES.txt +10 -1
  13. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_calculator.py +1 -1
  14. star_magic_program-0.396.0/uqff_downhole_simulator/README.md +293 -0
  15. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_downhole_simulator/__init__.py +58 -1
  16. star_magic_program-0.396.0/uqff_downhole_simulator/__main__.py +147 -0
  17. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_case_study.py +226 -0
  18. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_deviation.py +67 -0
  19. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_downhole_simulator/uqff_downhole_engine.py +32 -7
  20. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_gauge_specs.py +109 -0
  21. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_ports.py +277 -0
  22. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_downhole_simulator/uqff_quartz_hpht_extension.py +42 -14
  23. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_reconciler.py +203 -0
  24. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_service_life.py +170 -0
  25. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_telemetry.py +303 -0
  26. star_magic_program-0.396.0/uqff_downhole_simulator/uqff_tool_library.py +257 -0
  27. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_fidelity_tests.py +248 -6
  28. star_magic_program-0.394.0/UNIFIED_REGISTRY_VERSION.txt +0 -1
  29. star_magic_program-0.394.0/uqff_downhole_simulator/README.md +0 -88
  30. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/AUDIT_500_PAPER_REPORT.md +0 -0
  31. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/COMMERCIAL.md +0 -0
  32. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/LICENSE +0 -0
  33. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/LICENSE-AGPL-3.0.txt +0 -0
  34. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/LICENSE-MIT-INITIAL.txt +0 -0
  35. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/NOTICE +0 -0
  36. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_ANCHORS.csv +0 -0
  37. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_EXACT_IDENTITIES.csv +0 -0
  38. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_FALSIFIABILITY.md +0 -0
  39. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_OPEN_ITEMS.csv +0 -0
  40. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_PARADOX_CENSUS.csv +0 -0
  41. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_PREDICTIONS.csv +0 -0
  42. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_PROGRAM_PLAN.md +0 -0
  43. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_RESIDUALS.csv +0 -0
  44. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_RESULTS_TABLE.md +0 -0
  45. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_SCHEMA.md +0 -0
  46. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_STATUS_REPORT.md +0 -0
  47. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_XGEO_CONFIRMATIONS.csv +0 -0
  48. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/UNIFIED_REGISTRY_XGEO_EXTRACTED.csv +0 -0
  49. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/WHITEPAPER_INDEX.md +0 -0
  50. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/notebooks/00_quickstart.ipynb +0 -0
  51. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/reference/COMPLETE_UQFF_EQUATIONS_REFERENCE.pdf +0 -0
  52. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/reference/Star-Magic_manuscript_v5.pdf +0 -0
  53. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/reference/UQFF_VALIDATION_SYNC_AUDIT.pdf +0 -0
  54. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/reference/uqff_production_arxiv.pdf +0 -0
  55. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/registry_generator.py +0 -0
  56. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/setup.cfg +0 -0
  57. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/star_magic_program.egg-info/dependency_links.txt +0 -0
  58. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/star_magic_program.egg-info/requires.txt +0 -0
  59. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/star_magic_program.egg-info/top_level.txt +0 -0
  60. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_backbone_locks.py +0 -0
  61. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_derived_constants.py +0 -0
  62. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_derived_functions.py +0 -0
  63. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_downhole_simulator/matplotlib_demo.py +0 -0
  64. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_downhole_simulator/qt6_downhole_app.py +0 -0
  65. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_downhole_simulator/sample_well_profile.csv +0 -0
  66. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_fubii_variants.py +0 -0
  67. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_material_landmarks.py +0 -0
  68. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_ngc_catalog.py +0 -0
  69. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_primitive_identities.py +0 -0
  70. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_registry_graph.py +0 -0
  71. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_registry_primitives.py +0 -0
  72. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_registry_status.py +0 -0
  73. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_registry_xgeo.py +0 -0
  74. {star_magic_program-0.394.0 → star_magic_program-0.396.0}/uqff_session_closures.py +0 -0
@@ -7,6 +7,66 @@ Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
8
  ---
9
9
 
10
+ ## v0.396.0 — 2026-08-24 — THE TWO-STREAM SHIP
11
+
12
+ `uqff_downhole_simulator` v1.7.0–v1.9.0 — Daniel's two-stream architecture
13
+ (closed theoretical stream vs live site stream, coordinated to find offset
14
+ undervalued data) built COMPLETE:
15
+
16
+ - **v1.7.0 the tool library** — cited catalog of 8 toolstring entries: quartz
17
+ twins (wrapping the GEOQ 177 specs), piezoresistive class (drift FORM cited
18
+ from ChampionX — exponential in temperature; coefficients disclosed as
19
+ representative fit), vibrating wire / thermocouple card / DTS fiber as
20
+ PARAMETERS_USER_SUPPLIED (refusing invented vendor numbers), and the G6
21
+ Modbus-RS485 surface interface declared as the ports target. ToolString +
22
+ station rating checks (catches a 177 °C gauge in the 217 °C kick zone).
23
+ - **v1.8.0 the ports/plug-in layer** — READ-ONLY ingest to the normalized
24
+ LiveStream form. IMPLEMENTED: historian CSV (round-trip verified against the
25
+ v1.3.0 telemetry export to precision) and LAS 2.0 (CWLS standard; NULL→NaN;
26
+ wrapped mode refused, never mis-parsed). DECLARED (refusing until site
27
+ details): modbus_g6, witsml, opcua. register_port() for site plug-ins;
28
+ CLI `ingest`.
29
+ - **v1.9.0 the reconciler** — per-station offset series classified IN_FAMILY /
30
+ CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED, thresholds
31
+ disclosed in every report. Four-scenario validation per gate run: clean well
32
+ 6/6 in-family; +50 psi bias recovered at 50.09; 2-yr drift inside the
33
+ spec-aware envelope; THE FIND — kick well vs linear-gradient assumption
34
+ flags 610/4,448/6,083 psi unexplained offsets. CLI `reconcile`.
35
+
36
+ Also: v0.395.0 red-gate portability fix hardened (PORTABILITY GUARD self-scan).
37
+ Gate 5,801 → 5,816. PAPER_2256 +3 appendices (6/7/8). Zero calculator physics
38
+ changes; zero new dispatches.
39
+
40
+ ---
41
+
42
+ ## v0.395.0 — 2026-08-23 — THE INSTRUMENT SHIP
43
+
44
+ `uqff_downhole_simulator` v1.2.0–v1.6.0 (Daniel-directed extension list, complete):
45
+
46
+ - **v1.2.0 service-life drift accumulation** — twin-leg divergence curves over
47
+ simulated service years (2–3 psi/yr per station at FS 30,000; 10–15 psi at 5 yr),
48
+ recalibration resets, years-to-error-budget arithmetic; accumulated-error ratio
49
+ converges to the canonical suppression at every station.
50
+ - **v1.3.0 field-telemetry realism** — 1-reading/min timestamped acquisition, line
51
+ dropouts, stuck gauges, spikes with historian quality flags; scored QC pipeline
52
+ (frozen-value detection 1.0/1.0; Hampel despiker with two-part common-mode veto,
53
+ spike-P precision 0.83–1.0) exporting field-historian CSVs.
54
+ - **v1.4.0 depth-sweep case-study mode** — where the advantage is largest (2.04 →
55
+ 3.04 psi/yr toward TD; 4.21 on a 30,000-ft well); one-page markdown customer case
56
+ with the honest DERIVED_HYBRID note; CLI.
57
+ - **v1.5.0 real-datasheet gauge specs** — web-verified GEO PSI GEOQ 177 (Quartzdyne)
58
+ presets with mandatory citations (uncited specs REJECTED in code); suppression
59
+ ratio baseline-independent, psi/yr story honestly rescaled (~20x smaller at the
60
+ reference-condition spec bound); unverified search-summary figure refused.
61
+ - **v1.6.0 deviation + batch + CLI** — MD/TVD surveys (60° tangent: 6,525 vs
62
+ vertical-model 9,315 psi at the deepest gauge), multi-well batch runs (ratio
63
+ invariant across geometries), package-level headless CLI (4 subcommands).
64
+
65
+ Gate 5,777 → 5,800 (+23 DOWNHOLE pins across v1.2–v1.6). PAPER_2256 carries five
66
+ same-day appendices. Zero calculator physics changes; zero new dispatches.
67
+
68
+ ---
69
+
10
70
  ## v0.394.0 — 2026-08-22 — THE DOWNHOLE SHIP
11
71
 
12
72
  - **PAPER_2256 + uqff_downhole_simulator v1.1.0 (NEW PACKAGE):** the first industry-
@@ -3,8 +3,8 @@ 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.394.0"
7
- date-released: "2026-08-15"
6
+ version: "0.396.0"
7
+ date-released: "2026-08-24"
8
8
  authors:
9
9
  - family-names: "Murphy"
10
10
  given-names: "Daniel T."
@@ -53,7 +53,7 @@ preferred-citation:
53
53
  - family-names: "Murphy"
54
54
  given-names: "Daniel T."
55
55
  year: 2026
56
- version: "0.394.0"
56
+ version: "0.396.0"
57
57
  url: "https://github.com/Daniel8Murphy0007/Star-Magic-Program"
58
58
  notes: >-
59
59
  Cite both the software and the relevant whitepapers by PAPER_N
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: star-magic-program
3
- Version: 0.394.0
4
- Summary: Star-Magic UQFF calculator v0.394.0: THE DOWNHOLE SHIP. 2,252 dispatches (2,307 keys), gate 5,777/0. PAPER_2256 + uqff_downhole_simulator v1.1.0 - the first packaged industry-application module: HPHT quartz-gauge string with canonical-lock drift suppression (K_MEX=25/12, Phi_res=0.84; suppression 1.0324 - drift BELOW industry baseline), N-gauge strings, real well profiles from CSV (sample HPHT kick zone), twin-gauge comparison mode (measured ratio == suppression). Next: PAPER_2257.
3
+ Version: 0.396.0
4
+ Summary: Star-Magic UQFF calculator v0.396.0: THE TWO-STREAM SHIP. 2,252 dispatches (2,307 keys), gate 5,816/0. uqff_downhole_simulator v1.7.0-v1.9.0 completes Daniel's two-stream architecture: cited tool library (8 entries, no invented vendor data), read-only ports (historian CSV + LAS 2.0 implemented, live taps declared), and the two-stream reconciler - closed-stream predictions vs live data, offsets classified, undervalued streams flagged (kick-well find: 6,083 psi unexplained). Next: PAPER_2257.
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
@@ -34,17 +34,17 @@ Dynamic: license-file
34
34
 
35
35
  # Star-Magic-Program
36
36
 
37
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.394.0)](https://pypi.org/project/star-magic-program/)
38
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.394.0)](https://pypi.org/project/star-magic-program/)
37
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
38
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
39
39
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
40
40
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
41
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5777%2F0-brightgreen)](uqff_fidelity_tests.py)
41
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5816%2F0-brightgreen)](uqff_fidelity_tests.py)
42
42
  [![Public surfaces](https://img.shields.io/badge/public_surfaces-2307-blue)](uqff_calculator.py)
43
43
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2291-orange)](whitepapers/)
44
44
 
45
- **UQFF systematic rebuild — v0.394.0 complete-compile campaign live**
45
+ **UQFF systematic rebuild — v0.396.0 complete-compile campaign live**
46
46
 
47
- **This release (v0.394.0): THE DOWNHOLE SHIP — THE FRAMEWORK GOES TO WORK.** **PAPER_2256 + `uqff_downhole_simulator` v1.1.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. Four modules + README + sample profile, installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,777 green / 4,179 defs. Next paper: PAPER_2257.**
47
+ **This release (v0.396.0): THE TWO-STREAM SHIP — THE ARCHITECTURE COMPLETE.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,816 green / 4,179 defs. Next paper: PAPER_2257.**
48
48
 
49
49
  Author: Daniel T. Murphy · Star-Magic Research Program
50
50
  License: AGPL-3.0-or-later OR Commercial
@@ -102,7 +102,7 @@ Mizuno, Rossi).
102
102
  Full framework physics lives in the whitepaper corpus — the physics is the
103
103
  whitepapers; the calculator computes what the whitepapers derive.
104
104
 
105
- ## What is currently shipped (v0.394.0)
105
+ ## What is currently shipped (v0.396.0)
106
106
 
107
107
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
108
108
 
@@ -1,16 +1,16 @@
1
1
  # Star-Magic-Program
2
2
 
3
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.394.0)](https://pypi.org/project/star-magic-program/)
4
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.394.0)](https://pypi.org/project/star-magic-program/)
3
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
4
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
5
5
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
6
6
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
7
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5777%2F0-brightgreen)](uqff_fidelity_tests.py)
7
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5816%2F0-brightgreen)](uqff_fidelity_tests.py)
8
8
  [![Public surfaces](https://img.shields.io/badge/public_surfaces-2307-blue)](uqff_calculator.py)
9
9
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2291-orange)](whitepapers/)
10
10
 
11
- **UQFF systematic rebuild — v0.394.0 complete-compile campaign live**
11
+ **UQFF systematic rebuild — v0.396.0 complete-compile campaign live**
12
12
 
13
- **This release (v0.394.0): THE DOWNHOLE SHIP — THE FRAMEWORK GOES TO WORK.** **PAPER_2256 + `uqff_downhole_simulator` v1.1.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. Four modules + README + sample profile, installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,777 green / 4,179 defs. Next paper: PAPER_2257.**
13
+ **This release (v0.396.0): THE TWO-STREAM SHIP — THE ARCHITECTURE COMPLETE.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,816 green / 4,179 defs. Next paper: PAPER_2257.**
14
14
 
15
15
  Author: Daniel T. Murphy · Star-Magic Research Program
16
16
  License: AGPL-3.0-or-later OR Commercial
@@ -68,7 +68,7 @@ Mizuno, Rossi).
68
68
  Full framework physics lives in the whitepaper corpus — the physics is the
69
69
  whitepapers; the calculator computes what the whitepapers derive.
70
70
 
71
- ## What is currently shipped (v0.394.0)
71
+ ## What is currently shipped (v0.396.0)
72
72
 
73
73
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
74
74
 
@@ -11762,3 +11762,89 @@ Three extensions built and headless-verified:
11762
11762
  New files: PAPER_2256 whitepaper + the 8-file uqff_downhole_simulator package
11763
11763
  (v1.1.0 incl. sample_well_profile.csv). Awaiting Daniel: `.\ship.ps1` (clear
11764
11764
  .git/index.lock first).
11765
+
11766
+ ## Entry 267 — 2026-08-23 — v0.395.0 THE INSTRUMENT SHIP (downhole v1.2.0–v1.6.0)
11767
+
11768
+ Daniel-directed refinement of the downhole simulator; the five-item extension
11769
+ list proposed post-v0.394.0 executed COMPLETE in one session:
11770
+
11771
+ 1. v1.2.0 `uqff_service_life.py` — drift rates integrated over service years,
11772
+ twin-leg divergence curves (2.04→3.04 psi/yr per station at FS 30,000;
11773
+ 10–15 psi at the 5-yr horizon), recalibration resets, years-to-budget;
11774
+ accumulated-error ratio → canonical suppression at every station.
11775
+ 2. v1.3.0 `uqff_telemetry.py` — 1/min timestamped acquisition; line dropouts,
11776
+ stuck gauges, spikes; historian quality flags; scored QC pipeline against
11777
+ injected ground truth (frozen-value 1.0/1.0; Hampel + two-part common-mode
11778
+ veto took spike-P precision 0.05→0.83–1.0; two authoring catches fixed:
11779
+ MAD crushed by stuck runs, events mis-flagged as faults).
11780
+ 3. v1.4.0 `uqff_case_study.py` — depth sweep + one-page markdown customer case
11781
+ + CLI; advantage compounds past the HPHT knees (4.21 psi/yr at 27,000 ft).
11782
+ 4. v1.5.0 `uqff_gauge_specs.py` — GaugeSpec with MANDATORY citation (uncited
11783
+ specs rejected in code); web-verified GEO PSI GEOQ 177 (Quartzdyne) presets
11784
+ (<0.01 %FS/yr, ±0.02/0.025 %FS, 177 °C; fetched 2026-08-23); unverified
11785
+ "200 °C <0.02%" search-summary figure REFUSED as preset (Rule 7); ChampionX
11786
+ page independently confirms the 150 °C knee anchor; separation honestly
11787
+ rescales ~20x at the reference-condition bound, ratio baseline-independent.
11788
+ 5. v1.6.0 `uqff_deviation.py` + `run_batch` + `__main__.py` — MD/TVD surveys
11789
+ (kickoff kink pinned as exact station; 60° identity MD 20,000 → TVD 14,000
11790
+ EXACT; deviated deepest gauge 6,525 vs vertical 9,315 psi); multi-well
11791
+ batch (ratio 1.0325–1.0326 on ALL geometries — well-shape invariance
11792
+ gate-pinned); headless CLI run|service-life|telemetry|case-study.
11793
+
11794
+ PAPER_2256: +5 same-day appendices (one per version). Gate 5,777→5,800
11795
+ (+23 DOWNHOLE pins), 0 failures. Zero calculator physics changes, zero new
11796
+ dispatches (residual ratchet untouched). Ship prep: 6 pins at 0.395.0;
11797
+ SHIP GUARD v4.1 marker DOWNHOLE_ARC→INSTRUMENT_ARC (+ GAPS id
11798
+ instrument_arc_rule7); README release paragraph/campaign line/shipped header;
11799
+ CHANGELOG + _BUILD_LOG + SHIP_MESSAGE + RULINGS trail; 10 INSTRUMENT_ARC
11800
+ trail rows. Awaiting Daniel: `.\ship.ps1` (clear .git/index.lock first).
11801
+
11802
+ ### Entry 267 addendum — v0.395.0 RED GATE on Daniel's machine (portability) — FIXED
11803
+
11804
+ Daniel's `.\ship.ps1` failed: the v1.3.0 telemetry gate pin exported to a
11805
+ hard-coded Unix temp path — green on the Linux authoring sandbox,
11806
+ FileNotFoundError on Windows. First gate failure whose cause was the HOST OS,
11807
+ not the physics. Fix: both offending pins (telemetry export, case-study render)
11808
+ now build scratch paths via tempfile.gettempdir(); the v1.6.0 CLI pin already
11809
+ used tempfile.mkdtemp. PERMANENT PORTABILITY GUARD added: the gate scans its
11810
+ own source for quote-adjacent Unix temp-path literals (needle constructed at
11811
+ runtime so the guard cannot self-match) — the mistake cannot be reintroduced.
11812
+ Gate 5,800 → 5,801; README badge + pyproject description synced. Standing
11813
+ lesson for the charter set: gate pins write scratch files ONLY via tempfile.
11814
+
11815
+ ## Entry 268 — 2026-08-24 — v0.396.0 THE TWO-STREAM SHIP (downhole v1.7.0–v1.9.0)
11816
+
11817
+ Daniel's architectural ruling (2026-08-23, verbatim frame): "There are two
11818
+ sides to this program so that the standalone theoretical can function to find
11819
+ the offset undervalued data streams that coordinate live stream with closed
11820
+ stream." Confirmed correct reading; built as three pieces, COMPLETE:
11821
+
11822
+ 1. v1.7.0 `uqff_tool_library.py` — cited 8-entry catalog: quartz twins (GEOQ
11823
+ 177 specs), piezoresistive class (ChampionX-cited exponential-in-T FORM,
11824
+ representative coefficients disclosed), GEOVW/GEOXTR/GEOPulse as
11825
+ PARAMETERS_USER_SUPPLIED with drift_model_for() REFUSING them, G6 Modbus
11826
+ interface = declared ports target; ToolString + rating_check (177 °C gauge
11827
+ caught at the 217 °C kick station).
11828
+ 2. v1.8.0 `uqff_ports.py` — READ-ONLY plug-in registry → normalized
11829
+ LiveStream. historian_csv + las2 IMPLEMENTED; round-trip vs the v1.3.0
11830
+ telemetry export verified to precision (MISSING→NaN, flags carried);
11831
+ wrapped LAS REFUSED; modbus_g6/witsml/opcua DECLARED-refusing;
11832
+ register_port(); CLI ingest.
11833
+ 3. v1.9.0 `uqff_reconciler.py` — offset(t) = measured − predicted per
11834
+ station; classifications with thresholds DISCLOSED in every report; drift
11835
+ not classified under ~18-day windows (slopes are noise, said so). Four
11836
+ scenarios verified per gate run: clean 6/6 IN_FAMILY; +50 psi bias →
11837
+ CALIBRATION_OFFSET 50.09 recovered; 2-yr synthetic at conventional rate →
11838
+ DRIFT_CONSISTENT (82.45 in [79.71, 82.29]); THE FIND — kick well vs
11839
+ linear-gradient assumption → UNEXPLAINED_OFFSET 610/4,448/6,083 psi.
11840
+
11841
+ Session also carried the v0.395.0 RED-GATE portability incident (hard-coded
11842
+ Unix temp path in a gate pin; fixed; permanent PORTABILITY GUARD self-scan
11843
+ added — gate 5,800→5,801) before this arc (5,801→5,816, +15 pins).
11844
+
11845
+ Ship prep: 6 pins at 0.396.0 (desc 495 chars, measured counts); SHIP GUARD
11846
+ marker INSTRUMENT_ARC→TWOSTREAM_ARC (+ GAPS id twostream_arc_rule7); README
11847
+ release paragraph/campaign/shipped header; CHANGELOG + _BUILD_LOG +
11848
+ SHIP_MESSAGE + RULINGS trail; 10 TWOSTREAM_ARC trail rows. Zero calculator
11849
+ physics changes; zero new dispatches (ratchet untouched). Awaiting Daniel:
11850
+ `.\ship.ps1` (clear .git/index.lock first).
@@ -0,0 +1 @@
1
+ v0.396.0
@@ -1721,3 +1721,5 @@ DOCTRINE_ARC,n/a,n/a,NOT_APPLICABLE,doctrine+census single-geometry,v0.391.0
1721
1721
  CENSUS_ARC,n/a,n/a,NOT_APPLICABLE,census consolidation single-geometry,v0.392.0
1722
1722
  LEDGER_ARC,n/a,n/a,NOT_APPLICABLE,census+packaging single-geometry,v0.393.0
1723
1723
  DOWNHOLE_ARC,n/a,n/a,NOT_APPLICABLE,application module single-geometry,v0.394.0
1724
+ INSTRUMENT_ARC,n/a,n/a,NOT_APPLICABLE,application-module extensions single-geometry,v0.395.0
1725
+ TWOSTREAM_ARC,n/a,n/a,NOT_APPLICABLE,application-module architecture single-geometry,v0.396.0
@@ -1722,3 +1722,5 @@ DOCTRINE_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.391.0
1722
1722
  CENSUS_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.392.0
1723
1723
  LEDGER_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.393.0
1724
1724
  DOWNHOLE_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.394.0
1725
+ INSTRUMENT_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.395.0
1726
+ TWOSTREAM_ARC,n/a,XGEO_NOT_REQUIRED,none,v0.396.0
@@ -303,3 +303,9 @@ THE LEDGER SHIP: P2254 anchors (17 external) + P2255 open items (census series C
303
303
 
304
304
  ## v0.394.0 — 2026-08-22
305
305
  THE DOWNHOLE SHIP: PAPER_2256 + uqff_downhole_simulator v1.1.0 (first industry-application module; canonical-lock suppression 1.0324; N-gauge strings; CSV well profiles with kick capture; twin-gauge comparison ratio == suppression). Gate 5,777/0. 23-file pass verified.
306
+
307
+ ## v0.395.0 — 2026-08-23
308
+ THE INSTRUMENT SHIP: uqff_downhole_simulator v1.2.0-v1.6.0 (service-life divergence curves; telemetry realism with scored QC; depth-sweep case studies; web-verified GEOQ 177 gauge specs with mandatory citations; MD/TVD deviation; batch runs; headless CLI). Suppression ratio 1.0324 invariant across geometry and baseline. Gate 5,800/0. 23-file pass verified.
309
+
310
+ ## v0.396.0 — 2026-08-24
311
+ THE TWO-STREAM SHIP: uqff_downhole_simulator v1.7.0-v1.9.0 (cited tool library; read-only ports with historian/LAS implemented and live taps declared; two-stream reconciler with four-scenario validation incl. the 6,083-psi kick find). Architecture complete. Gate 5,816/0. 23-file pass verified.
@@ -4,8 +4,8 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "star-magic-program"
7
- version = "0.394.0"
8
- description = "Star-Magic UQFF calculator v0.394.0: THE DOWNHOLE SHIP. 2,252 dispatches (2,307 keys), gate 5,777/0. PAPER_2256 + uqff_downhole_simulator v1.1.0 - the first packaged industry-application module: HPHT quartz-gauge string with canonical-lock drift suppression (K_MEX=25/12, Phi_res=0.84; suppression 1.0324 - drift BELOW industry baseline), N-gauge strings, real well profiles from CSV (sample HPHT kick zone), twin-gauge comparison mode (measured ratio == suppression). Next: PAPER_2257."
7
+ version = "0.396.0"
8
+ description = "Star-Magic UQFF calculator v0.396.0: THE TWO-STREAM SHIP. 2,252 dispatches (2,307 keys), gate 5,816/0. uqff_downhole_simulator v1.7.0-v1.9.0 completes Daniel's two-stream architecture: cited tool library (8 entries, no invented vendor data), read-only ports (historian CSV + LAS 2.0 implemented, live taps declared), and the two-stream reconciler - closed-stream predictions vs live data, offsets classified, undervalued streams flagged (kick-well find: 6,083 psi unexplained). Next: PAPER_2257."
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.394.0
4
- Summary: Star-Magic UQFF calculator v0.394.0: THE DOWNHOLE SHIP. 2,252 dispatches (2,307 keys), gate 5,777/0. PAPER_2256 + uqff_downhole_simulator v1.1.0 - the first packaged industry-application module: HPHT quartz-gauge string with canonical-lock drift suppression (K_MEX=25/12, Phi_res=0.84; suppression 1.0324 - drift BELOW industry baseline), N-gauge strings, real well profiles from CSV (sample HPHT kick zone), twin-gauge comparison mode (measured ratio == suppression). Next: PAPER_2257.
3
+ Version: 0.396.0
4
+ Summary: Star-Magic UQFF calculator v0.396.0: THE TWO-STREAM SHIP. 2,252 dispatches (2,307 keys), gate 5,816/0. uqff_downhole_simulator v1.7.0-v1.9.0 completes Daniel's two-stream architecture: cited tool library (8 entries, no invented vendor data), read-only ports (historian CSV + LAS 2.0 implemented, live taps declared), and the two-stream reconciler - closed-stream predictions vs live data, offsets classified, undervalued streams flagged (kick-well find: 6,083 psi unexplained). Next: PAPER_2257.
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
@@ -34,17 +34,17 @@ Dynamic: license-file
34
34
 
35
35
  # Star-Magic-Program
36
36
 
37
- [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.394.0)](https://pypi.org/project/star-magic-program/)
38
- [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.394.0)](https://pypi.org/project/star-magic-program/)
37
+ [![PyPI version](https://img.shields.io/pypi/v/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
38
+ [![Python versions](https://img.shields.io/pypi/pyversions/star-magic-program.svg?cacheBust=0.396.0)](https://pypi.org/project/star-magic-program/)
39
39
  [![Documentation Status](https://readthedocs.org/projects/star-magic-program/badge/?version=latest)](https://star-magic-program.readthedocs.io/en/latest/?badge=latest)
40
40
  [![License: AGPL-3.0 + Commercial](https://img.shields.io/badge/License-AGPL--3.0%20%2B%20Commercial-blue.svg)](LICENSE)
41
- [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5777%2F0-brightgreen)](uqff_fidelity_tests.py)
41
+ [![Fidelity gate](https://img.shields.io/badge/fidelity_gate-5816%2F0-brightgreen)](uqff_fidelity_tests.py)
42
42
  [![Public surfaces](https://img.shields.io/badge/public_surfaces-2307-blue)](uqff_calculator.py)
43
43
  [![Whitepapers](https://img.shields.io/badge/whitepapers-2291-orange)](whitepapers/)
44
44
 
45
- **UQFF systematic rebuild — v0.394.0 complete-compile campaign live**
45
+ **UQFF systematic rebuild — v0.396.0 complete-compile campaign live**
46
46
 
47
- **This release (v0.394.0): THE DOWNHOLE SHIP — THE FRAMEWORK GOES TO WORK.** **PAPER_2256 + `uqff_downhole_simulator` v1.1.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. Four modules + README + sample profile, installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,777 green / 4,179 defs. Next paper: PAPER_2257.**
47
+ **This release (v0.396.0): THE TWO-STREAM SHIP — THE ARCHITECTURE COMPLETE.** **PAPER_2256 + `uqff_downhole_simulator` v1.6.0:** the program's first packaged industry-application module, built from Daniel's 22Aug2026 template thread (grok_cce7a73b) on same-day GO — a deep-well HPHT simulator (TD ≈ 20,300 ft) with a quartz P/T gauge string whose drift is **suppressed by the canonical lattice**: suppression = (0.58+0.32·(1−F_TRZ))·(0.52+0.38·K_MEX)·(0.68+0.27·Φ_res) = **1.0324 at the locked {0.1, 25/12, 0.84}** — drift BELOW the 0.215 %FS/yr industry baseline. **The knob ruling (Rule 2):** the template's adjustable "K_MEX"/"Φ_res" sliders were tuning gains wearing primitive names — canonicals now LOCKED in-physics (verified live by the dispatch on every call), sliders renamed `k_structural_trim`/`phi_coupling_trim`. **v1.1.0 extensions (Daniel-directed):** N-gauge strings (`make_sensor_string`); real well profiles from CSV (`load_well_profile_csv`; the shipped sample carries an HPHT overpressure kick the linear model cannot see — 18,405 vs 9,313 psi at the deepest gauge); and **twin-gauge drift-comparison mode** — every station carries a conventional reference gauge, and away from the clip band the measured conventional/UQFF ratio EQUALS the canonical suppression (1.0325 measured vs 1.0324 predicted across a 12-gauge string on the real profile) — the PAPER_2250 quartz bench test's complete simulation instrument. **v1.2.0 extension:** service-life drift ACCUMULATION (`ServiceLifeSimulator`) — the rates integrated over simulated service years, twin-leg divergence curves (2-3 psi/yr separation per station at FS 30,000 psi, 10-15 psi at a 5-yr horizon), recalibration resets, years-to-error-budget arithmetic; the accumulated-error ratio converges to the canonical suppression at every station. **v1.3.0 extension:** field-telemetry realism (`TelemetryRecorder`) — 1-reading/min timestamped acquisition with line dropouts, stuck gauges and spikes, historian quality flags, and a scored QC pipeline (frozen-value detection 1.0/1.0; Hampel despiker with common-mode veto, spike precision 0.83-1.0) exporting field-historian-style CSVs. **v1.4.0 extension:** depth-sweep case-study mode (`case_study`/`write_markdown` + CLI) — where the advantage is largest: 2.04 psi/yr flat below the HPHT knees compounding to 3.04 psi/yr at 20,000 ft (4.21 at 27,000 ft on a 30,000-ft well), rendered as a one-page customer case with the honest DERIVED_HYBRID note. **v1.5.0 extension:** real-datasheet gauge specs (`GaugeSpec`/`GAUGE_SPECS`) — web-verified GEO PSI GEOQ 177 (Quartzdyne) presets with mandatory citations (uncited specs rejected in code), plumbed through every layer; the suppression ratio is baseline-independent while the psi/yr story honestly scales with the cited spec bound. **v1.6.0 extensions:** wellbore deviation (MD/TVD surveys — a 60-deg tangent reads 6,525 vs the vertical model's 9,315 psi at the deepest gauge), multi-well batch runs (ratio invariant across geometries), and a headless CLI (`python -m uqff_downhole_simulator run|service-life|telemetry|case-study`). The 2026-08-23 extension list is complete. **v1.7.0 (two-stream build, piece 1): the tool library** — cited catalog of 8 toolstring entries (quartz twins, piezoresistive class with ChampionX-cited exponential drift form, vibrating wire/DTS/thermocouple as PARAMETERS_USER_SUPPLIED refusing invented numbers, and the G6 Modbus-RS485 surface interface declared as the ports-layer target) + ToolString composition + station rating checks (catches a 177 °C gauge in the 217 °C kick zone). **v1.8.0 (two-stream build, piece 2): the ports/plug-in layer** — READ-ONLY ingest to the normalized LiveStream form: historian-CSV and LAS 2.0 readers IMPLEMENTED (round-trip verified against the v1.3.0 telemetry export; wrapped LAS refused, not mis-parsed), live-protocol taps (modbus_g6/witsml/opcua) DECLARED and refusing until site details exist, `register_port()` for site plug-ins, CLI `ingest` subcommand. **v1.9.0 (piece 3 — the architecture COMPLETE): the two-stream reconciler** — per-station offset series classified IN_FAMILY / CALIBRATION_OFFSET / DRIFT_CONSISTENT / TRANSIENTS / UNEXPLAINED with disclosed thresholds; validated on four scenarios incl. THE FIND: the kick well reconciled against a linear-gradient assumption flags 610/4,448/6,083 psi unexplained offsets — the closed stream exposing the undervalued data stream. CLI `reconcile` subcommand. Sixteen package files (14 modules incl. the headless CLI + README + sample profile), installable package, engine headless by design, DERIVED_HYBRID with every industry anchor inline-commented, gate-verified per run. **Totals: 2,252 wired (2,307 DISPATCH keys) / gate 5,816 green / 4,179 defs. Next paper: PAPER_2257.**
48
48
 
49
49
  Author: Daniel T. Murphy · Star-Magic Research Program
50
50
  License: AGPL-3.0-or-later OR Commercial
@@ -102,7 +102,7 @@ Mizuno, Rossi).
102
102
  Full framework physics lives in the whitepaper corpus — the physics is the
103
103
  whitepapers; the calculator computes what the whitepapers derive.
104
104
 
105
- ## What is currently shipped (v0.394.0)
105
+ ## What is currently shipped (v0.396.0)
106
106
 
107
107
  ### Wiring campaign — LIVE (see `CLAUDE.md` charter)
108
108
 
@@ -54,8 +54,17 @@ star_magic_program.egg-info/requires.txt
54
54
  star_magic_program.egg-info/top_level.txt
55
55
  uqff_downhole_simulator/README.md
56
56
  uqff_downhole_simulator/__init__.py
57
+ uqff_downhole_simulator/__main__.py
57
58
  uqff_downhole_simulator/matplotlib_demo.py
58
59
  uqff_downhole_simulator/qt6_downhole_app.py
59
60
  uqff_downhole_simulator/sample_well_profile.csv
61
+ uqff_downhole_simulator/uqff_case_study.py
62
+ uqff_downhole_simulator/uqff_deviation.py
60
63
  uqff_downhole_simulator/uqff_downhole_engine.py
61
- uqff_downhole_simulator/uqff_quartz_hpht_extension.py
64
+ uqff_downhole_simulator/uqff_gauge_specs.py
65
+ uqff_downhole_simulator/uqff_ports.py
66
+ uqff_downhole_simulator/uqff_quartz_hpht_extension.py
67
+ uqff_downhole_simulator/uqff_reconciler.py
68
+ uqff_downhole_simulator/uqff_service_life.py
69
+ uqff_downhole_simulator/uqff_telemetry.py
70
+ uqff_downhole_simulator/uqff_tool_library.py
@@ -73,7 +73,7 @@ from uqff_registry_primitives import (
73
73
  DELTA_M2_21_EV2, DELTA_M2_32_EV2,
74
74
  )
75
75
 
76
- VERSION = "0.394.0"
76
+ VERSION = "0.396.0"
77
77
 
78
78
  # NAMED OBSERVED SI ANCHORS (constant drain 2026-08-16, PAPER_2141 bulk pattern + PAPER_2149 observation-headlining)
79
79
  # Bit-identical to the literals they replace; UQFF-derived counterparts live in uqff_registry_primitives.