Non-Main Artifact Branch Tests

Every test assumes the artifact branch is `main`. The `artifactBranch` field in `ana.json` supports any branch name, and the runtime code reads it correctly via `readArtifactBranch()` — but zero tests exercise a non-main value. A team using `develop` as their artifact branch hits untested code paths in `work start`, `artifact save`, `work complete`, `work status`, and `proof` commands. Add parameterized tests proving non-main values work, and fix a display bug where init shows the git default branch instead of the configured artifact branch.

verdict PASSscore 10 / 10findings 4 (0 risk · 2 debt · 2 obs)duration 59mrejection cycles 0shipped May 6, 2026

Pipeline timeline

Intent to proven code in 59m across Think, Plan, Build, and Verify.

Think
1m
Plan
13m
Build
45m
Verify
0m

Assertion ledger

10 claims, each independently verified. Showing 8 — show all →

IDSaysMatcher
A001Work status detects the correct stage when the artifact branch is developverifiedok
A002Work status shows the develop branch name in its outputverifiedok
A003Work status detects build-in-progress when feature branch exists on develop-based projectverifiedok
A004Starting work succeeds when on the develop artifact branchverifiedok
A005Starting work fails when not on the configured develop branchverifiedok
A006Saving a scope is allowed when on the develop artifact branchverifiedok
A007Saving a build report is rejected when on the develop artifact branchverifiedok
A008Saving a build report succeeds from a feature branch when artifact branch is developverifiedok

Findings 4 total

debtpackages/cli/src/commands/init/state.tsclosed
A010 has no runtime test — verified by source inspection only
debtpackages/cli/tests/commands/work.test.tsclosed
completeWork test builds fixture manually (60 lines) instead of using createMergedProject helper
obsclosed
A010 contract assertion uses source-level target (state.ts:634) — fragile if line numbers shift
obspackages/cli/tests/utils/worktree.test.tsclosed
Pre-existing worktree.test.ts failure — detectWorktreeSlug('') returns slug when run inside worktree

Integrity seal

scopesha256:59f784162f4cb...
contractsha256:0254b0110eab2...
plansha256:847bbc3389531...
specsha256:d8c4c63d2c537...
build-reportsha256:d45a81643cd15...
verify-reportsha256:ba95ed0a9e97e...
build-datasha256:5ab07c1bf9827...
verify-datasha256:41ce96964546d...
audit cmd$ ana proof audit non-main-artifact-branch-tests   → all hashes match