--- name: fesa-cpp-msvc-tdd description: Use when planning, implementing, validating, or correcting FESA solver C++17 MSVC CMake CTest work with TDD, build/test failure triage, or implementation-plan handoffs. --- # FESA C++ MSVC TDD Use this skill to keep FESA C++ implementation work test-first, MSVC-compatible, and bounded by approved upstream contracts. ## Inputs Read these first: - `AGENTS.md` - `docs/SOLVER_AGENT_DESIGN.md` - `docs/implementation-plans/README.md` - `docs/build-test-reports/README.md` - `docs/corrections/README.md` - `docs/implementation-plans/-implementation-plan.md` - Related requirements, formulation, numerical review, I/O definition, and reference model documents ## Workflow 1. For planning, convert upstream documents into small ordered tasks and test ids. 2. For implementation, follow `RED -> GREEN -> VERIFY`. 3. RED: write the planned unit, integration, parser/I/O, or reference-comparison test first. 4. RED: run the targeted test and verify the expected failure before production code. 5. GREEN: implement the minimum C++17/MSVC-compatible code needed for the task. 6. VERIFY: run the targeted command, then `python scripts/validate_workspace.py`. 7. For C++ production changes, require a related C++ test file in the same patch or already present. 8. For failure triage, classify as `configure | compile | link | test | reference-comparison | harness | environment | upstream-contract`. 9. Fix implementation-owned failures only and keep changes traceable to the implementation plan. ## Output Contract Produce one of these, depending on role: - `docs/implementation-plans/-implementation-plan.md` - Implementation report with RED/GREEN/VERIFY evidence - `docs/build-test-reports/-build-test.md` - `docs/corrections/-correction.md` Required validation commands: ```powershell python -m unittest discover -s scripts -p "test_*.py" python scripts/validate_workspace.py ctest -C Debug -R ``` Default MSVC path: ```powershell cmake -S . -B build/msvc-debug -G "Visual Studio 17 2022" -A x64 cmake --build build/msvc-debug --config Debug ctest --test-dir build/msvc-debug --output-on-failure -C Debug ``` ## Boundaries - Do not change requirements. - Do not change formulations. - Do not change I/O contracts. - Do not change numerical review reports. - Do not change reference artifacts. - Do not change tolerance policies. - Do not run Abaqus, Nastran, or any reference solver. - Do not generate reference HDF5 files or deterministic CSV views. - Do not approve release readiness. ## Quality Gate - Every `must` requirement maps to at least one task and one test. - Each test has a clear RED condition, GREEN condition, linked task, and command. - CMake/CTest plans remain compatible with MSVC x64 Debug validation. - Build/test reports record command, exit code, duration, stdout/stderr tail, and failure classification. - Correction attempts stop when repeated failure indicates upstream contract ambiguity. ## Handoff Send passing build/test evidence to Reference Verification Agent. Send implementation-owned failures to Correction Agent. Send upstream-contract failures to the owning upstream agent through Coordinator Agent.