# Mohammad Al-Araidah — Engineering portfolio

An engineering case-study environment connecting physical manufacturing systems, operational decisions, enterprise workflows, data analysis and software design. The dark drawing-sheet identity, technical grid, typography and blue accents are preserved. This existing Sites project is published at alaraidah.com.

## Provenance

Professional case studies describe documented roles and abstracted methods. Independent engineering studies, personal product development (AutoOps AI), and the **synthetic interactive lab** are labeled separately. Every lab supplier, part, event, measurement, document and approval is fictional. The lab is a demonstration built for this portfolio, not an employer engagement, customer result or equipment certification. No confidential employer/customer material is used.

## Architecture

Next.js App Router, TypeScript, React, Tailwind CSS v4 and pnpm. `next.config.ts` exports static HTML into `out/` with trailing-slash URLs. No backend, database, credentials or model API is required. Server components render page structure; small client components handle theme/menu, project filtering and lab interactions. The lab adds no charting or state-management dependency.

```text
data/lab/*.ts             typed fictional scenarios and evidence
       ↓
lib/lab/*.ts              pure calculations and decision gates
       ↓
components/lab/*Demo.tsx  shared tab session + accessible controls
       ↓
app/engineering-lab/      route shells, metadata and provenance

data/lab/*.ts → scripts/generate-lab-documents.ts → public/documents/engineering-lab/
data/factory/model.ts → lib/factory/ → FactorySession + FactoryOverview
data/factory/model.ts → scripts/generate-factory-documents.ts → factory records
```

`LabShell` provides workspace navigation, disclosure and links to documented experience. `LabInvitation` introduces the workspace on the homepage, work index and role pages. Content is separate from rendering/calculations so an actual integration could replace fictional records without rewriting the decision model. Existing routes and resume downloads remain in place.

## Phase 1 — One fictional factory

Route: `/engineering-lab/factory/`. The primary lab entry now opens **SYN-OPS-01 / Cooling Systems Factory**, operated by fictional fabricator **SYN-021**. Existing SPC, NCR and FAT URLs remain unchanged. Navigation groups the factory workspace, the completed industrial-engineering layout workbench, and quality/equipment cases. Data-science workspaces will be added when their later phases are implemented.

The 32 × 20 m drawing is an assumed arrangement of receiving, incoming quality, valve machining, kitting, assembly, acceptance testing and release. Select an area with its button or the parallel native select to inspect stations, machines and working case links. Dashed connections encode process sequence, not optimized travel. The drawing uses a nominal 2 m circulation context; it is not a building-code assessment. The separate Phase 2 layout workspace adds movement/routing calculations. Phase 3 adds a separate local ergonomic workstation assessment; production simulation remains a later phase.

The product uses one valve, one HX-12 harness set, two pumps, one heat exchanger and one frame. Purchased harness supplier **SYN-014** remains distinct from the factory operator. The source of truth is `data/factory/model.ts`: area coordinates in meters, station/machine IDs, product/BOM, lots, three one-unit illustrative work orders, routing, case/evidence references, revision A and data version `factory-1.0`. `baselineFactoryRecord` recursively freezes the baseline in memory. Existing FAT requirement IDs and drawing/protocol revisions remain in `data/lab/fat.ts`.

Trace an order into its valve lot's SPC horizon/statistics window or the harness's NCR lot evidence. Only work order **SYN-WO-003 / SYN-LC-1000-003** has a FAT record. The other orders have no assigned acceptance result. The three traces are a genealogy subset, not a full weekly schedule. Valve observation counts are not produced-lot inventory. Harness received populations are not available stock. A trace assignment does not authorize held material for use.

**Deterministic planning:** `lib/factory/planning.ts` generates eight hypothetical demand periods using seed **26831** and a 32-bit LCG (1664525, 1013904223). The generator requests six to ten skids per period; these are teaching inputs without observed-demand or calendar claims. Existing quality histories retain their original independent chronology, values and causes.

**Baseline versus proposal:** eight requested skids per hypothetical week is the fixed baseline. A visitor can select a separate proposal of 1–24 skids. Gross component requirements equal demand × BOM quantity. Assumed work content is machining 6 min/valve, kitting 45 min/skid, assembly 240 min/skid, and attended testing 120 min/skid: **411 min / 6.85 h per skid**. Eight skids require 54.8 h of assumed work content; twelve require 82.2 h. Testing work content differs from elapsed test duration. This arithmetic does not forecast throughput, headcount, utilization, lead time, purchasing or stock availability. Metric definitions specify units and populations in the UI and register.

**Independent decisions:** `lib/factory/assessment.ts` exposes the current SPC signal count, simulated NCR closure and FAT verdict/sign-off separately. It does not invent a combined shipment-release gate. A signed FAT cannot clear supplier disposition. Demand changes preserve case reviews and evidence; they do not create new measured production results. `Export factory session` downloads version, frozen baseline, visitor inputs/reviews, planning results and the quality summary as disclosed synthetic JSON. Static baseline JSON and the factory register are also downloadable.

