Skip to content

Decision Records

Fixed 32×32 Canvas

  • Decision: v0.1 canvas is fixed at 32×32.
  • Context: Type system allowed 1–256, but docs and renderer assumed 32×32.
  • Consequences: Simpler validation, consistent examples, easier testing.
  • Deferred: Variable canvas sizes for v0.2+.

CommonJS-Only Package

  • Decision: v0.1 ships as CommonJS-only.
  • Context: TypeScript emits CommonJS; dual-build adds complexity.
  • Consequences: ESM consumers may need createRequire in strict environments.
  • Deferred: ESM / dual-build for a future issue.

Same-Account Review Fallback

  • Decision: When Architect and Builder share a GitHub account, use top-level ## Architect Review Note PR comments.
  • Context: GitHub blocks formal reviews on own PRs.
  • Consequences: Review record is in PR comments, not GitHub review UI.
  • Deferred: Bot integration or separate accounts.

Scoped Package Name

  • Decision: Publish as @yangyus8/emotile.
  • Context: npm rejected emotile as too similar to emotion.
  • Consequences: Longer install command; scoped namespace.
  • Deferred: Unscoped name if npm policy changes.

Last-Write-Wins Pixel Conflicts

  • Decision: Renderer deduplicates overlapping pixels with last-write-wins.
  • Context: Multiple primitives may emit at same coordinate.
  • Consequences: Deterministic output; render order matters.
  • Deferred: Layer / z-index / compositor for future versions.

Docs as Long-Term Planning Home

  • Decision: Long-term planning belongs in docs/, not indefinitely open issues.
  • Context: Open issues should be Builder-executable tasks.
  • Consequences: Issues are actionable; roadmap/decisions live in versioned docs.
  • Deferred: None.

v0.2 Second-Stage Scope

  • Decision: v0.2.0 ships tickExpression, agent helpers/guidance, and the theme/palette design proposal only. Theme/palette runtime support is deferred to v0.3 by default.
  • Context: The merged v0.2 work already adds a behavioral API (tickExpression) and agent-facing helpers. Adding theme runtime now would expand renderer/schema/API review risk.
  • Consequences: No Builder runtime issue should be opened for theme/palette unless a concrete downstream need is identified and the Architect explicitly reopens v0.2 scope.
  • Deferred alternatives: Separate palette input, expression-embedded palette, named themes, and concrete color mapping runtime.

v0.2 Release Readiness Handling

  • Decision: Release readiness checkpoints are recorded in docs and short-lived issues are closed after the decision is made.
  • Context: Release readiness is an Architect decision, not a long-running Builder task.
  • Consequences: Any remaining release work must be converted into Builder-executable metadata or verification tasks.
  • Deferred alternatives: Keeping release readiness issue #40 open as the release tracker.

Released under the MIT License.