82 lines
3.1 KiB
Markdown
82 lines
3.1 KiB
Markdown
---
|
|
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/AGENT_RULES.md`
|
|
- `docs/implementation-plans/README.md`
|
|
- `docs/build-test-reports/README.md`
|
|
- `docs/corrections/README.md`
|
|
- `docs/implementation-plans/<feature-id>-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/<feature-id>-implementation-plan.md`
|
|
- Implementation report with RED/GREEN/VERIFY evidence
|
|
- `docs/build-test-reports/<feature-id>-build-test.md`
|
|
- `docs/corrections/<feature-id>-correction.md`
|
|
|
|
Required validation commands:
|
|
|
|
```powershell
|
|
python -m unittest discover -s scripts -p "test_*.py"
|
|
python scripts/validate_workspace.py
|
|
ctest -C Debug -R <feature-or-label>
|
|
```
|
|
|
|
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 CSVs.
|
|
- 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.
|