Repository navigation
Releases: barmoshe/playmark
Releases · barmoshe/playmark
Release list
Playmark 0.5.0
- Engines: Godot and Unity, now also Cocos Creator and three.js (both beta, by Shahar Bar). Agents: Claude Code, now also Codex (by Sam).
- Codex. The plugin installs in Codex (
codex plugin marketplace add barmoshe/playmark, thencodex plugin add playmark@playmark), with the same skill and helpers as Claude Code: install, triage, resolve, start a new game. Thanks to SJ for the first version (#1). Tested end to end withcodex execon a Godot game. - Cocos Creator (beta).
cocos/playmark/playmark.ts, one script that starts by itself in debug web builds and the browser preview of Cocos Creator 3.8+: Ctrl+Shift+M (three fingers on a phone) freezes the game into a DOM overlay with pins, boxes, categories, a note and a 5 s rewind; each mark lists the 2D/UI nodes and 3D renderers under it. A browser can't write files, soscripts/sink.mjs(local only, Node built-ins) receives each mark and writes the same.playmark/folder; toasts, ghosts and automatic error marks work as in the other engines./playmark:installdetects a Cocos project.warpandsmokesay they aren't available for Cocos yet. Release builds keep a 0.7 KB stub that never starts. Checked with 3.8.8 web-mobile builds in Chrome on Windows; seecocos/README.md. - three.js (beta).
three/playmark.js, one ES module with no dependency but the game'sthree. The game callsPlaymark.attach({ renderer, scene, camera })in development; the same overlay, clip, toasts, ghosts and automatic error marks as Cocos, through the same sink. Pins are raycast against the scene, boxes list objects whose bounds center is inside; each mark names the objects, their material, geometry anduserDatakeys. It freezes the game throughonPause/onResumeor by stopping asetAnimationLooploop, and says so when it can't./playmark:installdetects apackage.jsonthat depends onthree.warpandsmokesay they aren't available yet. Checked with r170 in Chromium on Windows on a demo scene; seethree/README.md. - Cocos: test on your phone.
sink.mjs --lanserves the debug web build to the Wi-Fi as well, prints its URL with a session token and a QR code, and refuses any other device without the token (status and the game files included). Requests from the PC itself keep the localhost rules. The page talks to the sink on its own origin, shows a MARK button next to the three-finger tap, and the overlay fits a portrait phone (44 px buttons, 16 px note, follows the soft keyboard). Marks land in the same.playmark/inbox, and "Fixed #N" reaches the phone. Node built-ins only; the QR encoder isscripts/qr.mjs. - Approve or reopen a fix from the game (Cocos). Tap a fixed ghost: Approve hides it for good (
approved), Still broken sends the mark back to the inbox with the fix that did not hold (reopened[]). An open mark can be dismissed from its card. On a phone, hold MARK to show or hide ghosts; switched off, they stay off on that device. The sink takesPOST /playmark/marks/<id>/verdict. - One skill for both agents: install, triage and new-game flows live in
skills/playmark/SKILL.md; the Claude Code commands point to it. inbox.mjs export [--all]: one HTML page with every mark (frame, note, code under each pin, clip, log), images inside. Playmark without any agent: install, play, mark, export, share.- New games get an
AGENTS.md(Codex and most agents read it) and aCLAUDE.mdthat imports it. - Godot: a game never opened in the editor no longer gets two automatic bug marks for the addon's fonts on first run. Found by Codex during testing.
- Submitted to Anthropic's plugin directory (in review). To pass its checks: no
.gitattributesexport-ignore (the release's addon-only zip is built from named paths instead), a plugin icon, homepage, documentation, support and privacy links inplugin.json, and aPRIVACY.md(Playmark collects nothing). - The finished showcase videos live on the site, not in the repo: every install downloads about 37 MB instead of 58.
- Docs: the README, the Unity README (screenshots, a tested table) and the skill cover Godot, Unity, Claude Code, Codex and no agent.
- Review fixes for Cocos, phone mode and three.js (PRs #7-#9 by Shahar Bar, merged with fixes):
?playmark_sink=only points at this machine; a page can't forge a mark's verdict or fix fields; no dismiss while the agent is working; status polling survives a bad reply; early errors become marks once the sink answers; keyups reach the game. Phone mode: the token leaves the page address at once, no referrer, the sink only answers its own page, cross-site script loads and Windows short-name paths refused. three.js: an engine project wins over a three.jspackage.jsonabove it; nothing is listed under a mark when the game kept running (frozen: false);Playmark.detach()and re-attaching a new renderer; clicks on the overlay stay out of the game.
Install in Claude Code: /plugin marketplace add barmoshe/playmark, /plugin install playmark@playmark, then /playmark:install in your game. In Codex: codex plugin marketplace add barmoshe/playmark, codex plugin add playmark@playmark.
Playmark 0.4.0
- Unity. A Unity 6 package (
unity/com.bar-builds.playmark) that writes the same marks as the Godot addon: freeze and mark with an IMGUI overlay, a 5 s rewind kept on the GPU, the colliders, renderers, uGUI and UI Toolkit elements under each mark with their script assets and prefabs, ghosts in 2D and 3D, toasts when Claude claims or fixes a mark, errors as automatic bug marks, warp and smoke runs through the open Editor, Project Settings, and a Toy sample./playmark:installdetects a Unity project and embeds the package (--gitpins a git URL instead). In Unity, ghosts toggle with Ctrl+Shift+J (Ctrl/Cmd+Shift+G is Unity's Create Empty Parent). Beta: checked in Unity 6000.3 LTS on a Mac (Built-in, URP, both input systems); known issues are on GitHub. Seeunity/README.md. - Unity fixes from the first real Editor run: Unity's own errors no longer become auto-marks or stall a smoke run, unattended runs carry on through Error Pause, clip frames are upright on Metal, a mark points at the file that declares a component, shortcut hints read CTRL+SHIFT+J,
unity/check/compile.mjstakes a MacUnity.app. inbox.mjs smokeworks right after install, before the game has been played.install.mjs --helpprints usage instead of installing into the current folder.- One mark format for both engines:
schema: 2,engine: {name, version}. Older Godot marks (engine as a string) still read. inbox.mjs smoke: an unattended play, mark, save run, for Godot and Unity.inbox.mjs shownames the engine and, for Unity, the prefab.- CI builds the Unity package's engine-free core with
dotnet test, compiles the whole package against Unity 6000.0's own assemblies (with and without the physics modules and the Input System), and checks every.metafile. - Typing the note sounds like typing: a soft key click per character (a slightly different pitch each time), a lower one for delete. Pasting and
set_note()stay quiet. - New UI sounds: layered (a tone with its own pitch and decay, noise for the attack), 44.1 kHz, every one ending on a fade; the "fixed" chime is a bell arpeggio in a small room. Built on a worker thread with their own seeded RNG, so a game's first frames and its random state are left alone.
- Showcase videos in English and Hebrew: the color mark, the Thornback in Wandcraft, and Star Dodger from a blank project, with recording scripts in
film/showcase/. On the site.
Install in Claude Code: /plugin marketplace add barmoshe/playmark, /plugin install playmark@playmark, then /playmark:install in your game. Update: claude plugin update playmark.
Playmark 0.3.0
- A real example in the README: redesigning an enemy in Wandcraft from one mark, before and after.
/playmark:new: start a blank Godot game with Playmark wired in, a playable first scene and aCLAUDE.mdfor the play, mark, fix loop.- Ghosts draw in screen pixels, so their numbers stay crisp at any zoom.
- Releases: tag
vX.Y.Zand CI publishes the GitHub release with an addon-only zip;scripts/versions.mjskeeps every version in step.
Install in Claude Code: /plugin marketplace add barmoshe/playmark, /plugin install playmark@playmark, then /playmark:install in your game. Update: claude plugin update playmark.
Playmark 0.2.0
- Photo mode: the frame freezes on a blueprint stage; pins pop, boxes show their size, a stamp lands on save.
- Rewind: step back up to 5 seconds and mark the frame where it happened.
- Category stamps on keys 1 to 5; type anywhere to start the note.
- Ghosts: past marks reappear in the world where you made them. Orange is open, blue is fixed.
- Claude's status comes back in-game: "On #12 now", "Fixed #12" with its note.
- Script errors become bug marks by themselves, with the clip and the log.
- Warp:
inbox.mjs warp <id>opens the game at the mark;--shotsaves a frame for checking a fix. set_scope()keeps ghosts in the right room when one scene holds many rooms.inbox.mjs claimand mark numbers (14,#14) in every command.
Install in Claude Code: /plugin marketplace add barmoshe/playmark, then /plugin install playmark@playmark, then /playmark:install in your game's repo. Godot 4.5+.