Skip to content

Adopt Tegami versioning and the Shared Project DNA - #15

Open
jonbeckman wants to merge 6 commits into
masterfrom
claude/project-thread-jgh9ya
Open

jonbeckman wants to merge 6 commits into
masterfrom
claude/project-thread-jgh9ya

Conversation

@jonbeckman

Copy link
Copy Markdown
Contributor

Requested by Jonathan · project thread

Summary

Prepares Routact for its first versioned release and the Marketplace, following the Shared Project DNA page (Notion) and using SolZeroAI/alchemy-new-publish-action as the reference action repo.

Versioning (Tegami 1.5.0)

  • scripts/tegami.mts + scripts/action-release.mts: Tegami versions the private package and creates a vX.Y.Z tag and GitHub Release (DNA: single-package repos tag v<semver>).
  • scripts/move-major-tag.mts: after a stable release, moves the floating major tag (v2). Prereleases do not move it.
  • release.yml runs tegami ci with the release App token (RELEASE_APP_ID / RELEASE_APP_PRIVATE_KEY, release environment) after Validate passes on master. Tegami PR Preview / Comment trio added.
  • package.json version goes back to the upstream 1.0.2, and .tegami/2026-10-30-routact-2.md is a major entry, so the first version PR releases v2.0.0 with real notes. (Checked locally: tegami version plans npm:routact: 1.0.2 → 2.0.0.)
  • README, route.yml, and examples pin @v2 instead of @master. A Versions section explains @v2 and exact tags.

Toolchain

  • nub 0.9.6 (nub.lock replaces package-lock.json), Node 24.15.0 (.node-version, .nvmrc, engines >=24.15.0 <25).
  • oxlint 1.89.0 + anti-slop replace ESLint; oxfmt 0.74.0 reformats source and tests (no behavior change; dist/ rebuilt).
  • Two anti-slop rules start as warnings, per DNA "warnings first": no-runtime-typeof (plain JS config parsing) and no-module-mocking (jest.mock in index.test.js).

CI (Fleet CI and release standard)

  • validate.yml replaces units-test and Check dist/: lint, format, Jest, check-dist, plus the existing action smoke jobs. Jobs skip on drafts, have timeout-minutes, and workflow permissions default to read. PR pushes cancel older runs; each master push gets its own group.
  • CodeQL moves to v4 (build-mode: none). GitHub-hosted runners only (public repo).
  • Renovate (SolZeroAI/renovate-config) replaces dependabot.yml.

Repo files: AGENTS.md (+ CLAUDE.md), CONTRIBUTING.md (release process and Marketplace step), SECURITY.md, PR template, .cursor/environment.json with the cloud-agent scripts.

Not done (documented divergences): the source stays JavaScript, so there is no TypeScript/tsrs typecheck. Tests stay on Jest (DNA allows unit tests for libraries).

Validation

  • nub run check (lint, format, 103 Jest tests, build) passes.
  • nub run check-dist passes.
  • tegami version in a scratch worktree produced 2.0.0, CHANGELOG.md, and the publish lock as expected.
  • actionlint was not run locally (binary not available here); the workflows were YAML-parsed. Validate on this PR exercises the new workflows.

Checklist

  • Tests unchanged; behavior unchanged apart from formatting.
  • README updated (@v2, Versions, Development).
  • .tegami/ release entry added (major, 2.0.0).
  • Ran nub run check and nub run check-dist.
  • Committed dist/.
  • No credentials or tokens.
  • No tag cut, no Marketplace publish.

Before merging / right after: create the release:none label, a release environment with RELEASE_APP_ID and RELEASE_APP_PRIVATE_KEY (or confirm the org secrets reach it), install the release app and solzero-bot on routact, and turn on "Allow auto-merge". Once merged, merge the Tegami version PR soon after: until v2 exists, route.yml@master calls SolZeroAI/routact@v2, which will not resolve.


Generated by Claude Code

nub 0.9.6 replaces npm (nub.lock replaces package-lock.json), oxlint 1.89.0
with anti-slop replaces ESLint, and oxfmt 0.74.0 formats the code. Node is
24.15.0 (engines >=24.15.0 <25). Source and tests are reformatted and dist/
is rebuilt; behavior does not change.

The package version goes back to the upstream 1.0.2 so that Tegami makes
the first Routact release, 2.0.0, from a changeset.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vdh4Z4wSEyzapeNsaZbe6M
Tegami 1.5.0 versions the action from .tegami/ entries. release.yml runs
tegami ci with the release GitHub App token after Validate passes on
master: it opens the version pull request, then creates the vX.Y.Z tag and
GitHub Release and moves the floating major tag (v2). The first entry
releases Routact 2.0.0.

CI follows the Fleet CI and release standard: Validate replaces units-test
and Check dist/, jobs skip on drafts and have timeouts, workflow
permissions default to read, Tegami PR Preview and Comment run on
workflow_run, CodeQL moves to v4, and Renovate (SolZeroAI/renovate-config)
replaces Dependabot version updates. The README and route.yml pin @v2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vdh4Z4wSEyzapeNsaZbe6M
AGENTS.md (with CLAUDE.md pointing to it), CONTRIBUTING.md, SECURITY.md, a
pull request template, and .cursor/environment.json with the cloud-agent
install and start scripts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vdh4Z4wSEyzapeNsaZbe6M
@jonbeckman jonbeckman self-assigned this Oct 30, 2026
Brings in the maintenance mode from master. index.js, src/github.js and
action.yml take master's content, then oxfmt and oxlint run over them and
the new files, and dist/ is rebuilt. maintain.yml and the README Maintenance
snippet pin @v2. solzero-maintain.yml gets read-only workflow permissions.
Test fixtures are left out of formatting.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vdh4Z4wSEyzapeNsaZbe6M
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vdh4Z4wSEyzapeNsaZbe6M
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

ncc module ids come from node_modules paths, which differ between nub 0.9.6
(CI) and 0.9.7. This dist/ is the expected output from the failed Validate
run on eadeb4f. CONTRIBUTING notes the exact nub version for builds.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vdh4Z4wSEyzapeNsaZbe6M
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.

3 participants