Project 33

Discrepancy register

Two parts of the project disagreeing is information. Each entry names both sides, the claims it affects, and the next action. Resolved entries stay, with what resolved them; a record correction is not an engineering review.

Status Effect Count
OPEN Contradicts a claim or requirement 5
OPEN Informational 4
OPEN Weakens a claim’s support 8
RESOLVED Contradicts a claim or requirement 2
RESOLVED Informational 3
RESOLVED Weakens a claim’s support 2

D-001

Historical C1 note contradicts its own sweep

Field Value
Status RESOLVED
Effect Contradicts a claim or requirement
Kind claim vs artifact — What a claim or note says differs from what its artifact contains.
Claims C1

Next action. None for the record; the design question continues as D-002.

Resolution. The note is archived as superseded and the claim no longer repeats its figures. (Record correction in the evidence-discipline change; not an engineering review.)

Found by: Reading the committed JSON against the note during the evidence review of 2026-09-28.

D-002

The specified four-bar cannot be assembled

Field Value
Status OPEN
Effect Contradicts a claim or requirement
Kind requirement vs model — A model result does not meet a stated requirement.
Claims C1

Next action. A human confirms the intended topology and link dimensions; then the model is re-run and reviewed.

Found by: Loop-closure check (circle intersection) added in model revision 2.

D-003

C1 model revision 1 reported placeholders as results, and its tests passed on them

Field Value
Status RESOLVED
Effect Contradicts a claim or requirement
Kind implementation defect — Software produced values that do not follow from its inputs.
Claims C1

Next action. None; keep revision 1 archived as a worked example of a vacuous pass.

Resolution. Revision 2 returns null for unassemblable poses and solves closure by circle intersection; tests check geometry and null handling. (Model and test correction in the evidence-discipline change; software-tested, not engineering-reviewed.)

Found by: Comparing compute_theta4 with direct circle intersection for a linkage that does close.

D-004

Over-center locking is claimed but not modeled

Field Value
Status OPEN
Effect Contradicts a claim or requirement
Kind claim vs artifact — What a claim or note says differs from what its artifact contains.
Claims C1

Next action. Model the locking moment for an assemblable linkage, or state that locking is a physical-test question only.

Found by: Reading the helper’s implementation.

D-005

C1 CAD artifacts are illustrative bars, not the modeled mechanism

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind simulation vs cad — Simulation or model geometry disagrees with CAD geometry.
Claims C1

Next action. Regenerate CAD only after D-002 is resolved; never cite the STEP as evidence the mechanism assembles.

Found by: Reading the CAD script coordinates against the model inputs.

D-006

Reference and textbook fin-term formulations disagree about the static-margin window

Field Value
Status OPEN
Effect Contradicts a claim or requirement
Kind model vs model — Two models of the same quantity disagree.
Claims C5

Next action. A human reviews both formulations against Barrowman (1967) or OpenRocket’s component CP output.

Found by: Independent re-derivation of the fin terms during the 2026-09-28 review.

D-007

The static-margin script burns a different motor than the OpenRocket model

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind model vs input — A model’s inputs differ from the design source it claims to use.
Claims C5

Next action. Use the OpenRocket motor (or justify the substitute) and record the motor mass data source.

Found by: Parsing the motor designation from the .ork file.

D-008

Static-margin inputs omit or misread parts of the OpenRocket model

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind model vs input — A model’s inputs differ from the design source it claims to use.
Claims C5

Next action. Reviewer decides whether the omissions matter at the required precision.

Found by: Comparing parse_ork() with the .ork XML.

D-009

Model inputs were revised until paper targets were met

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind model tuned to target — Model inputs were revised until a target was met.
Claims C5, C6, C8

Next action. Record an independent source for each revised input (drawing, datasheet, measurement), or keep the claims open.

Found by: Reading the divergence log and the preserved pre-change model.

D-010

No shared design point across the mass, spring, reliability, and structural models

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind model vs model — Two models of the same quantity disagree.
Claims C4, C6, C7, C8

Next action. Define one design point in a single reviewed input file that every model reads.

