From b71626a36d186ed1c9c506460d3da9038a43f2de Mon Sep 17 00:00:00 2001 From: Mike Swanson Date: Thu, 18 Jun 2026 07:59:29 -0700 Subject: [PATCH] memory: DSCA33/DSCA45 spec gap (missing main specs, not a bug) Co-Authored-By: Claude Opus 4.8 (1M context) --- .claude/memory/MEMORY.md | 3 +- .claude/memory/project_dsca33_45_spec_gap.md | 34 ++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 .claude/memory/project_dsca33_45_spec_gap.md diff --git a/.claude/memory/MEMORY.md b/.claude/memory/MEMORY.md index 2ba50a0d..8f0a381b 100644 --- a/.claude/memory/MEMORY.md +++ b/.claude/memory/MEMORY.md @@ -112,6 +112,7 @@ - [GURU-BEAST-ROG Setup Status](machine_windows_guru_setup_status.md) — Windows workstation fully configured except SSH key deployment to servers. ## Project +- [DSCA33/DSCA45 spec gap](project_dsca33_45_spec_gap.md) — Datasheet pipeline: DSCA33/DSCA45 render null because their MAIN specs are missing from all recovered DAT files (DSCA33 nowhere; DSCA45 only in DSCFIN.DAT). Data gap, not a bug; ~8,763 certs blocked. Final-Test renders via slotMaps+stub; need real specs from Dataforth or accuracy-block templating. - [CyndyOffice physical HP lockups](cyndyoffice-physical-hp-lockups.md) — RMM "Howard-VM" site agent CyndyOffice is a PHYSICAL HP Pavilion TP01 (not a VM); ~20 hard freezes/6wk = Kernel-Power 41 bugcheck-0, no dump/WHEA = hardware (RAM/PSU/BIOS), SSD healthy. UUID re-enrolls. - [Automate memory consolidation/lint (phased)](project_memory_consolidation_automation.md) — Eventually auto-run /memory-dream; lint+additive fixes can automate early, merges/deletes stay human-approved. Engine: .claude/skills/memory-dream/ + .claude/scripts/sync-memory.sh. - [Trebesch PST consolidation (staged)](project_trebesch_pst_consolidation.md) — Address-book CSV from 24 PSTs on DESKTOP-QNP3ON5; scripts staged at .claude/tmp/treb-*.ps1, WAITING for Howard's 6pm-MST 2026-06-01 go signal (attended run). See [[reference_trebesch_qnp3on5]]. @@ -160,4 +161,4 @@ - [CT Thoughts backlog](feedback_ct_thoughts_backlog.md) — ClaudeTools harness ideas go in docs/CT_THOUGHTS.md (trigger "ct thought:"); CT analogue of RMM_THOUGHTS. Don't build until explicit go. First entry = ClaudeTools 3.0 web co-work vision. - [AI-auth product boundary](project_ai_auth_product_boundary.md) — ClaudeTools/ClaudeTools 3.0 = internal-only, per-person subscription OAuth ok; GuruRMM = sellable, customer brings own API key (never ACG's subscription); backend dev = internal. Anthropic ToS bans subscription auth in third-party products. - [RMM SYSTEM context can't see user mapped drives](feedback_rmm_system_context_mapped_drives.md) — RMM runs as SYSTEM; `Test-Path F:\` etc. is False even when the user's mapped/redirected drive exists. Diagnose mapped-drive/redirect issues in `context:user_session`. Elevated apps (e.g. QB DB Server Manager "unable to retrieve root folder") need `EnableLinkedConnections=1` + reboot. -- [AD2 = Dataforth-ops fork](project_ad2_dataforth_fork.md) — branch ad2 = main + thin Dataforth layer; keep fork edits ADDITIVE (Dataforth context in clients/dataforth/CLAUDE.dataforth.md, NOT .claude/CLAUDE.md); rebase onto main directly when sync.sh self-lock hits; no vault/jq/sops/age on this box. +- [AD2 = Dataforth-ops fork](project_ad2_dataforth_fork.md) — branch ad2 = main + thin Dataforth layer; keep fork edits ADDITIVE (Dataforth context in clients/dataforth/CLAUDE.dataforth.md, NOT .claude/CLAUDE.md); rebase onto main directly when sync.sh self-lock hits; no vault/jq/sops/age on this box. diff --git a/.claude/memory/project_dsca33_45_spec_gap.md b/.claude/memory/project_dsca33_45_spec_gap.md new file mode 100644 index 00000000..2dc88661 --- /dev/null +++ b/.claude/memory/project_dsca33_45_spec_gap.md @@ -0,0 +1,34 @@ +--- +name: project_dsca33_45_spec_gap +description: Why DSCA33/DSCA45 datasheets won't render — missing main specs + special layouts, not a bug +metadata: + type: project +--- + +In the Dataforth test-datasheet pipeline (deployed `C:\Shares\testdatadb`, AD2 fork `ad2` +branch), the **DSCA33** and **DSCA45** model families render null (no datasheet) for a +**data-gap** reason, not a code bug: + +- The main spec DAT files we have (`specdata/DSCOUT.DAT`, `DSCMAIN4.DAT`) contain DSCA prefixes + 30,31,32,34,36,37,38,39,40,41,42,43,47,49 — but **NOT 33 or 45**. DSCA33 appears in **no** DAT + file at all; DSCA45 appears only in `DSCFIN.DAT` (the Final-Test layout file, which lacks the + `SENTYPE`/`MAXIN`/input-type fields the accuracy block needs). Likely lost in the cryptolocker wipe. +- `database/render-datasheet.js` bails (`if (!modelSpecs) return null`) before rendering, so these + models produce nothing. ~8,763 PASS certs blocked: DSCA33 = 3,350 (35 models), DSCA45 = 5,413 (23 models). + +The Fix 2 Final-Test rebuild is NOT the blocker — the per-model templates + slotMaps render the +Final-Test block correctly for these (proven: DSCA45-01 Final-Test vs golden = 2 trivial diffs with a +stubbed spec). The real blockers to publishing them correctly: +1. **Missing main specs** → `render-datasheet.js` won't even call the renderer. For DSCA, specs are + only needed for the accuracy-block header + model name now (Final-Test is template/slotMap-driven). +2. **Special accuracy headers** the sensor-type logic can't produce: DSCA45 = `Frequency (Hz)` / + `Output (V)` (frequency-response table); DSCA33 = `Vin (mVAC)` / `Output (VDC)` (AC-RMS module). +3. **Non-status template rows**: DSCA45 has informational rows like `Zero-Crossing Input` / `TTL Input` + with NO PASS in the golden, but the renderer appends PASS to every empty-spec row (like the old + loadNote artifact — see [[project_test_datasheet_pipeline]]). + +Two paths to fix: (a) obtain the authoritative DSCA33/DSCA45 main spec files from Dataforth/engineering +(clean, fixes accuracy headers properly — flag to John Lehman), or (b) extend the template approach to +capture the accuracy header + special-row handling from the staged originals (self-contained, but a +STAGE-4-sized effort across the special layouts). Final-Test data for the matchable models is already +ready (slotMaps derived). Related: [[project_pipeline_rebuilt]].