[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6K5CZ72FX8NPQHQZ0WKEBF2":3,"skill-same:01M6K5CZ72FX8NPQHQZ0WKEBF2":62},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":40,"commitSha":41,"skillDirectory":42,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":45,"ownerDescription":47,"updatedAt":48,"install":49,"resources":61},"01M6K5CZ72FX8NPQHQZ0WKEBF2","manage-reviews",null,"Manage reviews: internal and client approvals, sign-offs, revisions and reminders. \"who hasn't approved yet\"","indranilbanerjee\u002Fsocialforge","indranilbanerjee","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1857369?v=4","01M6K5AJ210R87KXT6WF07RC4T","Indranil Banerjee","01M6K5AJ6FXW6Y1CDESBGX191P",44,"MIT","https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Fmanage-reviews\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31],"manage","reviews","manage reviews","reminders","sign","revise","id","client","post","approvals","true","send","approve","2026-11-10 10:12:30",false,"---\nname: manage-reviews\ndescription: \"Manage reviews: internal and client approvals, sign-offs, revisions and reminders. \\\"who hasn't approved yet\\\"\"\nargument-hint: \"[--post \u003Cid>] [--approve] [--revise] [--client-send]\"\neffort: medium\nuser-invocable: true\ndisable-model-invocation: true\n---\n\n# \u002Fsocialforge:manage-reviews — Review & Approval Manager\n\nManage the multi-tier approval workflow per brand's approval-chain.json. The user starts this skill; it is not model-invocable. `--client-send` and the reminders of `--check` message people, so they go through the Execution gate below.\n\n## Execution gate\n\nSending is a side effect other people see. Before any Slack message, email or reminder goes out, show an Execution Summary: who receives it (each recipient or channel), through which connector, which posts, and the exact message text. Send only on an explicit `yes` typed by the user for exactly that summary; any other reply cancels with nothing sent and no status changed. A changed recipient, post list or message is a new summary and a new `yes`. Hosts that ignore `disable-model-invocation` (Codex, for one) still get this gate.\n\n## Approval Tiers\n- **HERO content**: Internal review → Client approval → CEO approval (if configured)\n- **HUB content**: Internal review → Client approval (optional)\n- **HYGIENE content**: Internal review only (auto-approvable if configured)\n\n## Actions\n- `\u002Fsocialforge:manage-reviews --approve P04` — Approve post P04 at current tier\n- `\u002Fsocialforge:manage-reviews --revise P04 \"Make the background warmer\"` — Request revision with feedback\n- `\u002Fsocialforge:manage-reviews --client-send` — Send all internally-approved posts to client review\n- `\u002Fsocialforge:manage-reviews --check` — Check pending approvals and send reminders\n\n## State Transitions\nQUEUED → ASSET_MATCHING → GENERATING → PENDING_REVIEW\n  PENDING_REVIEW → APPROVED_INTERNAL | REVISION_REQUESTED | REJECTED\n  REVISION_REQUESTED → GENERATING (re-enters production with feedback)\n  REJECTED → QUEUED (start over)\n  APPROVED_INTERNAL → PENDING_CLIENT (if client review required) | FINAL (if not)\n  PENDING_CLIENT → APPROVED_CLIENT | REVISION_REQ_CLIENT | REJECTED_CLIENT\n  APPROVED_CLIENT → PENDING_CEO (if CEO required) | FINAL (if not)\n  PENDING_CEO → APPROVED_CEO → FINAL\n  FINAL → (write-protected, no transitions)\n\n## Rules\n- FINAL status is write-protected — cannot be modified after finalization\n- Revision requests re-enter the generation pipeline with specific feedback\n- Max 3 revision cycles per HERO post before escalation\n- Reminders sent via Slack\u002Femail after N days (per escalation_rules)\n","# \u002Fsocialforge:manage-reviews — Review & Approval Manager\n\nManage the multi-tier approval workflow per brand's approval-chain.json. The user starts this skill; it is not model-invocable. `--client-send` and the reminders of `--check` message people, so they go through the Execution gate below.\n\n## Execution gate\n\nSending is a side effect other people see. Before any Slack message, email or reminder goes out, show an Execution Summary: who receives it (each recipient or channel), through which connector, which posts, and the exact message text. Send only on an explicit `yes` typed by the user for exactly that summary; any other reply cancels with nothing sent and no status changed. A changed recipient, post list or message is a new summary and a new `yes`. Hosts that ignore `disable-model-invocation` (Codex, for one) still get this gate.\n\n## Approval Tiers\n- **HERO content**: Internal review → Client approval → CEO approval (if configured)\n- **HUB content**: Internal review → Client approval (optional)\n- **HYGIENE content**: Internal review only (auto-approvable if configured)\n\n## Actions\n- `\u002Fsocialforge:manage-reviews --approve P04` — Approve post P04 at current tier\n- `\u002Fsocialforge:manage-reviews --revise P04 \"Make the background warmer\"` — Request revision with feedback\n- `\u002Fsocialforge:manage-reviews --client-send` — Send all internally-approved posts to client review\n- `\u002Fsocialforge:manage-reviews --check` — Check pending approvals and send reminders\n\n## State Transitions\nQUEUED → ASSET_MATCHING → GENERATING → PENDING_REVIEW\n  PENDING_REVIEW → APPROVED_INTERNAL | REVISION_REQUESTED | REJECTED\n  REVISION_REQUESTED → GENERATING (re-enters production with feedback)\n  REJECTED → QUEUED (start over)\n  APPROVED_INTERNAL → PENDING_CLIENT (if client review required) | FINAL (if not)\n  PENDING_CLIENT → APPROVED_CLIENT | REVISION_REQ_CLIENT | REJECTED_CLIENT\n  APPROVED_CLIENT → PENDING_CEO (if CEO required) | FINAL (if not)\n  PENDING_CEO → APPROVED_CEO → FINAL\n  FINAL → (write-protected, no transitions)\n\n## Rules\n- FINAL status is write-protected — cannot be modified after finalization\n- Revision requests re-enter the generation pipeline with specific feedback\n- Max 3 revision cycles per HERO post before escalation\n- Reminders sent via Slack\u002Femail after N days (per escalation_rules)\n",{"name":5,"effort":37,"description":7,"argument-hint":38,"user-invocable":39,"disable-model-invocation":39},"medium","[--post \u003Cid>] [--approve] [--revise] [--client-send]",true,"main","8a9265fce82b93b728230eab5cf054480f5d6cf2","skills\u002Fmanage-reviews",9,"https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge","https:\u002F\u002Findranil.in","https:\u002F\u002Fgithub.com\u002Findranilbanerjee","Builder across trustworthy AI, agentic systems, and marketing engineering. Security roots; focused on human capability amplified by software.","2026-11-08 01:03:55",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":39},[51,54,57],{"tool":52,"command":53},"npx","npx skills add indranilbanerjee\u002Fsocialforge --skill manage-reviews",{"tool":55,"command":56},"bunx","bunx skills add indranilbanerjee\u002Fsocialforge --skill manage-reviews",{"tool":58,"command":59},"pnpm","pnpm dlx skills add indranilbanerjee\u002Fsocialforge --skill manage-reviews","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Fmanage-reviews\u002FSKILL.md",[],[63,92,117,141,159,189],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":74,"publishedAt":32},"01M6K5E21QEYHCT7Z2HA4AQ804","setup","One-time setup of image and video generation credentials, verified before use. \"set up my API keys\"","https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Fsetup\u002FSKILL.md",[69],{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[65,75,76,77,78,79,29,80,81,82,83,84,85,86,87,88,89,90,91],"video generation","api keys","verified","keys","my","reset","generation","time","fallback","up","use","Video","api","credentials","SET","status","image",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":101,"publishedAt":32},"01M6K5DWRWPF1ZHZ93VE8Z1NB4","research-month","Turn supplied comment exports and competitor ads into a what's-working brief before planning a month. \"analyse these competitor ads and comments\"","https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Fresearch-month\u002FSKILL.md",[98],{"categoryNo":99,"categoryName":100,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000021","资料检索与研究",[102,103,104,105,106,107,108,109,110,111,112,113,114,29,115,116],"research month","research","csv","export","brand","text","ads","brief","planning","screenshots","comments","name","high","posts","mm",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":126,"publishedAt":32},"01M6K5DQ47966ZG9N916VA7Y68","render-carousels","Render multi-slide carousels from HTML templates into platform-ready images or PDF. \"build the carousel slides\"","https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Frender-carousels\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000002","文档处理",[127,128,129,130,25,131,27,132,114,29,133,134,135,136,137,138,139,140],"render carousels","render","platform","type","carousel","multi","template","images","ready","html","slides","templates","PDF","build",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":32},"01M6K5DHDFMZAK4BN2QFEVM614","price-check","Price a generation run from live provider rates before any spend. \"how much will this cost\"","https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Fprice-check\u002FSKILL.md",[],[148,149,150,151,29,152,113,25,81,153,154,155,156,157,158],"check","price","price check","live","compare","provider","cost","model","how","batch","run",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":174,"publishedAt":32},"01M6K5DDGBCGTN4SBEHZD5G9H8","parse-calendar","Parse a content calendar or plan from DOCX, XLSX, Notion or pasted text into structured posts. \"load this month's calendar\"","https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Fparse-calendar\u002FSKILL.md",[165,166,169],{"categoryNo":124,"categoryName":125,"taxonomyType":72,"taxonomyTypeDesc":73},{"categoryNo":167,"categoryName":168,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":170,"categoryName":171,"taxonomyType":172,"taxonomyTypeDesc":173},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[175,176,115,177,178,179,107,180,181,182,183,184,185,186,187,188,29],"parse calendar","calendar","URL","structured","content calendar","plan","file","content","notion","xlsx","docx","paste","path","load",{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":195,"publishedAt":32},"01M6K5D9NZ6QEP1F5M9P8EXM7E","model-check","Find the best current model for a capability from the live catalogue and record its source. \"which model should we use\"","https:\u002F\u002Fgithub.com\u002Findranilbanerjee\u002Fsocialforge\u002Fblob\u002Fmain\u002Fskills\u002Fmodel-check\u002FSKILL.md",[],[196,155,148,197,198,199,29,200,113,151,201,153,85,202],"model check","source","for","which","kind","record","find"]