agentleFS
decentralanddecentraland/sdk-skills/promote-scene/SKILL.md

promote-scene

Skill4 starsChanged 11 days agoApache-2.0View on GitHub

Audience-first marketing kit for a creator's Decentraland scene or game: names who it is for and where those people already gather (web-verified venues, assumptions shown), then writes post copy for X, Instagram, named subreddits and YouTube Shorts, a logo, hero renders of the scene's own models, key art, quote cards, a footage shot list, a first-20-players plan and an offline HTML kit page; on request, cuts the video for one footage post or Short. Use when the user wants to promote or market their scene or game, find its first players, or asks for a marketing or press kit, social posts, Reddit posts, Shorts ideas, a logo or key art, launch or teaser announcements, a trailer shot list, or the video for a footage post. Not for deploying (deploy-scene, deploy-worlds) or the map thumbnail alone (deploy-scene, creator-hub-mcp).

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 0 are distinctive, and 7 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 7

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Not deployed yet → "link": "".

    line 42
  2. Very specific:

    Check a deployed link with curl -sL <link> | grep -oE 'og:(title|description|image)" content="[^"]*"'.

    line 43
  3. Very specific:

    Propose; don't overwrite: Ask before changing the live title or description.

    line 50
  4. Very specific:

    Set up the folder: Create promote/ and promote/tools/, and add promote/ to .dclignore (next to design/) so it is never deployed.

    line 52
  5. Very specific:

    If promote/ already exists when the skill starts (a previous session stopped mid-way, usually during the final renders), do not start over …

    line 72
  6. Very specific:

    Read the preview PNGs and whatever finals exist.

    line 76
  7. Very specific:

    Every venue, rule, member count and "post that worked" comes from this session's search (URL and date) or is marked [CHECK: …].

    line 89

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Promote a Scene (Marketing Kit)

Builds promote/ inside the scene project: an audience the creator can name (who, where they are, every row with its source and the assumptions flagged), posts written from the game's own design and in-game lines for X and Instagram, for specific subreddits, and as YouTube Shorts proposals, a logo set, renders of the scene's own GLBs, composed social images, a first-20-players plan, and index.html, a page that works offline where the creator edits, previews (X / Instagram / Reddit / a phone), copies and downloads each post. The worked origin is the Eeireport horror jam kit; its posts and scripts, made generic, ship here. The audience-first method comes from the Decentraland Foundation's Find your first 100 players playbook: {baseDir}/references/audience-and-venues.md.

