chore(release): 0.4.0 — public npm, docs rewrite, repo automation#13
Merged
Merged
Conversation
Open-source polish across three fronts (docs, packaging/release, repo hygiene), under a ponytail discipline — reuse existing patterns, fewest new files, no runtime-behavior changes. Packaging & release (the real fix for "nothing publishes"): - Publish @codewithjuber/forgekit to PUBLIC npm with provenance instead of GitHub Packages, so `npm install -g @codewithjuber/forgekit` needs no token. (`forgekit` unscoped is taken on npm, so the scoped name stays.) - Rewrite release.yml: it never ran before (tags predated it) and used the fragile `--notes-from-tag`. Now triggers on v* tags, `npm publish --provenance --access public` with NPM_TOKEN + id-token, and `gh release create --generate-notes`. - Bump to 0.4.0 (package.json, lockfile, both plugin manifests); add docs/RELEASING.md runbook + a CONTRIBUTING pointer. One human step remains: add the NPM_TOKEN secret. Repo hygiene as committed automation: - .github/workflows/repo-settings.yml — About description, homepage, topics, and Discussions (needs an ADMIN_TOKEN PAT; exact `gh` fallback inline). - .github/labels.yml + .github/workflows/labels.yml — sync the labels the templates, Dependabot, and the stale bot reference (default token, no admin). Docs rewrite + de-duplication: - README rewritten: descriptive SEO H1, problem -> solution -> how, npm-first install, restored npm badge, canonical tool list, honest-limits/frozen-model as summaries+links. - Single-sourced the blocks that were copied 3-6x (install, honest-limits, --json, extend) into canonical homes; ONBOARDING/cognitive-substrate trimmed to links. - Reconciled the supported-tool list from src/emit/*.js across all docs (was 8 vs 9 vs 10). - Trimmed ARCHITECTURE's RFC scaffolding + stale/dropped stats; added Continue + Roo/VS Code. - Fixed: CHANGELOG double-Added merged into a 0.4.0 section; master/main; SECURITY emoji table; ROADMAP spec-lock shipped; CITATION version/date/keywords; deliverable-package's ~13 dangling artifacts; impact_oracle pickle-cache + F1 (0.79); router_gate overclaim. Verified: 151/151 tests, biome + typecheck clean, all 5 workflows valid YAML, `npm publish --dry-run` targets public npm, `forge init`/`doctor` green at 0.4.0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Eh3SNx15EeVbTmU4nH36XC
CodeWithJuber
marked this pull request as ready for review
July 6, 2026 03:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
An open-source polish pass across the three things that made
forgekitread as an early repo, not a finished project — docs, packaging/release, and repo hygiene — done under a ponytail discipline (reuse existing patterns, fewest new files, no runtime-behavior changes).1. Packaging & release — the real fix for "nothing publishes / tags & releases don't work"
The audit found
release.ymlhad run zero times (thev0.1.0–v0.3.0tags predated it), so there were no GitHub Releases and no published package, and it used the fragile--notes-from-tag.npm install -g @codewithjuber/forgekitneeds no token. (forgekitunscoped is taken on npm, so the scoped name stays;.npmrc/publishConfigupdated.)release.yml: triggers onv*,npm publish --provenance --access publicwithNPM_TOKEN+id-token, andgh release create --generate-notes.docs/RELEASING.md+ a CONTRIBUTING pointer.2. Repo hygiene as committed automation
.github/workflows/repo-settings.yml— sets the About description, homepage, topics, and enables Discussions..github/labels.yml+.github/workflows/labels.yml— syncs the labels the issue templates, Dependabot, and the stale bot reference.3. Docs rewrite + de-duplication
--json, extend) into canonical homes; ONBOARDING and the substrate README trimmed to links.src/emit/*.jsacross every doc (was 8 vs 9 vs 10).Addedmerged into a0.4.0section;master/main; SECURITY emoji-only table; ROADMAPspec-lockshipped; CITATIONversion/date-released/keywords; deliverable-package's ~13 dangling artifacts; impact_oracle pickle-cache + F1 (→0.79); router_gate "production-ready" overclaim.NPM_TOKENrepo secret (npm Automation token) — required before the first publish. Steps indocs/RELEASING.md. Until it exists, only the publish step fails; nothing else breaks.ADMIN_TOKEN(fine-grained PAT, Administration: write) forrepo-settings.yml— the defaultGITHUB_TOKENcan't edit repo settings. The exactghfallback is inlined in the workflow if you'd rather run it locally once. (The labels workflow needs no PAT.)After merge I can trigger
labels.yml/repo-settings.ymlfor you, or you can click Run workflow.Checklist
npm testpasses — 151/151 (no source changed)npm run check+npm run typecheckpassnpm publish --dry-runtargetsregistry.npmjs.orgwith public access + provenanceforge init/doctorgreen at 0.4.0CHANGELOG.mdhas a0.4.0sectionRisk & rollback
NPM_TOKENexists, so nothing publishes by surprise.🤖 Generated with Claude Code
https://claude.ai/code/session_01Eh3SNx15EeVbTmU4nH36XC
Generated by Claude Code