@keepylabs/cutroom 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -15,11 +15,12 @@ Everything lives in the Cutroom folder in your home folder. Open Claude Code the
15
15
  Cutroom/
16
16
  CLAUDE.md how your studio works: approvals, rules
17
17
  brand/ your colors, logo, frames you love
18
- references/ reel breakdowns and creator teardowns
18
+ references/ your library: reel breakdowns and creator teardowns
19
19
  inbox/ drop new raw videos here
20
20
  videos/
21
21
  2026-11-01-topic/
22
22
  raw/ this video's footage
23
+ references/ what this video copies, with a why-it-works note
23
24
  script.md what you say, word for word
24
25
  facts.md every number on screen, with its source
25
26
  plan.md the edit plan and its status
package/cutroom.mjs CHANGED
@@ -21788,7 +21788,7 @@ ${authorize}
21788
21788
  }
21789
21789
 
21790
21790
  // src/community/local/tools.ts
21791
- var VERSION = "0.7.0";
21791
+ var VERSION = "0.7.1";
21792
21792
  var GATEWAY = () => (process.env.CUTROOM_GATEWAY || "https://keepylabs.com/api/cutroom").replace(/\/$/, "");
21793
21793
  var HOME = () => process.env.CUTROOM_HOME || join3(homedir(), "Cutroom");
21794
21794
  async function call(op, body = {}, fetchImpl = fetch) {
@@ -22057,13 +22057,14 @@ Everything for my videos lives in this folder. Open Claude Code here so it can s
22057
22057
  - inbox/: drop new raw videos here. When a video starts, its clip moves into that video's raw/ folder.
22058
22058
  - videos/<date>-<topic>/: one folder per video, with everything for it:
22059
22059
  - raw/: the footage
22060
+ - references/: only what this video copies (Pinterest images, the reel it matches), each with a one-line "why it works" in references/notes.md
22060
22061
  - script.md: what I say, word for word
22061
22062
  - facts.md: every number or claim on screen, with its source
22062
22063
  - plan.md: the edit plan and a status line (footage ready, plan ready, preview, final, posted)
22063
22064
  - renders/: previews and the final export
22064
22065
  - checks.md: what QA found and what got fixed
22065
22066
  - brand/: my colors (brand.json), logo and a few frames I love.
22066
- - references/: reels and creators I study, each with a breakdown of why it works.
22067
+ - references/: my library of reels and creators I study across videos, each with a breakdown of why it works.
22067
22068
 
22068
22069
  ## Rules
22069
22070
  - Three stops: I approve the script, then the plan, then the preview. Nothing final renders before that.
@@ -22119,7 +22120,9 @@ ${plan}
22119
22120
  `);
22120
22121
  }
22121
22122
  function startVideoNotes(folder, transcript) {
22122
- const script = join4(folder, "script.md"), facts = join4(folder, "facts.md");
22123
+ const script = join4(folder, "script.md"), facts = join4(folder, "facts.md"), notes = join4(folder, "references", "notes.md");
22124
+ mkdirSync4(join4(folder, "references"), { recursive: true });
22125
+ if (!existsSync3(notes)) writeFileSync3(notes, "# References for this video\n\nWhat this video copies and why it works, one line each.\n\n");
22123
22126
  if (!existsSync3(script)) writeFileSync3(script, `# Script
22124
22127
 
22125
22128
  What I say, word for word (from the footage; fix any misheard words here).
@@ -22204,7 +22207,7 @@ ${meta2.error ?? tail(t.stderr)}`);
22204
22207
  pauses_removed_s: project.removed_s,
22205
22208
  ...landscape ? { warning: "This video is landscape (wide). Cutroom crops the middle of it to make it vertical, so anything off-center gets cut, and an already-edited video (split screen, titles, captions burned in) will look wrong. Tell the user plainly and ask for the raw vertical take of them talking; continue only if they say this one is fine." } : {},
22206
22209
  transcript: words.map((w) => `${w.t.toFixed(2)} ${w.w}`).join("\n"),
22207
- next: "Check the transcript for misheard words (pass them as fixes). Then plan: list_styles, get_method('edit_plan') and follow it, then plan_reel to show the storyboard. Nothing renders until the user says go."
22210
+ next: "Check the transcript for misheard words (pass them as fixes). References for this video go in its references/ folder. Then plan: list_styles, get_method('edit_plan') and follow it, then plan_reel to show the storyboard. Nothing renders until the user says go."
22208
22211
  };
22209
22212
  }
22210
22213
  async function ensureFonts(work) {
@@ -22508,7 +22511,7 @@ Before a first render: show_brand; if none, offer set_brand (from colors, a webs
22508
22511
 
22509
22512
  QA flags are spots to check: look at each flagged frame yourself and say which are real problems (with the fix) and which are the design.
22510
22513
 
22511
- Their studio is the Cutroom folder in their home folder (cutroom_doctor returns the path): inbox/ for new raw videos (look there first when they say "my video" without a path), videos/<date>-<topic>/ with everything for one video (raw/, script.md, facts.md, plan.md with its status line, renders/, checks.md), brand/, references/ for breakdowns and teardowns, and CLAUDE.md with their rules. Put every number shown on screen in that video's facts.md with its source; when QA finds a real mistake, offer to add a rule to their CLAUDE.md. To list videos or what's unfinished, read the status lines in videos/*/plan.md. Other creators' reels are for study only: never reuse their words, footage or branding.`;
22514
+ Their studio is the Cutroom folder in their home folder (cutroom_doctor returns the path): inbox/ for new raw videos (look there first when they say "my video" without a path), videos/<date>-<topic>/ with everything for one video (raw/, references/, script.md, facts.md, plan.md with its status line, renders/, checks.md), brand/, references/ as the library for breakdowns and teardowns, and CLAUDE.md with their rules. When they give a reference for one video (an image, a link, a reel to match), save it in that video's references/ and add a line to its references/notes.md saying what it is and why it works; pictures for plan_reel and render_reel can come from there. breakdown_reel and creator_teardown still go to the top-level references/ library. Put every number shown on screen in that video's facts.md with its source; when QA finds a real mistake, offer to add a rule to their CLAUDE.md. To list videos or what's unfinished, read the status lines in videos/*/plan.md. Other creators' reels are for study only: never reuse their words, footage or branding.`;
22512
22515
  await serveStdio(() => {
22513
22516
  const server = new McpServer({ name: "cutroom", version: VERSION }, { instructions: INSTRUCTIONS });
22514
22517
  server.registerTool("cutroom_doctor", {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keepylabs/cutroom",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Cutroom for Claude Code: hooks and scripts with scoring, reel breakdowns, creator teardowns, and finishing your own videos with QA. Sign in with your Keepy Labs membership on Whop.",
5
5
  "type": "module",
6
6
  "bin": {