Skip to content

feat(pets): hand-drawn left walks for the ghost and the robot - #55

Merged
NovusEdge merged 3 commits into
mainfrom
feat/left-walks
Oct 16, 2026
Merged

NovusEdge merged 3 commits into
mainfrom
feat/left-walks

Conversation

@NovusEdge

@NovusEdge NovusEdge commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

The ghost and the robot had only right walks, mirrored when walking left. Both are lit from the top left, so the mirror put their light on the wrong side. This adds hand-drawn walk-left and pant-walk-left for both, as Clawd has.

  • Same frame count, timings and exit frames as the right walks, so the engine can swap direction mid-stride; dx -1; head anchors moved so outfits sit in the same place.
  • Highlights stay top-left and shade right; faces shift left; wisps, dust, steam and sweat trail behind.
  • Pets tests expect the new animations with dx -1; check_distinct.py passes for both; claude plugin test . passes (1218).
  • Frame strips under docs/assets/{ghost,robot}/{walk-left,pant-walk-left}. The owner approved the walk-left style test before the panting walks were drawn.

Summary by CodeRabbit

  • Changed
    • The ghost and robot now use hand-drawn left-facing walking and panting animations, matching Clawd’s top-left lighting.
    • Existing right-facing walking animations remain unchanged.

Mirroring the right walk flipped their top-left light. The left walks keep
highlights on the left and shade on the right, lean and look left, and trail
the ghost's wisps and the robot's dust and antenna to the right. Same frames,
timings and exits as walk, dx -1, head anchors moved to the left-facing body.

Signed-off-by: NovusEdge <novusedge0@gmail.com>
Same frames, timings and exits as pant-walk, dx -1, head anchors moved to the
left-facing body. The light stays top-left; the ghost's sweat drop and the
robot's drooping antenna lead to the left, and the wisps, steam and sweat
trail to the right.

Signed-off-by: NovusEdge <novusedge0@gmail.com>
Signed-off-by: NovusEdge <novusedge0@gmail.com>
@NovusEdge NovusEdge self-assigned this Oct 16, 2026
@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 6ea28654-10df-4797-8a14-8ecb560f4c93
📥 Commits

Reviewing files that changed from the base of the PR and between 21dd5c6 and c2bf49d.

⛔ Files ignored due to path filters: 80
  • docs/assets/ghost/pant-walk-left/00.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/00.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/01.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/01.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/02.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/02.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/03.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/03.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/04.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/04.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/05.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/05.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/06.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/06.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/07.png is excluded by !**/*.png
  • docs/assets/ghost/pant-walk-left/07.svg is excluded by !**/*.svg
  • docs/assets/ghost/pant-walk-left/clip.gif is excluded by !**/*.gif
  • docs/assets/ghost/pant-walk-left/clip.mp4 is excluded by !**/*.mp4
  • docs/assets/ghost/pant-walk-left/clip.webm is excluded by !**/*.webm
  • docs/assets/ghost/pant-walk-left/sheet.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/00.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/00.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/01.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/01.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/02.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/02.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/03.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/03.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/04.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/04.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/05.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/05.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/06.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/06.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/07.png is excluded by !**/*.png
  • docs/assets/ghost/walk-left/07.svg is excluded by !**/*.svg
  • docs/assets/ghost/walk-left/clip.gif is excluded by !**/*.gif
  • docs/assets/ghost/walk-left/clip.mp4 is excluded by !**/*.mp4
  • docs/assets/ghost/walk-left/clip.webm is excluded by !**/*.webm
  • docs/assets/ghost/walk-left/sheet.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/00.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/00.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/01.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/01.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/02.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/02.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/03.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/03.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/04.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/04.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/05.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/05.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/06.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/06.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/07.png is excluded by !**/*.png
  • docs/assets/robot/pant-walk-left/07.svg is excluded by !**/*.svg
  • docs/assets/robot/pant-walk-left/clip.gif is excluded by !**/*.gif
  • docs/assets/robot/pant-walk-left/clip.mp4 is excluded by !**/*.mp4
  • docs/assets/robot/pant-walk-left/clip.webm is excluded by !**/*.webm
  • docs/assets/robot/pant-walk-left/sheet.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/00.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/00.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/01.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/01.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/02.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/02.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/03.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/03.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/04.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/04.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/05.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/05.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/06.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/06.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/07.png is excluded by !**/*.png
  • docs/assets/robot/walk-left/07.svg is excluded by !**/*.svg
  • docs/assets/robot/walk-left/clip.gif is excluded by !**/*.gif
  • docs/assets/robot/walk-left/clip.mp4 is excluded by !**/*.mp4
  • docs/assets/robot/walk-left/clip.webm is excluded by !**/*.webm
  • docs/assets/robot/walk-left/sheet.png is excluded by !**/*.png
📒 Files selected for processing: 6
  • CHANGELOG.md
  • art/crt/crt.art
  • art/ghost/ghost.art
  • hooks/sprites/crt.ts
  • hooks/sprites/ghost.ts
  • test/pets.test.ts

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.

Walkthrough

The ghost and CRT gain hand-drawn left-facing walk and pant-walk animations in their art assets and sprite sheets. Tests check that both animations exist and use leftward movement. The changelog records the update.

Changes

Left-walk animations

Layer / File(s) Summary
Add and validate left-walk animations
art/crt/crt.art, art/ghost/ghost.art, hooks/sprites/crt.ts, hooks/sprites/ghost.ts, test/pets.test.ts, CHANGELOG.md
The art assets and sprite sheets add left-facing walk and pant-walk animations for the ghost and CRT. Tests check for the animations and verify dx is -1. The changelog records the hand-drawn frames.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to c2bf4

The left-facing animation frame has the expected movement delta, and its test checks that behavior. No actionable merge risk was identified in the supplied changes.

Pre-merge checks: Passed 5
Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely describes the main change: adding hand-drawn left-walking animations for the ghost and robot pets.
Docstring Coverage Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 3…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit sketches leftward feet,
Four-frame steps and panting beats.
Ghost and CRT now turn,
While pixels trace each stride and curve.
Tests confirm the leftward way,
And changelog notes the art today.

Comment @coderabbitai help to get the list of available commands.

@NovusEdge
NovusEdge merged commit 4d05ce7 into main Oct 16, 2026
7 checks passed
@NovusEdge
NovusEdge deleted the feat/left-walks branch October 16, 2026 06:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant