# v0.3.9-alpha.2 Release Notes

## Version

`v0.3.9-alpha.2`

## Dist Tag

`alpha`

During the alpha pilot, `latest` may be synchronized to the current alpha build to avoid stale default installs. This is not a stable support claim.

## Summary

This prerelease packages the current-head workflow closure follow-ups after `persona-harness@0.3.9-alpha.1`.

Before alpha2 publish, registry `0.3.9-alpha.1` was stale: that registry artifact points to `gitHead` `bc7eaddc678b6268be1194d7e659123f895e6fd5`, while this release prep is based on current HEAD after `7ea6484 docs(changelog): record closure re-smoke pass`.

After user deployment, registry `persona-harness@0.3.9-alpha.2` exists with `gitHead` `ecc65560af26df78656f6135237f44cdbf9c2607` and shasum `cdd6a238da82a06b59f0c9ee75f7eea2bbec1440`.

Persona Harness remains an AI coding workflow rail + evidence + continuation harness. It is not a Java Clean Code quality guarantee, generated app product-quality certification, AST/linter, or enforcement engine.

## What Changed

### Workflow closure guidance

- `c4ecff1 docs(skills): reinforce workflow closure guidance`
  - Reinforced report fill, status check, archive, and final gate guidance after build/test success.
- `32b557b docs(skills): return runtime QA to workflow closure`
  - Clarified that agents should return from build/test/bootRun or manual QA attempts to workflow closure before claiming completion.

### Backend-shape smoke findings and verification wording

- `23877e2 fix(cli): refine backend shape smoke findings`
  - Recognizes `application/port/out/*Repository.java` as repository port evidence.
  - Distinguishes test/build evidence from bootRun evidence in backend-shape reporting.
- `bd2f8a1 fix(cli): prefer verification failures in backend shape`
  - Prefers explicit verification failure evidence when backend-shape summarizes verification state.
- `ee292ea fix(cli): avoid template verification false pass`
  - Keeps template-only command mentions from becoming false PASS wording.

backend-shape remains report-only. It is not an AST/linter/enforcement gate.

### Gradle dependency guidance

- `691f874 docs(skills): add Gradle dependency self-check`
  - Adds a self-check for invalid dot dependency notation, including `spring-boot-starter-*:.` and `flyway-core:.`.

### Release and smoke documentation

- `d075141 docs(release): record alpha1 full continuation smoke`
  - Records the published alpha1 full continuation partial result.
- `9f34aa3 docs(changelog): record current-head closure re-smoke`
  - Records the first current-head closure re-smoke partial result.
- `f49e8d2 docs(changelog): record second closure re-smoke`
  - Records the second current-head closure re-smoke partial result.
- `7ea6484 docs(changelog): record closure re-smoke pass`
  - Records the third current-head local tarball closure re-smoke PASS.

### v0.5 / v0.4 planning boundary

- `91d3185 docs(research): add v0.5 ast decision gate` is included in this HEAD and keeps AST/linter/enforcement work behind a later decision gate.
- `dfeb88c docs(eval): plan v0.5 qa decision cadence` exists locally but is not an ancestor of this release-prep HEAD. This package does not claim that commit's files as package contents.
- v0.4 pilot execution is not part of this release prep and was not executed by this prep.

## External Smoke

### Published alpha1 registry surface smoke

Published `persona-harness@0.3.9-alpha.1` registry install/surface smoke passed for install/init/bootstrap/doctor/workflow/bearshell/backend-shape surfaces.

This was surface smoke only. It did not attempt OpenCode README implementation, did not certify generated app behavior, and did not certify generated app product quality.

### Published alpha1 full continuation smoke

Published `persona-harness@0.3.9-alpha.1` full continuation smoke was partially successful:

- Java/Spring/Gradle app generation was observed.
- `gradlew.bat test` and post-check `gradlew.bat build` passed.
- `profileSummaryInjected` and Java representative file evidence were observed.
- fake Gradle shim, Java `HttpServer`, and CommonJS workarounds were not observed.
- Reports stayed `Status: template`.
- `workflow finish implement` correctly blocked on missing implementation/review reports.

This was not workflow closure PASS.

### Current-head local tarball closure re-smoke3

Current-head local tarball closure re-smoke3 on HEAD `ee292ea` passed workflow closure.

This was not a registry smoke. The install source was a local `npm pack` tarball for package `0.3.9-alpha.1`, with:

- shasum `e03ce076cee801e0db91b01670c2efbdb2ca1db4`;
- sha256 `afb76178626a7d23657ddd78c2c77a5fe3df2528b3225005adff738edbd8ea1d`.

Observed:

