Skip to content

docs(decisions): Add ADRs for JS/TS npm and GitHub release asset profiles#5

Merged
yunseo-kim merged 14 commits into
mainfrom
docs/adr-npm-and-release-asset-profiles
Jul 7, 2026
Merged

docs(decisions): Add ADRs for JS/TS npm and GitHub release asset profiles#5
yunseo-kim merged 14 commits into
mainfrom
docs/adr-npm-and-release-asset-profiles

Conversation

@yunseo-kim

@yunseo-kim yunseo-kim commented Jul 7, 2026

Copy link
Copy Markdown
Member

Summary

This PR adds the architectural decision records (ADRs) for the JS/TS npm package profile and the GitHub release asset profile.

  • What changed?

    • Updated docs/decisions/0021-use-profile-specific-buildtype-uris.md status to superseded by ADR-0042.
    • Added 25 new ADRs covering:
      • buildType URI strategy (ADR-0041, ADR-0042)
      • npm publish provenance foundation (ADR-0029, ADR-0030, ADR-0035)
      • npm publish workflow constraints (ADR-0032, ADR-0033, ADR-0034)
      • npm publish job graph and composition (ADR-0036, ADR-0052)
      • GitHub release asset workflow scope (ADR-0039, ADR-0040, ADR-0043)
      • release asset subject naming and linked-artifacts opt-in (ADR-0045, ADR-0046, ADR-0048)
      • release asset permission boundary and separation of concerns (ADR-0044, ADR-0049)
      • release asset provenance distribution (ADR-0038, ADR-0047, ADR-0051)
      • Sigstore-signed in-toto release manifest (ADR-0031)
      • producer-to-publisher handoff and signing boundary (ADR-0050, ADR-0053)
      • initial verification deliverables (ADR-0037)
  • Why is this needed?

    • These ADRs capture the design decisions for the initial reusable SLSA builder profiles so that implementation can proceed against a stable specification.

Related Issues

  • Related #

Change Type

  • Bug fix
  • Feature
  • Refactor
  • Documentation
  • Test/CI
  • Breaking change
  • Other

Changelog

  • Category: Added
  • User-facing note: Document JS/TS npm package and GitHub release asset profile design decisions as ADRs (ADR-0029 through ADR-0053), including buildType URI strategy, provenance generation, release manifest signing, and verification deliverables.

Changelog update:

  • CHANGELOG.md [Unreleased] updated
  • Not needed because this change is not user-facing

Checklist

General

  • PR title follows Conventional Commits format: type(scope): Summary
  • This PR does not expose backend/internal implementation details in a public repo.
  • No secrets, tokens, keys, or private endpoints are included.
  • Changes stay within this repository's intended scope.

CI/Workflow Changes (if applicable)

N/A

Protocol / Compatibility Impact

  • No protocol/spec impact
  • Protocol/spec updated
  • Conformance tests updated
  • Breaking change is versioned and migration notes are included

If impacted, describe compatibility impact:

Testing

  • Unit tests added/updated
  • Integration or conformance tests added/updated
  • Tests pass
  • Lint and format pass
  • Type check passes
  • Manual verification performed

Describe test evidence:

  • pnpm exec prettier --write on all changed Markdown files passed.
  • pnpm exec markdownlint-cli2 on all changed Markdown files passed with 0 errors.
  • Lefthook pre-commit hooks (prettier, markdownlint, DCO sign-off) passed for every commit.

Documentation

  • README updated
  • Spec/docs updated
  • Changelog decision completed above

Rollout / Risk

  • Risk level: Low
  • Rollback plan: Revert the PR commit(s) if needed; ADRs are documentation-only and do not affect runtime behavior.

Reviewer Checklist

  • Scope is clear and minimal
  • Security and boundary checks passed
  • Tests and docs are sufficient
  • Compatibility impact is correctly handled

yunseo-kim added 11 commits July 7, 2026 12:53
Replace the profile-specific buildType URI approach with acquired domains (buildtype.dev identifier, slsa-builder.dev documentation host) and record the superseded intermediate proposal.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Define Windlass-generated SLSA provenance for npm packages, registry URL handling that preserves npmjs semantics, and actions/attest as the initial Sigstore signing adapter.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Constrain manual dispatch releases to version tags, run build scripts only when declared, and exclude private dependency credentials from the initial profile.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Establish a three-job digest-verified publish graph and compose the npm package tarball producer with the GitHub release asset publisher.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Scope the release asset profile to one asset per run, record the initial workflow entrypoint proposal, and require uploading assets to an existing GitHub release.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Use the release asset name as the SLSA subject name, keep checksums and SBOMs out of the subject digest, and make linked-artifacts storage records explicit opt-in.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
ADR-0044 introduces a three-job permission boundary; ADR-0049 supersedes it by separating artifact production from release asset publication.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
ADR-0047 initially chose GitHub attestation storage as canonical distribution; ADR-0051 supersedes it by distributing producer provenance with release assets.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Define a Sigstore-signed in-toto release manifest that records release asset metadata and supports the producer-to-publisher handoff.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Define the producer-to-publisher handoff contract and a three-job release manifest signing boundary.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Summarize the verification deliverables and validation strategy for the JS/TS npm and GitHub release asset profiles.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
@yunseo-kim
yunseo-kim force-pushed the docs/adr-npm-and-release-asset-profiles branch from 6b0fe96 to e40a91e Compare July 7, 2026 04:10
Expand the ADR index in docs/decisions/AGENTS.md to reflect the current
sequence of 54 ADRs (0000-0053) and group the JS/TS npm, release asset,
and manifest signing topic ranges.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Add a dedicated knowledge base file for GitHub Actions workflows that
covers SHA-pinning, hardened-runner usage, minimal permissions, and the
reusable-org-workflow patterns used across the repository.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
Refresh the generated metadata to the current commit and branch, add the
.github/workflows directory to the project structure, and point readers to
the new docs/decisions and .github/workflows AGENTS.md files.

Signed-off-by: Yunseo Kim <git@yunseo.kim>
@yunseo-kim
yunseo-kim merged commit 22bbfec into main Jul 7, 2026
12 checks passed
@yunseo-kim
yunseo-kim deleted the docs/adr-npm-and-release-asset-profiles branch July 7, 2026 04:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant