{"id":51091292,"url":"https://github.com/papperrollinggery/ad-creative-orchestrator","last_synced_at":"2026-06-24T02:30:38.044Z","repository":{"id":361654359,"uuid":"1255274920","full_name":"papperrollinggery/ad-creative-orchestrator","owner":"papperrollinggery","description":"Local-first Codex workflow for advertising creative ops: briefs, references, image assets, PPT gates, and safe handoff.","archived":false,"fork":false,"pushed_at":"2026-05-31T16:54:59.000Z","size":658,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-31T18:19:03.860Z","etag":null,"topics":["advertising","ai-workflows","codex","creative-automation","creative-operations","image-generation","local-first","marketing","ppt","workflow"],"latest_commit_sha":null,"homepage":"https://github.com/papperrollinggery/ad-creative-orchestrator#readme","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/papperrollinggery.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-31T16:19:09.000Z","updated_at":"2026-05-31T16:55:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/papperrollinggery/ad-creative-orchestrator","commit_stats":null,"previous_names":["papperrollinggery/ad-creative-orchestrator"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/papperrollinggery/ad-creative-orchestrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fad-creative-orchestrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fad-creative-orchestrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fad-creative-orchestrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fad-creative-orchestrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/papperrollinggery","download_url":"https://codeload.github.com/papperrollinggery/ad-creative-orchestrator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/papperrollinggery%2Fad-creative-orchestrator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34714992,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advertising","ai-workflows","codex","creative-automation","creative-operations","image-generation","local-first","marketing","ppt","workflow"],"created_at":"2026-06-24T02:30:34.793Z","updated_at":"2026-06-24T02:30:38.039Z","avatar_url":"https://github.com/papperrollinggery.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ad Creative Orchestrator\n\n[![check](https://github.com/papperrollinggery/ad-creative-orchestrator/actions/workflows/check.yml/badge.svg)](https://github.com/papperrollinggery/ad-creative-orchestrator/actions/workflows/check.yml)\n[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\nLocal-first, Codex-first workflow for advertising creative operations.\n\nIt turns messy briefs, references, image assets, PPT drafts, review gates, and client-visible risk into a traceable project folder.\n\n## Quickstart\n\nFrom GitHub to a working demo:\n\n```bash\ngit clone https://github.com/papperrollinggery/ad-creative-orchestrator.git\ncd ad-creative-orchestrator\npython3 -m venv .venv\nsource .venv/bin/activate\npython -m pip install --upgrade pip\npython -m pip install .\nadco --version\nadco quickstart /tmp/adco-demo --no-open\nadco quickstart /tmp/adco-demo-json --no-open --json\nadco status /tmp/adco-demo\nadco next /tmp/adco-demo\nadco open-dashboard /tmp/adco-demo\nadco validate /tmp/adco-demo\nadco check\nadco release-status\n```\n\nExpected:\n\n```text\nQUICKSTART=PASS\nVALIDATION=PASS\nRUN_CHECKS=PASS\n```\n\nOpen:\n\n```text\n/tmp/adco-demo/AD-creative/handoff/操作台.html\n```\n\nFor a real project:\n\n```bash\nadco init \u003cproject_dir\u003e\nadco run \u003cproject_dir\u003e --material \u003cmaterial_file_or_folder\u003e\nadco open-dashboard \u003cproject_dir\u003e\nadco next \u003cproject_dir\u003e\n```\n\n## What You Get\n\n- `AD-creative/orchestrator/`: structured source of truth for requirements, gaps, work, artifacts, Gates, versions.\n- `AD-creative/handoff/`: non-developer dashboard, project board, pending decisions, client question script.\n- `adco quickstart`: one-command first run that creates a demo, validates it, opens the dashboard, and prints next steps.\n- `adco demo`: one-command local demo with no real client material.\n- `adco sample`: deterministic sample project generator.\n- `adco run`: register real materials and produce first-pass requirements, gaps, dashboard, and council report.\n- `adco status`: show validation, blockers, pending confirmations, and the next action.\n- `adco next`: print the next safe action and automation-friendly next status.\n- `adco release-status`: summarize local release readiness and remote blockers.\n- `adco docs`: print local docs, template, skill draft paths, and quickstart commands.\n- Gate commands for references, search, visual assets, PPT/client pack, and non-developer handoff.\n\n## Safety Model\n\n- Client-facing files are never sent automatically.\n- External uploads, paid/login/private account actions, global skill installs, and destructive overwrites require explicit human confirmation.\n- AI/generated images stay `internal_only` until visual QA and approval evidence exist.\n- Clean Gates without adversarial council evidence are downgraded to `PARTIAL_PASS`.\n\n当前目标不是做独立 SaaS，也不是直接安装全局 Skill。\n\n## Why This Exists\n\n广告创意项目最容易失控的地方不是“写几页方案”，而是客户资料、补充反馈、参考来源、AI 图、PPT、客户可见风险在多个版本里互相污染。\n\nAd Creative Orchestrator 把这些变成本地文件协议和 Gate：\n\n```text\n资料 → 需求/缺口 → 参考证据 → 创意方向 → 图片资产 → 客户审阅包 → PPT/Final Gate → 反馈合并\n```\n\n所有客户可见内容必须能追溯到 requirement / reference / asset / Gate。\n\n## Demo\n\n\u003cimg src=\"docs/assets/dashboard-desktop.png\" alt=\"Ad Creative Orchestrator desktop dashboard\" width=\"760\"\u003e\n\n\u003cimg src=\"docs/assets/dashboard-mobile.png\" alt=\"Ad Creative Orchestrator mobile dashboard\" width=\"260\"\u003e\n\n可复现命令见 `docs/operating/demo_script.md`。\n\n首跑输出见 `docs/assets/first-run-transcript.md`。\n\n## Install\n\n源码安装：\n\n```bash\npython3 -m pip install .\n```\n\n可用命令：\n\n```bash\nadco --help\nadco --version\nadco doctor\nadco doctor --json\nadco release-status\nadco release-status --json\nadco docs\nadco docs --json\nadco init \u003c项目目录\u003e\nadco-init \u003c项目目录\u003e\nadco quickstart [项目目录]\nadco quickstart [项目目录] --json\nadco demo [项目目录]\nadco sample \u003c项目目录\u003e\nadco support-bundle \u003c项目目录\u003e\nadco support-bundle \u003c项目目录\u003e --json\nadco open-dashboard \u003c项目目录\u003e\nadco audit-dashboard \u003c项目目录\u003e --render --json\nadco run \u003c项目目录\u003e --material \u003c资料文件或文件夹\u003e\nadco goal-plan \u003c项目目录\u003e --title \"\u003c目标标题\u003e\" --objective \"\u003c目标内容\u003e\"\nadco status \u003c项目目录\u003e\nadco status \u003c项目目录\u003e --json\nadco next \u003c项目目录\u003e\nadco next \u003c项目目录\u003e --json\nadco validate \u003c项目目录\u003e\nadco validate \u003c项目目录\u003e --json\nadco check\n```\n\n兼容入口仍保留：`adco-init`、`adco-check`、`adco-validate`。\n\n未安装时先执行：\n\n```bash\npython3 -m pip install .\n```\n\n当前目标：\n\n```text\n拿到客户资料后，Codex 能稳定完成：\nIntake → 缺口判断 → 搜索建议 → 任务拆分 → agent handoff → 参考包 → 创意方向 → 视觉/image_gen 规划 → 视觉审核 → 客户审阅包/SlideSpec → PPT Gate → 反馈合并 → Final Gate → Skill 草稿沉淀\n```\n\n## 当前可操作入口\n\n非开发者双击入口：\n\n```text\n启动广告创意项目.command\n```\n\n会弹出选择框：\n\n```text\n选择项目文件夹\n选择资料文件或资料文件夹\n填写本轮目标\n自动打开 AD-creative/handoff/操作台.html\n```\n\n命令行入口：\n\n```text\nadco run \u003c项目目录\u003e --material \u003c资料文件或文件夹\u003e\n```\n\n它会自动：\n\n```text\n初始化项目结构\n登记资料\n抽取 requirements / gaps / current_truth\n生成项目看板 / 待确认 / 客户追问\n生成 AD-creative/handoff/操作台.html\n生成可编辑 PPTX 草稿并检查可编辑文本层\n运行三方议会 readiness 审核\n运行 `adco validate`\n```\n\n项目本地 Skill 草稿：\n\n```text\nskill_drafts/ad-creative-orchestrator/SKILL.md\n```\n\n项目模板：\n\n```text\ntemplates/project/\n```\n\nMoncler 文件流样例：\n\n```text\nexamples/moncler_protocol_dry_run/\n```\n\n模拟真实客户项目：\n\n```text\nexamples/simulated_qingling_outdoor_launch/\n```\n\n操作手册：\n\n```text\ndocs/operating/install.md\ndocs/operating/demo_script.md\ndocs/operating/github_release_checklist.md\ndocs/operating/adoption_patterns.md\ndocs/operating/operating_manual.md\ndocs/operating/dual_lane_goal_delivery_workflow.md\ndocs/operating/dual_lane_goal_optimization_plan.md\ndocs/operating/open_source_release_plan.md\n```\n\n真实项目启动 runbook：\n\n```text\ndocs/operating/non_developer_quickstart.md\ndocs/operating/first_real_project_runbook.md\ndocs/operating/real_project_acceptance_criteria.md\ndocs/operating/authorization_policy.md\n```\n\n可操作性审核：\n\n```text\ndocs/reviews/non_developer_handoff_readiness_review.md\ndocs/reviews/operational_readiness_review.md\ndocs/reviews/simulated_project_trial_review.md\n```\n\nGitHub 协作：\n\n```text\n.github/workflows/check.yml\n.github/ISSUE_TEMPLATE/\n.github/pull_request_template.md\n```\n\n验证与操作工具：\n\n```text\nadco check\nadco --version\nadco doctor --json\nmake check\nmake dist-check\nmake release-check\nmake package-smoke\nadco doctor\nadco support-bundle \u003c项目目录\u003e\nadco support-bundle \u003c项目目录\u003e --json\nadco open-dashboard \u003c项目目录\u003e --no-open\nadco init \u003c项目目录\u003e\nadco demo \u003c项目目录\u003e --no-open\nadco status \u003c项目目录\u003e --json\nadco validate \u003c项目目录\u003e\nadco validate \u003c项目目录\u003e --json\nadco sample \u003c项目目录\u003e\nadco status \u003c项目目录\u003e\nadco goal-plan \u003c项目目录\u003e --title \u003c目标标题\u003e --objective \u003c目标内容\u003e\nadco intake \u003c项目目录\u003e\nadco add-reference \u003c项目目录\u003e --url \u003chttps链接\u003e --title \u003c标题\u003e\nadco search-quality-gate \u003c项目目录\u003e\nadco reference-pack-gate \u003c项目目录\u003e\nadco add-asset \u003c项目目录\u003e --file \u003c图片文件\u003e --slot-id \u003c槽位\u003e --requirement-id \u003c需求ID\u003e\nadco import-imagegen \u003c项目目录\u003e --slot-id \u003c槽位\u003e --selected\nadco visual-quality-gate \u003c项目目录\u003e\nadco export-pptx \u003c项目目录\u003e\nadco check-pptx \u003c项目目录\u003e --file \u003cPPTX文件\u003e\nadco client-pack-gate \u003c项目目录\u003e\nadco handoff-readiness-gate \u003c项目目录\u003e\nadco install-skill\nadco audit-dashboard \u003c项目目录\u003e --render\nadco audit-dashboard \u003c项目目录\u003e --render --json\nadco council \u003c项目目录\u003e --render-dashboard\nadco-check\nadco-init \u003c项目目录\u003e\nadco-validate \u003c项目目录\u003e\n```\n\n## 推荐使用方式\n\n最短方式：\n\n```text\nad-creative:run\n\n项目目录：\u003c真实项目路径\u003e\n资料位置：\u003c客户资料/会议记录/反馈所在文件夹或文件\u003e\n本轮目标：先完成需求整理、缺口判断、客户追问、下一步建议\n```\n\n在 Codex 中引用本地 Skill 草稿：\n\n```text\n使用 /Users/jinjungao/work/ad-creative-orchestrator/skill_drafts/ad-creative-orchestrator/SKILL.md\n按 ad-creative:start 继续\n```\n\nGoal 模式推进：\n\n```text\n先读 docs/operating/dual_lane_goal_delivery_workflow.md\n再复制 templates/project/AD-creative/orchestrator/goal_iteration_plan_template.md\n按品牌深度研究 / 图片功能双泳道填写本轮 goal\n每个阶段 Gate 前必须跑反驳性议会\n没有反对意见、反驳路径、修订决议时，Gate 最高只能 PARTIAL_PASS\n```\n\n如果是新广告项目：\n\n```text\n1. 双击：启动广告创意项目.command\n2. 把客户资料放入 00_项目资料_ProjectMaterials/\n3. 打开 AD-creative/handoff/操作台.html\n4. 把 AD-creative/handoff/客户追问话术.md 发给客户或内部负责人\n5. 让 Codex 继续执行 ad-creative:next\n```\n\n## 当前验收标准\n\n```text\n不看 UI，也知道项目卡在哪里\n不复制长 prompt，也能继续下一步\n换一个 Agent，也能读 handoff 接着做\n新增客户反馈后，旧版本不会污染新版本\n每个视觉资产能追溯到 requirement / reference / slot / Gate\n每个客户可见项先经过 visibility / Gate 判断\nSkill 草稿只在项目内生成，不自动安装\n```\n\n## 当前验证状态\n\n```text\nexamples/moncler_protocol_dry_run: VALIDATION=PASS\nexamples/simulated_qingling_outdoor_launch: VALIDATION=PASS\n临时真实资料压力测试: INTAKE_REQUIREMENTS\u003e0 / INTAKE_GAPS\u003e0 / VALIDATION=PASS\n启动广告创意项目.command: env-mode smoke test PASS\n真实参考链接登记: add-reference live https check PASS\n搜索质量 Gate: search-quality-gate PASS / PARTIAL_PASS / BLOCKED smoke PASS\n参考包质量 Gate: reference-pack-gate PARTIAL_PASS when TBD search targets remain\n真实图片文件登记: add-asset copy + manifest + visual gate PASS\nimage_gen 输出入库链路: import-imagegen + manifest + import log + visual gate PASS\n视觉质量 Gate: visual-quality-gate blocks low-res / unapproved client-visible AI assets\n可编辑 PPTX 草稿: export-pptx / check-pptx PASS\n客户稿风险 Gate: client-pack-gate PASS\n非开发者交接 Gate: handoff-readiness-gate PASS\n全局 Skill 安装: install-skill SHA256 match PASS\n操作台 Playwright Chromium desktop/mobile screenshots: PASS\n公开 demo 截图: docs/assets/dashboard-desktop.png / docs/assets/dashboard-mobile.png\nsample project generator: adco sample / run_checks temp sample PASS\ndemo command: adco demo PASS\ngoal-plan 执行记录生成: examples/moncler_protocol_dry_run / examples/simulated_qingling_outdoor_launch PASS\n反驳性议会 Gate 策略: 无记录时 PASS→PARTIAL_PASS / 有记录时 PASS 回归测试 PASS\n操作台 Goal Tab: audit-dashboard PASS\nGoal/Gate 回归测试: adco check PASS\nGate 结构化回归测试: adco check PASS\nGate 正向 fixture: visual PNG PASS / editable PPTX client-pack PASS / no-deps optional skip PASS\neditable CLI install: adco / adco-check smoke PASS\npackage install: pip install . / adco init / adco demo / adco validate / adco check smoke PASS\nwheel distribution check: make dist-check PASS\nversion diagnostics: adco --version PASS\ndoctor diagnostics: adco doctor PASS with remote configured\nrelease diagnostics: adco release-status reports READY_FOR_REMOTE_CHECKS\ndocs diagnostics: adco docs reports local docs and quickstart paths\nstatus diagnostics: adco status reports next action, blockers, open gaps, and pending confirmations\nnext diagnostics: adco next reports NEXT_STATUS and NEXT_ACTION\nsupport bundle: adco support-bundle PASS with sanitized project diagnostics\nsupport bundle JSON: adco support-bundle --json PASS\ndashboard open command: adco open-dashboard PASS\ndashboard audit JSON: adco audit-dashboard --json PASS\nquickstart command: adco quickstart PASS\nquickstart JSON: adco quickstart --json PASS\nlocal release check: make release-check PASS\nGitHub Actions: make release-check PASS on Python 3.10 / 3.12\npublic clone trial: git clone + pip install . + adco quickstart/open-dashboard/validate PASS\n```\n\n仍需真实项目负责人最终执行：\n\n```text\n真实联网搜索结果人工抽样质量\n真实 image_gen 审美质量人工验收\n最终客户稿人工发送确认\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapperrollinggery%2Fad-creative-orchestrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpapperrollinggery%2Fad-creative-orchestrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpapperrollinggery%2Fad-creative-orchestrator/lists"}