--- name: fesa-cpp-tdd description: Implement or review FESA C++ changes using tests first, documented architecture boundaries, and project validation. --- # FESA C++ TDD Use this skill when writing or reviewing C++ solver code, build files, tests, or validation scripts. ## Read First - `/AGENTS.md` - `/PROGRESS.md` - `/PLAN.md` - `/docs/README.md` - `/docs/HARNESS_ENGINEERING.md` - `/docs/ARCHITECTURE.md` - `/docs/ADR.md` - `/docs/NUMERICAL_CONVENTIONS.md` - The topic-specific design document for the code being changed. ## Workflow 1. Confirm that readiness blockers do not prohibit the requested implementation. 2. Confirm that a sprint contract exists for solver behavior, parser, result schema, reference comparator, MITC4, or phase execution work. 3. Write or update tests before implementation. 4. Keep changes scoped to the requested layer and contract allowed files. 5. Preserve runtime polymorphism, DofManager ownership, adapter boundaries, and int64/double numerical defaults. 6. Run focused tests plus `python scripts/validate_workspace.py`. 7. Update `PROGRESS.md` and `PLAN.md` when status or future work changes. ## Do Not - Do not start solver implementation from this skill when the user asked for planning or documentation only. - Do not start implementation without a testable sprint contract for nontrivial solver work. - Do not bypass tests for parser, DOF mapping, reactions, singular diagnostics, sparse assembly, result writing, or MITC4 behavior.