## Phase 2 — Layout and material-flow optimization

Route: `/engineering-lab/layout/`. Source: `data/factory/layout.ts`, `lib/factory/layout.ts`, `lib/factory/layout-session.ts` and `components/factory/LayoutWorkbench.tsx`. The compact workspace opens with demand, layout views, calculated results and positioning controls. A diagram plots actual loaded routes; area buttons support dragging and 1 m arrow-key moves, with native numeric coordinates and nudge buttons as alternatives. The factory overview keeps its baseline drawing and links the selected area into this workbench. Its summary identifies the active arrangement's geometric result.

**Problem, scope and responsibility:** inspect travel and backtracking in the same synthetic operation. Seven unchanged footprints and six directional transfers describe a single cooling-skid product family. Visitors act as improvement engineers. Requested volume varies from 1–24 skids; no additional SKU mix, employee observations, employer layout or measured savings are invented. Kitting's footprint contains its bounded material staging. R1 receiving/storage and D1 dispatch are fixed; M1 machining and T1 testing remain within declared utility zones. Every improvement is separate from component disposition and equipment acceptance.

**Movement evidence and units:** one harness set and one valve per skid move in four-unit batches. Complete kits and assembled skids move one per trip. For each directional movement, `trips = ceil(demand × unitsPerSkid / batchCapacity)`. The six flows align with factory routing. The from-to matrix, route ledger and manifest expose quantities, capacity, rounded trip counts, route lengths and loaded metres. Three illustrative work-order genealogy records are not treated as the full weekly schedule or available stock.

**Geometry and routing:** x/y identify each area's upper-left corner on the 32 × 20 m floor, snapped to 1 m. Fixed sizes cannot overlap or extend outside the floor. Pairs retain at least 2 m separation on one axis; entire M1/T1 footprints stay in their service zones. Each top/bottom transfer port sits 1 m outside its footprint at a rounded integer horizontal centre. Footprints expand by 1 m for clearance; grid points inside the expansions are blocked, while their boundary is permitted. Route centres also stay 1 m from walls. Four-neighbour breadth-first search with east/north/west/south tie-breaking returns a shortest route on this declared grid. No diagonal edge cuts a corner. This conservative rectangular clearance model does not certify real vehicle turning or workplace safety. Shared transfer ports can create zero aisle distance, and within-area maneuvering is explicitly excluded.

**Objective and decisions:** loaded travel equals route length × loaded trips, summed over the six movements. Trip counts are the objective weights. Assumed handling cost is `$0.08 × loaded metres + $0.40 × loaded trips`, in USD per hypothetical week. Both rates are invented teaching inputs. They do not estimate wages, elapsed transport time or labor capacity. An infeasible arrangement exposes violations but receives no aggregate travel/cost score or claimed improvement. All comparison rows use identical current demand, movement, batching and cost assumptions. A demand change re-scores each arrangement; it does not change quality records or assumed standard work.

**Implementation:** a deterministic multi-start heuristic evaluates baseline, visitor proposal, two coordinated aisle shifts, a coordinated utility-zone packing arrangement and a Q1/K1 swap. It follows with at most three passes of four 1 m neighbour moves per movable area. Only feasible candidates with strictly lower loaded travel replace the incumbent. The baseline is included, so a generated suggestion cannot be worse under the model. The bound is 66 evaluated candidates. The result is labeled a feasible heuristic improvement; global optimality is not established. An older suggestion retains its original search demand and is re-scored fairly when demand changes, with a regeneration note. Editing a displayed arrangement forks it into the visitor proposal; adoption of a suggestion copies geometry without clearing quality decisions.

**Reproducible result and lessons:** at eight skids, independent baseline route distances are 8, 8, 17, 5, 11 and 2 m. Trip counts are 2, 2, 2, 8, 8 and 8: **210 loaded m**, 30 trips, assumed **$28.80/week**. The default search finds a feasible **170 m / $25.60/week** arrangement after 26 evaluations, a computed 40 m reduction (19.0%). At twelve skids every arrangement is evaluated at the same new demand; baseline travel is 315 m. These calculations demonstrate the effect of batching, ports and fixed utilities. They do not establish realized savings, throughput, ergonomic benefit or process-quality improvement. Congestion, variability, empty returns, turns, replenishment and real handling speeds are outside this phase.

`Export layout comparison` includes versions, demand, geometry, paths, violations, trip counts, rates, scores and differences. The broader factory session export contains the same comparison alongside independent quality state. Download `layout-method.md` for the complete decision/method record and `layout-manifest.json` for machine-readable assumptions. Generation and verification use the existing TypeScript/tsx setup and add no runtime dependency. The immutable factory baseline stays `factory-1.0`; layout assumptions are separately versioned `layout-1.0` / SYN-LAYOUT-001 Rev A.