Found by: Cross-reading model inputs during the 2026-09-28 review.

D-011

Calculated spring margin is below the stated requirement

Field Value
Status OPEN
Effect Contradicts a claim or requirement
Kind requirement vs model — A model result does not meet a stated requirement.
Claims C6

Next action. A human changes the spring, the requirement, or the design point, and records why.

Found by: Requirement R-C6-MARGIN evaluated from the design-point record.

D-012

Test named for a 20% margin did not enforce it

Field Value
Status RESOLVED
Effect Weakens a claim’s support
Kind test vs requirement — A test does not check what its name or claim says.
Claims C6

Next action. None.

Resolution. Test replaced; revision 1 archived. (Test correction in the evidence-discipline change.)

Found by: Reading the assertion against the test name.

D-013

The reliability simulation cannot produce the failures it counts

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind implementation defect — Software produced values that do not follow from its inputs.
Claims C7

Next action. Rebuild the simulation so each failure mode it counts can occur, at the shared design point (D-010).

Found by: Reading the success criterion against the integrator’s event handling.

D-014

The historical 10,000-trial summary could not be reconstructed from its CSV

Field Value
Status RESOLVED
Effect Weakens a claim’s support
Kind claim vs artifact — What a claim or note says differs from what its artifact contains.
Claims C7

Next action. None.

Resolution. The simulation now writes a run record with trials, successes, failures, and seed; consistency checks K-C7-DENOMINATOR and K-C7-FAILURE-ROWS tie it to the CSV. (Record correction; reproduction is checked by CI.)

Found by: Evidence Observatory row count (0 data rows).

D-015

Laminate modulus is below the aluminium comparison

Field Value
Status OPEN
Effect Contradicts a claim or requirement
Kind requirement vs model — A model result does not meet a stated requirement.
Claims C8

Next action. Calculate equal-mass section bending stiffness (R-C8-COMPONENT-STIFFNESS) or restate the claim.

Found by: Requirement R-C8-MODULUS evaluated from the CLT output.

D-016

Architecture diagram omitted the rocket’s fins-deployed ignition gate

Field Value
Status RESOLVED
Effect Informational
Kind documentation vs implementation — Documentation disagrees with firmware or software behavior.
Claims C2

Next action. Bench-verify that the refusal now reaches the dashboard CSV.

Resolution. Diagram updated; the rocket now reports CMD_REJECT:ignite_fins_not_deployed and CMD_REJECT:ignite_not_armed over UART, which the launcher already forwards. Compile-verified only. (Documentation and firmware logging change; not bench-verified.)

Found by: Reading the IGNITE branch in processSerialCommands().

D-017

Ignition requires deployed fins, but deployment requires a boost-level acceleration

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind design logic — Two implemented rules cannot both be satisfied in the intended sequence.
Claims C2

Next action. A human decides the intended ordering. On the bench this ordering acts as an extra interlock; do not remove it without a safety review.

Found by: Tracing the nominal command sequence through both firmwares.

D-018

Live telemetry timestamps are launcher relay times, not rocket sample times

Field Value
Status OPEN
Effect Informational
Kind telemetry vs expected — Recorded telemetry disagrees with its documented meaning or rate.
Claims C2

Next action. Proposed protocol change: carry rocket millis, a sequence number, and a boot identifier in DATA. Needs a bench-tested firmware revision.

Progress. The audit labels T as launcher_relay_millis and LOG as rocket_millis, and the docs state each clock domain.

Found by: Reading processSerial2() in the launcher.

D-019

Launcher reported 0.0 m altitude when the barometer was missing

Field Value
Status RESOLVED
Effect Informational
Kind documentation vs implementation — Documentation disagrees with firmware or software behavior.
Claims none

Next action. Bench-verify that ENV carries nan with the barometer disconnected.

Resolution. The launcher sends nan for altitude when the barometer is unavailable; the dashboard shows ‘not reported’. Compile-verified only. (Firmware change; not bench-verified.)

Found by: Unknown-is-not-zero audit of telemetry fields.

D-020

PID comparison fragmented windows, merged streams, and zero-filled bad samples

