93 numbers · 2026-08-19
By subjectBy pipeline stageBy evidenceOpen questions
Register debt: 0 stale, 43 uncovered, 0 drifted. Run python3 evidence.py.
bridges.py CUT_W 2 checked against novi_laser_dxf_sign.dxf
Cut stroke width in pixels; the cut must be watertight. Chosen by me.
bridges.py MARGIN 0.15 checked against novi_laser_dxf_sign.dxf
The gap must open by this fraction, or 4 thou, either side. Chosen by me.
bridges.py NECK_MAX 0.2 checked against novi_laser_dxf_sign.dxf
Only pairs closer than this are candidate necks. Chosen by me.
bridges.py PX 0.02 checked against novi_laser_dxf_sign.dxf
Raster pixel for the component test. 20 thou. Chosen by me to resolve a 60-thou neck.
bridges.py SAMPLE 0.005 checked against novi_laser_dxf_sign.dxf
Contour sampling step. Chosen by me.
bridges.py SELF_SKIP 0.75 checked against novi_laser_dxf_sign.dxf
Along one contour, ignore pairs less than this far apart. Chosen by me. It is 0.75 by coincidence, NOT because of the machine drop-through -- two unrelated numbers that happen to share a value, which is exactly the kind of thing that gets 'unified' by mistake later.
bridges.py SUPPRESS 0.4 checked against novi_laser_dxf_sign.dxf
Two necks closer together than this are the same neck. Chosen by me.
bridges.py WINDOW 30 checked against novi_laser_dxf_sign.dxf
Local-minimum probe distance in samples: 30 x 5 thou = 0.15 in. Chosen by me.
build_mvt_preview.py DX 0.0
Ring move in points, in the withdrawn option work. Chosen by me.
build_mvt_preview.py LIG 3.0
Slot setback at interior-void ends. Chosen by me, same truncated-cloud caveat.
build_mvt_preview.py SLOT_W 0.75
Slot width in points. Chosen by me, and computed against the truncated cloud -- see D15.
emit.py CAND_LIMIT 18 checked against novi_laser_dxf_sign.dxf
Start positions tried per boundary. Chosen by me; it is a search-breadth number, so raising it can only improve the pick and costs time.
emit.py CORNER_DEG 10.0 checked against novi_laser_dxf_sign.dxf
Turn between two primitives above this is a real corner, for start-point placement. Chosen by me. Note it is a DIFFERENT number from heal.CORNER_DEG with the same name in another module -- they answer different questions and neither is derived from the other.
emit.py ORDER_LOOK 24 checked against novi_laser_dxf_sign.dxf
Boundaries scored per greedy step in the safety ordering. Chosen by me, same character as CAND_LIMIT.
emit.py TAIL_N 0.0001 checked against novi_laser_dxf_sign.dxf
Picks over which the sequence homes on the outer profile's start. MEASURED WORSE on the novi sign and left effectively off; the machinery stays so any file can be re-tested. The value is mine.
emit.py TIP_DEFER 0.5 checked against novi_laser_dxf_sign.dxf
Inches of extra rapid worth paying to cut a tippy slug later. Chosen by me from the 2026-07-31 sweep, which is our own measurement of our own output -- not a shop measurement.
heal.py ALWAYS_DEG 55.0 checked against ex1, ex2, ex3, ex4
A single facet turning this hard is a corner outright, no consistency test. Chosen by me to catch drawn 55-90 degree corners that a coarse arc can never explain.
heal.py COLLINEAR_DEG 4.0 checked against ex1, ex2, ex3, ex4
Consecutive line facets merge only if this straight. Chosen by me.
heal.py CONSISTENCY 2.5 checked against ex1, ex2, ex3, ex4
Spike test: a turn more than this multiple of the local neighbour baseline is a corner. This is the number that implements 'neighbour consistency, not raw turn size'. Chosen by me.
heal.py CORNER_DEG 35.0 checked against ex1, ex2, ex3, ex4
A turn this big MAY be a corner; the neighbour-consistency test decides. Chosen by me. The rule it implements is Jordan's (spike vs sustained); the number is not his.
heal.py CORNER_MIN_FACET 0.002 checked against ex1, ex2, ex3, ex4
A corner needs a real drawn edge on one side. Two thou. Chosen by me to stop sub-thou dirt being promoted to a corner.
heal.py EPS_DROP 0.0005 checked against ex1, ex2, ex3, ex4
Below half a thou a chord is a degenerate micro-segment and is dropped. CLAUDE.md requires dropping them; the half-thou is mine.
heal.py FIT_TARGET 0.0005 checked against ex1, ex2, ex3, ex4
What the fitter aims for regardless of the gate -- 'as close as we can get', not 'just inside tolerance'. Chosen by me at half a thou because it is comfortably below the 0.001 standard and still converges. Nobody has ruled on it.
heal.py HARD_DEG 70.0
Legacy, subsumed by ALWAYS_DEG. Still assigned, and that is worth knowing: a dead number that still exists can be picked up again by mistake.
heal.py MERGE_DEG 0.5 checked against ex2
Post-pass collinear merge: max end-tangent swing. Chosen by me; this is the pass that closed ex2's last three cross-polyline jogs.
heal.py MIN_STRAIGHT 0.05 checked against ex1, ex2, ex3, ex4
A real drawn edge is at least this long. Chosen by me.
heal.py R_STRAIGHT 10000.0 checked against ex1, ex2, ex3, ex4
Above this radius emit a line, not an arc. Ten thousand inches. Chosen by me; the real criterion is deviation over the span, and this is a cheap proxy for it.
heal.py SMOOTH_DEG 15.0 checked against ex1, ex2, ex3, ex4
A source turn below this at a native junction was meant to be smooth. Chosen by me.
heal.py SPUR_AMP 0.003 checked against ex1, ex2, ex3, ex4
Safety net: the despurred chain must stay within this of the original. Chosen by me.
heal.py SPUR_FACET 0.003 checked against ex1, ex2, ex3, ex4
The spur pass only fires when BOTH neighbouring facets are shorter than this. The gate that keeps it text-safe.
heal.py SPUR_FOLD_DEG 40.0 checked against ex1, ex2, ex3, ex4
Spur denoise: a vertex folding back this hard between two sub-thou facets is dirt. Chosen by me and deliberately conservative -- this pass must never touch text.
heal.py STRAIGHT_RATIO 4.0 checked against ex1, ex2, ex3, ex4
A line facet is this many times the run's median curve facet. Chosen by me.
heal.py TAN_WIN 0.004 checked against ex1, ex2, ex3, ex4
Arc-length half-window for a stable tangent estimate. Chosen by me.
materials.json MSO7,0.187 kerf 0.007 bracketed from the shop's own NCs · 2026-08-13
No 0.187 NC in the corpus. But 0.187 sits BETWEEN two thicknesses the shop cuts with the identical offset: MSO7,0.125 (#2007=.007, measured) and MSO7,0.250 (D7 throughout 6552.NC, measured). Same kerf measured on both sides of this thickness -> .007/D7 is bracketed, not guessed. Replace with a measured value the day a 0.187 NC arrives; flagged to Jordan in the delivery message.
bridges.py MIN_ISLAND 0.01 checked against novi_laser_dxf_sign.dxf
Below this area a raster component is noise, not a part. Chosen by me.
cutpath_dxf.py TAB_MIN 0.008 checked against novi_laser_dxf_sign.dxf
Below this a gap in the posted path is rounding, not a tab. Chosen by me. It decides which boundaries the review drawing calls HELD, so it decides the hazard count on every board.
cutpath_dxf.py TRIM 0.006 checked against novi_laser_dxf_sign.dxf
Endpoint trim when testing whether a rapid crosses a held slug. Chosen by me.
heal.py JOG_DEG 1.0 Aristide checked against ex1, ex2, ex3, ex4
The FAIL threshold for a fit-induced tangent break. That a jog is a FAIL is Aristide's ruling in CLAUDE.md and is not in question; that the line falls at one degree is mine.
mvt_geom.py ROUND_TOL 0.01 checked against MVT-ICONtest_Modified.ai
max |r - rbar| / rbar below which a filled path is treated as a circle, so the ring is identified by measurement instead of by list position. Chosen by me with a wide margin: the ring's two discs measure 2e-5 and the triangle, the next roundest thing in the file, 0.34.
mvt_geom.py SLIVER 0.5 checked against MVT-ICONtest_Modified.ai
pt2 below which a fragment left by buffer(0) at a self-intersection is dropped. Chosen by me. The modified cloud produces exactly one, 0.005 pt2 = 1.4e-4 in2, and every drop is counted into mvt_geom.DROPPED and printed rather than assumed harmless.
qc.py DUP_FRAC 0.55 checked against ex1, ex2, ex3, ex4
This fraction of the shorter primitive overlapping makes it a duplicate. Chosen by me.
qc.py DUP_MIN_LEN 0.02 checked against ex1, ex2, ex3, ex4
Overlaps shorter than this are sub-kerf noise and ignored. Chosen by me; related to but not derived from the kerf in materials.json.
qc.py DUP_TOL 0.006 checked against ex1, ex2, ex3, ex4
Samples within this of another primitive count as overlapping. Chosen by me.
qc.py GAP_FLAG 0.06 checked against ex1, ex2, ex3, ex4
Two loose ends within this are reported as a near-closing gap. Chosen by me. PINLIST item 9 asks Aristide for the real auto-close threshold and is still open -- this number is standing in for a decision nobody has made.
qc.py WELD_TOL 0.0001 checked against ex1, ex2, ex3, ex4
Primitive ends this close are the same node. A tenth of a thou. Chosen by me.
test_bezfit.py END_MAX 0.06 checked against EAGLES.ai
The control's endpoint-closure pass mark, in thou. Chosen by me.
test_bezfit.py KINK_MAX 0.001 checked against EAGLES.ai
The control's own pass mark for a fit-induced kink in the Bezier fitter: one thousandth of a degree. Chosen by me, and far tighter than heal.JOG_DEG because a fitter working from true curves has no excuse for a kink at all.
vec_pipeline.py JOG_DEG 1.0 checked against EAGLES.ai
The same gate heal.JOG_DEG applies, restated here so the vector front-end does not import the healer. A DELIBERATE second copy -- and therefore a place two numbers can drift apart. Registered so that drift is visible.
copy of heal.py:JOG_DEG
vec_pipeline.py SPECK_FRAC 0.005 checked against EAGLES.ai
A path shorter than this fraction of the art's diagonal is a stray anchor, not geometry. Chosen by me; expressed as a fraction precisely because the real size is unknown at read time.
build_board.py THICK 0.06
Material thickness used by the board's own bridge review. 0.060 with no stated source, while the production post on the same board is MSO7,0.125. Two thicknesses on one page. Flagged, not fixed.
build_mvt_preview.py E 29000000.0
29e6 psi Young's modulus. Handbook, same standing as SY. Steel's E is genuinely consistent, so this is the safest of the three.
build_mvt_preview.py MIN_WEB_IN 0.375 cadmaster · 2026-08-06
Metal left all round a spacer hole: 3 x material thickness, the ordinary edge-distance rule of thumb for a bolt hole. It is the gate that PLACES the holes, so it is the number to challenge if a site looks wrong. Not measured on anything of ours.
build_mvt_preview.py RHO 0.284
0.284 lb/in^3. Handbook density for steel. Every weight in pounds we have ever quoted a customer comes from this number.
build_mvt_preview.py SPACER_HOLE_IN 0.219 cadmaster · 2026-08-06
Clearance hole for the spacer's screw, taken as a #10. Working value pending Q26. Note it is BELOW the pierce standoff -- 0.110 in of clear air against 0.150 needed -- so these holes are drilled, or pierced at centre and listed as exceptions.
build_mvt_preview.py SPACER_OD_IN 0.5 cadmaster · 2026-08-06
Barrel diameter of the standoff. A working value: it sets the smallest overlap a spacer can land on and how far it must stay from a plate it passes. Nobody has named the stocked hardware (Q26).
build_mvt_preview.py STANDOFF_IN 0.5 cadmaster · 2026-08-06
Spacer height between plates on options B and C. A working value nobody has confirmed with hardware -- it drives the customer wording ('half-inch spacers') AND the projected length of the cast shadow, so it is one number in two places rather than a phrase and a picture that can disagree. Needs Aristide or Jordan to name the standoff actually stocked.
build_mvt_preview.py SY 36000.0
36000 psi yield. A handbook figure for A36-class mild steel. Nobody has measured the shop's actual stock and nobody at the shop has confirmed it. Every bend/stiffness claim on a customer sheet rests on it.
compare_nc.py CELL 0.05
Spatial grid cell for nearest-segment lookup. Performance only; it does not change the answer.
compare_nc.py SAMPLE 0.002
Path sampling step when comparing two programs. Chosen by me.
mvt_geom.py FLAT 64 checked against MVT-ICONtest_Modified.ai
Chords per Bezier when flattening the .ai for MEASUREMENT. Chosen by me. On the ring's 41.8 pt quarter-circles the sagitta is under 4e-4 pt, four orders below anything reported. It is never the cut path -- that fits true arcs through bezfit.
mvt_geom.py RHO 0.284
0.284 lb/in^3, handbook density for steel. Open question Q15.
copy of build_mvt_preview.py:RHO
pierce_clear.py ARC_STEP 0.004 checked against novi_laser_dxf_sign.dxf
Chord step when flattening arcs to measure distances. Chosen by me. It sets the resolution of every clearance number we report, so a standoff quoted to a thou is only as good as this.
build_vec_board.py SVG_SAG 0.0002
Chord sag allowed when drawing an arc on the board. Appearance only -- the emitted arc is never flattened.
cutpath_dxf.py ARROW 0.09
Direction arrowhead size in the review DXF. Appearance only.
cutpath_dxf.py CROSS 0.05
Half-width of the centre-of-area cross. Appearance only.
cutpath_dxf.py TXT 0.11
Sequence-number text height in the review DXF. Appearance only.
test_vec_board.py SAG 0.0002
Chord sag the vector board control allows when it re-draws an arc. A copy of build_vec_board.SVG_SAG, and appearance only.
copy of build_vec_board.py:SVG_SAG
build_mvt_preview.py LEAD_CLEAR 0.15 Jordan · 2026-07-30
Pierce standoff for 1/8 steel. Jordan's ruling -- but it is a SIXTH copy of a number that now lives in materials.json, and this module does not read the table.
copy of materials.json:MSO7,0.125:lead_len
emit.py FLAT_ARC_R 1.0 Aristide + Jordan · 2026-07-30 checked against novi_laser_dxf_sign.dxf
An arc of this radius or bigger counts as a flat. CLAUDE.md: 'rank flats by clearance, not by type -- an arc of >=1 inch radius is a flat as far as a 0.033 inch tab is concerned'. The number is in the ruling.
machine.json bed (80.0, 160.0) Aristide
Standing requirement in CLAUDE.md: laser bed limits are 80 x 160 in, and every part and nest is checked against it. No file in the corpus measures it, so it is a statement, not a measurement.
machine.json drop_through 0.75 Aristide · 2026-07-30
A slug under 0.75 in in its longest dimension falls between the bed slats, so it needs no retention tab at all. Asked directly whether this belongs to the machine or the steel: 'yes. belongs to the machine'. A job moved to a laser with different slats must not silently keep this number.
machine.json start_clock 4.5 Jordan (value), Aristide (that it is a setting, 2026-07-30) · 2026-08-14
'The lead-in on the circle is ~45 degrees down the right side to minimize material loss ... We bias the right side so that the employee who manually removes the parts from the sheet has some consistency as to where to expect the tab.' 4:30 clock = -45 deg, verified in 33215.NC: the TL-1016-75 round outer starts/tabs at -41 deg. Supersedes the 12:00 confirmed 2026-07-30 -- still a SETTING destined for the operator Preferences panel, per Aristide.
materials.json MSO7,0.080 kerf 0.007 Aristide · 2026-08-12
'I know we don't have that in the table yet but you can use the same settings as for 1/8 inch steel.' Kerf copied from MSO7,0.125 (measured there as #2007=.007). Thinner material usually cuts a narrower kerf, so this is conservative-unknown, not measured -- replace from their 14-ga NC when we get it.
materials.json MSO7,0.080 slug_tab {'small': 0.018, 'small_max': 1.1, 'small_max_area': 0.45, 'large': 0.033} Aristide · 2026-08-12
Borrowed whole from the MSO7,0.125 production-validated bands per the same ruling. 14 ga is lighter than 1/8, so a tab that held a 1/8 slug holds the same slug in 14 ga -- borrowing DOWN in thickness rounds the safe way for retention. Thresholds unproven for this thickness; the numbered slug report is what tightens them.
heal.py CHAIN_WELD 0.001 Jordan · 2026-08-06 checked against DWS-LH-2.5-LOGO-Brazen_Recovery-2.dxf (1 weld after D27), ex2_dirty.dxf (12 welds), ex3_REAL.dxf, ex4_stamp_font.dxf
Ceiling on a gap chain_contours will weld shut. Jordan's ruling on the DWS-LH-2.5 logo: 'sub-1-thou gaps should fall well within the 10 thou rule of thumb'. IMPORTANT: the 35 gaps that prompted the ruling were NOT in his art -- they were ours (D27, _dedup dropping spline endpoints). With that fixed the same file needs ONE weld, of about a nanoinch, from decimal rounding in the DXF text itself. So this is a backstop for genuine sub-thou dirt, not a routine repair path, and if it starts firing often on a file that is the signal to go looking for another D27.
heal.py TOL 0.01 Aristide
The acceptance gate. CLAUDE.md: default healing tolerance is 0.010 in for these parts, but real work goes down to 0.001 and we build to that standard. Stated as a requirement, not measured.
build_mvt_preview.py SPACERS_PER_PLATE 3 cadmaster · 2026-08-06
Three points fix a plate; two let it swing about the line between them. A count, not a measurement -- where three cannot be spread the sheet says so rather than moving them together.
build_mvt_preview.py THICK 0.125 Aristide · 2026-08-05
1/8 inch mild steel, stated.
build_mvt_preview.py WIDTH_IN 30.0 Aristide · 2026-08-05
Stated finished width of the MVT icon.
mvt_geom.py THICK 0.125 Aristide · 2026-08-05
1/8 inch mild steel, stated.
copy of build_mvt_preview.py:THICK
mvt_geom.py WIDTH_IN 30.0 Aristide · 2026-08-05
Stated finished width of the MVT icon.
copy of build_mvt_preview.py:WIDTH_IN
build_mvt_preview.py LIGHT_AZ_DEG 315.0 cadmaster · 2026-08-06
Azimuth the shadow is thrown along, in the artwork's own frame (y up); 315 deg puts it down and to the right on the page, which is where a light from the top left belongs. Chosen. Cosmetic.
build_mvt_preview.py LIGHT_ELEV_DEG 45.0 cadmaster · 2026-08-06
Elevation of the light the customer preview is drawn under. Chosen, not measured: at 45 deg the shadow offset equals the standoff exactly, so a reader can check the drawing against the number by eye. Cosmetic -- it changes where a shadow falls on a preview and nothing the machine is told.
dxf_r2000.py BYLAYER 256 DXF specification
Colour index 256 means BYLAYER. A fact of the format.
heal.py SNAP 0.0001 derived from qc.WELD_TOL · 2026-08-06 checked against DWS-LH-2.5-LOGO-Brazen_Recovery-2.dxf
At or below this a weld moves a LINE endpoint (or rebuilds an arc through it) instead of inserting a connector. Not a free choice: it equals qc.WELD_TOL, the distance at which every consumer already treats two ends as the SAME node. A connector shorter than that collapses to a point and its own two ends then read as a 4-way branch -- 4 such branches on the DWS-LH-2.5 logo, all cleared by snapping. It would also post as a zero-length G1.
materials.json MSO7,0.060 kerf 0.007 1785346410_3629267_our_gcode.NC · 2026-08-06
D7 throughout. That program carries no #2007 assignment, so the width is read from the D-number alone.
materials.json MSO7,0.125 kerf 0.007 65733 / 65734 · 2026-08-06
#2007=.007(D07) in every MSO7,0.125 program we hold.
materials.json MSO7,0.125 slug_tab {'small': 0.018, 'small_max': 1.1, 'small_max_area': 0.45, 'large': 0.033} test cut of 2026-07-30 · 2026-07-30
The slugs that held on 0.018 were the letter row, measuring 0.83-1.04 longest dimension and at most 0.415 in^2; the smallest slug that needed 0.033 is 1.21 long. The boundary therefore lies in 1.04-1.21 and is placed at the LOW end -- every uncertainty here rounds up to the wider tab, because a too-narrow tab drops the slug early and a loose piece can strike the head. small_max_area is a second gate because length alone lets a compact blob through: 1.0 x 1.0 passes a 1.1 length test while weighing 2.4x the heaviest letter actually proven. Both gates must pass to stay small. The drop-through size is NOT here -- it is a machine property (machine.json).
materials.json MSO7,0.250 kerf 0.007 1784748270_915278_6552.NC · 2026-08-06
D7 throughout; no #2007 assignment in that program.
materials.json MSO7,0.500 kerf 0.02 1786727267_4008_33215.NC · 2026-08-14
#2007=.020(D07) in the shop's own program for this exact job (TL-1016-73/75/78/80). REPLACES the bracketed .007 assumption -- the bracket failed: 1/2 in does not share the thin-plate offset. The 0.990 row's .007 deserves re-checking against its source file for the same reason.
materials.json MSO7,0.990 kerf 0.007 1784748277_915278_65393.NC · 2026-08-06
#2007=.007(D7). Worth a human eye: the kerf is the SAME 0.007 at 0.990 as at 0.060, across every program in the corpus. That is a measurement, not an assumption -- but if the shop expects kerf to open up with thickness, one of the two is wrong and it is worth asking Jordan which.
vec_pipeline.py PT_PER_IN 72.0 PostScript / PDF specification
A PostScript point is exactly 1/72 inch. This is a fact of the format, not a choice, and it is the one number here that cannot be wrong.