## Phase 3 — Ergonomic workstation redesign

Route: `/engineering-lab/ergonomics/`. Task assumptions, source links and frequency factors live in `data/factory/ergonomics.ts`; pure calculations in `lib/factory/ergonomics.ts`; validated state/comparison/export in `lib/factory/ergonomics-session.ts`; interactive geometry and controls in `components/factory/ErgoWorkbench.tsx`; factory summary in `ErgoSummary.tsx`.

**Problem, scope and responsibility:** review one fictional component-tote transfer beside the A1 assembly fixture, with material supplied by K1. Visitors act as improvement engineers: change gross load, pickup/placement geometry, bench height, asymmetry, grip, repetition and work/recovery pattern; inspect scope and propose verification. This is an adjacent lift, separate from inter-area carrying, weekly output or a full-shift schedule. Both endpoints are assessed because precise fixture placement requires significant control. The factory/layout supplies location context; moving A1 does not establish internal reach, workstation clearance or capacity.

**Reference and approach:** [NIOSH RNLE Applications Manual, September 2021 revision](https://stacks.cdc.gov/view/cdc/110725), sections 1.2–1.4 and Tables 5/7. RWL = 23 kg × HM × VM × DM × AM × FM × CM; LI = gross load / smaller endpoint RWL. Metric factors use HM = 25/max(25,H), VM = 1−0.003|V−75|, DM = 0.82+4.5/max(25,D), AM = 1−0.0032A. D is absolute vertical hand travel. FM uses origin height at both endpoints, duration and a representative 15-minute frequency; positive supported rows are interpolated linearly. Rates below 0.2 use 0.2. No interpolation into zero-factor regimes is used. Coupling uses endpoint height: good 1.0; fair 0.95 below 75 cm / 1.0 at or above; poor 0.9. Limits and source-table choices are explicit in the downloadable method.

**Decisions:** H above 63 cm, hand V outside 0–175 cm, A above 135°, frequency above its table regime, work beyond eight hours and unsupported task methods receive no finite RWL/LI or index improvement. Short work (≤60 min) requires recovery equal to work time before the next session; moderate work (>60 through 120 min) requires 0.3 times work time; long work (>120 through 480 min) assumes standard rest allowances. Inadequate recovery is flagged so actual work periods can be combined for correct classification; no favorable short-duration assumption is silently assigned. One-handed, seated/kneeling, unstable, restricted-access, high-speed, unfavorable-environment, carrying and assisted tasks are outside the modeled scope. Assistance is not represented by subtracting support force from gross mass.

**Implementation:** immutable baseline and separate visitor redesign persist in the shared factory tab. Numeric edits apply on Enter/blur, geometry sliders respond immediately, and invalid numeric entries restore their previous values. Inputs beyond the RNLE scope remain inspectable and repairable. Dimensioned pickup/placement diagrams use separate local ankle references. A 35 cm horizontal design reference is conceptual; it has no anthropometric percentile or universal reach-limit claim. The 15 cm bench-to-hand offset and 2 kg tote tare are synthetic assumptions. Actual measurements and broader hazards remain required for a workplace assessment.

**Computed result and lessons:** the baseline 12 kg gross / 10 kg payload task has H/V/A = 45 cm/30 cm/45° at pickup and 35 cm/100 cm/0° at placement, fair coupling, 1 lift/min, 45 min work and 45 min recovery. Controlling RWL is approximately **7.47 kg**, LI **1.606**. Raised-and-closer presentation with good handles gives RWL **21.62 kg**, LI **0.555**. Two 7 kg gross totes (5 kg payload plus 2 kg tare each), at twice the repetition, give LI **0.968** while increasing assumed handling time from 18 to 24 s per equal-payload bundle. Raised presentation assumes 14 s; assistance assumes 24 s and receives no RNLE rating. These are computed scenarios and editable timing hypotheses, not measured worker or business results. A lifting index at or below 1 does not establish safety for every worker or cover other hazards.

Time is simply transfers × assumed seconds per transfer. It does not automatically improve when geometry changes and is compared only at equal payload. Gross mass includes tote tare; splitting preserves payload while moving more container mass. No timing result changes baseline standard work, capacity, staffing or quality decisions. The source check adapts NIOSH Example 3's closer-load redesign to the metric minimum H=25 cm and reproduces its rounded LI of 1.2; the rounded US worksheet RWL is an approximate cross-check because the nominal constants differ. Exact independent metric-factor tests provide the numerical golden checks.

`Export workstation assessment` includes tasks, endpoint factors, scope reasons, controlling results, timing/payload basis, differences, source/version, A1 layout context and a visitor rationale. Draft standard-work record SYN-SW-A01-ERGO Rev A states its proposed sequence and verification: actual worker/task measurements, full-shift exposure and other hazards, residual assisted work, repeated equal-payload timing with variability, and workplace review. It is explicitly unverified and unapproved. Download `ergonomics-method.md` and `ergonomics-manifest.json` for the complete method, assumptions and reproducible examples. No worker photos, observations, certifications or signatures are fabricated. Multi-task/Composite Lifting Index, full-shift scheduling and production simulation remain outside this phase.

## Phase 4 — Continuous improvement and experiments

Route: `/engineering-lab/improvement/`. `data/factory/improvement.ts` owns the versioned study assumptions, eight coded/physical settings, four loss entries and future verification criteria. `lib/factory/improvement.ts` generates runs and calculates factorial effects, pure-error uncertainty and constrained comparisons. `lib/factory/improvement-session.ts` validates visitor state and exports a truthful proposal. `ImprovementWorkbench.tsx` supplies controls, evidence inspection, plots, run/effect tables and downloads; `ImprovementCharts.tsx` renders functional SVG plots with equivalent numeric tables. `ImprovementSummary.tsx` connects the factory overview. No runtime dependency, external model service or backend is added.

**Problem, scope and responsibility:** frame a loss question in the same fictional operation and decide whether a machining setting deserves confirmation. This independently authored synthetic demonstration links M1 / SYN-MC-01 / SYN-ST-M01 to the same SYN-VS25 component. Experimental blanks SYN-EXP-V001–032 are distinct from the original SPC lots and history. Neither this experiment nor a visitor proposal rewrites drawing limits, quality gates or the six-minute machining-plus-inspection work assumption.

**Loss evidence and denominators:** SYN-CI-OBS-01 is a fixed eight-skid teaching window, independent of editable weekly demand. Setup uses two attended event segments (34+28 = 62 person-minutes), waiting four (12+9+16+11 = 48), and rework three (18+12+15 = 45). These are fictional event logs, normalized by eight skids; they are not reconstructed employer observations or NCR events. Travel is explicitly model-derived: the Phase 2 baseline at eight skids yields 210 loaded metres/30 trips; an assumed 1 m/s walking speed yields 3.50 person-minutes, excluding empty return/pickup/congestion. No total, throughput estimate or causal inference combines these exposures. Loss notes identify improvement questions; they do not establish that changing machining settings removes historical rework.

**Experimental approach:** a full 2³ factorial varies feed A (0.12/0.20 mm/rev), cutting speed B (120/180 m/min) and coolant C (6/10 L/min). Four independent blanks per setting provide 32 cuts; repeats are not multiple gauge readings on one part. Fixed fictional material, fixture, tool type, measurement method and reset/stabilized setup isolate the setting mechanism. There is no block, carryover, tool-life drift, curvature or nuisance variation beyond independent Gaussian noise. Seed **41973** drives a 32-bit `Math.imul` LCG, seeded Fisher–Yates shuffle, then independent Box–Muller draws in error/cycle/energy order. JSON/CSV retain full precision. `generateExperiment(seed)` reproduces the design and responses.

With A,B,C coded ±1, the transparent teaching generator is:

- Diameter error µm: `4(3+5A+4B−4C+3AB−4AC−3BC+ABC) + 6Z₁`; diameter mm = `25 + error/1000`.
- Cut cycle seconds: `82−9A−6B+2C+2AB + 1.2Z₂`.
- Cut energy Wh: `34−2A−3B+3C+AB + 0.6Z₃`, including machine and coolant during the cut.

These equations encode a synthetic mechanism. They are not a trained ML model, calibrated machining physics or recommended real machine settings. Phase 5 adds the separately planned ML workbench.

**Calculation and plots:** fit the intercept and all seven factorial terms using the orthogonal ±1 design. Grand mean is the intercept; coefficient `βj = Σ(xj y)/32`; effect = `2βj`. Fitted corner means equal four-cut cell means. Pure-error `SSE = Σ(y−cell mean)²`, `df = 32−8 = 24`, `MSE = SSE/24`. With `t(0.975,24) = 2.063898562`, pointwise 95% half-widths are `t×2√(MSE/32)` for effects, `t√(MSE/4)` for cell means and `t√(MSE×1.25)` for a new independent cut. The run plot uses randomized order, not production chronology. Effect whiskers show all main/two-factor/three-factor interactions. Pair plots average over the third factor, eight cuts per plotted point; the full model still retains the three-factor term. All plot values have inspectable tables. Sources: [NIST factorial designs](https://www.itl.nist.gov/div898/handbook/pri/section3/pri3331.htm), [replication and effect uncertainty](https://www.itl.nist.gov/div898/handbook/pri/section5/pri5971.htm), and [randomized run sequences](https://www.itl.nist.gov/div898/handbook/pri/section3/pri331.htm).

**Engineering decision:** drawing limits stay **24.90–25.10 mm**. A tighter study mean-error guard defaults to ±40 µm, cycle maximum 80 s/cut, energy maximum 36 Wh/cut. The complete mean-error interval must fit the guard; a single-cut prediction interval must fit the drawing; cycle/energy mean upper bounds must meet their limits. Editable ranges are 20–80 µm, 60–110 s and 28–45 Wh. An empty screen produces no recommendation. Among eligible tested corners, lowest mean cycle then energy determines the candidate. This is a discrete study selection, not a global optimum or production release. Pointwise intervals do not offer simultaneous confidence guarantees after selecting among eight settings. S1 is an explicit study reference, not an inferred historical recipe.

**Measured synthetic result and proposed implementation:** default limits leave S2 and S8 eligible. S8 has mean diameter error **22.75 µm**, cut cycle **70.12 s**, and cut energy **32.83 Wh**. S1 reference means are −23.42 µm / 97.77 s / 37.08 Wh. Fastest raw S4 is 66.24 s but its dimensional intervals fail the quality screen. Visitors inspect corners, record a rationale and save an eligible setting plus the exact limits as a **draft proposal**. Later limit edits show separate current eligibility; they do not silently alter the saved decision. Proposed SYN-SW-M01 Rev B and SYN-CP-M01 Rev B remain unapproved. No real savings, capacity, defect-rate or capability claim follows from these means.

**Verification and sustainment:** future checks cover setup/gauge validity, 12 new confirmation blanks across three fresh setups, every diameter against the drawing, response means against saved study limits, and at least 100 subsequent individual measurements across representative tool life/shifts. Stability must precede capability estimation or control-limit revision. The draft work/control plan requires setup checks, first-off inspection, signal containment/investigation and traceable change approval. Checkmarks mean the plan was reviewed; execution always remains **not run**, with no evidence. The SPC link opens unchanged SYN-RUN-01 as a monitoring example, not confirmation of this setting. Quality disposition and FAT acceptance remain independent.

`Export improvement record` downloads the study, full runs/analyses, visitor limits/rationale, saved draft, proposed revisions and unexecuted verification plan as synthetic JSON. The factory-session export includes the same study. Static downloads: `improvement-method.md`, `improvement-manifest.json` and full-precision `improvement-runs.csv`. The immutable factory baseline remains `factory-1.0`; this study is `improvement-1.0` / SYN-DOE-M01 Rev A. Tests recover known effects and interval widths from an independent symmetric-noise fixture, check fitted normal equations, constraint corners, loss numerators, generator reproducibility, migrations, isolated resets, truthful exports and CSV/manifest consistency.

## 01 — SPC / process quality

Route: `/engineering-lab/`. Source: `data/lab/spc.ts`, `lib/lab/spc.ts`, `components/lab/SpcDemo.tsx`.

**Problem and scope:** a valve-spool diameter gradually rises during one fictional shift. Ninety individual observations at ten-minute intervals include lot, tool-use and room-temperature fields. Target 25.00 mm; fictional specification 24.90–25.10 mm. These values do not describe a real part.

**Responsibility and approach:** the visitor acts as the investigating engineer: change the horizon, inspect samples, compare phase statistics, check evidence and choose a hypothesis. The plot supports pointer selection and a keyboard range control. A table exposes every measurement, moving range, rule signal and measured disposition. CSV export includes all 90 records and a synthetic disclosure.

**Data generation:** a deterministic 32-bit LCG (seed **71421**, multiplier 1664525, increment 1013904223) feeds Box–Muller normal draws. Samples 1–30 use 0.017 mm noise around target; 31–70 add 0.0038 mm per observation; 71–90 return to target +0.007 mm with 0.013 mm noise. Values are rounded to 0.001 mm. The seed was selected to make the baseline free of implemented signals; this engineered example is not an unbiased empirical dataset.

**Decisions and implementation:** reference limits remain fixed to samples 1–30. Drift therefore cannot move its own alarm threshold. Consecutive moving range is `MRᵢ = |xᵢ − xᵢ₋₁|`; within-process estimate `σ = MR̄ / 1.128`; individuals limits are baseline mean ±3σ; MR UCL is `3.267 × MR̄`. Rules: point strictly beyond 3σ; eight consecutive points strictly on one side; six strictly increasing/decreasing; MR strictly above its UCL. Overlapping signals are reported per observation.

Cp = specification width / 6σ. Cpk = smaller distance from mean to specification limit / 3σ. Baseline Cp/Cpk use within-process σ. Window Pp/Ppk use sample standard deviation (`n−1`). Control limits describe process behavior; specification limits describe product requirements, so signals and defects differ.

**Result and lessons:** the baseline is quiet; the gradual shift creates signals and later dimensional failures; the short corrected run returns toward target. Gauge checks and stable room temperature weaken alternatives. Tool inspection and the correction run support tool condition as a likely cause. Correlation and a 20-piece run do not prove the mechanism or qualify long-term capability. Contain suspect lots, inspect output, correct the tool, verify a longer stable run and update the control plan. Thirty baseline points provide a preliminary estimate. Autocorrelation, distribution fit, measurement-system qualification and confidence intervals are outside this demo.

Technical basis: [NIST individuals charts](https://www.itl.nist.gov/div898/handbook/pmc/section3/pmc322.htm), [NIST capability](https://www.itl.nist.gov/div898/handbook/pmc/section1/pmc16.htm). Extra run/trend rules form an explicitly stated teaching ruleset, not every SPC convention.

## 02 — NCR / 8D

Route: `/engineering-lab/ncr/`. Source: `data/lab/ncr.ts`, `lib/lab/ncr.ts`, `components/lab/NcrDemo.tsx`.

**Problem and scope:** supplier HX-12 harnesses disconnect under vibration. SYN-B1 has 9 failures in 40 screened units; SYN-B2 has 2/40; reference SYN-A1 has 0/40. The 750-unit suspect population is separate from the 11 detected failures. Supplier SYN-014 is fictional.

**Responsibility and approach:** review each stage's linked records and decisions. The seven workflow stages group eight disciplines: detection (D1–D2), containment (D3), investigation and root cause (D4), corrective action (D5), verification/prevention (D6–D7), closure (D8). [ASQ's 8D overview](https://asq.org/quality-resources/eight-disciplines-8d) supplies method context. This compact teaching workflow does not implement a complete organization's procedure.

**Decisions and implementation:** every required task review must be checked before advancing. Investigation also requires the supported crimp hypothesis. Root-cause review unlocks after all five causal links are exposed. Six fishbone categories explore alternatives without defaulting to operator blame. Crimp-height/pull tests and a crossover test isolate the component; setup records connect occurrence, escape and systemic causes. Replacement, die-stop locking, first-piece checks, periodic pull tests, PFMEA/control-plan changes and change governance address different parts of the mechanism.

`ncrReachable` derives the accessible prefix from the gates. Removing an earlier review retracts later-stage access and closed status. Later task checks remain in memory for revisiting but cannot bypass a missing earlier gate. Checkboxes record simulated review; they are not authenticated or tamper-resistant approvals.

**Result and lessons:** three corrected 40-piece lots have zero observed failures (120 total), with conforming crimp/pull checks. The approximate rule-of-three upper bound is 3/120 = 2.5% under independent, representative trials; zero observed failures does not mean zero residual risk. Ongoing effectiveness monitoring is part of closure. Download `ncr-8d-record.md` for the causal chain and evidence.

## 03 — Industrial equipment FAT

Route: `/engineering-lab/fat/`. Source: `data/lab/fat.ts`, `lib/lab/fat.ts`, `components/lab/FatDemo.tsx`.

**Problem and scope:** fictional skid SYN-LC-1000-003 has nominal 1 MW duty and a 250 kPa minimum differential-pressure requirement at design flow. Initial pressure is 195 kPa. Supplier SYN-021, P&ID, BOM, protocol, instruments, records and approval roles are fictional. This scenario is separate from the older independent cooling-skid study.

**Responsibility and approach:** act as the demo acceptance lead. Select requirements, read procedures/evidence, record reviews, handle three punch items, dispose a pressure-waiver request, correct the configuration, retest and decide acceptance. Download the protocol, result CSV and as-built dossier. Export JSON containing the current result, reviews, punch list, deviation, verdict and simulated sign-off.

| Test                  | Fictional criterion                    | Initial | Corrected |
| --------------------- | -------------------------------------- | ------- | --------- |
| Design flow           | ≥1,440 L/min                           | 1,456   | 1,460     |
| Differential pressure | ≥250 kPa at design flow                | 195     | 263       |
| Pressure boundary     | ≥600 kPa / 30 min / no visible leakage | 600     | 600       |
| Leak alarm/interlock  | ≤2.0 s                                 | 1.4     | 1.4       |
| Standby transition    | ≤5.0 s                                 | 4.2     | 4.2       |
| Protective bonding    | ≤0.10 Ω                                | 0.06    | 0.06      |
| Thermal duty          | ≥0.98 MW                               | 0.996   | 0.996     |

**Decisions and implementation:** `fatAssessment` combines numerical conformance, seven evidence reviews, release-blocking punch items and deviation disposition. A waiver request cannot make a failed test pass. With critical gates clear, an open minor labeling item permits **conditional acceptance** only with a fictional owner and date. Closing the minor item produces **accepted**. Sign-off unlocks only when the gate clears; every edit clears approval. Applying/reversing impeller correction invalidates flow/pressure and pressure-boundary reviews and related punch closure. The pressure-boundary test is repeated after pump reassembly. Other records are retained for explicit review within this fictional retest scope.

**Result and lessons:** corrected trim produces pressure repeats of 263/261/264 kPa. Evidence, configuration and unresolved items matter beyond the passing-test count. Qualitative leakage/document checks are reviewed as records, not inferred from pressure. Numeric comparison is nominal; uncertainty guard-banding, real safety procedures, qualified authority, detailed hydraulic modeling and installation qualification are outside this demo. All limits are teaching assumptions, not general industry standards. The dossier is schematic text; no invented photos, calibration certificates or signatures are presented as real evidence.

## Enterprise technology, data and AI

The lab demonstrates deterministic calculations and evidence-linked rules. **It does not call an AI model, connect to SAP, perform live quality monitoring or represent AutoOps AI production features.** It illustrates structured information an enterprise/AI system needs: requirement IDs, lot lineage, evidence provenance, configuration revision, thresholds, owners and explainable decisions. A future AI assistant could propose hypotheses or summarize records; accountable engineers would own containment, disposition and release. That is a proposed integration pattern, not an implemented capability or customer outcome.

Documented experience remains on `/manufacturing/`, `/transformation/`, `/technology/` and `/infrastructure/`. AutoOps AI's separate page retains production/beta/mock-integration/pilot/planned distinctions.

## State, accessibility and performance

`app/engineering-lab/layout.tsx` scopes `FactorySessionProvider` to the lab. A small `useSyncExternalStore` store holds the selected scenario, proposal demand, area, order and each case's independent review state, plus layout views, proposal, suggestion, selected movement and the independent ergonomic task/redesign. A versioned `sessionStorage` record (`synthetic-factory-session-v1`) restores the same state across navigation and reloads in this tab. A stable baseline server snapshot keeps static rendering/hydration consistent. Storage is read once on subscription and written on visitor actions; unavailable storage falls back to memory. Invalid shapes or obsolete factory versions restore the initial baseline. Schema-1/2/3/4/5 sessions migrate to schema 6, preserving prior planning, layout, ergonomic, improvement and quality state while adding initial production-flow settings. Schemas 1–4 also receive initial ML preferences. Schema 1 also receives baseline layout; schemas 1/2 receive the baseline ergonomic task; schemas 1/2/3 receive the initial improvement study. The improvement study has independent limits, selected runs/response, draft proposal and verification-plan review flags. Layout state retains structurally valid infeasible proposals so visitors can repair constraints.

`Reset factory` restores baseline planning and all original case states. `Reset incident` and `Reset FAT` reset only their case and preserve planning/layout proposals. `Reset layout` clears only layout geometry, views and suggestions, preserving demand, workstation and quality reviews. `Reset workstation` clears only its task, view and rationale, preserving planning/layout/quality. Switching back to baseline retains the draft proposal for a later comparison. The session is browser-local; no backend, cross-visitor sign-off, authenticated approval, personal-data collection or account persistence is introduced. Browser-duplicated tabs may start with a copied session and then diverge. Exports use browser Blob downloads. Static records can be previewed before a gate; viewing alone does not clear it.

Native labels, buttons, selects and checkboxes support keyboard use. Relevant statuses use live/status regions. The SPC plot has an accessible description and parallel range/table controls. Wide charts/tables scroll inside labeled, focusable containers; page content reflows. Active navigation is programmatic, states use words alongside color, both themes share audited tokens, and reduced motion is respected. No large media, chart library or model call is required.

## Development and verification

```bash
pnpm install --frozen-lockfile
pnpm dev --port 3210
pnpm typecheck
pnpm docs:improvement  # regenerate method, study manifest and full-precision run CSV
pnpm check:improvement # replicated factorial math, uncertainty, constraints and state
pnpm docs:ergonomics   # regenerate workstation assumptions and reference method
pnpm check:ergonomics  # RNLE factors, scope, duration, tradeoffs, migration and exports
pnpm docs:layout       # regenerate movement manifest and reproducible method
pnpm check:layout      # routing, constraints, arithmetic, heuristics, migration, exports
pnpm docs:factory      # regenerate immutable factory JSON and register
pnpm check:factory     # genealogy, quantities, planning and shared-state invariants
pnpm docs:lab          # regenerate protocol / CSV / records / README download
pnpm check:lab         # math, scenario behavior, positive/negative gates, document consistency
pnpm check:contrast    # shared light/dark token audit
pnpm check:site -- http://localhost:3210  # routes, links, metadata, documents, disclosures
pnpm check:docs        # existing PDF/XLSX validation
pnpm build            # static production output
```

Run `docs:improvement` after changing the experiment generator, study limits, loss/verification records or analytical rules. Run `docs:lab` after changing lab data or this README, and `docs:factory` after changing the factory model. Run `docs:layout` after changing layout geometry, flows, costs or routing/search rules. Run `docs:ergonomics` after changing task assumptions, RNLE rules, presets or export definitions. Existing artifacts still use `pnpm docs` and `scripts/generate-documents.ts`; lab Markdown/CSV generation needs no browser. `check:lab` uses Node assertions and the existing tsx dependency, without a new framework. Browser checks should cover improvement questions/evidence, constraint screens, response/run/interaction controls, draft-limit preservation, unexecuted verification plans, method/CSV/manifest exports and isolated study reset; workstation numeric/slider controls, unsupported tasks, recovery, equal-payload comparisons, preset tradeoffs, independent reset/export, and pointer/keyboard/numeric positioning, invalid geometry, route selection, same-demand comparisons, suggestion adoption, layout reset/export, area selection, order-to-lot evidence navigation, baseline/proposal arithmetic, session reload/isolation/reset, factory exports, baseline/drift/correction, full 8D and withdrawn gates, failed/conditional/full FAT acceptance, invalidated approval, downloads, keyboard controls, mobile widths and both themes. Automated accessibility complements visual review; it does not certify all accessibility.

## Hosting and maintenance

The existing Sites project is recorded in `.openai/hosting.json`; publish static `out/` through Sites and preserve its audience. No environment variables are needed. New routes are in `app/sitemap.ts` and `scripts/verify-site.ts`; existing URLs are retained, so this addition needs no redirects. No runtime connector or confidential ERP data is introduced.

Keep synthetic labels in UI/exports. Preserve distinctions between suspect population, measured defects, realized savings, projections, operational scope and pilot observations. Never replace missing photos/validation artifacts with invented evidence. When editing a requirement, review its procedure, math, results, uncertainty and release gates together.


## Phase 5 — Manufacturing ML

Route `/engineering-lab/defect-prediction/` adds actual offline trained logistic/tree models and a constant prevalence baseline over a separate seeded 720-batch history. Whole chronological train/validation/holdout groups and training-only preprocessing preserve the pre-machining cutoff. The frozen validation policy is separate from editable threshold/cost exploration. Missingness, changed-condition failures, calibration, confusion counts, error examples and unobserved visitor inputs are inspectable. Predictions support inspection and never modify quality gates. Shared factory session schema 5 migrates all previous modules. See [complete model card, architecture and reproducibility](public/documents/engineering-lab/ml/README.md).


## Phase 6 — Production flow and line balancing

Route `/engineering-lab/production-flow/` adds a working discrete-event simulation for SYN-OPS-01. Separate valve batches, kit workers, precedence-constrained assembly cells and dedicated test stand/technician pairs expose queues, blocking, WIP, censored orders and material conservation. Visitors change staffing, buffers, same-product routing mix, release pattern and service variation, replay actual events, inspect work intervals and compare 20 paired seeded replications with approximate confidence intervals. Shared demand, feasible selected layout routes and compatible same-payload workstation timing propagate into the model. Production completion is a simulated flow exit, never quality acceptance or shipment release.

`data/factory/flow.ts`, `lib/factory/flow/`, `lib/factory/flow-session.ts`, `FlowWorkbench.tsx` and `FlowCharts.tsx` own the model and UI. Only compact preferences enter schema-6 tab storage; schemas 1–5 migrate without losing previous modules. Comparisons are memoized separately from replay. The factory overview labels its flow summary as configuration only. Full model scope, architecture, equations, assumptions, exact example outcomes, reproduction and validation: [production-flow method](public/documents/engineering-lab/flow-method.md). Generate with `pnpm docs:flow`; verify with `pnpm check:flow`. No runtime backend or new framework dependency is required.


## Portfolio Phase 1 — Website simplification

The homepage presents selected professional/product cases before a three-preview engineering lab section. `RoleLinks.tsx` keeps four role pages discoverable from the homepage and Work; `SiteHeader.tsx` uses Work, Engineering lab, About, Resume and Contact, with a direct PDF utility link and an accessible mobile disclosure. Contact points to the shared footer on the current page. Work filters precede a compact lab invitation; role pages use the compact variant too. Empty portrait/video panels are hidden until real media is available.

`LabPreviewVisuals.tsx` renders static server-side views from existing baseline geometry, frozen heldout ML results and saved production-simulation examples. These previews are labeled synthetic/reference and never read or modify visitor scenarios. No model, dataset, case URL, professional outcome or session schema changes in this phase. Full workbenches, original records, downloadable evidence and all eight demonstrations remain accessible through the factory workspace. Later guided journeys and new projects belong to subsequent Portfolio phases.