- OpenCode returned from build/test/bootRun attempt to workflow closure.
- `implementation-report.md` and `review-report.md` were filled.
- `plan --report-filled implementation` and `plan --report-filled review` were observed.
- `req-1` was archived.
- `workflow finish implement` passed.
- Java/Spring/Gradle + wrapper were generated.
- No dot dependency recurrence such as `spring-boot-starter-*:.` or `flyway-core:.` was detected.
- `gradlew.bat test/build` and post-check `--no-daemon` test/build passed.
- bootRun startup logs, Tomcat, and Flyway startup were observed before a 30s bearshell timeout.
- `profileSummaryInjected` and Java role read coverage were observed.
- fake Gradle shim, Java `HttpServer`, and CommonJS workarounds were not observed.
- backend-shape main was mostly PASS.
- Fixture coverage confirmed `application/port/out/TaskRepository`, adapter, and DTO PASS.
- Verification report avoided false PASS for template-only command mentions by leaving `gradle test/build/bootRun mentioned without success/failure output` as a WARN.

Smoke perspective: alpha2 release prep candidate.

### Published alpha2 registry surface smoke

Published `persona-harness@0.3.9-alpha.2` registry smoke passed for install/init/bootstrap/doctor/workflow/bearshell/backend-shape surfaces.

Source:

- Windows clean project registry-only `npm install -D persona-harness@alpha`.
- Installed package: `persona-harness@0.3.9-alpha.2`.
- Dist-tags observed from the Windows smoke host: `alpha=0.3.9-alpha.2`, `latest=0.3.9-alpha.1`.
- Registry `gitHead`: `ecc65560af26df78656f6135237f44cdbf9c2607`.
- Registry shasum: `cdd6a238da82a06b59f0c9ee75f7eea2bbec1440`.
- Clean path: `C:\Users\user\Desktop\persona-harness-registry-alpha2-20260627-113013`.
- Archive: `/Users/yongtae/Desktop/persona-harness-artifacts/archive/2026-06-24-desktop-persona-runs/registry-alpha2-smoke-20260627-113013`.

Observed:

- `ph init`, `ph bootstrap backend`, and `ph doctor`: PASS.
- doctor Runtime readiness: PASS.
- OpenCode present.
- package version: `0.3.9-alpha.2`.
- `workflow implement` / `plan --prompt`: surface PASS.
- Windows-safe bearshell read/search guidance visible.
- finish/report-filled guidance visible.
- fresh/template `workflow check`: expected WARN.
- fresh/template `workflow finish implement`: expected exit 1 with missing implementation/review reports + evidence.
- `bearshell` README search/read commands: PASS.
- copied `.persona/rules/backend/*` contained Gradle wrapper/dependency self-check guidance.
- backend rules included no blank/dot versions for `spring-boot-starter-*` / `flyway-core` and build.gradle self-check guidance.
- backend-shape fixture confirmed `application/port/out` repository port PASS, adapter PASS, and DTO PASS.
- template-only verification mentions produced Verification WARN, not false PASS.

No blocker was found for registry alpha2 install/init/bootstrap/doctor/workflow/bearshell/backend-shape surfaces.

`latest=0.3.9-alpha.1` is recorded as observed dist-tag state, not as a smoke failure.

## Claim Boundaries

- Current-head re-smoke3 is workflow closure smoke PASS, not registry smoke.
- Published alpha2 registry smoke is surface smoke only.
- Optional OpenCode generated-app closure smoke was not run for alpha2.
- Generated app product quality is not certified.
- backend-shape remains report-only.
- AST/linter/enforcement is still absent.
- Residual risks remain:
  - backend-shape Verification WARN may remain when raw report output is absent;
  - separate manual curl QA was not performed;
  - v0.4 pilot was not executed.

## Verification

Repository verification from the release prep worktree:

```bash
npm test
npm run typecheck
npm run build
npm run check:docs
npm pack --dry-run
git diff --check
```

Observed result on 2026-06-27:

- `npm test`: passed. Scope diagnostics and docs taxonomy diagnostics passed; 58 files / 367 tests passed.
- `npm run typecheck`: passed.
- `npm run build`: passed.
- `npm run check:docs`: passed.
- `npm pack --dry-run`: passed for `persona-harness@0.3.9-alpha.2`.
  - Filename: `persona-harness-0.3.9-alpha.2.tgz`
  - Package contents: 345 files
  - Shasum: `9fc8fdcb92e3a2824112b51b2fce5f6c73269b1a`
- `git diff --check`: passed.

## Known Gaps

- Full generated-app product quality is not certified by this release.
- backend-shape is still report-only and does not enforce structure.
- AST/linter/enforcement remains absent.
- Current-head closure PASS came from a local tarball smoke, not the stale registry `0.3.9-alpha.1` package.
- Manual curl QA was not performed.
- v0.4 pilot was not executed.

## Release Operation Notes

- `0.3.9-alpha.2` publish/tag/push was performed outside this Docs Release documentation task after user approval.
- Docs Release did not publish, push, or tag while recording this smoke result.
- `alpha=0.3.9-alpha.2` and `latest=0.3.9-alpha.1` were observed after publish.
- Treat the `latest` mismatch as registry state unless HQ/user separately decides latest must track alpha.
- Do not describe current-head re-smoke3 as registry smoke or generated app product-quality certification.
