docs: add linear static beam harness phase
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# Step 6: Implementation Plan
|
||||
|
||||
## 담당 역할과 필수 스킬
|
||||
|
||||
- 담당 역할: `implementation-planning-agent`
|
||||
- 필수 스킬: `fesa-cpp-msvc-tdd`
|
||||
- 스킬의 planning workflow를 끝까지 읽고 코드나 테스트를 작성하지 않은 채 계획만 작성하라.
|
||||
|
||||
## 읽어야 할 파일
|
||||
|
||||
- `/AGENTS.md`
|
||||
- `/docs/SOLVER_AGENT_DESIGN.md`
|
||||
- `/docs/implementation-plans/README.md`
|
||||
- `/docs/build-test-reports/README.md`
|
||||
- `/docs/corrections/README.md`
|
||||
- `/docs/requirements/linear-static-3d-euler-beam.md`
|
||||
- `/docs/research/linear-static-3d-euler-beam-research.md`
|
||||
- `/docs/formulations/3d-isoparametric-euler-beam-formulation.md`
|
||||
- `/docs/numerical-reviews/linear-static-3d-euler-beam-review.md`
|
||||
- `/docs/io-definitions/linear-static-3d-euler-beam-io.md`
|
||||
- `/docs/reference-models/linear-static-3d-euler-beam-reference-models.md`
|
||||
- `/docs/superpowers/specs/2026-08-08-linear-static-3d-euler-beam-design.md`
|
||||
- `/phases/linear-static-3d-euler-beam/step7.md`부터 `/step24.md`까지
|
||||
|
||||
## 작업
|
||||
|
||||
`docs/implementation-plans/linear-static-3d-euler-beam.md`를 생성하라. 승인 설계가 이
|
||||
경로를 명시하므로 README의 기본 suffix보다 이 경로를 우선한다.
|
||||
|
||||
- Metadata와 Readiness Check를 작성하고 upstream status가 모두 준비된 경우
|
||||
`status: ready-for-implementation`을 사용한다.
|
||||
- Implementation Scope와 Non-goals를 승인 설계와 동일하게 기록한다.
|
||||
- Step 7–24 각각을 독립 Work Breakdown task로 매핑하고 exact candidate source/header,
|
||||
test, CMake file을 제시한다. 한 file은 한 책임을 가져야 한다.
|
||||
- 각 task에 consumes/produces signature를 정의한다. 특히 `Vector`, row-major `Matrix`,
|
||||
CSR `SparseMatrix`, `Domain`, `AnalysisModel`, `DofManager`, `AnalysisState`,
|
||||
`EulerBeam3D`, `ParallelFor`, `LinearSolver`, `ResultsWriter`, orchestration API를 일관되게 쓴다.
|
||||
- 각 production task에 GoogleTest test ID, RED condition, GREEN condition, targeted CTest
|
||||
regex, full VERIFY command를 연결한다.
|
||||
- parser negative cases, beam invariants/analytical cases, deterministic CSR, nonzero
|
||||
prescribed displacement, PARDISO repeated RHS/singular diagnostics, HDF5 atomicity,
|
||||
CLI/reference integration을 빠짐없이 배치한다.
|
||||
- Requirement-to-task/test/reference Acceptance Traceability Matrix와 implementation report
|
||||
evidence 형식을 포함한다.
|
||||
- Step 24에서 test-only reference comparison executable/test를 완성해 Step 26이 source/test
|
||||
변경 없이 다시 실행하고 report를 작성할 수 있게 계획한다.
|
||||
- reference artifact, upstream contract, tolerance를 변경하는 correction을 금지한다.
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
```powershell
|
||||
$path = 'docs/implementation-plans/linear-static-3d-euler-beam.md'
|
||||
if (-not (Test-Path $path)) { throw "Missing $path" }
|
||||
$required = @(
|
||||
'status: `ready-for-implementation`',
|
||||
'## Readiness Check',
|
||||
'## Work Breakdown',
|
||||
'## TDD Test Plan',
|
||||
'## CMake and CTest Plan',
|
||||
'## Acceptance Traceability Matrix',
|
||||
'cmake -S . -B .harness/build -A x64',
|
||||
'ctest --test-dir .harness/build -C Debug --output-on-failure',
|
||||
'reference/cantilever beam/'
|
||||
)
|
||||
foreach ($text in $required) {
|
||||
if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) {
|
||||
throw "Missing implementation-plan contract: $text"
|
||||
}
|
||||
}
|
||||
$modules = @('cmake-test-foundation','core-diagnostics','dense-math-adapters','domain-model',
|
||||
'inp-syntax-parser','inp-domain-mapping','analysis-model','dof-manager','analysis-state',
|
||||
'euler-beam-element','parallel-for-tbb','sparse-assembly','essential-constraints',
|
||||
'mkl-pardiso-solver','load-assembly','result-recovery','hdf5-results-writer','linear-static-cli')
|
||||
foreach ($module in $modules) {
|
||||
if (-not (Select-String -LiteralPath $path -SimpleMatch $module -Quiet)) {
|
||||
throw "Missing work-breakdown module: $module"
|
||||
}
|
||||
}
|
||||
git diff --check -- $path
|
||||
```
|
||||
|
||||
## 검증 절차
|
||||
|
||||
1. Acceptance Criteria 명령을 실행한다.
|
||||
2. 모든 must requirement가 최소 한 task와 test에 연결되는지 확인한다.
|
||||
3. later task가 사용하는 type/signature가 earlier task 정의와 정확히 같은지 대조한다.
|
||||
4. 각 production task에 RED/GREEN/VERIFY command가 있고 reference step이 read-only인지 확인한다.
|
||||
5. Step 6을 `completed`와 plan readiness summary로 갱신한다. upstream gate 미통과는
|
||||
`blocked`, 반복 작성 실패는 `error`로 기록한다.
|
||||
|
||||
## 금지사항
|
||||
|
||||
- C++ source, test, CMake를 작성하거나 실행하지 마라. 이유: 이 step은 계획만 소유한다.
|
||||
- upstream 요구조건·정식화·I/O·tolerance를 바꾸지 마라. 이유: 이미 승인된 계약이다.
|
||||
- reference artifact를 생성·수정하지 마라. 이유: read-only baseline이다.
|
||||
- API를 승인 문서와 모순되게 확정하지 마라. 이유: downstream task 간 계약이 깨진다.
|
||||
- 직접 commit하지 마라. 이유: Harness executor가 담당한다.
|
||||
Reference in New Issue
Block a user