v0.4 Plan
Status: Release candidate after
@yangyus8/emotile@0.3.0. Theme: Release automation and integration readiness.
Goal
Make Emotile safer to publish and easier to integrate.
v0.4 should turn the v0.3 integration surface into a release-ready package: manual release automation, repeatable preflight checks, documented release roles, and agent integration guidance that downstream systems can follow without coupling Emotile to a platform runtime.
Scope
Manual npm and GitHub release workflow
- Add a manually triggered GitHub Actions workflow for official releases.
- Require a
versioninput such as0.4.0. - Do not publish from
pushtomain. - Do not automatically bump package versions.
- Check that
package.jsonversion andCHANGELOG.mdmatch the input version. - Run the full release quality gate before publishing.
- Prefer npm Trusted Publishing / OIDC.
- Allow a documented
NPM_TOKENfallback with provenance when Trusted Publishing is not yet configured. - Create the
vX.Y.Zgit tag and GitHub Release only after checks pass. - Prefer release notes extracted from
CHANGELOG.md. - Use minimal GitHub Actions permissions, with explicit
contentsandid-tokenscopes.
Release preflight checks
- Add a non-publishing release preflight workflow or script.
- Run under pull requests and manual dispatch.
- Check version metadata, changelog entry, typecheck, tests, build, docs build, package dry run, CLI smoke test, and library import smoke test.
- Do not publish to npm, create a GitHub Release, or create tags.
Release process documentation
- Document Architect and Builder responsibilities.
- Include the release checklist, failure handling, retry rules, Trusted Publishing setup, and token fallback.
- State that Builders may prepare release automation but only the Architect may trigger official releases.
Agent integration readiness guide
- Show how an agent can use the exported JSON Schema to generate
EmotileExpression. - Document the recommended chain: validate, repair, normalize, render, theme, SVG.
- Include a minimal TypeScript example.
- Keep the guide runtime-neutral and avoid OpenClaw / Hermes deep coupling.
- Show how an agent can use the exported JSON Schema to generate
Suggested Build Order
- Release preflight checks.
- Manual release workflow.
- Release process documentation.
- Agent integration readiness guide.
Preflight should come first so the official release workflow can reuse or mirror the same checks. The release documentation should be updated after the workflows exist so it can describe the actual commands and failure modes.
Issue Policy
- Do not create a long-term planning issue for v0.4.
- Keep open issues Builder-ready only.
- Each implementation issue must include goal, non-goals, acceptance criteria, suggested files, and testing expectations.
- Do not ask Builders to make runtime architecture decisions.
- Any proposal to adopt
semantic-release, Changesets, or a similar release manager must first document a comparison against the manual workflow.
Non-Goals
- Desktop pet runtime.
- Tauri runtime.
- Godot runtime.
- Canvas runtime.
- PNG / GIF export.
- Preset expression catalog.
- Deep OpenClaw / Hermes coupling.
- Automatic release from
pushtomain. - Automatic version bumping.
- Introducing
semantic-releaseor Changesets without a prior comparison. - Expression format changes.
- Renderer architecture changes.
Acceptance Themes
- Releases are manual, auditable, and repeatable.
- Release checks can fail before any publish, tag, or GitHub Release side effect.
- npm publishing prefers short-lived OIDC credentials over long-lived tokens.
- Builders can implement scoped automation and docs without deciding Emotile's runtime direction.
- Integration guidance uses the existing v0.3 public surface and remains platform-independent.
References
- npm Trusted Publishing: https://docs.npmjs.com/trusted-publishers/
- npm provenance: https://docs.npmjs.com/generating-provenance-statements/
- GitHub Actions workflow syntax: https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions
- GitHub CLI release creation: https://cli.github.com/manual/gh_release_create