Requests this skill covers: "material to promote my game", a marketing or press kit, social media posts, tweets, Instagram captions, Reddit posts, Shorts or Reels ideas, guerrilla marketing, a logo or key art for the game, launch or teaser announcements, a trailer shot list, finding the audience or the first players, and "generate / render / make the video for footage post X" (the kit page's Copy video prompt button writes that request; one video per request, see below). Not this skill: publishing the scene (deploy-scene, deploy-worlds) or the scene's own map thumbnail alone (deploy-scene, creator-hub-mcp).

Prerequisites: Python 3 with Pillow (python3 -c "import PIL"; ask before installing), Blender 4.2 or newer for the renders, ffmpeg + ffprobe on PATH for gameplay capture and for video sizes on the kit page, Node 18+ only for the opt-in videos. On Windows the scripts run with python or py -3 where python3 is not on PATH; the Python tools pick fonts and GPU backends per OS by themselves.

Default scope is a first run. Do not produce the expanded kit unless asked.

OutputDefault (first run)Expanded (offer afterwards)
Audience (posts.json audience)who, not for, insight, 3–6 "likes" in their words, who they trust, outside interests, 3–6 verified venues, the assumptions list—
Posts (posts.json)20–24: launch with link 4, coming soon 4, footage 4–5, quote 3, behind the scenes 2, Reddit 2–4 (one per venue that allows a post), Shorts 2–335–40
Plan (posts.json plan)first experiment, 20 by hand, what "got it" means, stop rule; the five checks and seven days are defaults—
Logo (logo/)3: wordmark (transparent, hard shadow), lockup with tagline on black, 1024 icon+ flat white/black/accent wordmarks, themed variant, 400 px icon
Renders (images/renders/)4–6 hero shots, 1600 px square10–12 + 1080 px JPEG copies
Key art (images/keyart/)1920×1080 + 1080×1080+ 1080×1350, 1080×1920
Composed (images/social/)key art with wordmark ×2, 3 quote cards, X header 1500×5007 quote cards, story key art with lockup, event-page banners 1340×670 + 716×1814 (JPEG ≤ 500 KB; default only when the user mentions events)
Scene description (posts.json listing)the proposed display.description (~140 chars) + the long description, events in UTC if any; copy.md and README only, not on the page—
Textcopy.md, footage-shotlist.md, README.md—
Videos (videos/)none: footage posts and Shorts show a placeholder and a Copy video prompt buttonone post or Short per explicit request, never all at once: {baseDir}/references/video-posts.md

The kit follows the Decentraland Foundation's marketing package checklist. Walk it with the creator: {baseDir}/references/marketing-package.md.

Workflow

  1. Gather context. Every claim must trace to a source. Always read README, scene.json (display.title, display.description, tags) and skim src/ for quotable strings: dialogue, intercom/announcer lines, item descriptions, signs. These make the best copy. Voiced lines may exist only as audio files, with their wording in the design notes. Then branch on design/:

    • design/gdd.md or design notes exist (or design/promo-brief.md from an earlier run): read them.
    • No design docs: do not write posts from guesses. Harvest what the repo proves, then get the rest from the creator. If a dcl-gdd skill is available, recommend it on its Harvest route with a promotion-only frame (about five minutes; the result is design/gdd.md, reusable later). Otherwise run the built-in brief: about six questions, one or two at a time, each with the repo's suggested answer, saved to design/promo-brief.md. Questions, handoff frame and template: {baseDir}/references/promo-brief.md.

    Note the promise, the pillars, 4–6 signature moments (these become the renders and footage shots), and the twist or ending to keep secret. 1b. Name the audience before writing anything. Fill audience for posts.json from the best source and label every row: design/gdd.md §8 (confirmed lines → gdd; [agent-decided] / TBD → assumed), the promo brief (brief), the repo (repo), the creator's answers (creator), or web research this session (research, URL required). When the docs are silent, ask the deck's questions, one or two at a time with a suggested answer: which subreddit, Discord or meetup are they in right now; what are they playing this week; what did they last complain about, in their words; who do they trust; what do they care about outside games. If the creator would rather you proceed, go on assumptions and list them in audience.assumptions. Then verify 3–6 venues by search (exists, size, the self-promotion and flair rules, what posts do well there, who the mods are) and record each with its URL, rules and the date read. A venue whose rules forbid posting is kept for listening and walking in, with no post. Write the plan (first experiment, 20 by hand, what "got it" means, stop rule) at the same time. Method, schema and the research recipe: {baseDir}/references/audience-and-venues.md. No invented communities, member counts or "top posts": every one carries a URL or a [CHECK].

  2. Derive the link from scene.json:
    • worldConfiguration.name set → https://decentraland.org/jump/?realm=<name> (World).
    • otherwise Genesis City → https://decentraland.org/jump/?position=<x>,<y> from scene.base.
    • Not deployed yet → "link": "". Posts keep a {LINK} placeholder and lean on the coming-soon kind.
    • Check a deployed link with curl -sL <link> | grep -oE 'og:(title|description|image)" content="[^"]*"'. The link unfurls on X and other platforms as a card built from the deployed title, description and thumbnail, not the local scene.json. If they differ (old title, typo, stale thumbnail), tell the user to redeploy before posting.
  3. Check the scene metadata against the Foundation's recommendations. Read scene.json display.title, display.description, tags and display.navmapThumbnail. Field rules, the valid tag list and the thumbnail spec are in deploy-scene (pre-deploy checklist and "Thumbnail image"); a Creator Hub-linked scene does not install deploy-scene, so there read creator-hub-mcp > Gotchas for the thumbnail spec and its square-crop check. Do not re-derive them here. Check:
    • Description: ~140 characters / 1–3 sentences saying what the player does. If it is missing, too long, or only sets a mood, propose a rewrite. That rewrite is usually listing.short.
    • Tags: 1–3 valid tags, including "game" when it is a game.
    • Title: present. Flag possible IP problems (a known franchise, an existing game's name, a brand). Never claim a trademark or name check passed. Rights and brand rules: {baseDir}/references/brand-and-ip.md.
    • Thumbnail: file exists, 16:9, under 1 MB, gameplay screenshot with a distinctive logo, text inside the central 1080×1080.
    • Deployed vs local: compare with the link-card check above. If they differ, tell the user to redeploy. Propose; don't overwrite. Ask before changing the live title or description. When the scene is open in the Creator Hub, apply approved changes through its scene settings or the MCP set_scene_settings (see creator-hub-mcp). Otherwise edit scene.json.
  4. Ask once, briefly (skip anything the brief or GDD interview already answered; or state assumptions and go): the handle the mockups should show (handle); published or coming soon (and date if known); what must stay secret; whether inspirations or comparisons (other games, films, memes) may be named. Default: keep inspirations out of the copy. If they confirm nothing, use @yourhandle and spoiler-free copy.
  5. Set up the folder. Create promote/ and promote/tools/, and add promote/ to .dclignore (next to design/) so it is never deployed. Copy the scripts in, so the creator can regenerate without this skill:
    • {baseDir}/scripts/render_shots.py, make_logo.py, compose_social.py, build_kit.py, research_venues.py → promote/tools/
    • {baseDir}/scripts/kit-template.html → promote/index.html (no edits needed; it reads kit-data.js)
    • {baseDir}/scripts/posts.example.json → starting shape for promote/posts.json. Replace all its content.
  6. Write posts.json, including the listing object (the scene-description rewrites from step 3: short and long, UTC schedule if any; they go to copy.md, not the page), the audience and plan from step 1b, and the posts. Schema, kinds, writing rules and Eeireport style examples are in {baseDir}/references/posts-guide.md. The Reddit posts are one per venue whose rules allow it, written in that community's own lane, titled after posts that worked there (modelled_on, with URLs from this session's search), signed as the dev, with the link where the rules put it. The Shorts are proposals: hook for seconds 0–2, 3–6 caption beats, YouTube title, description, a vertical shot note, and modelled_on Shorts in a format this audience actually watches. Rules for both: {baseDir}/references/audience-and-venues.md.
  7. Renders. Rewrite the SHOTS table in promote/tools/render_shots.py, with one function per signature moment, built from the scene's own GLBs. Run -- preview, read every preview PNG, fix framing/orientation/lighting, then -- final. Key art: reuse the scene's thumbnail if it is good and has no text in it, otherwise set KEYART_SHOT and run -- keyart preview, then -- keyart. Framework, lighting recipes and gotchas: {baseDir}/references/renders-and-images.md. Budget the final pass. A final still takes from under a minute (a small room) to about three minutes (a whole interior with many lights and glass), and the key-art sizes about the same each, so a 5-shot -- final plus -- keyart can run past a 10-minute shell timeout and the run dies with the kit half-built. Render finals one or two shots per command (-- final console panel), or start the command in the background and wait for it, and run -- keyart as a second Blender process at the same time (two Cycles processes side by side were fine on Apple Silicon). Each RENDERED line prints the seconds it took: use the first one to plan the rest.
  8. Logo + composition. python3 promote/tools/make_logo.py (quick and independent of the renders, so it can run before them), then python3 promote/tools/compose_social.py once the renders and key art exist. Read the outputs. The logo must not cover the subject (keyart_logo_y, x_header_logo), and quote lines must fit. If the creator mentioned events, set "event_banners": true (or pass --events) for the Foundation's event-page banners.
  9. Build the page. python3 promote/tools/build_kit.py, which writes kit-data.js, copy.md (the scene-description rewrites, then the audience with sources, the posts, the plan) and footage-shotlist.md (which always opens with the Foundation's screenshot and trailer asks and includes the Shorts) and warns about missing images, bad keys, a missing or overlong listing.short, a missing audience or plan, unverified venues, Reddit posts whose sub is not a venue or that lack modelled_on, and Shorts without a hook or shot note. Fix every warning. Screenshot it and look at it, the Audience panel first (are the assumptions the ones you actually made?): "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" --headless=new --hide-scrollbars --window-size=1400,2200 --virtual-time-budget=3000 --screenshot=<scratch>/kit.png "file://<scene>/promote/index.html" (Windows: "C:\Program Files\Google\Chrome\Application\chrome.exe" with the same flags and a file:///C:/... URL; Linux: google-chrome or chromium.)
  10. README + cleanup. Write promote/README.md last, and only after the files it describes exist: run find promote -type f -not -path '*/node_modules/*' | sort and check it against images/renders/, images/keyart/, images/social/, logo/, kit-data.js, copy.md and footage-shotlist.md before describing them, and make sure build_kit.py ran without missing-image warnings. A README that lists stills the render pass never produced reads as a finished kit to the creator. Contents: what each file/folder is, the link, the regenerate commands (in run order), and notes (what could not be rendered, inspirations kept out, asset credits, a Rights note per {baseDir}/references/brand-and-ip.md, which marketing-package items are done / in the kit / shot list / missing, and event banners if generated). Delete promote/images/preview/.
  11. Report: whether a brief or GDD was created this run (point at the file), the audience in two lines and the assumptions you made (the creator corrects these first), the venues verified and the ones whose rules forbid a post, what was generated (counts), the metadata findings and proposed rewrites, what is a placeholder (footage posts and Shorts, the in-world screenshot, the stills and the trailer all need capture), what could not be rendered and why, the [CHECK] items, the path to promote/index.html, then offer the expanded kit. Mention that each footage card and Short has a Copy video prompt button for when they want one video cut by an AI assistant (any; one at a time; see below), and that recordings go in promote/footage/.

Videos for footage posts (opt-in, one per request)

The first run never renders video. When the creator asks for the video of a specific footage post (usually by pasting the page's prompt: "Generate the video for the footage post footage-02 … Use the promote-scene skill if you have it …"), follow {baseDir}/references/video-posts.md: footage ladder (their recordings in promote/footage/ → gameplay recorded by promote/tools/capture_play.py driving the avatar through the Explorer MCP server, one scripted take per moment → render_shots.py -- clip camera moves over the scene's models → the kit's stills with motion), the Remotion project copied from {baseDir}/scripts/video/ into promote/video/ on first use, one Edit per post in src/edits.ts, render to promote/videos/<post id>.mp4 (+ -9x16 on request), verify by reading frames, then build_kit.py so the page embeds it. When it is done, the report leads with the absolute path of every file as a clickable local link, then asks the creator what works and what does not and iterates on their answer (card timing, shot choice, a retake, the music), re-rendering only that video. Do exactly the post asked for. If asked for "all the videos", explain the cost (minutes and many tokens each), do the one they rank first, and stop. Rules that still apply: verbatim lines, no spoilers, no downloaded music, no claims the design docs do not make.

Resuming an interrupted run

If promote/ already exists when the skill starts (a previous session stopped mid-way, usually during the final renders), do not start over and do not trust README.md:

  1. find promote -type f | sort, and compare with the full list in step 10. Typical state: posts.json, tools/, logo/ and images/preview/ are there, images/renders/ has the first shot or two, and keyart/, social/, kit-data.js, copy.md and footage-shotlist.md are missing.
  2. pgrep -fl Blender (Windows: tasklist | findstr /i blender) to make sure nothing is still rendering.
  3. Read the preview PNGs and whatever finals exist. If they look right, the SHOTS section is done: render only the missing shots by name (-- final cage plaque) and -- keyart, then continue from step 8.
  4. Re-read the README against the finished folder and fix anything it claims that is not true.

RULE: No invented facts, no spoilers

  • Every post claim (length, mechanics, how many endings, "free", "in your browser") must come from design/ (including the promo brief), the repo (code, scene, assets) or the creator's answer in this session. [agent-decided] lines in a GDD are not confirmed. Mark anything uncertain with [CHECK: …] in the post text and list it in the report.
  • In-game lines are quoted verbatim. Do not polish them.
  • Footage notes and quote cards never show the ending, the correct solution or the final card. Say in the shot-list tips what to keep out of public clips.
  • Inspirations stay separate from the copy unless the owner opts in (the Eeireport kit kept "the Backrooms" out on purpose).

RULE: Audience and venues are evidence, not invention

  • No post is written before audience exists. "Gamers", "Web3 gamers" or "cozy gamers" are not an audience; a group in a thread, server or meetup you can name is. If nobody can name one, say so and make finding one the first line of the plan.
  • Every venue, rule, member count and "post that worked" comes from this session's search (URL and date) or is marked [CHECK: …]. Nothing from memory alone.
  • A venue's rules win. "No self-promotion" means listen, comment, talk to the mods, and no post from the kit. The kit never suggests a second account, a friend's account, posing as a player, or asking for upvotes: that is astroturfing and vote manipulation, it breaks Reddit's rules and the Decentraland Content Policy's "not false or misleading", and it burns the one room the game needs.
  • Inspirations may choose a venue (the Backrooms community for a liminal airport) while staying out of the copy, as the owner decided.
  • The plan is an experiment with a stop rule, reported as behaviour (new players → got it → came back), never as reach. The kit promises no result.

RULE: Brand and rights

Details and sources: {baseDir}/references/brand-and-ip.md (Decentraland brand guidelines, logo files, Content Policy).

  • The kit is the creator's brand. Mentioning Decentraland or showing its logo is optional. When it is mentioned: "Decentraland" in full ("DCL" only for insiders), capitalised Wearables / Emotes / LAND / NAMEs / Worlds / MANA, times in UTC, and nothing that reads as an official endorsement or as Decentraland speaking ("we").
  • The Decentraland logo, when used, comes from the official PNGs, unaltered, with clear space and minimum size respected, never in grayscale, never the outline icon next to text, never the hero of the image. The scripts do not place it.
  • Everything in the kit must be the creator's or licensed to them (Content Policy sections 2.2, 6, 8). Flag title conflicts, third-party models, fonts, music and inspirations; never clear them. Restricted (18+) content keeps its warning in promo material. Put a "Rights" note in the README.

RULE: Avatars cannot be rendered outside the Explorer

Anything that is an AvatarShape in the scene (NPCs, copies of the player, the player) has no GLB to render in Blender. Do not fake it with a placeholder mesh. Route those moments to footage posts and the shot list, and say so in the README. If the Explorer MCP is connected (see unity-explorer-mcp), an in-world screenshot can stand in for a still. Ask first if the creator is playtesting in that Explorer.

The kit page (index.html + kit-data.js)

  • One template, no scene content in it. build_kit.py writes window.KIT = {...} from posts.json, so copy edits never touch the HTML.
  • Images are embedded as data URIs downscaled to 1200 px (logos 900 px). On file://, fetch() and canvas reads of sibling files are blocked, so this is what makes the page work offline and makes Copy image work (navigator.clipboard.write([new ClipboardItem({'image/png': blob})]) from a canvas). Download links point at the full-size files. kit-data.js comes out at roughly 100–130 KB per image (about 1 MB for the 9-image example, 1.8 MB for a 14-image kit).
  • Six tabs in the header, one per destination, kept in the URL hash (#reddit). Audience opens first (the assumptions callout, then who / not for / insight / likes / trusts / outside with a source badge per row, a venue card per community with its rules, how to walk in and a link that jumps to its post, and the Plan: first experiment, 20 by hand, "got it", stop rule, the five checks as checkboxes, the seven days), so the creator reads who the posts are for before any post. Then X / Twitter and Instagram (the kind filter chips and the general posts as X or Instagram mockups; ig_image swaps in a square or portrait image), Reddit (one Reddit mockup per reddit post: sub, editable title, image or video, body, plus "why here", the sub's rules and the "modelled on" links; Copy title / Copy body; no hashtags), YouTube Shorts (a 9:16 phone per short post with the hook over the image or the rendered video, the caption beats, an editable hook field, Copy title / Copy description / Copy hook + captions and Copy video prompt for a vertical ≤ 60 s cut), Brand & assets (logos, images, videos, the recording tips, the AI video note). Empty Reddit or Shorts tabs say what to add.
  • Shared by every tab: the hashtag toggle (none / core / all; skipped when a post already has hashtags, never applied to Reddit posts); editable text with Reset; a character counter under each post (every URL counts as 23 characters, as on X; warns over 280; Reddit titles over 300 and YouTube titles over 100) and a link to the image file; Copy text (copies the edited text as shown in the preview) / Copy image / Download.
  • Footage cards: Copy video prompt puts a ready-made request on the clipboard (post id, caption, the footage note, length and format rules, the footage ladder, the output path) for the creator to paste to any AI coding assistant opened in the scene folder (it names the kit files to read when this skill is not installed). When videos/<post id>.mp4 exists the card plays it (<video> loads sibling files on file://, so nothing is inlined), shows its size and length, adds Download video and relabels the prompt button "Copy prompt to redo video"; Instagram mode plays <post id>-9x16.mp4 if present. A Videos section lists every file in promote/videos/. While a video is being generated, a marker promote/videos/<post id>.rendering (written at the start of the video workflow, deleted when the file lands, with build_kit.py run both times) shows a spinner and "Video in the making" on that card, and the page re-reads kit-data.js every 30 s so the spinner turns into the video by itself.
  • With "link": "" the page shows "not published yet" and highlights {LINK} in every post. Rebuild after deploying.

Gotchas

  • Fonts: Pillow needs a font file path. make_logo.py and compose_social.py use brand.font / brand.font_small from posts.json when those files exist and otherwise search the OS font folders for a bold condensed display face (Impact, Arial Bold, DIN Condensed Bold, Arial Narrow Bold; DejaVu or Liberation on Linux), printing which one they picked, and stop with a clear message when none is found. macOS ships /System/Library/Fonts/Supplemental/Impact.ttf and DIN Condensed Bold.ttf; Windows C:\Windows\Fonts\impact.ttf and arialnb.ttf. If the scene's cover/thumbnail already uses a face, set brand.font to match it. Check python3 -c "import PIL" first. If Pillow is missing, ask before installing it.
  • Social images are not the scene thumbnail. The Worlds thumbnail limits (16:9 ±1 %, PNG/JPEG, ≤ 1,048,576 bytes, see creator-hub-mcp) apply only to display.navmapThumbnail. Never overwrite the scene's thumbnail from this skill.
  • Asset credits (e.g. CC BY audio from Wikimedia Commons listed in design/references.md) belong in the scene description, not in posts. Flag them in the README if the scene description lacks them.
  • Hashtags: core = game name + #Decentraland + genre. The rest go in extra. Do not put hashtags in the post text unless they are part of the joke (the page appends them).
  • Renders are batch work, so headless Blender is the default here. If a Blender MCP is connected and the creator wants to watch or adjust shots live, offer it (the no-silent-fallback rule in add-3d-models applies when the user is working in the MCP).

References

  • {baseDir}/references/promo-brief.md: no design docs → repo harvest, dcl-gdd handoff frame, the six-question brief, design/promo-brief.md template.
  • {baseDir}/references/audience-and-venues.md: the audience-first method (the Foundation's Find your first 100 players moves and the guerrilla notes), the audience step and its sources, how to verify a venue, Reddit post rules, YouTube Shorts rules, the plan, what the step never does.
  • {baseDir}/references/marketing-package.md: the Decentraland Foundation's marketing package checklist (basics, descriptions, images, extras, trailer) and where each item comes from.
  • {baseDir}/references/posts-guide.md: posts.json schema, the seven kinds, writing rules, footage-note recipe, Eeireport examples.
  • {baseDir}/references/renders-and-images.md: Blender render framework, room building, lighting recipes, key art, logo and composition, verification.
  • {baseDir}/references/brand-and-ip.md: Decentraland name and logo rules (brand guidelines and media kit links), Content Policy IP points, what to flag and where the Rights note goes.
  • {baseDir}/references/video-posts.md: opt-in post videos: footage ladder, Remotion setup, edit authoring, render and verification, README and report.
  • {baseDir}/scripts/: research_venues.py (top posts of a subreddit via RSS, YouTube Shorts search with view counts; the evidence for venues and modelled_on; copied to promote/tools/), render_shots.py (stills, key art and -- clip camera moves), make_logo.py, compose_social.py, build_kit.py, kit-template.html, posts.example.json, video/ (the Remotion project copied to promote/video/ on the first video request), capture_play.py + takes.example.py (records gameplay takes from the Explorer for footage posts; copied to promote/tools/).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.