T9.1 - CR-008: the export, finally walked through

Every required field verified present under the Micron configuration: P6
Activity id and description, Priority, the Building/Floor/Sector location
row, Scope & Work, Material List, Constraints with their status carried by
WORDS (a black-and-white print keeps its meaning), Quality & Hold Points, and
the Drawings & Attachments index with per-file descriptions (T7.7's columns).

What must be absent, absent: the Micron samples now carry
fields:{costCode:false, acumaticaTask:false} - CR-002's two removals,
expressed as the toggles CLAUDE.md requires, in the creator sample AND the
wizard sample - so ACU Cost Code and Acumatica Task appear nowhere on the
Micron export while the columns, model and recorded values stay. CR-006-
suppressed sections (assets, kitting) are absent, as pinned since T5.7.

Tablet legibility, three real defects fixed:
- a bare `table { min-width:520px }` in the narrow-screen media block reached
  the EXPORT tables too, dragging the whole document to 520px on a 390px
  screen; scoped to .table-wrap (the form's scroll containers), because the
  export must FIT a tablet, not scroll
- export tables now table-layout:fixed with overflow-wrap:anywhere
- at <=768px the doc sheds its 52/56px desk padding and neutralises the
  inline column widths (the one legitimate !important: outranking an inline
  style is its job)

RAISED, NOT DECIDED (the task says propose, do not assume) - merge versus
list for attachments: RECOMMEND MERGING image attachments into the printed
document (already done - they print inline as the sheet itself) and LISTING
PDFs as named, described links rather than merging them. Merging PDFs
server-side needs a PDF library dependency and re-renders every export for a
need the meeting expressed as "hand someone exactly the sheet" - which the
5MB single-sheet uploads plus inline images already serve. If merged-PDF
output is wanted anyway, it is a bounded server task - needs Nick.

Verification (each probe run alone): NEW tests/export_check.py 17/17.
Regressions: form_structure_check 50/51 (the standing F6 height question,
BL-022), sections_check 95/95.

Items: CR-008 (CR-002 field toggles applied to the samples)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 12:51:44 -07:00
parent bf28489954
commit eb1497d574
5 changed files with 185 additions and 2 deletions

View File

@@ -456,6 +456,7 @@ function loadSampleData(){
// section added after today is not silently off for this SOP.
if(typeof WPSections !== 'undefined'){
state.sections = WPSections.normalize({assets: false, kitting: false}); // CR-009: Micron EUV is not kitting today
state.fields = WPSections.normalizeFields({costCode: false, acumaticaTask: false}); // CR-002, mirrored on the export (T9.1)
}
// The Micron FMCS sample includes BIM/VDC — enable it so the sequence shows the

View File

@@ -16,6 +16,10 @@ const SAMPLE_SOP = {
// Written as a partial map, not a full one: WPSections.normalize fills the rest
// in as ON, so a section added later is not silently off for this SOP.
sections:{assets:false, kitting:false}, // kitting off: Micron EUV is not kitting today (CR-009/T8.1)
// CR-002 / T9.1: the two fields the review removed, expressed as the toggles
// CLAUDE.md requires - hidden on the form AND absent from the export, while
// the columns, the model and every recorded value stay exactly where they are.
fields:{costCode:false, acumaticaTask:false},
project:{name:'Micron — INC Construction Work Packages', number:'26-67-008', client:'Micron Technology, Inc.', division:'Semiconductor', pm:'Nick Siegfried', cm:'K. Boyd', qm:'D. Nguyen', site:'Boise, ID — Fab'},
roles:[{role:'General Foreman',name:'M. Torres'},{role:'Superintendent',name:'K. Boyd'},{role:'Safety Manager / Lead',name:'A. Reyes'},{role:'Quality Manager',name:'D. Nguyen'},{role:'Planner',name:'L. Graver'}],
governance:{ issuance:['By Sector / Area','By Discipline'], woSize:'Standard — 35 days (≈4080 hrs)', woFormat:'WP##-[Sector]-[TYPE]', disciplines:['Mechanical','Electrical','Tech'], discMode:'choice', instanceSuffix:'letter', sizeHoursMax:'80' },

View File

@@ -344,7 +344,19 @@
.output-doc p { margin-bottom: 10px; }
.output-doc ul { padding-left: 20px; margin-bottom: 10px; }
.output-doc li { margin-bottom: 3px; }
.output-doc table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 12px; border: 1px solid var(--border); }
.output-doc table { width: 100%; border-collapse: collapse; margin: 12px 0; font-size: 12px; border: 1px solid var(--border);
/* CR-008 / T9.1: the export opens on tablets. Fixed layout + wrap-anywhere
keeps every table inside the screen instead of laying out at its content's
natural 520px and dragging the whole document sideways. */
table-layout: fixed; }
.output-doc td, .output-doc th { overflow-wrap: anywhere; }
/* On a phone/tablet the inline column widths the desktop layout carries
(width:200px on header cells) exceed the available line; !important is the
one CSS mechanism that outranks an inline style, which is exactly the job. */
@media (max-width: 768px) {
.output-doc { padding: 20px 14px; }
.output-doc th, .output-doc td { width: auto !important; }
}
.output-doc th { background: var(--surface2); border: 1px solid var(--border); padding: 6px 10px; font-family: var(--mono); font-size: 9px; letter-spacing: .08em; text-transform: uppercase; text-align: left; color: var(--text-muted); }
.output-doc td { border: 1px solid var(--border); padding: 7px 10px; vertical-align: top; }
.output-doc .badge { display: inline-block; padding: 1px 8px; border-radius: 3px; font-family: var(--mono); font-size: 10px; font-weight: 600; }
@@ -659,7 +671,10 @@
.modal { max-width:100% !important; }
.output-toolbar { flex-wrap:wrap; }
.material-actions .add-btn { flex:1 1 auto; }
table { min-width:520px; } /* keep columns legible; .table-wrap scrolls */
/* Scoped to the FORM's scroll containers only. This was a bare `table` and
it reached the export document too, forcing every printed table to 520px
inside a 390px screen - the export must FIT a tablet, not scroll (CR-008). */
.table-wrap table { min-width:520px; } /* keep columns legible; .table-wrap scrolls */
.cstatus button { padding:6px 8px; }
}
@media (max-width: 480px) {