101 lines
4.9 KiB
Markdown
101 lines
4.9 KiB
Markdown
# Step 28: Release Readiness
|
|
|
|
## 담당 역할과 필수 스킬
|
|
|
|
- 담당 역할: `release-agent`
|
|
- 필수 스킬: `fesa-release-readiness`
|
|
- `GATE AUDIT -> TRACEABILITY CHECK -> RELEASE DOCUMENTATION -> RELEASE VERDICT` 순서를 지켜라.
|
|
|
|
## 읽어야 할 파일
|
|
|
|
- `/AGENTS.md`
|
|
- `/docs/PRD.md`
|
|
- `/docs/ARCHITECTURE.md`
|
|
- `/docs/ADR.md`
|
|
- `/docs/releases/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/implementation-plans/linear-static-3d-euler-beam.md`
|
|
- `/docs/implementation-plans/linear-static-3d-euler-beam-implementation-report.md`
|
|
- `/docs/build-test-reports/linear-static-3d-euler-beam.md`
|
|
- `/docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md`
|
|
- `/docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md`
|
|
- `/phases/linear-static-3d-euler-beam/index.json`의 모든 completed summary
|
|
|
|
## 작업
|
|
|
|
모든 gate evidence를 감사하고
|
|
`docs/releases/linear-static-3d-euler-beam-release.md`를 생성하라.
|
|
|
|
- 같은 feature ID, source design revision, implementation scope와 artifact identity가 모든
|
|
문서에서 일치하는지 확인한다.
|
|
- Build/Test `pass-for-reference-verification`, Reference Verification
|
|
`pass-for-physics-evaluation`, Physics Evaluation `pass-for-release-agent`를 필수로 요구한다.
|
|
- 모든 `FESA-REQ-LS3DEB-*` must requirement를 acceptance criterion, test ID, reference/
|
|
analytical evidence, final disposition에 연결한다.
|
|
- Release Scope, Gate Evidence Inventory, Acceptance Traceability, Validation Evidence,
|
|
Known Limitations, Release Notes Draft, Release Verdict, Handoff, No-Change Assertion을 작성한다.
|
|
- Known Limitations에는 B31, multiple steps, transforms/nested assembly, `I12!=0`, `*DLOAD`,
|
|
nonlinear/dynamic/contact/thermal, shear/warping stress, beam stress reference N/A, legacy
|
|
artifact exception을 포함한다.
|
|
- 모든 evidence가 present/passing이고 unresolved blocker가 없을 때만
|
|
`status: ready-for-release`와 같은 verdict를 발행한다.
|
|
|
|
이 verdict는 내부 feature readiness이며 publish, package, tag, push 또는 external release를
|
|
수행하는 권한이 아니다.
|
|
|
|
## Acceptance Criteria
|
|
|
|
```powershell
|
|
$gates = @{
|
|
'docs/build-test-reports/linear-static-3d-euler-beam.md' = 'status: `pass-for-reference-verification`'
|
|
'docs/reference-verifications/linear-static-3d-euler-beam-reference-verification.md' = 'status: `pass-for-physics-evaluation`'
|
|
'docs/physics-evaluations/linear-static-3d-euler-beam-physics-evaluation.md' = 'status: `pass-for-release-agent`'
|
|
}
|
|
foreach ($entry in $gates.GetEnumerator()) {
|
|
if (-not (Select-String -LiteralPath $entry.Key -SimpleMatch $entry.Value -Quiet)) {
|
|
throw "Gate is not passing: $($entry.Key)"
|
|
}
|
|
}
|
|
$phase = Get-Content -Raw 'phases/linear-static-3d-euler-beam/index.json' | ConvertFrom-Json
|
|
if (($phase.steps | Where-Object { $_.step -lt 28 -and $_.status -ne 'completed' }).Count -ne 0) {
|
|
throw 'One or more prerequisite phase steps are incomplete'
|
|
}
|
|
```
|
|
|
|
```powershell
|
|
$path = 'docs/releases/linear-static-3d-euler-beam-release.md'
|
|
if (-not (Test-Path $path)) { throw "Missing $path" }
|
|
$required = @('status: `ready-for-release`', '## Release Scope', '## Gate Evidence Inventory',
|
|
'## Acceptance Traceability', '## Validation Evidence', '## Known Limitations',
|
|
'## Release Notes Draft', '## Release Verdict', '## No-Change Assertion',
|
|
'TYPE=B33', 'TYPE=B31', 'stress reference', 'N/A')
|
|
foreach ($text in $required) {
|
|
if (-not (Select-String -LiteralPath $path -SimpleMatch $text -Quiet)) {
|
|
throw "Missing release evidence: $text"
|
|
}
|
|
}
|
|
git diff --check -- $path
|
|
git diff --exit-code -- reference/
|
|
```
|
|
|
|
## 검증 절차
|
|
|
|
1. Gate status와 feature/source identity를 먼저 감사한다.
|
|
2. 모든 must requirement의 test/reference/final disposition trace를 확인한다.
|
|
3. limitations와 N/A가 Release Notes Draft에 누락되지 않았는지 확인한다.
|
|
4. 모든 조건을 만족한 경우에만 report와 Step 28을 ready/completed로 갱신한다.
|
|
5. evidence가 missing/failing/contradictory면 적절한 `needs-*` verdict와 handoff를 report에
|
|
기록하고 Step 28을 `error`로 둔다. 사용자 결정이 필수인 경우만 `blocked`로 둔다.
|
|
|
|
## 금지사항
|
|
|
|
- source, tests, CMake, upstream gate report, reference artifact, tolerance를 수정하지 마라. 이유: audit 독립성이다.
|
|
- failed/missing gate를 override하지 마라. 이유: release verdict 신뢰성을 깨뜨린다.
|
|
- publish, deploy, package, tag, push를 수행하지 마라. 이유: 사용자 명시 권한이 없다.
|
|
- 직접 commit하지 마라. 이유: Harness executor가 phase metadata commit을 담당한다.
|