Workflow: Timetravel Release
Full release pipeline for ~/digital/leviathan/plugins/timetravel/.
Every step spawns a fresh subagent (poly sparkle pattern). State flows only through handoff artifacts at .lev/pm/handoffs/tt-release-*.md.
Trigger
- •Ready to cut a new version of the timetravel plugin
- •
/workflow tt-release [--bump major|minor|patch] [--dry-run] [--skip-publish]
Inputs
| Input | Required | Description |
|---|---|---|
bump | no | Semver bump type. Default: patch |
dry_run | no | If true, simulate everything but don't publish or tag. Default: false |
skip_publish | no | Skip npm publish step. Default: false |
pre_tag | no | Pre-release tag (e.g. alpha, beta, rc). Default: none |
Steps
Step 1: Run Tests
Agent Type: general-purpose Skills: None Research:
- •Read
~/digital/leviathan/plugins/timetravel/package.jsonfor current version and test scripts
Action:
- •Run
cd ~/digital/leviathan/plugins/timetravel && pnpm test - •Run
cd ~/digital/leviathan/plugins/timetravel && pnpm build - •If either fails: STOP workflow, report failures
- •Record: test count, pass count, coverage (if available)
Handoff: .lev/pm/handoffs/tt-release-1-tests.md
current_version: <x.y.z> test_result: pass | fail test_count: <n> build_result: pass | fail gate: pass | fail failure_details: null | "<details>"
Step 2: Version Bump
Agent Type: general-purpose Skills: None Research:
- •Read handoff from Step 1 (current version, gate status)
- •If gate=fail, STOP
Action:
- •Calculate new version: apply
bumptype to current version- •If
pre_tagset: e.g.0.2.0-alpha.1
- •If
- •Update
versionfield inpackage.json - •Do NOT run
npm version(we manage git separately)
Handoff: .lev/pm/handoffs/tt-release-2-version.md
previous_version: <x.y.z> new_version: <x.y.z> bump_type: major | minor | patch pre_tag: null | alpha | beta | rc
Step 3: Changelog
Agent Type: general-purpose Skills: None Research:
- •Read handoff from Step 2
- •Read git log since last tag:
cd ~/digital/leviathan/plugins/timetravel && git log --oneline $(git describe --tags --abbrev=0 2>/dev/null || echo HEAD~20)..HEAD -- . - •Read existing CHANGELOG.md if present
Action:
- •Group commits by type: feat, fix, refactor, docs, test, chore
- •Generate changelog entry for new version:
markdown
## [x.y.z] - YYYY-MM-DD ### Added - ... ### Fixed - ... ### Changed - ...
- •Prepend to CHANGELOG.md (create if missing)
Handoff: .lev/pm/handoffs/tt-release-3-changelog.md
changelog_path: CHANGELOG.md commits_processed: <n> sections: [Added, Fixed, Changed, ...]
Step 4: Build
Agent Type: general-purpose Skills: None Research:
- •Read handoff from Step 2 (new version)
Action:
- •Clean previous build:
rm -rf dist/ - •Run
cd ~/digital/leviathan/plugins/timetravel && pnpm build - •Verify
dist/contains expected files:index.js,index.d.ts,cli.js, adapter files - •Verify
dist/cli.jshas shebang line - •Check package.json
filesfield matches dist output
Handoff: .lev/pm/handoffs/tt-release-4-build.md
build_result: pass | fail dist_files: [<list>] dist_size_kb: <n> shebang_present: true | false
Step 5: Publish
Agent Type: general-purpose Skills: None Research:
- •Read handoffs from Steps 2 and 4
- •Check:
dry_runandskip_publishflags
Action:
- •If
dry_run=true: runcd ~/digital/leviathan/plugins/timetravel && npm pack --dry-runand report contents - •If
skip_publish=true: skip this step entirely - •Otherwise: run
cd ~/digital/leviathan/plugins/timetravel && npm publish --access public- •If pre-release tag: add
--tag <pre_tag>
- •If pre-release tag: add
- •Verify publish succeeded (check npm registry)
Handoff: .lev/pm/handoffs/tt-release-5-publish.md
action: publish | dry-run | skipped result: success | failed | skipped package: "@lev-os/timetravel" version: <x.y.z> registry_url: <url or null>
Step 6: Git Tag
Agent Type: general-purpose Skills: None Research:
- •Read handoffs from Steps 2-3
Action:
- •Stage changed files:
package.json,CHANGELOG.md,dist/(if tracked) - •Create commit:
release: timetravel v<x.y.z> - •Create annotated tag:
git tag -a timetravel-v<x.y.z> -m "Release timetravel v<x.y.z>" - •If
dry_run=true: show what would be committed/tagged but don't execute - •Do NOT push (user must explicitly push)
Handoff: .lev/pm/handoffs/tt-release-6-tag.md
commit_sha: <sha or null if dry-run> tag: timetravel-v<x.y.z> pushed: false dry_run: true | false
Step 7: Update Downstream
Agent Type: general-purpose
Skills: skill://lev-research
Research:
- •Read all handoffs from Steps 1-6
- •Search for downstream dependencies:
- •
grep -r "@lev-os/timetravel" ~/.agents/skills/for skill references - •
grep -r "timetravel" ~/digital/leviathan/plugins/for plugin references - •Check
~/.agents/skills/lev-research/SKILL.mdfor version references
- •
Action:
- •List all files referencing timetravel with current version
- •Suggest updates for each (do NOT auto-edit downstream — report only)
- •Update version in
lev-researchSKILL.md version history table - •Print release summary: version, changelog highlights, publish status, tag, downstream suggestions
Handoff: .lev/pm/handoffs/tt-release-7-downstream.md
downstream_references:
- file: <path>
current_ref: <old version or import>
suggested_update: "<what to change>"
version_updated_in:
- ~/.agents/skills/lev-research/SKILL.md
release_summary:
version: <x.y.z>
published: true | false
tagged: true | false
pushed: false
status: complete
Outputs
- •Updated
package.jsonwith new version - •
CHANGELOG.mdwith release entry - •Clean
dist/build - •npm package (if published)
- •Git commit + annotated tag (not pushed)
- •Downstream update suggestions
- •7 handoff artifacts in
.lev/pm/handoffs/tt-release-*.md
Validation
- • All tests pass before release
- • Version bump follows semver correctly
- • Changelog covers all commits since last tag
- • Build produces valid dist/ output
- • Publish succeeds (or dry-run validates package)
- • Git tag created with correct format
- • No auto-push (user must confirm)
- • Downstream references identified
- • All 7 handoff files created
Usage
/workflow tt-release # Patch release (default) /workflow tt-release --bump minor # Minor version bump /workflow tt-release --bump major # Major version bump /workflow tt-release --dry-run # Simulate everything /workflow tt-release --skip-publish # Local only, no npm /workflow tt-release --bump minor --pre-tag alpha # Pre-release: 0.2.0-alpha.1
Technique Map
- •Role definition - Clarifies operating scope and prevents ambiguous execution.
- •Context enrichment - Captures required inputs before actions.
- •Output structuring - Standardizes deliverables for consistent reuse.
- •Step-by-step workflow - Reduces errors by making execution order explicit.
- •Edge-case handling - Documents safe fallbacks when assumptions fail.
Technique Notes
These techniques improve reliability by making intent, inputs, outputs, and fallback paths explicit. Keep this section concise and additive so existing domain guidance remains primary.
Prompt Architect Overlay
Role Definition
You are the prompt-architect-enhanced specialist for workflow-tt-release, responsible for deterministic execution of this skill's guidance while preserving existing workflow and constraints.
Input Contract
- •Required: clear user intent and relevant context for this skill.
- •Preferred: repository/project constraints, existing artifacts, and success criteria.
- •If context is missing, ask focused questions before proceeding.
Output Contract
- •Provide structured, actionable outputs aligned to this skill's existing format.
- •Include assumptions and next steps when appropriate.
- •Preserve compatibility with existing sections and related skills.
Edge Cases & Fallbacks
- •If prerequisites are missing, provide a minimal safe path and request missing inputs.
- •If scope is ambiguous, narrow to the highest-confidence sub-task.
- •If a requested action conflicts with existing constraints, explain and offer compliant alternatives.