{
  "for_llm": "This is the index page for LeadLift Marketing's Editing Pipeline (a coded client OS plus 4 Make scenarios). The one unit page is 01.html with its own manifest 01.manifest.json. Use this page for the whole line, then open the unit for detail. 'pending' lists parts that run but have no walkthrough. 'not_proven' is dated. 'access' says who can open what, how to add or remove a person, what is shared, the Claude connector and where the code lives. Values marked OPEN are unconfirmed: do not state them as fact.",
  "system": "Editing Pipeline",
  "client": "LeadLift Marketing",
  "owner": "Fidel Guajardo (LeadLift founder)",
  "flow": "Onboarding (makes Raw Footage + Edited folders, client channel) | Scripts board (approved script -> waiting card) -> Footage scan (Modal cron 6am/6pm Central, 'Scan for new footage' button, scan-raw-footage skill -> Make 6583520) -> 0 Footage Received (one card per client upload; Make 6585510 moves files into a dated folder) -> 10 To Edit (#editor-updates; Make 6585512 makes the Edited folder + Trash) -> 20 Internal Review (#creative-review) -> [19 Redo Requested (#amendments) | 30 Client Review (client channel, review link; only if clients.client_reviews_edits and not skip_client_review) -> 29 Client Changes (#amendments)] -> 40 Ready To Launch (#approved-creative, ticks the launch) -> 100 Live In Ad Manager (by hand). Merge (Make 6585511) at 0 or 10. Board digest (Box 9, pending) reads the board.",
  "units": [
    {
      "index": 1,
      "name": "Editing pipeline: footage to live ad",
      "file": "01.html",
      "manifest": "01.manifest.json",
      "code": {
        "repo": "https://github.com/Icarus-Growth/leadlift-os",
        "stage": "os/process/ll-editing-pipeline.md",
        "boxes": [
          "1",
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "10",
          "11",
          "12"
        ]
      },
      "scenarios": [
        6583520,
        6585510,
        6585511,
        6585512
      ]
    }
  ],
  "neighbours": [
    {
      "name": "Onboarding",
      "site": "../onboarding/",
      "why": "makes the client's Drive folder tree (Raw Footage, Edited) and the client Slack channel with the Raw Footage bookmark"
    },
    {
      "name": "OS Walkthrough (the app, the Scripts board)",
      "site": "../os-walkthrough/",
      "why": "a script reaching 100 - Approved makes a card waiting for footage"
    }
  ],
  "pending": [
    "Board digest (stage Box 9): Modal cron board_digest 0 15 * * 0,1,3,5 America/Chicago; uploads one HTML file to #creative-management (what changed, act today, by client); POST /editing/digest runs it by hand (bearer only, no button, no skill). Runs today; no walkthrough yet."
  ],
  "not_proven_as_of": "2026-10-12",
  "not_proven": [
    "No real client has drive_raw_footage_folder_id set (7 of 58 clients have one, all test clients, per 11 Oct notes); the scan reads test clients only.",
    "Linking real folders before the first-scan change makes cards from files created in the last 14 days (FIRST_SCAN_DAYS) and posts them in Slack.",
    "Make Core plan: 10,000 operations a month (565 used by 11 Oct, resets on the 25th). A scan costs about 5 operations plus 1 per folder, twice a day.",
    "New cards default to Paulo as editor and Fidel as reviewer (server new_card and the app's 'Log new footage'); a hired editor gets no new cards until the default changes.",
    "A Modal job stopped by its own timeout reports nothing.",
    "The dated folder, the Edited folder and Merge ran only on test data."
  ],
  "access": {
    "people": [
      {
        "who": "Fidel Guajardo",
        "role": "Founder",
        "can_open": [
          "the app",
          "Slack (workspace admin)",
          "Make (owner)",
          "Google Drive (owns every client folder)",
          "Modal (workspace owner)"
        ],
        "sign_in": "emailed code",
        "connector_role": "admin (only link today)"
      },
      {
        "who": "Paulo",
        "role": "CSM, default editor",
        "can_open": [
          "the app",
          "Slack",
          "client folders in Drive (edit)"
        ],
        "sign_in": "emailed code",
        "connector_role": "none yet"
      },
      {
        "who": "Sterlin Phillips",
        "role": "Head of Media Buying",
        "can_open": [
          "the app",
          "Slack",
          "client folders in Drive (edit)"
        ],
        "sign_in": "emailed code",
        "connector_role": "none yet",
        "note": "no Slack id on the Team page"
      },
      {
        "who": "Chris Brown",
        "role": "Media Buyer",
        "can_open": [
          "the app",
          "Slack",
          "client folders in Drive (edit)"
        ],
        "sign_in": "emailed code",
        "connector_role": "none yet"
      },
      {
        "who": "Jo\u00e3o Marcos Cascione",
        "role": "Media Buyer",
        "can_open": [
          "the app",
          "Slack",
          "client folders in Drive (edit)"
        ],
        "sign_in": "emailed code",
        "connector_role": "none yet"
      },
      {
        "who": "Icarus Growth (Sheni Salami)",
        "role": "Builder and support",
        "can_open": [
          "the app (2 sign-in list addresses)",
          "GitHub (admin)",
          "Make (admin seat + API key)",
          "server releases",
          "every client folder (icarusgrowth.com domain share, edit)"
        ],
        "sign_in": "emailed code",
        "connector_role": "makes connector links today"
      }
    ],
    "counts": {
      "team_active": 5,
      "sign_in_allow_list": 2,
      "allow_list_holder": "Icarus Growth only",
      "github": "Sheni (admin) + 3 Icarus Growth developers (read); nobody at LeadLift",
      "signed_in_leadlift_people_as_of_2026_10_11": 0
    },
    "sign_in": {
      "method": "6-digit emailed code, no passwords",
      "allowed": [
        "Active team member with an email",
        "app_access allow list"
      ],
      "add_outside_address": "a developer adds it to the sign-in allow list"
    },
    "add_member": [
      "Team page: name, email, job title, Slack id, client limit, Active",
      "person signs in with the emailed code",
      "invite to LeadLift Slack",
      "add to the editing channels (#new-creative, #editor-updates, #creative-review, #amendments, #approved-creative, #pipeline-errors, #creative-management)",
      "Fidel shares the Drive Clients folder (edit)",
      "new client channels: the onboarding run invites every Active team member with a Slack id (not a fixed list); older client channels by hand",
      "new editor: ask Claude to change the default editor (editing.PAULO on the server, defaultEditorId in the app)",
      "connector: an admin asks for a personal link"
    ],
    "remove_member": [
      "Team page -> Inactive (sign-in and connector stop within 60 s)",
      "remove from Slack",
      "remove from the Drive Clients folder",
      "remove direct shares on each client folder (Drive does not do it)",
      "default editor or reviewer: ask Claude to change it",
      "remove GitHub access"
    ],
    "sharing": [
      {
        "what": "client Raw Footage folder",
        "who": "anyone with the link can add files (Sheni, 11 Oct); bookmarked in the client channel",
        "revoke": "Fidel changes Drive sharing; tell Icarus Growth first"
      },
      {
        "what": "client folder incl. Edited",
        "who": "client email: view on the client folder, edit on Raw Footage and Lead Sheet (Make 6585401 Give Edit Access)",
        "revoke": "Fidel removes the client in Drive"
      },
      {
        "what": "ad review link",
        "who": "posted in the client channel at 30 - Client Review; one batch; no sign-in; anyone with it can answer",
        "revoke": "acts only while the card is at 30 - Client Review"
      },
      {
        "what": "client Slack channel",
        "who": "the client via Slack Connect",
        "revoke": "remove the client; never archive or delete the channel or remove the bot (client review posts stop, #sentry reports it); renaming is safe, the system posts by channel id"
      },
      {
        "what": "icarusgrowth.com domain share",
        "who": "edit on every client folder",
        "revoke": "Icarus Growth removes it at the end of the handover"
      },
      {
        "what": "this documentation site",
        "who": "anyone with the address",
        "revoke": "Icarus Growth takes it down"
      }
    ],
    "connector": {
      "exists": true,
      "what": "read boards, clients, team, calls; admin can log, find, change and move editing cards after approving each change",
      "roles": {
        "admin": [
          "reads everything the app shows",
          "changes after per-change approval, logged under the person"
        ],
        "member": [
          "read only"
        ]
      },
      "who_has_one": "Fidel only",
      "get_link": "Icarus Growth today, the named owner after handover; shown once",
      "add_steps": [
        "Claude -> Settings -> Connectors",
        "Add custom connector",
        "Name it LeadLift OS",
        "Paste the personal link and save"
      ],
      "revoke": "Team page -> Inactive (stops within 60 s), or a developer replaces the link",
      "editing_actions_used_live": false
    },
    "code": {
      "exists": true,
      "repo": "Icarus-Growth/leadlift-os (private)",
      "owner_today": "Icarus Growth (Sheni Salami admin; 3 developers read)",
      "owner_after": "OPEN: CHANGE_GUIDE.md owner line is empty; not stated on the page",
      "server_note": "Modal app leadlift-os already runs in Fidel's workspace; releases run by Icarus Growth",
      "move_steps": [
        "LeadLift makes or picks a GitHub org",
        "Icarus Growth transfers the repo (history stays)",
        "named owner gets a Modal release login",
        "do not move or rename the server: 3 database rules hold its address",
        "checks (lint, tests) run with no secrets",
        "owner name + email in CHANGE_GUIDE.md",
        "re-add the Claude Code plugin from the new address"
      ],
      "checks": "lint, test",
      "make_blueprints_in_repo": [
        "automations/make/footage-scan/blueprint.json",
        "automations/make/footage-move/blueprint.json",
        "automations/make/footage-merge/blueprint.json",
        "automations/make/edited-folder/blueprint.json"
      ]
    },
    "accounts": [
      {
        "tool": "Modal",
        "role": "server, schedules, web addresses",
        "owner": "Fidel's workspace; releases by Icarus Growth",
        "secrets": [
          "LEADLIFT_OS_API_URL",
          "LEADLIFT_OS_URL",
          "ONBOARDING_LEG_SECRET",
          "SUPABASE_URL",
          "SUPABASE_SECRET_KEY",
          "SUPABASE_PUBLISHABLE_KEY",
          "SLACK_BOT_TOKEN",
          "SLACK_CHANNEL_NEW_CREATIVE",
          "SLACK_CHANNEL_EDITOR_UPDATES",
          "SLACK_CHANNEL_CREATIVE_REVIEW",
          "SLACK_CHANNEL_AMENDMENTS",
          "SLACK_CHANNEL_APPROVED_CREATIVE",
          "SLACK_CHANNEL_PIPELINE_ERRORS",
          "SLACK_CHANNEL_CREATIVE_MANAGEMENT",
          "SLACK_CHANNEL_SENTRY",
          "MAKE_HOOK_FOOTAGE_SCAN",
          "MAKE_HOOK_FOOTAGE_MOVE",
          "MAKE_HOOK_FOOTAGE_MERGE",
          "MAKE_HOOK_EDITED_FOLDER"
        ]
      },
      {
        "tool": "Make",
        "role": "4 footage scenarios (6583520, 6585510, 6585511, 6585512)",
        "owner": "Fidel's account, org Leadlift, Core plan 10,000 ops/month; Icarus Growth API key; Sheni admin seat"
      },
      {
        "tool": "Google Drive",
        "role": "client folders and footage",
        "owner": "Fidel's Google account; Make Drive connection expires 11 Apr 2027"
      },
      {
        "tool": "Slack",
        "role": "every editing post",
        "owner": "Fidel workspace admin; Slack app set up by Icarus Growth",
        "secrets": [
          "SLACK_BOT_TOKEN",
          "SLACK_SIGNING_SECRET"
        ]
      },
      {
        "tool": "Supabase",
        "role": "database and sign-in",
        "owner": "OPEN"
      },
      {
        "tool": "Cloudflare",
        "role": "hosts the app",
        "owner": "OPEN; Icarus Growth holds a release token"
      },
      {
        "tool": "Resend",
        "role": "sign-in codes",
        "owner": "OPEN"
      },
      {
        "tool": "GitHub",
        "role": "the code",
        "owner": "Icarus Growth today; moves to LeadLift at handover"
      }
    ],
    "secrets_policy": "Names only. Values live in the Modal secret store and in each tool's own connection settings."
  }
}