Skip to content

GITHUB-ISSUES-2026-03-22-release-v0100.md — Release instructions for Harley

GITHUB-ISSUES-2026-03-22-release-v0100.md — Release instructions for Harley

Section titled “GITHUB-ISSUES-2026-03-22-release-v0100.md — Release instructions for Harley”

Joker session: build — v0.10.0 release — 2026-03-22 This file covers the full release flow per RELEASE-CHECKLIST.md. All milestone issues are closed. This is the final step.

  • Run operations one at a time in the order listed
  • This includes the engine-root swap (decision-0004) — follow CLAUDE.md
  • Operator merges every PR — Harley creates but never merges
  • Report any failures immediately
  • Stop and wait for operator merge at each PR step

Operation 1 — Verify all milestone issues are closed

Section titled “Operation 1 — Verify all milestone issues are closed”
gh issue list --milestone "v0.10.0" --state open

Should return 0 results. If any are open, stop and report.

npm run build

Must be clean, no warnings.

sc --version

Should report 0.9.1 (pre-bump).

sc create "release-test" --dry-run

Should show correct output with no hardcoded paths.


Phase 1 — Release branch and version bump

Section titled “Phase 1 — Release branch and version bump”
git checkout dev && git pull origin dev
git checkout -b release/v0.10.0

Operation 6 — Bump version in package.json

Section titled “Operation 6 — Bump version in package.json”

Change "version": "0.9.1" to "version": "0.10.0" in package.json.

Add this entry at the top of CHANGELOG.md (below the header, above the 0.9.1 entry):

## [0.10.0] — 2026-03-22
### Added
- feat: engine-root file swap for PRs (decision-0004) — repo ships generic files, operator keeps custom versions
- feat: session-end pre-exit hook for automatic session state commit
- feat: placeholder logo in assets/
- docs: full README rewrite — spirit-first copy, planning philosophy, session continuity, fork-friendly note
### Changed
- refactor: CLI reduced from 15 commands to 4 (create, start, config, update) per decision-0002
- refactor: sc start rewritten to launch Claude Code on a project (replaces sc build)
- refactor: repo root moved to projects/scaffolder/ as dev environment (decision-0003)
- refactor: templates restructured — code-skills/ + chat-skills/ replace claude-skills/
- refactor: scale tiers renamed — Basic / Project Management / Plane Integrated (decision-0001)
- refactor: RFC → plan, ADR → decision throughout all templates and docs
- docs: CLAUDE.md, STANDARDS.md, PROJECT-INSTRUCTIONS.md updated for new session architecture
- docs: CONTRIBUTING.md updated with staging branch and PR flow
- docs: RELEASE-CHECKLIST.md template added
- docs: all templates updated for terminology, tier names, PR rules
### Fixed
- fix: removed all hardcoded D: drive fallbacks — config.defaultDrive required (#251)
- fix: backup crash when copying files in subdirectories (ai-sessions/)
- fix: default scale tier renamed from "hobby" to "basic" in config
### Removed
- 11 CLI commands removed: build, done, status, open, queue, ruleset, help, pause, resume, history, log
- All slash command wrappers from .claude/commands/
- Old claude-skills/ and claude-commands/ template directories
- Stale plan duplicates and migration leftovers
npm run build
sc --version

Should report 0.10.0.

git add package.json CHANGELOG.md
git commit -m "chore: bump version to v0.10.0"

Operation 11 — Run engine-root swap (decision-0004)

Section titled “Operation 11 — Run engine-root swap (decision-0004)”

Follow the swap instructions in CLAUDE.md exactly:

Terminal window
mkdir -p .engine-root-backup
cp CLAUDE.md .engine-root-backup/
cp STANDARDS.md .engine-root-backup/
cp PROJECT-INSTRUCTIONS.md .engine-root-backup/
cp RELEASE-CHECKLIST.md .engine-root-backup/
cp templates/engine-root/CLAUDE.md ./
cp templates/engine-root/STANDARDS.md ./
cp templates/engine-root/PROJECT-INSTRUCTIONS.md ./
cp templates/engine-root/RELEASE-CHECKLIST.md ./
git add CLAUDE.md STANDARDS.md PROJECT-INSTRUCTIONS.md RELEASE-CHECKLIST.md
git commit -m "chore: engine-root swap — generic product files for release"
git push origin release/v0.10.0
cp .engine-root-backup/* ./
rm -rf .engine-root-backup/

gh pr create --base staging --title "release: v0.10.0" --body "## v0.10.0 release
Full changelog in CHANGELOG.md.
Key changes:
- CLI reduced to 4 commands (create, start, config, update)
- Repo restructured (decision-0003)
- Templates and docs fully updated
- README rewrite
- Engine-root file swap (decision-0004)
- Session-end hook
- All 72 milestone issues resolved"

STOP. Wait for operator to merge this PR.

After operator confirms staging merge:

git checkout staging && git pull origin staging
gh pr create --base main --head staging --title "release: v0.10.0 → main" --body "Production release of v0.10.0. See staging PR for details."

STOP. Wait for operator to merge this PR.

After operator confirms main merge:

git checkout main && git pull origin main
git tag v0.10.0
git push origin v0.10.0

Operation 17 — PR: main → dev (sync back)

Section titled “Operation 17 — PR: main → dev (sync back)”
gh pr create --base dev --head main --title "chore: sync main back to dev after v0.10.0 tag" --body "Required by branch ruleset. Syncs the tagged release back to dev."

STOP. Wait for operator to merge this PR.


git tag --list "v0.10.0"
sc --version
sc create "smoke-test" --dry-run

Both should work correctly with v0.10.0.

Report: “v0.10.0 released. Tag pushed. All PRs merged. Milestone ready to close.”


Operator closes v0.10.0 milestone on GitHub. Operator syncs Plane milestone.