PFC Workflow
pfc-workflow is the lifecycle orchestrator for complete ITASCA PFC studies. It keeps cross-phase decisions in one place and delegates only specialist work to child skills.
The workflow is evidence-backed:
- user data and case constraints define the physical problem;
- target-version documentation or
pfc-mcp is the syntax authority;
- the pinned
pfc-code catalog supplies reproducible example/tutorial/verification evidence;
- local references and child skills supply reusable methods;
- general model knowledge fills only clearly labeled gaps.
Do not treat an example parameter value or legacy command alias as a universal default.
When to use
Use this skill when the user wants to:
- create or audit a PFC2D/PFC3D model;
- choose a stage architecture, contact model, boundary condition, or measurement plan;
- build granular, bonded, jointed, heterogeneous, dynamic, thermal, fluid, or coupled cases;
- calibrate micro-parameters against macro targets;
- run UCS, Brazilian, biaxial, triaxial, direct-shear, cyclic, creep, or custom paths;
- automate a campaign through FISH, Python, DOE, surrogates, or optimizers;
- export curves, crack events, force chains, porosity, fabric, fields, or animations;
- prove numerical credibility and deliver a reproducible case package.
If the task is a single narrow specialist question, route directly to the matching child skill. If it spans phases, remain here and delegate only the specialist portion.
Required inputs
Before writing production commands, obtain or explicitly mark assumptions for:
- PFC product and version (
PFC2D/PFC3D, 6.0/7.0/later);
- dimension and unit system;
- material class and required contact behavior;
- geometry, particle-size distribution, and target resolution;
- initial stress/state and boundary modes by axis;
- loading path, rate, stop condition, and quasi-static/dynamic criterion;
- calibration targets with units, tolerances, and experimental provenance;
- output contract: histories, saved states, raw exports, figures, and report metrics;
- available runtime route: GUI, console, Python/
itasca, or pfc-mcp;
- run budget, license/parallelism constraints, and delivery deadline.
If a missing item can change the model family or invalidate results, ask for it. Do not hide it behind a guessed default.
Evidence protocol: pfc-code knowledge base
Read references/pfc-code-modeling-standard.md before generating or substantially refactoring a case.
When the repository-level knowledge base is available, query it from the repository root:
python scripts/query_pfc_code_kb.py "<topic>" --dimension 2d
python scripts/query_pfc_code_kb.py "<topic>" --dimension 3d
python scripts/query_pfc_code_kb.py --check
Use the catalog in ../../knowledge/pfc-code/ as follows:
- tutorial — feature semantics and command ordering;
- example — end-to-end orchestration and stage boundaries;
- verification — numerical/analytical check for P6;
- python —
itasca, array, and callback automation;
- thermal/coupling — multiphysics and auxiliary-file contracts.
For high-risk logic, prefer an evidence triad: one tutorial, one end-to-end example, and one verification case. Record the pinned commit and source paths in the delivery manifest.
The upstream pfc-code repository had no root license file at the pinned review commit. Use metadata, links, hashes, and independently derived rules; do not vendor or relicense upstream source files without a rights review.
Non-negotiable stage gates
| Gate |
Pass condition |
G0 Version |
Product/version, dimension, units, and stress sign are explicit; final syntax is checked against that version. |
G1 Provenance |
User inputs, experimental targets, example evidence, assumptions, and copied/adapted assets are traceable. |
G2 Determinism |
Seed, domain, CMAT defaults, object generation, and boundary identifiers are explicit. |
G3 Equilibrium |
Packing/prestress passes a declared convergence criterion; fixed cycle count alone is insufficient. |
G4 Contact state |
CMAT intent for future contacts and commands for current contacts are distinguished and audited. |
G5 Reset |
After contact-model/bond changes, displacement and unintended residual forces/moments are handled, cycled, re-equilibrated, and saved. |
G6 Loading |
Each axis has an explicit control mode; rate/inertia/servo stability and halt logic are checked. |
G7 Measurement |
Equations, sign, area/volume, sample interval, histories, measures, and callbacks are initialized before loading. |
G8 V&V |
Critical numerical features are verified; physical targets and failure mode are validated within tolerances. |
G9 Delivery |
Raw data, state map, parameters, seed, version, source evidence, figures, and rerun instructions are complete. |
Never advance a campaign merely because files exist. A fallback state is not a confirmed physical stage, and a generated scaffold is not a runtime-validated model.
Workflow
P1 — Problem definition and plan
Produce a reviewed scope before code:
- question and decision the model supports;
- 2D/3D rationale and scale/resolution rationale;
- material/contact-model hypothesis;
- boundary and loading path;
- target observables and acceptance tolerances;
- numerical verification plan and physical validation data;
- output/delivery contract;
- version/runtime constraints.
Use templates/scope.md.
P2 — Build and initialize
Use a thin driver and explicit stages:
00_scope_or_parameters
10_build_unbonded
20_compact_or_equilibrate
30_install_contacts_or_bonds
40_initialize_instrumentation
50_load_or_solve
60_export
70_verify
Required behavior:
- define domain and CMAT before dependent contact creation;
- fix a seed for baseline/calibration runs;
- generate boundaries and particles with documented grading;
- relax and solve to an explicit equilibrium threshold;
- restore automatic/physical timestep control after any preparation-only density scaling;
- identify floaters when relevant;
- save an unbonded/equilibrated milestone;
- install contact models/bonds in a separate auditable stage;
- handle current contacts versus future CMAT assignment explicitly;
- reset only unintended state, re-equilibrate, and save the initialized baseline.
Read references/contact-models.md, references/advanced-topics.md, and references/pfc-code-modeling-standard.md.
P3 — Calibration and inversion
Default order:
- elastic response;
- strength;
- post-peak/residual behavior;
- multi-confinement envelope;
- structured/heterogeneous variants only after the intact baseline passes.
Choose one route deliberately:
- manual/servo —
pfc-servo-calibration, one parameter family at a time;
- two levers/two targets —
dual-target-calibration, only when rank/crossing prerequisites pass;
- improved LPBM rapid route —
pfc-fast-calibration for the declared 13-factor method;
- black-box multi-target route —
LHS -> real runs -> surrogate diagnostics -> Bayesian/RSM/DE proposals -> independent confirmation using references/auto-calibration.md and references/doe-surrogate.md.
Every run must map micro parameters to macro outputs in a machine-readable record. A surrogate prediction is not a calibrated result until a true PFC run and an independent confirmation run pass.
P4 — Solve and run management
- Run a small pilot before an expensive solve.
- Declare timestep mode, damping, inertia criterion, servo limits, callback order, and stop logic.
- Save restart states instead of relying on one long run.
- Remove or re-register callbacks safely across restore/restart boundaries.
- Keep calibration candidates in independent run directories.
- Respect GUI, license, memory, and parallelism limits.
P5 — Post-process
At minimum, preserve raw data for:
- stress-strain and other governing response curves;
- peak, residual, stage, and stop-status metrics;
- crack/bond-break evolution where relevant;
- force/contact/fabric or coordination statistics;
- porosity/volumetric response where relevant;
- milestone-state map and export provenance.
Cross-check critical stress/strain measures using two independent estimators when practical. Route standard outputs to pfc-postprocessing, vedo scenes to pfc-vedo-postprocess, and AE/energy/moment-tensor outputs to pfc-ae-energy.
Read references/postprocess.md and references/export-paraview.md.
P6 — Verification and validation
Verification asks whether the numerical feature is implemented reliably. Use the pfc-code verification tier to select feature-level checks such as measure/porosity, wave propagation, bonded-state reset, or thermal expansion.
Validation asks whether the model reproduces physical behavior. Compare curves, key scalars, and failure mode; run seed/resolution/timestep/damping sensitivity as required.
Read references/vnv-report.md.
P7 — Report and deliver
Deliver:
- scope and assumptions;
- version, units, sign convention, seed, and environment;
- parameter/contact-model tables;
- thin driver and stage files;
- saved-state map and raw exports;
- calibration run table and confirmation run;
- verification/validation evidence;
- figures generated from retained data;
- source-evidence manifest and exact rerun command.
Specialist routing
| Need |
Child skill |
| model lifecycle, domain, balls, walls, clumps, rblocks, groups/ranges |
pfc-basics |
| contact-law selection, CMAT, properties, bonds, inheritance |
pfc-contact-models |
| UCS, Brazilian, biaxial, triaxial, direct shear, three-point bending |
pfc-standard-tests |
| stress/force servo and manual micro-to-macro sequence |
pfc-servo-calibration |
| exactly two active levers and two coupled targets |
dual-target-calibration |
| improved LPBM 13-factor orthogonal/regression route |
pfc-fast-calibration |
| FISH functions, callbacks, histories, maps/tables, IO |
pfc-fish |
| CAD/DXF/STL, wall conversion, geometry-based filling |
pfc-cad-import |
| assembly quality, boundary servo, loading rate, size effect, curve extraction |
pfc-modeling-techniques |
| GBM/Voronoi/rblock brittle rock |
pfc-gbm-brittle-rock |
| mineral segmentation and heterogeneous LPBM |
pfc-mineral-heterogeneity |
| BPM assumptions and brittle-rock limits |
pfc-brittle-rock-bpm |
| equivalent crystal network |
pfc-equivalent-crystal-model |
| flat-joint brittle rock |
pfc-flat-joint-brittle-rock |
| dynamic/seismic/impact/blasting loading |
pfc-dynamics |
| stress waves and AE source location |
pfc-stress-wave-aelocation |
| seepage, CFD, buoyancy, Darcy/FiPy |
pfc-fluid-coupling |
| PFC-FLAC/FLAC3D coupling |
pfc-flac-coupling |
| standard curves, fields, VTK/VTP, animation |
pfc-postprocessing |
| vedo-based 3D scenes |
pfc-vedo-postprocess |
| AE events, energy, moment tensor, source mechanism |
pfc-ae-energy |
| Chinese traditional-color chart palette |
xxd-data-viz |
Operational routes
New beginner CPB2D project
Read references/cpb2d-project-wizard.md, review templates/cpb2d_intake.yaml, and use scripts/create_cpb2d_project.py after reading its actual CLI.
The first runtime target is the intact run_all.dat. Do not batch cracked cases, calibrate, post-process, or run AE until the intact case has executed in the declared PFC2D version and its saves/CSV/status semantics are checked. --validate-only validates the intended scaffold contract; it does not execute PFC.
Existing project case
Read the actual scripts under templates/project-case/ before invoking them. Use the existing case runner and export chain rather than rebuilding project-specific logic from memory. If native stage images are missing but milestone states exist, replay exports instead of rerunning the full mechanical solve.
Automated calibration
Read scripts/README.md and the actual argparse/schema of each script. The general chain is:
lhs_design.py -> run_campaign.py -> fit_surrogate.py -> optimize_targets.py
Do not start until the intact runtime, experiment columns/units, seed reproducibility, and evaluator output contract pass.
Collaboration with pfc-mcp
When pfc-mcp is available:
- query the
pfc-code catalog for candidate patterns;
- check final keywords against target-version documentation;
- run a minimal syntax/feature probe;
- run the intact/pilot case;
- inspect convergence, contact counts, saves, histories, and status;
- only then scale to calibration or production.
pfc-code tells the Agent where proven patterns exist; pfc-mcp confirms how to express and execute them in the target environment.
Output contract
A completed workflow must provide:
- a reviewed scope;
- reproducible entrypoint and stage map;
- version/units/sign/seed metadata;
- parameter and contact assignment tables;
- convergence and state-transition evidence;
- machine-readable histories/metrics;
- milestone states with confirmed/fallback labels;
- calibration and independent confirmation records when applicable;
- V&V results and acceptance decision;
- source-evidence manifest;
- rerun and post-processing instructions.
If runtime execution was unavailable, label the result static design only and list the unpassed runtime gates. Never claim a successful PFC solve from static file inspection.
Local contents
references/pfc-code-modeling-standard.md — source-derived normative stage gates.
../../knowledge/pfc-code/ — pinned external catalog, lock, and usage policy.
../../scripts/query_pfc_code_kb.py — offline catalog query/validation.
references/contact-models.md — constitutive-law selection.
references/calibration.md, auto-calibration.md, doe-surrogate.md — calibration routes.
references/postprocess.md, export-paraview.md — output and visualization contracts.
references/advanced-topics.md — shape, DFN, boundaries, coupling, and performance.
references/vnv-report.md — verification, validation, and delivery.
references/cpb2d-project-wizard.md — beginner intake/runtime gate.
templates/ — scope, parameter, campaign, scaffold, and project-case assets.
scripts/ — scaffold, runner, and calibration helpers; actual source/CLI is authoritative.
tests/ — CPB2D scaffold/calibration and dual-target integration contracts.
1---2name: pfc-workflow3description: Orchestrate evidence-backed ITASCA PFC2D/PFC3D studies across planning, modeling, calibration, solving, post-processing, V&V, and delivery; use for full DEM workflows, model audits, or pfc-code-backed case generation.4---56# PFC Workflow78`pfc-workflow` is the lifecycle orchestrator for complete ITASCA PFC studies. It keeps cross-phase decisions in one place and delegates only specialist work to child skills.910The workflow is **evidence-backed**:11121. user data and case constraints define the physical problem;132. target-version documentation or `pfc-mcp` is the syntax authority;143. the pinned `pfc-code` catalog supplies reproducible example/tutorial/verification evidence;154. local references and child skills supply reusable methods;165. general model knowledge fills only clearly labeled gaps.1718Do not treat an example parameter value or legacy command alias as a universal default.1920## When to use2122Use this skill when the user wants to:2324- create or audit a PFC2D/PFC3D model;25- choose a stage architecture, contact model, boundary condition, or measurement plan;26- build granular, bonded, jointed, heterogeneous, dynamic, thermal, fluid, or coupled cases;27- calibrate micro-parameters against macro targets;28- run UCS, Brazilian, biaxial, triaxial, direct-shear, cyclic, creep, or custom paths;29- automate a campaign through FISH, Python, DOE, surrogates, or optimizers;30- export curves, crack events, force chains, porosity, fabric, fields, or animations;31- prove numerical credibility and deliver a reproducible case package.3233If the task is a single narrow specialist question, route directly to the matching child skill. If it spans phases, remain here and delegate only the specialist portion.3435## Required inputs3637Before writing production commands, obtain or explicitly mark assumptions for:38391. PFC product and version (`PFC2D`/`PFC3D`, 6.0/7.0/later);402. dimension and unit system;413. material class and required contact behavior;424. geometry, particle-size distribution, and target resolution;435. initial stress/state and boundary modes by axis;446. loading path, rate, stop condition, and quasi-static/dynamic criterion;457. calibration targets with units, tolerances, and experimental provenance;468. output contract: histories, saved states, raw exports, figures, and report metrics;479. available runtime route: GUI, console, Python/`itasca`, or `pfc-mcp`;4810. run budget, license/parallelism constraints, and delivery deadline.4950If a missing item can change the model family or invalidate results, ask for it. Do not hide it behind a guessed default.5152## Evidence protocol: pfc-code knowledge base5354Read `references/pfc-code-modeling-standard.md` before generating or substantially refactoring a case.5556When the repository-level knowledge base is available, query it from the repository root:5758```bash59python scripts/query_pfc_code_kb.py "<topic>" --dimension 2d60python scripts/query_pfc_code_kb.py "<topic>" --dimension 3d61python scripts/query_pfc_code_kb.py --check62```6364Use the catalog in `../../knowledge/pfc-code/` as follows:6566- **tutorial** — feature semantics and command ordering;67- **example** — end-to-end orchestration and stage boundaries;68- **verification** — numerical/analytical check for P6;69- **python** — `itasca`, array, and callback automation;70- **thermal/coupling** — multiphysics and auxiliary-file contracts.7172For high-risk logic, prefer an evidence triad: one tutorial, one end-to-end example, and one verification case. Record the pinned commit and source paths in the delivery manifest.7374The upstream `pfc-code` repository had no root license file at the pinned review commit. Use metadata, links, hashes, and independently derived rules; do not vendor or relicense upstream source files without a rights review.7576## Non-negotiable stage gates7778| Gate | Pass condition |79|---|---|80| `G0 Version` | Product/version, dimension, units, and stress sign are explicit; final syntax is checked against that version. |81| `G1 Provenance` | User inputs, experimental targets, example evidence, assumptions, and copied/adapted assets are traceable. |82| `G2 Determinism` | Seed, domain, CMAT defaults, object generation, and boundary identifiers are explicit. |83| `G3 Equilibrium` | Packing/prestress passes a declared convergence criterion; fixed cycle count alone is insufficient. |84| `G4 Contact state` | CMAT intent for future contacts and commands for current contacts are distinguished and audited. |85| `G5 Reset` | After contact-model/bond changes, displacement and unintended residual forces/moments are handled, cycled, re-equilibrated, and saved. |86| `G6 Loading` | Each axis has an explicit control mode; rate/inertia/servo stability and halt logic are checked. |87| `G7 Measurement` | Equations, sign, area/volume, sample interval, histories, measures, and callbacks are initialized before loading. |88| `G8 V&V` | Critical numerical features are verified; physical targets and failure mode are validated within tolerances. |89| `G9 Delivery` | Raw data, state map, parameters, seed, version, source evidence, figures, and rerun instructions are complete. |9091Never advance a campaign merely because files exist. A fallback state is not a confirmed physical stage, and a generated scaffold is not a runtime-validated model.9293## Workflow9495### P1 — Problem definition and plan9697Produce a reviewed scope before code:9899- question and decision the model supports;100- 2D/3D rationale and scale/resolution rationale;101- material/contact-model hypothesis;102- boundary and loading path;103- target observables and acceptance tolerances;104- numerical verification plan and physical validation data;105- output/delivery contract;106- version/runtime constraints.107108Use `templates/scope.md`.109110### P2 — Build and initialize111112Use a thin driver and explicit stages:113114```text11500_scope_or_parameters11610_build_unbonded11720_compact_or_equilibrate11830_install_contacts_or_bonds11940_initialize_instrumentation12050_load_or_solve12160_export12270_verify123```124125Required behavior:1261271. define domain and CMAT before dependent contact creation;1282. fix a seed for baseline/calibration runs;1293. generate boundaries and particles with documented grading;1304. relax and solve to an explicit equilibrium threshold;1315. restore automatic/physical timestep control after any preparation-only density scaling;1326. identify floaters when relevant;1337. save an unbonded/equilibrated milestone;1348. install contact models/bonds in a separate auditable stage;1359. handle current contacts versus future CMAT assignment explicitly;13610. reset only unintended state, re-equilibrate, and save the initialized baseline.137138Read `references/contact-models.md`, `references/advanced-topics.md`, and `references/pfc-code-modeling-standard.md`.139140### P3 — Calibration and inversion141142Default order:1431441. elastic response;1452. strength;1463. post-peak/residual behavior;1474. multi-confinement envelope;1485. structured/heterogeneous variants only after the intact baseline passes.149150Choose one route deliberately:151152- **manual/servo** — `pfc-servo-calibration`, one parameter family at a time;153- **two levers/two targets** — `dual-target-calibration`, only when rank/crossing prerequisites pass;154- **improved LPBM rapid route** — `pfc-fast-calibration` for the declared 13-factor method;155- **black-box multi-target route** — `LHS -> real runs -> surrogate diagnostics -> Bayesian/RSM/DE proposals -> independent confirmation` using `references/auto-calibration.md` and `references/doe-surrogate.md`.156157Every run must map micro parameters to macro outputs in a machine-readable record. A surrogate prediction is not a calibrated result until a true PFC run and an independent confirmation run pass.158159### P4 — Solve and run management160161- Run a small pilot before an expensive solve.162- Declare timestep mode, damping, inertia criterion, servo limits, callback order, and stop logic.163- Save restart states instead of relying on one long run.164- Remove or re-register callbacks safely across restore/restart boundaries.165- Keep calibration candidates in independent run directories.166- Respect GUI, license, memory, and parallelism limits.167168### P5 — Post-process169170At minimum, preserve raw data for:171172- stress-strain and other governing response curves;173- peak, residual, stage, and stop-status metrics;174- crack/bond-break evolution where relevant;175- force/contact/fabric or coordination statistics;176- porosity/volumetric response where relevant;177- milestone-state map and export provenance.178179Cross-check critical stress/strain measures using two independent estimators when practical. Route standard outputs to `pfc-postprocessing`, vedo scenes to `pfc-vedo-postprocess`, and AE/energy/moment-tensor outputs to `pfc-ae-energy`.180181Read `references/postprocess.md` and `references/export-paraview.md`.182183### P6 — Verification and validation184185Verification asks whether the numerical feature is implemented reliably. Use the `pfc-code` verification tier to select feature-level checks such as measure/porosity, wave propagation, bonded-state reset, or thermal expansion.186187Validation asks whether the model reproduces physical behavior. Compare curves, key scalars, and failure mode; run seed/resolution/timestep/damping sensitivity as required.188189Read `references/vnv-report.md`.190191### P7 — Report and deliver192193Deliver:194195- scope and assumptions;196- version, units, sign convention, seed, and environment;197- parameter/contact-model tables;198- thin driver and stage files;199- saved-state map and raw exports;200- calibration run table and confirmation run;201- verification/validation evidence;202- figures generated from retained data;203- source-evidence manifest and exact rerun command.204205## Specialist routing206207| Need | Child skill |208|---|---|209| model lifecycle, domain, balls, walls, clumps, rblocks, groups/ranges | `pfc-basics` |210| contact-law selection, CMAT, properties, bonds, inheritance | `pfc-contact-models` |211| UCS, Brazilian, biaxial, triaxial, direct shear, three-point bending | `pfc-standard-tests` |212| stress/force servo and manual micro-to-macro sequence | `pfc-servo-calibration` |213| exactly two active levers and two coupled targets | `dual-target-calibration` |214| improved LPBM 13-factor orthogonal/regression route | `pfc-fast-calibration` |215| FISH functions, callbacks, histories, maps/tables, IO | `pfc-fish` |216| CAD/DXF/STL, wall conversion, geometry-based filling | `pfc-cad-import` |217| assembly quality, boundary servo, loading rate, size effect, curve extraction | `pfc-modeling-techniques` |218| GBM/Voronoi/rblock brittle rock | `pfc-gbm-brittle-rock` |219| mineral segmentation and heterogeneous LPBM | `pfc-mineral-heterogeneity` |220| BPM assumptions and brittle-rock limits | `pfc-brittle-rock-bpm` |221| equivalent crystal network | `pfc-equivalent-crystal-model` |222| flat-joint brittle rock | `pfc-flat-joint-brittle-rock` |223| dynamic/seismic/impact/blasting loading | `pfc-dynamics` |224| stress waves and AE source location | `pfc-stress-wave-aelocation` |225| seepage, CFD, buoyancy, Darcy/FiPy | `pfc-fluid-coupling` |226| PFC-FLAC/FLAC3D coupling | `pfc-flac-coupling` |227| standard curves, fields, VTK/VTP, animation | `pfc-postprocessing` |228| vedo-based 3D scenes | `pfc-vedo-postprocess` |229| AE events, energy, moment tensor, source mechanism | `pfc-ae-energy` |230| Chinese traditional-color chart palette | `xxd-data-viz` |231232## Operational routes233234### New beginner CPB2D project235236Read `references/cpb2d-project-wizard.md`, review `templates/cpb2d_intake.yaml`, and use `scripts/create_cpb2d_project.py` after reading its actual CLI.237238The first runtime target is the intact `run_all.dat`. Do not batch cracked cases, calibrate, post-process, or run AE until the intact case has executed in the declared PFC2D version and its saves/CSV/status semantics are checked. `--validate-only` validates the intended scaffold contract; it does not execute PFC.239240### Existing project case241242Read the actual scripts under `templates/project-case/` before invoking them. Use the existing case runner and export chain rather than rebuilding project-specific logic from memory. If native stage images are missing but milestone states exist, replay exports instead of rerunning the full mechanical solve.243244### Automated calibration245246Read `scripts/README.md` and the actual `argparse`/schema of each script. The general chain is:247248```text249lhs_design.py -> run_campaign.py -> fit_surrogate.py -> optimize_targets.py250```251252Do not start until the intact runtime, experiment columns/units, seed reproducibility, and evaluator output contract pass.253254## Collaboration with pfc-mcp255256When `pfc-mcp` is available:2572581. query the `pfc-code` catalog for candidate patterns;2592. check final keywords against target-version documentation;2603. run a minimal syntax/feature probe;2614. run the intact/pilot case;2625. inspect convergence, contact counts, saves, histories, and status;2636. only then scale to calibration or production.264265`pfc-code` tells the Agent where proven patterns exist; `pfc-mcp` confirms how to express and execute them in the target environment.266267## Output contract268269A completed workflow must provide:270271- a reviewed scope;272- reproducible entrypoint and stage map;273- version/units/sign/seed metadata;274- parameter and contact assignment tables;275- convergence and state-transition evidence;276- machine-readable histories/metrics;277- milestone states with confirmed/fallback labels;278- calibration and independent confirmation records when applicable;279- V&V results and acceptance decision;280- source-evidence manifest;281- rerun and post-processing instructions.282283If runtime execution was unavailable, label the result **static design only** and list the unpassed runtime gates. Never claim a successful PFC solve from static file inspection.284285## Local contents286287- `references/pfc-code-modeling-standard.md` — source-derived normative stage gates.288- `../../knowledge/pfc-code/` — pinned external catalog, lock, and usage policy.289- `../../scripts/query_pfc_code_kb.py` — offline catalog query/validation.290- `references/contact-models.md` — constitutive-law selection.291- `references/calibration.md`, `auto-calibration.md`, `doe-surrogate.md` — calibration routes.292- `references/postprocess.md`, `export-paraview.md` — output and visualization contracts.293- `references/advanced-topics.md` — shape, DFN, boundaries, coupling, and performance.294- `references/vnv-report.md` — verification, validation, and delivery.295- `references/cpb2d-project-wizard.md` — beginner intake/runtime gate.296- `templates/` — scope, parameter, campaign, scaffold, and project-case assets.297- `scripts/` — scaffold, runner, and calibration helpers; actual source/CLI is authoritative.298- `tests/` — CPB2D scaffold/calibration and dual-target integration contracts.