Skip to content

Releases: barmoshe/playmark

Playmark 0.5.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 11:15
6dc9a2f
  • 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, then codex 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 with codex exec on 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, so scripts/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:install detects a Cocos project. warp and smoke say 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; see cocos/README.md.
  • three.js (beta). three/playmark.js, one ES module with no dependency but the game's three. The game calls Playmark.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 and userData keys. It freezes the game through onPause/onResume or by stopping a setAnimationLoop loop, and says so when it can't. /playmark:install detects a package.json that depends on three. warp and smoke say they aren't available yet. Checked with r170 in Chromium on Windows on a demo scene; see three/README.md.
  • Cocos: test on your phone. sink.mjs --lan serves 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 is scripts/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 takes POST /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 a CLAUDE.md that 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 .gitattributes export-ignore (the release's addon-only zip is built from named paths instead), a plugin icon, homepage, documentation, support and privacy links in plugin.json, and a PRIVACY.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.js package.json above 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

Choose a tag to compare

@github-actions github-actions released this 11 Oct 20:28
  • 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:install detects a Unity project and embeds the package (--git pins 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. See unity/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.mjs takes a Mac Unity.app.
  • inbox.mjs smoke works right after install, before the game has been played. install.mjs --help prints 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 show names 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 .meta file.
  • 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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 21:07
  • 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 a CLAUDE.md for the play, mark, fix loop.
  • Ghosts draw in screen pixels, so their numbers stay crisp at any zoom.
  • Releases: tag vX.Y.Z and CI publishes the GitHub release with an addon-only zip; scripts/versions.mjs keeps 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

Choose a tag to compare

@barmoshe barmoshe released this 10 Oct 19:13
  • 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; --shot saves a frame for checking a fix.
  • set_scope() keeps ghosts in the right room when one scene holds many rooms.
  • inbox.mjs claim and 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+.