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.
Build-Readiness Review Gaps (2026-07-06 review)Added 2026-07-06 12:26 UTC
Add an AIV / integration-and-test program concept: a program-level integration sequence, facility and cleanroom class requirements, alignment infrastructure, and a mapping from each planned test-campaign entry to a declared facility and GSE, so the test plan stops being facility-free paper. Added: 2026-07-06 22:24 AEST.
Verification: a new `make aiv-policy` gate passes, `uv run python -m unittest tests.test_aiv_policy -v` passes, and the report maps every [config/test_plan.yaml](config/test_plan.yaml) campaign entry and top-level integration step to a declared facility class, alignment method, and GSE reference with no `TBD` markers.
Build-Readiness Review Gaps (2026-07-06 review)Added 2026-07-06 12:26 UTC
Add a micro-vibration/jitter analysis that propagates the reaction-wheel disturbance spectra from the released ADCS design through the structural modal network to optical line-of-sight, checked against the released pointing/jitter allocation. The ADCS gate closes a static pointing budget; nothing yet models wheel-induced jitter reaching the optics. Added: 2026-07-06 22:24 AEST.
Verification: a new `make microvibration-policy` gate passes, `uv run python -m unittest tests.test_microvibration_policy -v` passes, and the report closes LOS jitter with positive margin against the pointing/jitter allocation in [config/requirements.yaml](config/requirements.yaml) and [config/budgets.yaml](config/budgets.yaml), failing if wheel disturbance inputs or structural transmissibility data are missing.
Build-Readiness Review Gaps (2026-07-06 review)Added 2026-07-06 12:26 UTC
Make independent audits a recurring, gated process instead of a one-off event. Both whole-subsystem blind spots found to date were caught by an outside audit, not by the gates; record audits in a machine-readable ledger and fail the build when the most recent audit is older than the declared cadence. Added: 2026-07-06 22:24 AEST.
Verification: a new `make audit-cadence` gate passes, `uv run python -m unittest tests.test_audit_cadence -v` passes, and the gate fails when the audit ledger (`config/audits.yaml`) lacks a dated audit record within the declared cadence window or when an audit entry lacks scope and findings-disposition references.
Build-Readiness Review Gaps (2026-07-06 review)Added 2026-07-06 12:51 UTC
Revive the automated CI path or explicitly demote it. The `ci` workflow is `workflow_dispatch`-only (auto-runs were deliberately paused in commit `150b0a0`), no run of any kind has happened since a failed manual dispatch on 2026-03-29 (every job died in seconds; logs have since expired), and no push in the three months since has triggered a run — so the "CI clean-build deploy preferred" working rule is aspirational and the stakeholder site only updates via local `make deploy-website`. Fix whatever breaks the dispatch, restore an automatic trigger (push or scheduled) with path/job filtering that keeps cost acceptable, or update the working rules if manual-only is the intended steady state. Added: 2026-07-06 22:50 AEST.
Verification: `uv run python -m unittest tests.test_ci_workflow -v` passes including a new regression that requires an automatic (`push` or `schedule`) trigger in [.github/workflows/ci.yml](.github/workflows/ci.yml), and the most recent `ci` run on `main` is a successful automatically triggered run.