You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parent: #649
Milestone: v0.33.0-beta.1 — Trust Foundation
Blocks: the first beta publication
Does not block: ordinary issue implementation or draft PR review on next
Related broader release initiative: #676
Outcome
Publish immutable prerelease versions from exact reviewed commits on next.
npm dist-tag next for prereleases.
npm dist-tag latest preserved unchanged.
GitHub releases marked as prereleases.
Provenance and clean-install verification required.
Publication unavailable until a human approves the protected environment.
Branch policy
Branch
Role
main
stable only (latest)
next
prerelease integration (next)
issue branches
created from next
roadmap PRs
target next
stable promotion
reviewed next → main PR
Version policy
0.33.0-beta.1
0.33.0-beta.2
0.33.0-rc.1
0.33.0
Every npm version is immutable. The next dist-tag moves between prerelease versions; latest moves only for stable releases.
Publishing requirements
exact tag / package.json / CHANGELOG.md match;
the tagged commit is contained in origin/next;
complete protected validation on the exact tagged commit;
npm Trusted Publishing via GitHub OIDC;
provenance required;
no fallback to an unreviewed workstation token;
protected GitHub environment (npm-next);
human approval before publish;
pre-publication dist-tag snapshot;
post-publication verification that latest did not move;
exact-version and @next clean installation checks;
packaged CLI smoke test run against a controlled workspace, not the repository checkout;
GitHub prerelease receipt;
documented rollback / remediation policy.
Current-state notes for the implementer
Verified at main = 3371ada8:
.github/workflows/release.yml fires on v* and its regex acceptsv1.2.3-beta.1. It creates a GitHub release without--prerelease, so a beta tag today would produce a stable-looking release. This must be separated.
release.yml does not publish to npm. There is currently no npm publish workflow, so publish-next.yml is new and conflicts with nothing.
package.json already defines publish:next as npm publish --tag next --access public — note the missing --provenance.
Available scripts: typecheck, test:run, test:coverage, build, verify:pack-parity, registry:validate, release:verify, pack:dry-run.
Rollback and incident response are documented (deprecate, dist-tag correction, never unpublish silently).
Release-readiness boundary
The pipeline may be prepared and merged into next before the beta is publishable. Three decisions are distinct and must not be conflated:
pipeline ready for review;
pipeline ready for merge into next;
beta ready to publish.
The beta remains blocked until Phase 0 beta readiness is met. In particular, do not publish during a partial graph-integrity migration. The graph sequence is #656 → #657 → #658 → #659; publishing after only #657 or #658 would ship artifact, integrity, and answerability behavior in an intentionally incomplete state.
Related tracking issue: #654 remains open, and roadmap PR merges remain blocked by it.
Agent handoff
The implementation agent must stop before publishing, tagging, merging, or changing repository environment settings. Repository and environment configuration is human-managed; the agent reports the exact required setup rather than applying it.
Parent: #649
Milestone:
v0.33.0-beta.1 — Trust FoundationBlocks: the first beta publication
Does not block: ordinary issue implementation or draft PR review on
nextRelated broader release initiative: #676
Outcome
Publish immutable prerelease versions from exact reviewed commits on
next.nextfor prereleases.latestpreserved unchanged.Branch policy
mainlatest)nextnext)nextnextnext→mainPRVersion policy
Every npm version is immutable. The
nextdist-tag moves between prerelease versions;latestmoves only for stable releases.Publishing requirements
package.json/CHANGELOG.mdmatch;origin/next;npm-next);latestdid not move;@nextclean installation checks;Current-state notes for the implementer
Verified at
main=3371ada8:.github/workflows/release.ymlfires onv*and its regex acceptsv1.2.3-beta.1. It creates a GitHub release without--prerelease, so a beta tag today would produce a stable-looking release. This must be separated.release.ymldoes not publish to npm. There is currently no npm publish workflow, sopublish-next.ymlis new and conflicts with nothing.package.jsonalready definespublish:nextasnpm publish --tag next --access public— note the missing--provenance.typecheck,test:run,test:coverage,build,verify:pack-parity,registry:validate,release:verify,pack:dry-run.qualify:validateexists only on the [P0] Freeze the natural qualification corpus, independent rubrics, and stop rule #655 branch today. Once PR feat(qualification): freeze the independent qualification contract (#655) #681 lands onnext, it becomes mandatory in the prerelease pipeline.@lubab/madar; bin ismadar.Explicit non-goals
latest.nextintomain.Acceptance criteria
id-token: write; provenance is attached.npm-nextenvironment.origin/next; a tag outsidenextis rejected.package.jsonversion, andCHANGELOG.mdsection match exactly.latestis captured before publication and verified unchanged afterwards.@nextreports that version.prerelease: true.pushorpull_requestevents.Release-readiness boundary
The pipeline may be prepared and merged into
nextbefore the beta is publishable. Three decisions are distinct and must not be conflated:next;The beta remains blocked until Phase 0 beta readiness is met. In particular, do not publish during a partial graph-integrity migration. The graph sequence is
#656 → #657 → #658 → #659; publishing after only #657 or #658 would ship artifact, integrity, and answerability behavior in an intentionally incomplete state.Related tracking issue: #654 remains open, and roadmap PR merges remain blocked by it.
Agent handoff
The implementation agent must stop before publishing, tagging, merging, or changing repository environment settings. Repository and environment configuration is human-managed; the agent reports the exact required setup rather than applying it.