Skip to content

WP13: kit-class trade study + EDT physics (aligned-dipole band model)#28

Merged
HeliCorgi merged 5 commits into
masterfrom
wp13-kit-trade-edt
Jul 11, 2026
Merged

WP13: kit-class trade study + EDT physics (aligned-dipole band model)#28
HeliCorgi merged 5 commits into
masterfrom
wp13-kit-trade-edt

Conversation

@HeliCorgi

Copy link
Copy Markdown
Owner

Implements spec §6 WP13 end-to-end. Zero pinned numbers moved (verified twice: pre-push code review + the mandatory task-7 adversarial verification, both with independent recomputation).

What this adds

  • EDT physics core (decay.{hpp,cpp}): replaces the parametric knob as the performance model (the legacy edt_deorbit_days stays byte-identical, R15). Aligned-dipole B_n(a) = B0(Rd/a)³·|cos i| (SPENVIS, cited), mandatory inclination band η_hi = |cos i| (power/current-capped) .. η_lo = cos²i (EMF/collection-limited) — derived in wp13-edt-derivation.md, independently numerically verified, and re-derived from scratch by the adversarial verifier. |cos i|, not signed cos i: a passive tether's induced current always drags (Lenz), so retrograde catalogs get finite bands; exactly-polar returns an honest n/a. Closed-form deorbit time cross-checked against the quadrature integrator in test_decay (16/16 ctest green on CI).
  • Kit-class trade (kit_trade binary → generated/wp13_kit_trade.{csv,md}): per-class recommended kit, generated not hand-written. Headlines: SL-16: sail infeasible (135..2155 m²) / EDT band 2.98..9.17 yr = candidate with open risks, NOT a closed recommendation (T7 libration unresolved — Peláez et al. 2000; plasma Ne solar pair PLACEHOLDER; current 2 A PLACEHOLDER). SL-8: sail closes (7..115 m²), no EDT needed. Envisat-class (98.4° retrograde): finite 5.48..37.5 yr; recommended mission class = controlled reentry.
  • Class-C comparison (generated/wp13_classC.{md,csv}): cited-not-computed casualty framing (NASA-STD-8719.14A Ec<1e-4, explicit [CITATION NEEDED — PLACEHOLDER: per-object Ec analysis]), computed perigee-lowering Δv (223.4 / 208.3 m/s, independently recomputed to 4 decimals), D12 consent gate, steelmanned same-target-set installer-vs-tug paragraph.
  • Evidence pack: new WP13 subsection — every number machine-read from the committed CSVs; the model-scope tag and the recommended_kit note quoted verbatim from the CSV so generator and data cannot drift. Claims-audit (R14) extended: EDT-v1 tag required, T7-unresolved presence check, SL-16 band transcription check. PLACEHOLDER inventory honestly grows 113 → 130.
  • wp3_decay_trade.csv gains additive 1000 m² rows (no schema bump per the schema file's own R15 rule; existing rows byte-identical) — the README's 1000 m² column is now CSV-backed. Citations shipped in wp13-literature.md (all web-verified 2026-07-11).

Adjudicated deviations from the plan (spec §10 disclosure)

  1. No reference_metrics.csv EDT rows: wp13_kit_trade.csv is itself the machine-readable source of truth the evidence pack reads; a copy would add a drift surface + one more CI round-trip for no audit gain.
  2. catalog_B stays 78.0° (PLACEHOLDER): real SL-8 clusters sit at 74°/83° (wp13-literature.md Topic 5b); 78° is a compromise between them. B's conclusion (sail closes, no EDT kit) is inclination-insensitive, so no headline depends on it. Candidate for a later cited re-baselining.

Verification

  • CI fully green (build + 16/16 ctest incl. 6 new EDT blocks + regenerate_all + byte-identity gate).
  • Mandatory adversarial verification (spec §10): PASS, zero blockers — η(i) re-derived from the vector triad; all three EDT bands + EMF/power + Δv recomputed independently to exact match; BETs FP7 order-of-magnitude scaling consistent (expected ~2.3/7.1 yr vs 2.98/9.17); overclaim grep found none (honest_headline_ok: true); pins verified unmoved.
  • Artifact flow: authored locally (no C++ toolchain) → CI validated → committed byte-for-byte from CI run 29155923705's artifact upload → final run reproduces everything.

🤖 Generated with Claude Code

HeliCorgi and others added 5 commits July 11, 2026 23:16
Replaces the parametric EDT knob as the *performance model* (the legacy
edt_deorbit_days stays byte-identical, R15) with an aligned-dipole physics
band, and adds the kit-class trade + class-C controlled-reentry emitters.

- decay.hpp/decay.cpp: EdtConfig (BETs-cited tether length; PLACEHOLDER
  current/kit-mass/libration-duty/deploy-risk), EdtResult,
  integrate_edt_seconds (Gauss da/dt = -2 F a^1.5/(m sqrt mu), trapezoidal,
  mirrors the sail integrator), edt_deorbit_years: B_n(a) = B0 (Rd/a)^3
  |cos i| (SPENVIS centred dipole, cited), MANDATORY inclination band
  eta_hi = |cos i| (power/current-capped) .. eta_lo = cos^2 i
  (EMF/collection-limited), closed-form deorbit time cross-checked by the
  integrator. |cos i|, not signed cos i: the passive tether's induced
  current always drags (Lenz) -- retrograde catalogs get finite bands;
  exactly-polar returns +infinity (aligned-dipole null, printed as an
  honest n/a). Libration folded in ONLY as a flat PLACEHOLDER duty knob;
  T7 dynamic stability stays explicitly unresolved.
- catalog_C filled: Envisat-class massive SSO payload (8211 kg / 780 km /
  98.4 deg, eoPortal, web-verified 2026-07-11). catalog_D untouched.
- NEW src/main_kit_trade.cpp (binary kit_trade): emits
  generated/wp13_kit_trade.csv (per-class sail vs EDT vs recommended-kit
  rows, bands never point values), wp13_kit_trade_schema.md,
  wp13_classC.{md,csv} (controlled-reentry mission class: cited
  NASA-STD-8719.14A Ec<1e-4 framing with an explicit not-computed
  placeholder, COMPUTED perigee-lowering delta-v, D12 consent gate,
  steelmanned same-target-set installer-vs-tug comparison, WP14 cost
  placeholder).
- main_decay_trade.cpp: kAreas gains 1000.0 (additive row, no schema bump
  per wp3_decay_trade_schema.md's own R15 rule) so the README's 1000 m^2
  column becomes byte-checkable against the committed CSV.
- tests/test_decay.cpp: 6 new CHECK blocks (eta table vs the derivation
  note incl. |cos 98.4 deg| retrograde, band ordering, integrator vs
  closed form vs edt_deorbit_years wiring, inclination monotonicity,
  exact-polar infinity). Existing blocks 1-6 byte-untouched.
- NEW wp13-edt-derivation.md (full eta(i) derivation; independently
  numerically verified) + wp13-literature.md (web-verified citation pack:
  Sanmartin/OML, BETs FP7, Pelaez T7, Ne sources, dipole, stage params,
  McKnight ranking, casualty standards).
- CMakeLists.txt: kit_trade target; tools/regenerate_all.sh: new step,
  all labels renumbered to /11.

NOTE: this commit intentionally FAILS the CI reproducibility gate -- the
regenerated artifacts (wp3_decay_trade.csv +1000 m^2 rows, wp3 SVG, new
wp13_* files) are committed in the follow-up from CI's uploaded artifacts
(the documented no-local-toolchain flow). Build + ctest must pass here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The EDT physics core adds honestly-inventoried PLACEHOLDER constants
(EdtConfig current/kit-mass/libration-duty/deploy-risk and the kit_trade
emitter's marked rows); filling catalog_C with cited Envisat values
removes its former placeholder rows. Auto-inventory only -- no quoted
pinned number changes. All four Python suites pass locally; this unblocks
the CI ctest evidence gate so regenerate_all can produce the wp13_*
artifacts for the follow-up commit (documented no-local-toolchain flow).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… wp3 rows)

Taken byte-for-byte from CI run 29155923705's artifact upload (the
documented no-local-toolchain flow; ctest was green, the repro-gate diff
was exactly these files):
- NEW generated/wp13_kit_trade.csv + schema: per-class sail/EDT trade.
  Headline bands: SL-16 EDT 2.98..9.17 yr (candidate-with-open-risks, NOT
  a closed recommendation; sail infeasible 135..2155 m2); SL-8 sail wins
  (7..115 m2); Envisat-class retrograde 98.4 deg FINITE 5.48..37.5 yr
  (|cos i| physics), recommended mission class = controlled reentry.
- NEW generated/wp13_classC.{md,csv}: controlled-reentry comparison,
  computed perigee-lowering delta-v, cited casualty framing.
- generated/wp3_decay_trade.csv + viz/wp3_decay_trade.svg: the additive
  1000 m^2 sweep rows (no schema bump; existing rows byte-identical).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- make_evidence.py: new 'Kit-class trade + EDT physics (WP13)' subsection
  under section 4 (subsection form mirrors the WP12 precedent; section
  numbers are hardcoded literals). Per-catalog table (recommended kit /
  sail-area band / EDT-years band / eta band), the EDT-v1 model-scope tag
  and the SL-16 recommended_kit note quoted VERBATIM from the committed
  CSV (generator and data cannot drift), the T7/plasma/deploy-risk honesty
  paragraph, and the class-C delta-v table from wp13_classC.csv. Zero
  hand-written numbers; pure ASCII; cross-refs to wp13-edt-derivation.md
  and wp13-literature.md.
- test_evidence.py: R14 pattern list gains the EDT-v1 model-scope tag; a
  T7-honesty presence check (libration + T7 + UNRESOLVED/OPEN); and a
  number-transcription must for the SL-16 edt_years band read from the
  committed CSV.
- evidence pack regenerated (650 lines); all four Python suites green.

Adjudication note (spec section 10): the WP13 task-6 idea of adding
reference_metrics.csv rows for EDT headline numbers is deliberately NOT
done -- wp13_kit_trade.csv is itself the machine-readable source of truth
the pack reads, and a reference_metrics copy would add a second place for
the same numbers to drift plus one more C++ CI round-trip for no audit
gain.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…eg fix

Adversarial-verifier nits: README no longer claims WP13 'not started';
the EDT prose now points at the WP13 physics band (2.98..9.17 yr for the
SL-16 class, CSV-backed by generated/wp13_kit_trade.csv) with the
candidate-with-open-risks framing; the derivation note's Section 8.3 now
states catalog B's actual 78 deg code preset (real SL-8 clusters at
74/83 deg, wp13-literature.md Topic 5b -- 78 is a PLACEHOLDER compromise,
disclosed here and in the PR body per spec section 10).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@HeliCorgi HeliCorgi merged commit 4b02ac0 into master Jul 11, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant