Incomplete TODO items

These checklist items are still open in the active backlog and link back to the same tracked TODO history summary used by the stakeholder dashboard.

Tracking started: 2026-03-12 13:22 UTC | Last synced: 2026-06-16 09:35 UTC
Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Design the attitude determination and control subsystem (ADCS). Define the sensor complement (star trackers, gyros/IMU, sun sensors), the actuator complement (reaction wheels and a momentum-unloading device such as magnetorquers), and a closed pointing-error budget that actually delivers the arcsec pointing/jitter stability already required in `config/requirements.yaml`. The repo currently specifies a pointing *requirement* with no system that meets it.

Verification: a new `make adcs-policy` gate passes, `uv run python -m unittest tests.test_adcs_policy -v` passes, and the report lists the sensor/actuator complement with a pointing/jitter error budget that closes (positive margin) against the released requirement; the gate fails if no ADCS configuration block exists.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Design propulsion / orbit maintenance. Produce a delta-v budget (drag make-up at the released SSO altitude, momentum-dump support if required, and end-of-life disposal/deorbit), size propellant mass and the thruster/feed concept, and feed the propellant mass back into the mass budget.

Verification: a new `make propulsion-policy` gate passes, `uv run python -m unittest tests.test_propulsion_policy -v` passes, and the report shows a delta-v budget and propellant mass that close the orbit-maintenance and disposal needs at the released orbit, consistent with `config/requirements.yaml` and `config/budgets.yaml`.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Design the electrical power subsystem (EPS). Replace the single 650 W budget number with a sized solar array (area/string layout), battery capacity, and an orbit-average plus worst-case eclipse energy balance, including a power distribution (PCDU) concept.

Verification: a new `make power-policy` gate passes, `uv run python -m unittest tests.test_power_policy -v` passes, and the report closes the orbit-average and eclipse energy balance with positive margin against the released power budget.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Design the command and data handling (C&DH) / avionics architecture. Define the on-board computer, internal data bus, mass-memory sizing against the science data volume, and the avionics that currently exist only as empty geometry trays.

Verification: a new `make cdh-policy` gate passes, `uv run python -m unittest tests.test_cdh_policy -v` passes, and the report sizes data storage and downlink data volume against the imaging duty cycle.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Design the RF communications subsystem and produce a link budget. Define band, antenna(s), transponder, downlink/uplink data rates, and a closed link budget that supports the science and telemetry data volume from the released orbit.

Verification: a new `make comms-policy` gate passes, `uv run python -m unittest tests.test_comms_policy -v` passes, and the report shows a positive-margin link budget and a downlink rate that clears the per-orbit data volume.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Define flight software modes, FDIR, and safe mode. Specify the operating modes, fault detection/isolation/recovery behavior, and the safe-mode power/thermal/pointing state the bus falls back to.

Verification: a new `make fdir-policy` gate passes, `uv run python -m unittest tests.test_fdir_policy -v` passes, and the report enumerates modes and the safe-mode resource state with the responsible sensors/actuators.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Add a reliability and redundancy analysis. Produce a subsystem-level FMEA/FMECA, identify single-point failures, declare the redundancy approach, and add a parts-derating/EEE-parts policy.

Verification: a new `make reliability-policy` gate passes, `uv run python -m unittest tests.test_reliability_policy -v` passes, and the report lists single-point failures with declared mitigations for each released subsystem.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Add a mission operations / ground segment concept of operations. Define ground station contacts, commanding cadence, data return path, and the on-orbit operations timeline from commissioning through science.

Verification: a new `make conops-policy` gate passes, `uv run python -m unittest tests.test_conops_policy -v` passes, and the report ties contact opportunities and data return to the comms link budget and data volume.

Spacecraft Bus and Missing Subsystems (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Add a first-order cost and schedule estimate so the program framing is not launcher-only.

Verification: a new `make cost-schedule-policy` gate passes, `uv run python -m unittest tests.test_cost_schedule_policy -v` passes, and the report records cost and schedule estimates with stated basis and consistency against the released subsystem set.

Analysis Fidelity Gaps (proxy models that are not engineering-grade)Added 2026-06-16 09:35 UTC

Replace the analytic/lumped structural screening with a real finite-element model of the released assembly and run quasi-static, modal, sine, random, and shock cases on it. The current `src/mech` path is closed-form beam/lumped-network screening, not FEM.

Verification: a new `make structural-fem` gate passes, `uv run python -m unittest tests.test_structural_fem -v` passes, and the report shows FE-derived margins and modes for the released load cases, cross-checked against the existing screening proxies.

Analysis Fidelity Gaps (proxy models that are not engineering-grade)Added 2026-06-16 09:35 UTC

Replace the diffraction-limit-only optics with real wavefront/PSF modeling (Strehl, encircled energy, Zernike WFE budget) and 3D multi-bounce stray-light/scatter, not the single-meridional-plane ray trace and direct-path proxy currently used.

Verification: a new `make optical-wavefront` gate passes, `uv run python -m unittest tests.test_optical_wavefront -v` passes, and the report records PSF/Strehl and a WFE error budget across the field, plus a multi-bounce/BRDF stray-light result.

Analysis Fidelity Gaps (proxy models that are not engineering-grade)Added 2026-06-16 09:35 UTC

Add mirror-fabrication-fidelity optical specs: surface-figure error budget (RMS WFE or λ/N), surface roughness, scratch-dig, the metrology/interferometry acceptance plan, and a coating deposition specification with a reflectance curve. The released prescription has geometry but none of these.

Verification: `make optics-policy` (or a new `make optical-fabrication` gate) passes, `uv run python -m unittest tests.test_optical_fabrication -v` passes, and the optics report carries surface-figure, roughness, scratch-dig, metrology method, and coating reflectance/process specs with no `TBD`.

Analysis Fidelity Gaps (proxy models that are not engineering-grade)Added 2026-06-16 09:35 UTC

Add the orbital-environment effects missing for a 600 km SSO: atomic-oxygen erosion of exposed surfaces/coatings, MMOD/debris flux and protection, aerodynamic drag and orbital-lifetime, and a closed end-of-life deorbit/disposal plan.

Verification: a new `make orbit-environment-policy` gate passes, `uv run python -m unittest tests.test_orbit_environment_policy -v` passes, and the report quantifies AO fluence, MMOD risk, drag/lifetime, and the disposal approach at the released orbit.

Analysis Fidelity Gaps (proxy models that are not engineering-grade)Added 2026-06-16 09:35 UTC

Replace the paper qualification/acceptance "test campaign" with either an executed campaign or an independently-modeled one. Today every `config/test_plan.yaml` entry's `command` just runs a repo analysis script (e.g. `emc_acceptance` -> `make interface-policy`), so "tested" means "the screening code ran," not that hardware was tested.

Verification: `make test-plan-policy` passes with the test plan no longer mapping qualification/acceptance evidence to the repo's own screening scripts; the gate fails if an acceptance test cites a self-referential analysis command in place of a real test article result.

Process Honesty and Site Safety (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

The TODO-closure gate does not execute verifications; it pattern-matches the Verification text. Strengthen `scripts/check_todo_closure.py` so closed items must cite a real command or `tests.`/`scripts/check_*.py` reference and any referenced committed path must exist (in progress as of 2026-06-16), and ultimately wire each closed item to a gate that actually runs in `make`.

Verification: `make todo-closure` passes only when every closed item carries an executable validation reference and all referenced committed (non-`outputs/`) paths exist; `uv run python -m unittest tests.test_todo_closure -v` passes.

Process Honesty and Site Safety (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Reconcile `CORRECTIONS.md` against `TODO.md`: open corrections must not name work that `TODO.md` marks closed, and vice versa. Add an automated cross-check.

Verification: a new `uv run python -m unittest tests.test_corrections_todo_consistency -v` passes and fails if an open correction maps to a closed TODO item or a closed correction maps to an open TODO item.

Process Honesty and Site Safety (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Enforce honest timestamp tracking in `config/todo_history.json`: 62% of existing items were back-filled with `added_at == closed_at`. Going forward, items first seen after `tracking_started_at` must record `closed_at` strictly later than `added_at` or be explicitly flagged as guessed.

Verification: `make todo-history` passes, `uv run python -m unittest tests.test_todo_history -v` passes, and the ledger check fails when a non-guessed, post-tracking item closes in the same instant it was added.

Process Honesty and Site Safety (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

The stakeholder site builder published the entire `outputs/` tree, leaking 127 AI/Codex conversation transcripts, absolute home-dir build paths, deploy hostnames, and internal working notes. Convert to a default-deny allowlist, sanitize absolute paths from published files, drop the public Codex archive card, and serve the Codex archive only behind HTTP auth (in progress as of 2026-06-16).

Verification: `make website-smoke` passes and a published-tree leak check fails if the site contains `codex_conversations/`, any absolute home-directory path, or any output directory not on the publish allowlist; `uv run python -m unittest tests.test_stakeholder_site tests.test_site_policy -v` passes.

Process Honesty and Site Safety (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

The site oversells maturity: green PASS chips and "0 backlog" imply a finished project. Add a prominent maturity statement (payload optomechanical concept, pre-Phase-A, no spacecraft bus) and a "remaining work" section that names the missing subsystems above.

Verification: `make website-smoke` passes and the site-policy check confirms the index carries an explicit maturity banner and a remaining-work section that enumerates the open spacecraft-bus subsystems; `uv run python -m unittest tests.test_site_policy -v` passes.

Process Honesty and Site Safety (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Remove AI-slop and placeholder tells from published material: dedupe the repeated "not qualification-grade" caveat, drop internal working-rule sentences from the public page, and fix the degenerate transient thermal result that reports identical min and max temperature to 0.1 K over an orbit.

Verification: `make website-smoke` passes, the transient thermal report shows a non-degenerate min/max spread (or an explicit justification), and `uv run python -m unittest tests.test_site_policy tests.test_thermal_configured_model -v` passes.

Manufacturing Package Fidelity (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Replace the single-primitive SVG/DXF "drawings" with dimensioned multi-view engineering drawings carrying drafted feature control frames (real GD&T tied to features and datums), hole/thread callouts, surface-finish symbols, and per-feature tolerances derived from the model rather than hardcoded template constants in `src/util/manufacturing_drawings.py`.

Verification: `make manufacturing-drawings` (or a new `make drawing-fidelity` gate) passes, `uv run python -m unittest tests.test_manufacturing_drawings tests.test_manufacturing_drawing_metadata -v` passes, and the drawing-fidelity check fails when a released drawing lacks multi-view geometry, attached feature control frames, or model-derived dimensions.

Manufacturing Package Fidelity (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Upgrade the BOM from family rollups to piece-part build-to-print lines with vendor/MPN or controlled drawing numbers, material temper and spec callouts (e.g. "6061-T651 per AMS-QQ-A-250/11" rather than "MAT-AL6061"), and remove placeholder masses.

Verification: `make manufacturing-bom` passes, `uv run python -m unittest tests.test_manufacturing_bom -v` passes, and the BOM check fails on any placeholder mass, family-only line, or material entry lacking a temper/spec.

Manufacturing Package Fidelity (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Make procurement actionable: replace categorical supplier classes with named/qualifiable suppliers, lead times, and real specification documents, and ensure every `spec_ref` (e.g. `SPEC-OPT-001`) resolves to an actual document instead of a dangling identifier in `src/util/manufacturing_metadata.py`.

Verification: `make manufacturing-procurement` passes, `uv run python -m unittest tests.test_manufacturing_procurement -v` passes, and the procurement check fails when a `spec_ref` does not resolve to a real specification artifact.

Manufacturing Package Fidelity (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Define the electrical detail currently reduced to envelopes and counts: connector part numbers and types, pinouts, wire gauge/shielding, and cable lengths for the harness, and select an actual detector part rather than the "H4RG-10-class" placeholder.

Verification: a new `make harness-detail` gate passes, `uv run python -m unittest tests.test_detector_subsystem -v` passes, and the report carries connector MPNs, a pinout table, and wire specs rather than bundle/connector counts.

Manufacturing Package Fidelity (2026-06-16 independent audit)Added 2026-06-16 09:35 UTC

Trace fastener torques/preloads to the joint-sizing analysis instead of the hand-set `JOINT_FASTENER_LIBRARY` defaults in `scripts/check_manufacturing_fasteners.py`, and source every cited tolerance from a stress/thermoelastic/tolerance-stack analysis rather than a blanket tolerance-class string.

Verification: `make manufacturing-fasteners joint-sizing` passes, `uv run python -m unittest tests.test_manufacturing_fasteners tests.test_joint_sizing -v` passes, and the fastener check fails when a released torque/preload is not derived from the joint-sizing loads.