Field Value
Status RESOLVED
Effect Informational
Kind implementation defect — Software produced values that do not follow from its inputs.
Claims none

Next action. None.

Resolution. Windows change only when gains change; T and LOG are summarized separately; invalid samples are counted and excluded. (Software change with regression tests.)

Found by: Tracing the launcher’s T-then-STATUS packet order through the analyzer.

D-021

Bill of materials does not match the actuators in firmware and CAD

Field Value
Status OPEN
Effect Informational
Kind bom vs design — The bill of materials disagrees with the design or firmware.
Claims none

Next action. Reconcile the BOM with an as-built inventory; record purchased prices where known.

Found by: Counting Servo.attach() calls against the BOM.

D-022

The C4 baseline is not the printed prototype

Field Value
Status OPEN
Effect Weakens a claim’s support
Kind model vs input — A model’s inputs differ from the design source it claims to use.
Claims C4

Next action. State which assembly the 30-40% claim compares, and make the baseline match it.

Found by: Comparing material tables.

D-023

OpenRocket screenshots have no recorded model revision

Field Value
Status OPEN
Effect Informational
Kind provenance gap — An artifact cannot be traced to the model revision that produced it.
Claims C5

Next action. Re-export from the current .ork with its hash and settings recorded, or label the images historical.

Found by: Provenance review of committed images.

D-024

The deploy bench sketch measures a timer with the same timer

Field Value
Status OPEN
Effect Informational
Kind measurement method — A measurement procedure cannot establish what it is meant to measure.
Claims C2

Next action. Use an external instrument on GPIO 33 (P-001). Sketch output can only describe callback-to-poll latency.

Found by: Reading the sketch against requirement R-C2-JITTER.

Failure archive

Superseded models, rejected tests, and historical claims, kept byte for byte. The digest in evidence/archive/index.json makes any edit detectable.

File Kind Originally Why archived Discrepancies
evidence/archive/C1_four_bar_sweep.v1.json superseded model output docs/EVIDENCE/C1_four_bar_sweep.json Placeholder values (90 deg, 0.0 envelope) reported for linkages that cannot close. D-001, D-003
evidence/archive/C5_openrocket_pre_retune.ork.xml prior model scratch/ork_unzip/rocket.ork OpenRocket model before the fins were revised to meet the paper’s margin target. D-009, D-023
evidence/archive/notes-v1/C1_four_bar.md historical claim docs/EVIDENCE/C1_four_bar.md Statements contradicted by its own sweep. D-001, D-004
evidence/archive/notes-v1/C2_latency.md historical claim docs/EVIDENCE/C2_latency.md Replaced by the generated claim passport. —
evidence/archive/notes-v1/C3_naca_sweep.md historical claim docs/EVIDENCE/C3_naca_sweep.md Replaced by the generated claim passport. —
evidence/archive/notes-v1/C4_delta.md historical claim docs/EVIDENCE/C4_delta.md Replaced by the generated claim passport. D-010, D-022
evidence/archive/notes-v1/C5_static_margin.md historical claim docs/EVIDENCE/C5_static_margin.md Generated by the model script with a ‘confirms’ verdict; replaced by the passport. D-006, D-007
evidence/archive/notes-v1/C6_spring_sizing.md historical claim docs/EVIDENCE/C6_spring_sizing.md Replaced by the generated claim passport. D-011
evidence/archive/notes-v1/C7_reliability.md historical claim docs/EVIDENCE/C7_reliability.md Summary not reconstructable from its CSV; replaced by the run record and passport. D-014
evidence/archive/notes-v1/C8_clt.md historical claim docs/EVIDENCE/C8_clt.md Replaced by the generated claim passport. D-015
evidence/archive/notes-v1/C8_hinge_fos.md historical claim docs/EVIDENCE/C8_hinge_fos.md Model output is now structured JSON; replaced by the passport. —
evidence/archive/test_four_bar.v1.py.txt rejected test tests/test_four_bar.py Passed vacuously on placeholder values. D-003
evidence/archive/test_spring_sizing.v1.py.txt rejected test tests/test_spring_sizing.py Named for a 20% margin but accepted negative margins. D-012