T5.7 - CR-016: Assets off for Micron EUV, by configuration

Asset content duplicates the database Clinton's team maintains, and that
integration is deferred, so the section comes out in the interim.

This is a configuration task, and the wave file says so - "Surface:
configuration". There is no Micron EUV SOP in this repository; it is data on a
running system. What the repository holds are two representations of the Micron
configuration, and both now carry the toggle:

  wp-creation-app.js SAMPLE_SOP        what the standalone creator shows when
                                       there is no project SOP to read
  work-package-suite-app.js loadSample  the Micron FMCS SOP the wizard loads

For a real project the mechanism is step 12 and needs no code: untick Assets,
complete the SOP. That is what T5.5 built and what "another SOP can enable
Assets and it works" means.

Both write a PARTIAL map - {assets:false} - rather than a full one.
WPSections.normalize fills the rest in as ON, so a section added after today is
not silently off for this SOP. The probe checks that specifically: exactly one
key is false, not nine true and one false frozen at today's list.

  html/wp-creation-app.js         SAMPLE_SOP.sections
  html/work-package-suite-app.js  loadSampleData sets state.sections
  tests/sections_check.py         +13 checks (75 -> 88)

Done when
  [x] Assets does not render for Micron EUV in the form, detail view or export -
      and not in the section chip strip either, which is the form's contents page
  [x] the section and its model remain in the codebase - #asset-card and
      pkgAssets are both still there, checked in the browser rather than assumed
  [x] another SOP can enable Assets and it works - the fixture project renders it

seed_demo.py was deliberately NOT changed. Its SOP row stores a bare
{governance: ...} blob rather than the {sop, state} shape pullProject reads, so
its data never reaches the creator's SOP object at all - adding sections there
would be a toggle nothing consults. That shape mismatch is BL-018 and it should
be fixed as one thing, not worked around here.

What the probe caught
  The first run reported on "Job A" while claiming Micron. activeProjectId falls
  back to ProjectData.getActiveId(), so a project left in localStorage by an
  earlier navigation sent bootSOP() down the real-project branch and the sample
  was never loaded - every CR-016 assertion was then measuring the wrong SOP and
  four of them happened to fail, which is the only reason it was noticed. The
  probe clears storage first and says why.

Verified one at a time
  sections_check  88/88  (75 + 13 for CR-016)
  browser_check   71/71
  f_items         F1-F5 FIXED, F6 REPRODUCES (T7.2)

Question for the PR, per CLAUDE.md: CR-009's decision also says Kitting ships
toggled off for Micron EUV via these same toggles. That is wave 8's to apply
(CR-009/CR-010/CR-012), so the sample still has Kitting on. If the intent was
for both to go off together, the second line is one word.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-16 12:14:45 -05:00
parent c453e50412
commit 3bc3abe209
3 changed files with 75 additions and 0 deletions

View File

@@ -432,6 +432,18 @@ function loadSampleData(){
// Step 7 already has defaults
// CR-016 / T5.7. The sample is the Micron EUV configuration, and Micron does not
// use Assets: its content duplicates the database Clinton's team maintains, and
// that integration is deferred. Off by toggle, so the section and its model stay
// in the application for the integration to land in — and any other project can
// turn it back on from step 12 without a code change.
//
// A partial map on purpose. WPSections.normalize fills the rest in as ON, so a
// section added after today is not silently off for this SOP.
if(typeof WPSections !== 'undefined'){
state.sections = WPSections.normalize({assets: false});
}
// The Micron FMCS sample includes BIM/VDC — enable it so the sequence shows the
// full BIM → construction flow (BIM steps first) and the Creator offers IWP/EWP.
state.bimEnabled = true;

View File

@@ -6,6 +6,16 @@
// ── SAMPLE SOP (same shape the Configuration tool exports) ───────────────────
const SAMPLE_SOP = {
meta:{tool:'Work Package Configuration', sample:true},
// CR-016 / T5.7. This sample IS the Micron EUV configuration as far as the
// repository is concerned — it is what the standalone creator shows when there
// is no project SOP to read. Assets is off because its content duplicates the
// database Clinton's team maintains and that integration is deferred; the
// section, its data model and every value already captured stay exactly where
// they are, which is the whole point of expressing this as a toggle.
//
// 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},
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' },