# v0.3.0-alpha.3 Demo Packaging Decision

## Decision

`proceed-to-demo-packaging`

`v0.3.0-alpha.3` can move to the final package verification step.

This decision led to the `persona-harness@0.3.0-alpha.3` npm alpha publish. It does not claim stable support or generated app product-quality certification.

## Why

The previous productization decision was `freeze-expansion-and-simplify` because the `01-book-loans` Persona ON evidence mixed two different problems:

- timeout/context-noise reliability;
- buildable generated code with the wrong package-flow shape.

Those are now separated.

Context-noise reliability improved:

- `ph init` writes project `.gitignore` entries for generated/runtime noise.
- the ON rerun completed instead of timing out.
- analyzer reason codes now distinguish `buildable-package-flow-mismatch` from no generated project or Gradle failure.

Package-flow and build-line behavior now have fresh positive ON evidence:

- Run: `/Users/yongtae/Desktop/blackbear-persona-harness-test/fresh-runs/01-book-loans/A-persona-on/bootjar-guidance-20260622-005742`.
- Generated structure: `presentation/application/domain/infrastructure`.
- Repository boundary: domain repository ports plus infrastructure implementations.
- Service storage/id sequence: not owned by application services.
- Gradle build-line: no `bootJar.enabled=false`; `gradle build` passed with `:bootJar UP-TO-DATE`.
- Runtime QA: `gradle bootRun` plus HTTP happy/failure smoke passed.

## Scope

This decision covers only:

- Java/Spring backend Clean Code MVP;
- local/npm alpha install surface;
- `ph init`, `ph intake`, `ph policy`, `ph plan`, `ph bearshell`;
- OpenCode plugin injection and local evidence behavior;
- release/demo packaging verification.

## Non-Goals

- no stable `1.0.0` claim;
- no generated app product-quality certification;
- no rule compliance enforcement;
- no frontend/infra productization;
- no desktop app;
- no AST/linter/Guard gate;
- no TDD workflow automation.

## Required Final Checks Before Publish

Before any real publish or tag:

```bash
npm test
npm run typecheck
npm run build
npm run report:rules
npm run check:scope:strict
npm run check:injection-value
npm pack --dry-run
npm publish --dry-run --tag alpha
```

Then perform a clean install smoke from the package candidate:

```bash
tmp_project=$(mktemp -d)
cd "$tmp_project"
npm init -y
npm install -D persona-harness@alpha
npx ph --help
npx ph init
npx ph intake
npx ph policy init
npx ph plan
```

Use a tarball install instead of `persona-harness@alpha` if validating before publish.

## Remaining Risks

- Evidence is still small-sample and model-dependent.
- Persona ON can still be slower than OFF.
- `v0.3.0-alpha.3` should be described as an alpha workflow/tooling candidate, not a code-quality guarantee.
- Final publish happened after explicit release approval.
- `latest` dist-tag sync completed after OTP-protected confirmation.

## Next

`v0.3.0-alpha.3` release metadata and release notes are prepared, and the npm `alpha` publish is complete.

Current dry-run status after version bump:

- `npm pack --dry-run --json`: pass on `0.3.0-alpha.3` with 191 files, 198.2 kB package size, and 735.1 kB unpacked size;
- `npm publish --dry-run --tag alpha`: pass on `0.3.0-alpha.3`.
- `npm publish --tag alpha`: pass on `0.3.0-alpha.3`.

Do not reopen broad A/B loops unless a new clean smoke regresses on package-flow or `bootJar`. Alpha.3 release closure is complete; move next to external tester feedback.
