← PicsartCONTENT HISTORYWHAT CHANGED · RULE-BASED ANALYSIS
Update to Picsart
Snapshot Oct 9, 2026 · 18:02 UTC · version 2.1.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Develop a film from an idea or a script to the point where its pictures can be made — in a fixed order: the look console first (genre, tone, camera — locked before a word of story), the story in the viewer's words (ten lines, then every scene as what we see and hear) for the yes, the video model, the video plan (one line per video, one sentence per join), then the shot list board for camera. Use for Stage 1 of the film pipeline (Stages 2 and 3 are folded into it since 2026-09-10): the user has a story idea or a script and nothing is locked yet. Routed from the film skill; for generating shots see film-scenes.",
"included_files": [
{
"relative_path": "references/BREAKDOWN.md",
"size_in_bytes": 3823
},
{
"relative_path": "references/DRAMATURGY.md",
"size_in_bytes": 7713
},
{
"relative_path": "references/SCREENWRITING.md",
"size_in_bytes": 7185
},
{
"relative_path": "references/VISUAL-BIBLE.md",
"size_in_bytes": 3916
}
],
"name": "film-development",
"skill_md_contents": "---\nname: film-development\ndescription: \"Develop a film from an idea or a script to the point where its pictures can be made — in a fixed order: the look console first (genre, tone, camera — locked before a word of story), the story in the viewer's words (ten lines, then every scene as what we see and hear) for the yes, the video model, the video plan (one line per video, one sentence per join), then the shot list board for camera. Use for Stage 1 of the film pipeline (Stages 2 and 3 are folded into it since 2026-09-10): the user has a story idea or a script and nothing is locked yet. Routed from the film skill; for generating shots see film-scenes.\"\n---\n\n# ChatGPT and Codex integration\n\nApply these host conventions throughout this skill and its references.\n\n- Discover the connected Picsart tools and use their actual names and schemas.\n The `picsart_*` names in the workflow identify tools, not a fixed host namespace.\n If the connection is missing, explain that Picsart must be connected; continue\n script and shot planning when possible. Never invent tool results or renders.\n- Read board decisions from the current user message and attached widget context.\n Use `read_widget_context` only if the host actually exposes that tool. Do not\n assume ChatGPT has Claude's context reader. Treat a board's initial tool result\n and unsent widget state as previews, never as user approval. If a submitted\n decision has no accessible payload, explain briefly and use the text fallback\n to collect the missing decision; do not guess or repeat charged operations.\n- Use the host's available question interface or one concise conversational\n question for preset choices.\n- UI rendering and delivery of feedback are the remote MCP server's responsibility.\n If a board is unavailable, present its relevant options in text and record the\n user's selection using the same documented feedback fields. Do not claim that\n a plugin manifest makes Claude-specific widgets compatible with ChatGPT.\n- Save `film.json` and artifacts in the user's writable project workspace, not\n the installed plugin directory. If persistent file tools are unavailable,\n keep a structured project checkpoint in the conversation and provide it for\n download when the host supports files. Never claim a file was saved without\n confirmation from a file tool.\n- Honor the user's current instructions and already authorized scope. Preserve\n quoted spend limits and production locks; do not infer authorization from a\n preview, a timeout, or a connection being installed. A timed-out charged call\n needs a status check before considering a retry.\n- This package holds six film skills (`film`, `film-development`, `film-assets`, `film-scenes`, `film-edit`, `film-finishing`) and three motion skills (`motion`, `motion-import`, `motion-design`). Route between them directly.\n- `motion-import` reads a design's layers through the Figma app's tools. If Figma is not connected in this host, use its flat-frame fallback and say so once.\n\n\n# Development — look, story, model, video plan, shot list\n\nEverything in this skill is **free** (except optional candidate stills, which are\nimage-cheap). It is also where the film is actually made: a director who walks\nout of Stage 1 with a tight bible spends half as much in Stage 6. Do not rush\nit because nothing here renders.\n\n## Stage 1 — six steps, in this order, always (2026-09-09)\n\nThe order is the rule. Say where you are in it when a step opens — *\"Stage 1 ·\nstep 3 of 6 — the story, for your yes\"* — and when the user asks about the\norder, quote the step, never answer from memory.\n\n1. **The idea.** Ask for a premise only if none was supplied. Pre-set duration\n and frame on the look console from the user's words or stated destination;\n otherwise use 90 seconds and this plugin's existing 16:9 default. The user\n changes them on the console. Propose the ending in the story rather than\n asking another intake question.\n\n2. **The look console — before a word of story is written.** Open\n `picsart_film_setup` with `suggested.selections`: genre, tone, `palette: \"auto\"`,\n ratio and duration from step 1, camera and lens family. Choose a colour scheme\n and hue only when the idea names a colour; otherwise leave `scheme`, `hue`\n and `hueDegrees` out. When pre-setting a hue, include its wheel angle from\n `../film/references/PRESETS-LOOKS.md`. Give one line of why per inference.\n Focal length, aperture, light and an individual shot's palette belong on\n the shot list. The setup locks the style prefix, lens family and colour\n scheme before the story or shot list is written. A tone seeds only camera\n and lens; colour changes preserve the tone.\n The user's submitted Lock is the look's lock. Store the compiled prefix\n verbatim in `bible.stylePrefix` and the selections in `bible.setup`, keeping\n `hue` and `hueDegrees` exactly as returned. The feedback and per-tool compile\n mappings are in `../film/references/WIDGET-FEEDBACK.md`.\n\n3. **The story — one plain document, shown in chat, for the yes.** Written for\n the locked genre, in the viewer's words (`references/DRAMATURGY.md`, *The\n story*): ten lines at the top — who, where, what each wants, what stands\n in the way, what happens, which beat the film is built toward, how it ends,\n the one thing the viewer is left with, what the user's brief fixed (quoted,\n never assumed), the genre — and then **every scene as what we see and hear,\n in order**: one plain paragraph per scene, the lines in quotes, ending with\n its length in seconds. No camera words, no film vocabulary, no production\n notes: a reader who knows nothing about film reads it as the film. Inside a\n stated identity budget (\"this fits two faces and one place — here it is\n inside that\"), inferred from the idea, never asked. The user says yes, or\n says what to change; a change is a rewritten paragraph in the next message,\n and the yes comes on the rewritten text. Recorded: the ten lines as\n `film.json.story`, the scenes as `docs/story.md`. *(This replaces the\n scenario-plus-script pair of the morning of 2026-09-09, and the script file\n nobody saw on 2026-09-08: that script went to `docs/script.md` at 11:10\n unshown, the user first read the story as a plain paragraph at 18:01, and\n had real notes on it within a minute.)*\n4. **The video model.** Read `picsart_model_catalog` (`mode: \"video\"`,\n `purpose: \"generate\"`), filter by the console's ratio and by native\n multi-shot at the finish resolution, and put two or three survivors on\n `picsart_model_choice` with exactly one badged `recommended` (the `film`\n model policy carries the filter). Record `film.json.model.id`,\n `shoot.ceilingSec` and `shoot.editModel`. The pick belongs here because the\n video plan cannot be written without it: the model's ceiling is what fills\n each video, its `imageUrls` max is the reference budget, and its video-edit\n sibling is the repair path.\n5. **The video plan — reviewed with the shot list.** Against the selected\n model's live ceiling, assign each shot to a run and write one sentence\n explaining each run boundary, including boundaries inside a scene. Save\n the run ids, scenes, `cutSec`, `genSec` and `join` in `film.json.runs[]`.\n Present the plan once on `picsart_shotlist_board`: each shot carries `run`\n and the opening shot carries `join`; use the board's `note` for the concise\n run-length summary. This tool has no top-level `runs` input. The board's\n submission approves the plan and shot list together. Text fallback shows\n the same grouping and asks one lock/change question.\n\n6. **The shot list — one board, all scenes, camera only.** Below.\n\n**Combine story approval and model selection where the host allows it.**\nShow the story and `picsart_model_choice` in the same response, with two or\nthree live-catalog candidates. Say explicitly that choosing one accepts this\nstory and selects the model; a story note reopens the paragraph first. If the\nhost does not deliver a combined decision, collect the missing approval\nexplicitly. This reduces turns without inferring consent from a preview.\n\n**One rule with the order: if the genre changes at any point** — the user\nre-opens the console, or says \"make it an action film\" — **the story is\nrewritten first**, before any picture or shot list moves. A drama script under\nan action lock is what a whole day was lost to on 2026-09-08.\n\n**A story note is answered with a paragraph, never a board (2026-09-09).** When\nthe user's note is about what happens — who does what, who has what, where\nthey are, what is said — rewrite that scene's paragraph in the story, show it,\nget the yes, then rebuild the cards it touches and re-open the board once.\nThis holds at every stage: on the board, after a picture, after a video. On\n2026-09-08 \"Nen goes and grabs the water\" was answered with nine shot-list\nboards over three hours, one of them for the wrong scene; the same note is a\none-minute rewrite of one paragraph.\n\n**The identity budget never buys silence.** Do not offer a mute character, a\nwordless treatment, or a voice-over-instead-of-dialogue version as a saving or a\nsafety measure: the film's video model does native lip-synced dialogue in-shot,\nso people talk. Silence is a directing choice the story earns, and if the user\nasks for it, give it to them gladly.\n\n**Action is not a cost flag, and neither is anything else in the story.** Until\n2026-09-09 the breakdown flagged action, crowds, water and fire as \"complex\"\nand proposed a cheap rewrite beside each; it is how a film about two women\nfighting for water was written as \"grip and weight, never blows\" and stayed\nthat way for seven hours. The video model was chosen for the film's genre; the\nstory decides what is in it. The one thing still written around is in-frame\ntext (signs, letters) — models write text poorly, so it is added in the edit,\nnever generated in-shot.\n\n**When the user brings their own script**, keep it: it is the story document,\nand step 3 is already done. Read it once for the two things the medium cannot\ndo — in-frame text, a character's age as a number — and say them in one line\neach as suggestions. Nothing else is reviewed; the video model and the video\nplan follow.\n\n## The shot list\n\n**The board approves camera (2026-09-09).** It opens once, after the story and\nthe selected model are approved; this board also approves the video plan. What the user changes on it is camera — size,\nmovement, lens, light, colour — and seconds, and whatever they change is\nwritten into that shot's block, never lost\n(`../film-scenes/references/PROMPT-BLOCKS.md`, Part 2, *The card's own picks*,\n2026-09-10); a card's action and line are copied from\nthe story's paragraph and are never rewritten on the card. A note about what\nhappens is a story note (above): the paragraph first, then the board rebuilt\nfrom it. Never open a board to show a story — on 2026-09-08 the board was\nwhere the user read the story, and every story change cost a board.\n\nTurn the story into two lists, per `references/BREAKDOWN.md` (load it when\nactually breaking down):\n\n1. **The shot cards** — every shot as a card: scene and shot id, location, time\n of day, who is in frame by tag, props, the action in one to three\n sentences, the line verbatim or a dash, seconds; who stands where relative\n to the camera; what the character feels; the camera — size, movement, lens,\n angle. These are not notes for a DP — they are future prompt lines.\n2. **The asset list** — people, places, props: every character, every place\n the film plays in, the props the story is about, each with a future `@tag`.\n A durable change the story does to a place or a person — the room after the\n fire, the shirt once it is bloodied — is a row too, because the model\n generates the clean version otherwise; anything that resets between scenes\n is not. Nothing is tiered and nothing is flagged: every character gets the\n handbook's three pictures, every prop a plate, every place its pictures\n from the scene (`film-assets`, `film-scenes` step 3).\n\n**Shot length is a habit, not a gate.** Dramatic shots run 3–8 seconds, action\nshorter, a reaction shorter still — the handbook's *\"Use the duration based on\nwhat the shot needs.\"* A shot over 8 seconds carries its reason in one line on\nthe card and nothing else. Never lengthen a card to fill a video; the video is\nfilled with short shots (`film-scenes`, *The run pass*).\n\nPresent the shotlist through `picsart_shotlist_board` — **one call carrying\nALL scenes** (`scenes: [{id, slug, shots}, …]`), never one board per scene:\nthe board's single approval covers exactly the scenes passed (its feedback\nnames them in `scope`), which makes \"one confirmation covers a set\" mechanical\ninstead of a guess. Pass `model`. Seed every pill from what is already decided\n— the scene's light, the focal length the shot size calls for, and the camera\nmove. Seed `palette: \"auto\"` unless the shot needs its own colour; any selected\npalette must fit the film's scheme and hue. Surface compiler conflict notes\nbefore dispatch. Pass every shot's lens as `fov` and its aperture to the prompt\ncompiler, whether seeded or changed, and include each non-auto palette's Colour\nline. The user touches only what they disagree with. Without the server board, a\nmarkdown table per scene with one \"anything to change in any scene?\" at the\nend.\n\n**Call the board and say nothing.** It already carries its own instruction —\neach scene's header reads \"N shots · Xs — type straight into any shot\" — and the\npreset chips are visible pickers that show film language rather than asking for\nit. If a pass genuinely needs framing the board does not already give, pass it\nas the board's `note`, not as a message. Feedback per\n`../film/references/WIDGET-FEEDBACK.md` — an `approved` verdict may carry\nstaged edits (apply them first), cell edits apply to the cards, `removed`\nshots leave the scene. The board returns the fields it owns — action, line,\ntags, values, order, cuts — and those replace yours wholesale; what it never\ncarried (`design`, `refs`, `run`, `trim`) stays on the shot by id. A changed\naction that tells a different story than the story's paragraph is a story note:\nthe paragraph is rewritten and shown first, never straight into a prompt, and\nnever answered with another board.\n\nSum running time by the cards' seconds. A script page is roughly a minute, but\nthe seconds column is the number that counts.\n\n## Stages 2 and 3 — folded into Stage 1 (2026-09-10)\n\n**References are optional inspiration, not a stage.** The look is locked on the\nconsole at Stage 1 step 2, and nothing gathered afterwards reopens it. When\nthe user has images — their own uploads (`picsart_media_upload` opens the\nupload panel), film stills they name — **look at each one before captioning\nit**: export a 1280 px JPEG with `picsart_media_export` and view it\n(`picsart_view_image`, free); a URL is a link, not pixels; never web-fetch an\nimage URL and never caption a reference you have not seen. Every image gets a\ncaption, *what exactly we take from it* (\"light from the window\", \"jacket\nfit\"), and the captions feed the descriptors at `film-assets` step 1.\nAnti-references — \"like this: never\" — become bans written into prompts in\npositive form. Counts and categories, for the user who wants a board, are in\n`references/VISUAL-BIBLE.md`. **This spends nothing**: a generated moodboard\nis never an automatic charge, and the first scene picture doubles as the tone\nmoodboard.\n\n**A photo of the thing itself is not a reference — it is the asset\n(2026-09-04).** When the upload is the real person, the real product, the real\nplace the film is about, save it exactly as sent (a Drive copy, probe-matched\nbyte for byte) the moment it arrives; it registers locked at Stage 4 without\na board, and goes to the video model untouched as IMAGE 1 — `film-assets`,\n*When the user brings the asset*. Decide by looking: film stills, artwork and\nmood photos are references and never reach `imageUrls`; a person, product or\nplace is identity. Ask only when an image genuinely reads both ways, one short\nquestion.\n\n**The visual bible is the console's output, and the console's Lock is its\nlock.** `bible.stylePrefix` is compiled by `picsart_film_setup` at step 2 and\nstored verbatim; there is no later lock and no prose put in front of the user\nto approve — they see the prefix's effect on the sheets. The text portraits\n(appearance, age, build, costume by item, movement, posture) and the location\ndescriptions (architecture, textures, light, condition, atmosphere, palette)\nare written at `film-assets` step 1, when the sheets are about to be\ngenerated, and approved with the sheets. Design so the look **rhymes with the\ncharacter**: every visual choice — scar, fabric, colour, the state of the shoes\n— restates who this person is and what the story does to them; a detail that\nsays nothing is a detail the model will vary freely, and a detail with two\nreadings (\"dark, bleached at the crown\") is resolved by the model inventing a\nthird. If the genre moves later, the story is rewritten first (Stage 1's rule)\nand the console is re-run. The story's period is **not** one of the console's\ncontrols — it lives in the location descriptors and the scene context, never\nin a look preset. A film with two visual worlds runs the setup once per world.\n\n*(Until 2026-09-10 Stage 2 gathered boards and Stage 3 \"locked\" a bible the\nconsole had already locked, both after the shot list had been approved with\nits camera; the docs gave four answers to when the look locked — step 2, a\nStage 3 gate, a Stage 3 gate item, the Stage 4 sheet approval. The stage\nnumbers stay so nothing downstream renumbers; the work moved up into step 2.)*\n\n**The voice policy is `native`, and there is nothing to decide (2026-08-27).**\nEach shot's generated voice is the performance. Record\n`film.json.voicePolicy: \"native\"`. Every speaking character also gets a canonical\nvoice description on its asset sheet, chosen without an extra user question and\ncopied verbatim into every speaking prompt; see\n`../film-assets/references/ASSET-SHEETS.md`. Native does not mean unspecified.\nDescription consistency reduces drift but does not guarantee an identical voice.\nReview recurring speakers across video edges; a finishing bed can smooth room\ntone and level changes, not a changed speaker identity. A separate voice pass is\noptional, not a prerequisite for writing or generating dialogue.\n\n**Optional gate-out deliverable: the pitch package.** Everything a pitch needs\nalready exists at this lock — assemble `docs/pitch.md` (logline, the bible's\ntone and style prefix, cast portraits, key boards, planned runtime and budget\nrange) referencing the Drive-saved copies of the boards, never bare CDN links\n(they expire). One free assembly step; offer it, don't push it.\n\nOn a short film **one batch is the whole asset list**: stills are cheap, so\nStage 4 generates every picture in a single pass and the user approves all of\nthem on one board (see `film-assets`). Splitting into production blocks is for\ngenuinely large lists (≳15 assets) or when the user asks — never the default.\n\n## Gate out (to `film-assets`)\n\nThe look locked on the console · the story and the video plan with their yes ·\nthe video model recorded · the shot list approved. Update `film.json`\n(`bible`, `gates`) silently and route straight on to `film-assets`, in the\nsame turn.\n\n## Costs\n\n| Free | Charged |\n|---|---|\n| interview, console, story, video plan, shotlist board, captions, all text | candidate stills via `picsart_generate` (image rates — a fraction of video; still preflight and mention it) |\n\n## Traps\n\n- **Front-loading the story before the console.** A story written as a drama,\n then locked as action, is two films; the order above exists because this\n happened (2026-09-08).\n- **A story the user never read.** A one-word yes on a table of beats is not a\n yes on the film; the story is shown as paragraphs and the yes comes on those.\n- **Answering an order question from memory.** Quote the numbered step.\n- **Answering a story note with a board.** The paragraph is rewritten first;\n the board is rebuilt from it once.\n- **Writing the story in film words** — \"turn\", \"payoff\", \"beat\", \"OTS\", \"grip\n and weight, never blows\". The story is the one artifact that exists to be\n judged as a film by someone who is not making it; camera belongs on the\n card and production notes in `film.json`, so a story written in production\n terms cannot be judged for what it is. (On 2026-09-08 the story became\n readable only at hour seven, as a plain paragraph.)\n- **Writing the fight soft to protect the render.** Nobody measured that; the\n genre decides, and the model was chosen for it.\n- Skipping the durable-change rows (\"we'll handle the wrecked room later\") —\n the missing picture surfaces mid-production.\n- References without captions, or all beauty and no light/optics — light and\n optics are what the model follows best.\n- Filing the user's photo of the actual person as one more mood reference and\n generating a lookalike from a descriptor. The photo is the asset, saved\n untouched, first in every run.\n- Writing the visual system as taste (\"moody, cinematic\") instead of prompt-ready\n words. If it cannot be pasted into a prompt, it is not locked yet.\n"
}SHA-256 of public snapshot: 4dec0fe4f1e45908aec8ca37d77018fafb647ae11c4493dca7feee080e9bb3e3