limixbot 0.2.6 → 0.2.8
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/dist/assets/{ActivityPanel--I8ZbzPP.js → ActivityPanel-peFEa8hc.js} +1 -1
- package/dist/assets/{App-BV7lfvAV.js → App-DqXMyMLs.js} +100 -100
- package/dist/assets/{AppEventEditor-8B4LbsP2.js → AppEventEditor-7pfjIt50.js} +1 -1
- package/dist/assets/{BotSettingsDialog-3inJTZDU.js → BotSettingsDialog-D3hAY6mk.js} +1 -1
- package/dist/assets/{BrowserPanel-DCL1ihdL.js → BrowserPanel-h3psJrX9.js} +1 -1
- package/dist/assets/{BrowserProfilesManager-BsJcpUXn.js → BrowserProfilesManager-tU88r2vZ.js} +1 -1
- package/dist/assets/{CloudAddDialog-ByLX1_cO.js → CloudAddDialog-DWfi8tOM.js} +1 -1
- package/dist/assets/{ComputerFilesPane-DfBb3jpl.js → ComputerFilesPane-BkDyk0uk.js} +1 -1
- package/dist/assets/{ComputerPanel-I4wmIpih.js → ComputerPanel-C7jTOFiO.js} +2 -2
- package/dist/assets/{DataPanel-CtUMgjeI.js → DataPanel-BCfRj7d6.js} +1 -1
- package/dist/assets/{DesktopViewer-D-mh4Mvc.js → DesktopViewer-jeI22vIi.js} +1 -1
- package/dist/assets/{FilesView-JI5NRvg4.js → FilesView-B-gpIIvL.js} +1 -1
- package/dist/assets/{GrokMoveDialog-9lKJlUqW.js → GrokMoveDialog-BzDSBiBl.js} +1 -1
- package/dist/assets/{InspectorPanel-DYjIHQn_.js → InspectorPanel-2I3CFtPj.js} +1 -1
- package/dist/assets/{KeyboardShortcutsModal-F6vm4Ee4.js → KeyboardShortcutsModal-DdrvmhWG.js} +1 -1
- package/dist/assets/{LiveDesktop-CI9S1x-U.js → LiveDesktop-D3KDasUO.js} +1 -1
- package/dist/assets/{LocalVmWorkspace-BVs4kGG8.js → LocalVmWorkspace-UWvcjjYE.js} +1 -1
- package/dist/assets/{MacLocalControl-Dnpb-1A_.js → MacLocalControl-H2OhSRFA.js} +1 -1
- package/dist/assets/{MarkdownFilePreview-gVi-3dXl.js → MarkdownFilePreview-CLaBnIvb.js} +1 -1
- package/dist/assets/{MenuMotion-DQYRi6n6.js → MenuMotion-nTkCdPNb.js} +1 -1
- package/dist/assets/{NewBotDialog-KtFHQMb_.js → NewBotDialog-UUKIGmIQ.js} +1 -1
- package/dist/assets/{PhoneAppDialog-Dnn_AW4P.js → PhoneAppDialog-CtUtHZIh.js} +1 -1
- package/dist/assets/{PlacesRail-Bpjyw4Vm.js → PlacesRail-BJBF_akb.js} +1 -1
- package/dist/assets/{PluginsPanel-D5f_fUBQ.js → PluginsPanel-DhRV2Z1H.js} +1 -1
- package/dist/assets/{ProIntroduction-BPNgfh6z.js → ProIntroduction-kN19JQ-Y.js} +1 -1
- package/dist/assets/{RemoteAgentSettingsPanel-3RAtLnAr.js → RemoteAgentSettingsPanel-BjIqRepm.js} +1 -1
- package/dist/assets/{RoomPanel-xMkLuBHe.js → RoomPanel-CgoVFvjy.js} +1 -1
- package/dist/assets/{RoutinesPage-M0vKACB8.js → RoutinesPage-C2O4AgJB.js} +1 -1
- package/dist/assets/SettingsModal-DOYrfxNQ.js +11 -0
- package/dist/assets/{ShareTeamDialog-CeEhxIZd.js → ShareTeamDialog-DNKIsuNU.js} +1 -1
- package/dist/assets/{SignedInSites-BldnQjjC.js → SignedInSites-DkQMWpRc.js} +1 -1
- package/dist/assets/{TeamLibraryPanel-BY_Ycbbf.js → TeamLibraryPanel-CnhMRwup.js} +1 -1
- package/dist/assets/{TeamMapPage-Da5W5s-4.js → TeamMapPage-7eoMAyZs.js} +1 -1
- package/dist/assets/{TriggersPage-D1EMwLwJ.js → TriggersPage-CvtwSgIq.js} +1 -1
- package/dist/assets/{VisibilitySection-Bg_6NbUb.js → VisibilitySection-CrMCXcM_.js} +1 -1
- package/dist/assets/{WebhookTrigger-DsKXQ3Cd.js → WebhookTrigger-DxnvfaPZ.js} +1 -1
- package/dist/assets/{WorksOnGrid-CfkpIePV.js → WorksOnGrid-CtcuFETm.js} +1 -1
- package/dist/assets/{abnfDiagram-YUKMZFIV-Ckoz_CzF.js → abnfDiagram-YUKMZFIV-Bz6GT9ki.js} +1 -1
- package/dist/assets/{activity-CQ1e-FGE.js → activity-BTE6SMHx.js} +1 -1
- package/dist/assets/{architectureDiagram-47P4ROYG-CgPs1VuD.js → architectureDiagram-47P4ROYG-CVJfbFnd.js} +1 -1
- package/dist/assets/{blockDiagram-E7TT5TSB-Cmb2ImyI.js → blockDiagram-E7TT5TSB-CMJZ058G.js} +1 -1
- package/dist/assets/{c4Diagram-CRA5TL53-FdJmz2JG.js → c4Diagram-CRA5TL53-Bcpf92Q7.js} +1 -1
- package/dist/assets/{calendar-days-BUipnvhW.js → calendar-days-DFNHSca_.js} +1 -1
- package/dist/assets/channel-SsqFZfUs.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-BzwXKae0.js → chunk-2Q5K7J3B-rROdH8y1.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-BYWM6mWC.js → chunk-5VM5RSS4-Gd9w73XJ.js} +1 -1
- package/dist/assets/{chunk-7TKQ45FW-BIriaw9d.js → chunk-7TKQ45FW-BRSSIX0r.js} +1 -1
- package/dist/assets/{chunk-AW2ZBBNX-6yQL8NET.js → chunk-AW2ZBBNX-fA_30rhU.js} +1 -1
- package/dist/assets/{chunk-FVRAUYC3-B4pej_b0.js → chunk-FVRAUYC3-DPf3B5cF.js} +2 -2
- package/dist/assets/{chunk-HTAEGDNF-CyK4QAOD.js → chunk-HTAEGDNF-Kzp8IlCO.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-DRvsvO9Z.js → chunk-JWPE2WC7-BGJbQcUH.js} +1 -1
- package/dist/assets/{chunk-KQW6MTUR-FEwgYelx.js → chunk-KQW6MTUR-D67e6u2B.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-BYleWq1o.js → chunk-XXDRQBXY-Ca87Y8ja.js} +1 -1
- package/dist/assets/{classDiagram-v2-K4WV4PDN-BNjClALP.js → classDiagram-v2-K4WV4PDN-TEXCwmKE.js} +1 -1
- package/dist/assets/{coins-CxF7VbZf.js → coins-D-qZ-kBF.js} +1 -1
- package/dist/assets/{core-C8K-KBYk.js → core-DVf7JTOd.js} +1 -1
- package/dist/assets/{cose-bilkent-JH36ORCC-DmY2f5QM.js → cose-bilkent-JH36ORCC-CNNKFtUt.js} +1 -1
- package/dist/assets/{cynefin-EF2NZ3EQ-D4pCl3aZ.js → cynefin-EF2NZ3EQ-DgCTQdJB.js} +1 -1
- package/dist/assets/{cynefinDiagram-3GCD6N5R-jS7kDRoE.js → cynefinDiagram-3GCD6N5R-5JZrPpp0.js} +1 -1
- package/dist/assets/{dagre-W4DXFKR2-Dd5ELGuw.js → dagre-W4DXFKR2-DfB1U7Ig.js} +1 -1
- package/dist/assets/{diagram-2UJZ2QOL-B-tizYMz.js → diagram-2UJZ2QOL-CUnhXNqi.js} +1 -1
- package/dist/assets/{diagram-OVF4WLC6-D3xpMTHl.js → diagram-OVF4WLC6-Cvq5rGDL.js} +1 -1
- package/dist/assets/{diagram-PFPMY2P6-DUf0EYR1.js → diagram-PFPMY2P6-B-7f57WA.js} +1 -1
- package/dist/assets/{diagram-UMYRVEAY-CfhFy4fo.js → diagram-UMYRVEAY-BxLx7qVG.js} +1 -1
- package/dist/assets/{diagram-YEKJPTXX-pKD2IJJ7.js → diagram-YEKJPTXX-DP950rJu.js} +1 -1
- package/dist/assets/{diagram-ZIFT7M5P-BxunPXAX.js → diagram-ZIFT7M5P-BhtOX3wi.js} +1 -1
- package/dist/assets/{ebnfDiagram-VR2GEFS7-DPyW7BZH.js → ebnfDiagram-VR2GEFS7-C6hk9Jmp.js} +1 -1
- package/dist/assets/{elk-IJKZMXRS-XJxkJxok.js → elk-IJKZMXRS-Bag6l1-J.js} +1 -1
- package/dist/assets/{erDiagram-O2IAPWRE-CUES7W0a.js → erDiagram-O2IAPWRE-BRX-fn6a.js} +1 -1
- package/dist/assets/{file-up-BDUXq-vg.js → file-up-Bkktf2Wj.js} +1 -1
- package/dist/assets/{flowDiagram-OXPTDLAJ-B5acRFQe.js → flowDiagram-OXPTDLAJ-CkjzLOJE.js} +1 -1
- package/dist/assets/{ganttDiagram-R7TSEDQI-CQp0rp67.js → ganttDiagram-R7TSEDQI-4CAOJpRz.js} +1 -1
- package/dist/assets/{gitGraphDiagram-XJZIOB7I-Chl_xMxf.js → gitGraphDiagram-XJZIOB7I-CskAy2ZD.js} +1 -1
- package/dist/assets/{import-name-fDjyR5kx.js → import-name-D4tI24_q.js} +1 -1
- package/dist/assets/{index-3mZteHSQ.js → index-5OuBrk-s.js} +1 -1
- package/dist/assets/{index-BUpSDhKQ.js → index-BfvuKok1.js} +2 -2
- package/dist/assets/{index-CZgKLcUm.js → index-DYquK9TF.js} +1 -1
- package/dist/assets/{infoDiagram-5W2HQ5XZ-DDJYDjQ5.js → infoDiagram-5W2HQ5XZ-DwRSrZJz.js} +1 -1
- package/dist/assets/{ishikawaDiagram-K3B6WC7H-Bxd_dhZZ.js → ishikawaDiagram-K3B6WC7H-D4AYxiIn.js} +1 -1
- package/dist/assets/{journeyDiagram-COXZFDF6-BYF-sQSD.js → journeyDiagram-COXZFDF6-Cy64QkAf.js} +1 -1
- package/dist/assets/{kanban-definition-P3RFRI5V-B0wBqOFH.js → kanban-definition-P3RFRI5V-BJPaLHmy.js} +1 -1
- package/dist/assets/{mcp-servers-xsYOIrTE.js → mcp-servers-1TpToatr.js} +1 -1
- package/dist/assets/{mermaid.core-C6PKoMQA.js → mermaid.core-BdIBhisy.js} +4 -4
- package/dist/assets/{mindmap-definition-LZFPQGKD-BlN8ZHNR.js → mindmap-definition-LZFPQGKD-di98H0Xi.js} +1 -1
- package/dist/assets/{minimize-BPbapdk9.js → minimize-BZwJDZD1.js} +1 -1
- package/dist/assets/{monitor-Xr0SgoUO.js → monitor-Chdrm5wS.js} +1 -1
- package/dist/assets/{new-bot-DZ8WGB0A.js → new-bot-K3vr9SqG.js} +1 -1
- package/dist/assets/{org-library-jgASeM26.js → org-library-B5ne7DWA.js} +1 -1
- package/dist/assets/{package-format-HQ4GXg3u.js → package-format-CibzDzgo.js} +1 -1
- package/dist/assets/{pegDiagram-BGZESJAR-Dts1Xq7B.js → pegDiagram-BGZESJAR-DHf_ETMP.js} +1 -1
- package/dist/assets/{pieDiagram-CAPJLFHJ-D6BLN9z8.js → pieDiagram-CAPJLFHJ-D26EUC2Q.js} +1 -1
- package/dist/assets/{quadrantDiagram-GDMTTRAM-BNXscncZ.js → quadrantDiagram-GDMTTRAM-CXd_WAYg.js} +1 -1
- package/dist/assets/{rail-KIYXnvmP.js → rail-DnNaCE3b.js} +1 -1
- package/dist/assets/{railroadDiagram-SM67HX2B-BcriwGaw.js → railroadDiagram-SM67HX2B-CCLyjg6m.js} +1 -1
- package/dist/assets/{remote-desktop-panel-D-AMCL3e.js → remote-desktop-panel-zURkbtzE.js} +1 -1
- package/dist/assets/{requirementDiagram-X7JNWC4A-DFVmx-Hz.js → requirementDiagram-X7JNWC4A-DfIjRZlK.js} +1 -1
- package/dist/assets/{sankeyDiagram-UM26HJRW-fySjdOut.js → sankeyDiagram-UM26HJRW-a192NXbb.js} +1 -1
- package/dist/assets/{sequenceDiagram-ZO4K6R2Y-CXrhKe3C.js → sequenceDiagram-ZO4K6R2Y-BN8CB3xi.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-D7uoCaYO.js → sizeCapture-INFHLROL-vA44CP_C.js} +1 -1
- package/dist/assets/{stateDiagram-v2-TBUQTH76-BcNwr-uw.js → stateDiagram-v2-TBUQTH76-BNZvoQfc.js} +1 -1
- package/dist/assets/{styles-DSEcltf1.js → styles-GmtHzqPG.js} +1 -1
- package/dist/assets/styles-m-GdEmxH.css +1 -0
- package/dist/assets/{swimlanes-N4OXWK64-BXzCyVrs.js → swimlanes-N4OXWK64-BoC9nCsP.js} +1 -1
- package/dist/assets/swimlanesDiagram-K3J5GTZL-pZjwzZmz.js +8 -0
- package/dist/assets/{team-share-BrQ2rI3n.js → team-share-n1TGl5ex.js} +1 -1
- package/dist/assets/{timeline-definition-YOQAKGHF-BdAlbPSb.js → timeline-definition-YOQAKGHF-C8Qj9CXc.js} +1 -1
- package/dist/assets/{usecaseDiagram-VIAY4XPW-CIBiINMq.js → usecaseDiagram-VIAY4XPW-vabAoQKz.js} +1 -1
- package/dist/assets/{vennDiagram-BLWOH2XV-Ctrb2l50.js → vennDiagram-BLWOH2XV-BMQyc0xY.js} +1 -1
- package/dist/assets/{wardleyDiagram-YMQ3BMBF-kLbK1beS.js → wardleyDiagram-YMQ3BMBF-B5DEfy_2.js} +1 -1
- package/dist/assets/{xychartDiagram-TAQBALBS-C5baNmCt.js → xychartDiagram-TAQBALBS-J0E9Gsc_.js} +1 -1
- package/dist/index.html +3 -3
- package/dist/rail.html +5 -5
- package/dist-server/package.json +1 -1
- package/package.json +1 -1
- package/skills/agent-reach/LICENSE +21 -0
- package/skills/agent-reach/SKILL.md +117 -0
- package/skills/agent-reach/manifest.json +41 -0
- package/skills/agent-reach/references/capabilities.md +31 -0
- package/skills/agent-reach/references/maintenance.md +13 -0
- package/skills/agent-reach/references/sessions.md +41 -0
- package/skills/rea-video/LICENSE +202 -0
- package/skills/rea-video/NOTICE +4 -0
- package/skills/rea-video/SKILL.md +124 -0
- package/skills/rea-video/manifest.json +32 -0
- package/skills/rea-video/references/audio.md +97 -0
- package/skills/rea-video/references/materials.md +34 -0
- package/skills/rea-video/references/memory.md +7 -0
- package/skills/rea-video/references/output-template.md +46 -0
- package/skills/rea-video/references/remake.md +41 -0
- package/skills/rea-video/references/review.md +42 -0
- package/skills/rea-video/references/setup.md +51 -0
- package/skills/rea-video/references/taxonomy.md +139 -0
- package/skills/ui-ux-pro-max/LICENSE +21 -0
- package/skills/ui-ux-pro-max/SKILL.md +221 -0
- package/skills/ui-ux-pro-max/data/app-interface.csv +33 -0
- package/skills/ui-ux-pro-max/data/catalog-summary.json +78 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +193 -0
- package/skills/ui-ux-pro-max/data/data-provenance.json +1396 -0
- package/skills/ui-ux-pro-max/data/google-font-licenses.json +20185 -0
- package/skills/ui-ux-pro-max/data/google-fonts.csv +1935 -0
- package/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/skills/ui-ux-pro-max/data/motion.csv +18 -0
- package/skills/ui-ux-pro-max/data/phosphor-icons-upstream.json +32582 -0
- package/skills/ui-ux-pro-max/data/products.csv +193 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/avalonia.csv +57 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +60 -0
- package/skills/ui-ux-pro-max/data/stacks/javafx.csv +76 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +62 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +84 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +68 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +67 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +69 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/uno.csv +60 -0
- package/skills/ui-ux-pro-max/data/stacks/uwp.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/stacks/winui.csv +60 -0
- package/skills/ui-ux-pro-max/data/stacks/wpf.csv +57 -0
- package/skills/ui-ux-pro-max/data/styles.csv +90 -0
- package/skills/ui-ux-pro-max/data/typography.csv +75 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +193 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +121 -0
- package/skills/ui-ux-pro-max/manifest.json +34 -0
- package/skills/ui-ux-pro-max/references/pro-rules.md +117 -0
- package/skills/ui-ux-pro-max/references/quick-reference.md +257 -0
- package/skills/ui-ux-pro-max/scripts/core.py +1053 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1668 -0
- package/skills/ui-ux-pro-max/scripts/reasoning_contract.py +123 -0
- package/skills/ui-ux-pro-max/scripts/search.py +201 -0
- package/skills/ui-ux-pro-max/scripts/validate_data.py +1095 -0
- package/dist/assets/SettingsModal-Dcmk7Ghv.js +0 -11
- package/dist/assets/channel-BzoyEHOy.js +0 -1
- package/dist/assets/styles-D8FmJr6X.css +0 -1
- package/dist/assets/swimlanesDiagram-K3J5GTZL-kYQoltjc.js +0 -8
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# 能力边界 / Capability scope
|
|
2
|
+
|
|
3
|
+
用户问"能查什么、查得全吗",或要判断结果完整度时读这份。下表是声明能力,不代表所有网络、账号和内容都已实测。
|
|
4
|
+
Read when the user asks what can be fetched or how complete a result is. Declared capabilities, not guaranteed results.
|
|
5
|
+
|
|
6
|
+
## 三层说明
|
|
7
|
+
|
|
8
|
+
- **公开可尝试**:Agent 已有网页工具、原生工具或公开接口可能已满足任务;不要求安装浏览器、登录。按实际取得的证据回答。
|
|
9
|
+
- **Reach 补充**:当前发布版声明的动作,见 `agent-reach channels`。需要配置时先复用专用浏览器已保存的会话,所选路径实际要求登录时才本人登录。
|
|
10
|
+
- **本机已验证**:只列本机最近成功验收的具体动作;安装、保存会话和网络可达均不等于业务验收。
|
|
11
|
+
|
|
12
|
+
## 本版渠道
|
|
13
|
+
|
|
14
|
+
| 渠道 | 公开路径可尝试 | Reach 补充与边界 |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| GitHub | 公开仓库、README、Issue/PR | 仓库搜索、仓库/Issue/PR 读取和返回的评论;私有权限另行判断 |
|
|
17
|
+
| YouTube | 搜索、标题、简介;原生工具可能取得部分评论及字幕正文 | search/read/subtitle/transcribe;当前没有统一 comments 动作;轨道列表不等于字幕正文,无字幕时转录依赖相应工具 |
|
|
18
|
+
| B 站 | 搜索、简介;部分公开接口可返回评论及父子 ID | search/read/hot/subtitle;当前没有统一 comments 动作;字幕随视频和访问路径而异 |
|
|
19
|
+
| Reddit | 搜索、正文、部分评论;某些公开 JSON 可含父子 ID | 浏览器 search/read/subreddit;登录依所选路径决定,不保证完整评论树、全部回复;不提供发评论 |
|
|
20
|
+
| X/Twitter | 搜索命中的公开单帖;部分官方公开嵌入可返回全文 | search/profile/tweets/thread;单帖可读不代表回复流可读,不保证完整评论树 |
|
|
21
|
+
| 小红书 | 公开列表或索引可能有笔记 ID、作者、标题,空字段不能补猜 | search/read/comments;文字描述、顶级评论及已加载回复;不保证全部评论,不声称理解图片/视频 |
|
|
22
|
+
| Instagram | 部分索引和主页浅层信息;HTML 应用壳不算帖文 | search 搜用户、profile 主页、posts 指定用户帖子描述;无统一评论动作,不声称理解图片/视频 |
|
|
23
|
+
| Facebook | 部分索引或 HTML 摘要;摘要可能被截断 | search/profile;无统一详情或评论动作,不把搜索摘要当全文 |
|
|
24
|
+
| LinkedIn | 搜公开职位、读公开 JD | jobs/read 先尝试公开网页;指定 opencli 才直接走站内;不保证所有职位可读 |
|
|
25
|
+
| BOSS | 搜索索引中可能有职位摘要 | search/read 职位列表与 JD;不能根据编码薪资猜数字;详情后备能力依渠道声明 |
|
|
26
|
+
| V2EX | 主题、正文及公开回复 | hot/node/read/user;返回范围以本次响应为准,不保证隐藏或缺失回复 |
|
|
27
|
+
| 雪球 | 部分公开行情和索引信息 | quote/search/hot_posts/hot_stocks;行情与社区路径分别验收 |
|
|
28
|
+
| Web | Agent 自带搜索/读取 | Reach web search/read 为匿名保底;摘要、页面壳和验证页不能当完整正文 |
|
|
29
|
+
| 小宇宙 | 节目页标题、简介 | transcribe 整集转文字;需要用户提供 Groq Key(`agent-reach configure groq-key`) |
|
|
30
|
+
|
|
31
|
+
登录后的能力表述使用“可启用/尝试上述浏览器动作”,不使用“登录后支持全部评论”。用户跳过登录时交付已有公开证据。
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 维护
|
|
2
|
+
|
|
3
|
+
更新失败、浏览器起不来、渠道报错或用户要卸载时读这份。
|
|
4
|
+
|
|
5
|
+
- 更新:`agent-reach update` 升级 Agent Reach、已加渠道的工具和 skill;`agent-reach update --check` 只查有没有新版本。只在用户同意后执行。
|
|
6
|
+
- 状态:`agent-reach doctor --text` 读本地状态,不联网;`agent-reach check <渠道> --text` 联网实测一次(`--search` 只测搜索/职位)。安装成功不等于实测通过。
|
|
7
|
+
- 浏览器:`agent-reach browser status` 看状态,`browser setup` 准备内核和扩展,`browser stop` 关闭;CloakBrowser 下载失败后修好网络可 `browser setup --retry-cloak`。
|
|
8
|
+
- 分清失败环节:依赖下载、浏览器连接、登录、网页加载、平台限流各是各的;网络超时不要说成登录失效。
|
|
9
|
+
- 上游工具出错:记下错误和版本,用户同意后 `agent-reach update` 一次;不改上游工具的安装文件,不循环重试。
|
|
10
|
+
- `PLATFORM_BLOCKED`、`RATE_LIMITED`、`NEED_LOGIN`、`BUSY` 停止本次尝试,等用户处理后再继续,不反复开窗。
|
|
11
|
+
- 密钥和代理:`agent-reach configure groq-key | openai-key | proxy | github-token`,值由用户本人提供。
|
|
12
|
+
- 端口冲突(`Port <n> belongs to an unmanaged browser`):别的程序占了专用浏览器端口(默认 9222)。不要关掉用户的那个程序;用户同意后 `agent-reach configure browser-port <空闲端口>`。
|
|
13
|
+
- 卸载:先 `agent-reach uninstall --dry-run` 给用户看范围,确认后 `agent-reach uninstall`。只删 Reach 自己装的东西,用户的其他文件和浏览器保留。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 会话与专用浏览器
|
|
2
|
+
|
|
3
|
+
用户要登录、退出、换账号,或结果返回 `NEED_LOGIN` 时读这份。
|
|
4
|
+
|
|
5
|
+
## 专用浏览器
|
|
6
|
+
|
|
7
|
+
- 所有浏览器渠道共用一个专用浏览器配置,和用户日常的 Chrome 分开;程序不关闭、不修改用户的日常浏览器。
|
|
8
|
+
- 内核优先 CloakBrowser;下载或安装失败时用本机已装的 Chrome,并记住这个回退,不每次重下。网络修好后可 `agent-reach browser setup --retry-cloak` 重试。
|
|
9
|
+
- `agent-reach add <渠道>` 自动准备 Node、OpenCLI、内核和扩展。工具按本版测试过的版本安装。Windows 上用 Chrome 回退时,可能需要用户点一次"添加至 Chrome"。
|
|
10
|
+
- 默认无头,不弹窗。只有 `agent-reach login <渠道>` 会显示窗口;窗口开着时查询直接用这个窗口,不会收掉它,用户登录期间等用户说登好了再查。窗口关闭后,之后的查询回到无头。
|
|
11
|
+
- 闲置 10 分钟自动关闭,下次调用自动重开;真实页面操作和 Reach 调用会重置计时。登录期间定期保存,用户不用关窗。
|
|
12
|
+
- 可以并行:同一平台最多同时 2 条,所有平台合计 4 条,多出来的排队,最多等 2 分钟,等不到才返回 `BUSY`。同一平台的两次搜索之间至少隔 10 秒。打开登录窗口、退出登录、重装浏览器会等正在跑的查询结束再做。
|
|
13
|
+
- `agent-reach browser status` 查看状态,`browser setup` 准备内核和扩展,`browser stop` 关闭程序管理的浏览器。
|
|
14
|
+
|
|
15
|
+
## 自动复用已有登录
|
|
16
|
+
|
|
17
|
+
1. 第一次用某个网站时,如果用户的 Chrome 已连接 OpenCLI 扩展,程序把该站的登录(只限该站 Cookie)复制一次到专用浏览器。不复制整个浏览器目录、其他网站或密码库,也不改动来源浏览器。
|
|
18
|
+
2. 复制成功后一直复用保存的会话,不按时间重新复制。Cookie 在不代表登录有效,以真实动作结果为准。
|
|
19
|
+
3. 用户 Chrome 没连扩展时,不能承诺自动复用,也不能据此认定用户没登录;此时用 Reach 已保存的会话。
|
|
20
|
+
4. 本机有多个浏览器都登录了该站时:`agent-reach browser profiles` 列出来源,`agent-reach browser use <ID>` 选定一个,不随机切换。
|
|
21
|
+
5. `agent-reach login <渠道> --import-existing` 主动重新复制一次该站登录,不打开窗口。没找到可复制的登录,或 OpenCLI Bridge 没在运行时,返回 `NEED_SETUP`,已保存的会话不变。
|
|
22
|
+
6. 用户本人在专用窗口里登录过,或执行过 `logout` / `remove`,就不再自动复制,避免已退出的登录复活。
|
|
23
|
+
|
|
24
|
+
## 需要本人登录时
|
|
25
|
+
|
|
26
|
+
- 只有实际返回 `NEED_LOGIN`、且剩下的任务确实需要这条路径时,才请用户登录。正文旁边有个登录按钮不算要求登录。
|
|
27
|
+
- `agent-reach login <渠道>` 打开专用浏览器到该站登录页,用户本人完成登录。你不代登、不要密码、不输出 Cookie。
|
|
28
|
+
- 返回结果里的 `next` 写了后续步骤就照做;部分原生工具渠道(如雪球)登录后要再跑 `agent-reach login <渠道> --sync`。
|
|
29
|
+
- 用户完成后,重新执行原来的动作验证。
|
|
30
|
+
|
|
31
|
+
## 平台差异
|
|
32
|
+
|
|
33
|
+
- Boss 直聘站内搜索走 OpenCLI,共用专用浏览器。职位详情若因上游误报要求登录,不要让用户反复登录。
|
|
34
|
+
- B 站只在读字幕时把已有登录交给 B 站官方命令行工具;普通搜索不准备浏览器。
|
|
35
|
+
- 雪球社区动作需要登录;会话几小时内过期,过期后重复登录步骤。
|
|
36
|
+
|
|
37
|
+
## 退出和删除
|
|
38
|
+
|
|
39
|
+
- `agent-reach logout <渠道>`:清除专用浏览器里该站的登录和渠道自己的状态,其他网站保留。
|
|
40
|
+
- `agent-reach remove <渠道>`:去掉渠道,同时清该站登录和存储,其他网站保留。清理失败时渠道记录保留并返回错误,用户可重试。
|
|
41
|
+
- 两者之后都不再自动复制该站登录。
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
|
|
2
|
+
Apache License
|
|
3
|
+
Version 2.0, January 2004
|
|
4
|
+
http://www.apache.org/licenses/
|
|
5
|
+
|
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
7
|
+
|
|
8
|
+
1. Definitions.
|
|
9
|
+
|
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
12
|
+
|
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
14
|
+
the copyright owner that is granting the License.
|
|
15
|
+
|
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
17
|
+
other entities that control, are controlled by, or are under common
|
|
18
|
+
control with that entity. For the purposes of this definition,
|
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
20
|
+
direction or management of such entity, whether by contract or
|
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
23
|
+
|
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
25
|
+
exercising permissions granted by this License.
|
|
26
|
+
|
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
28
|
+
including but not limited to software source code, documentation
|
|
29
|
+
source, and configuration files.
|
|
30
|
+
|
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
|
32
|
+
transformation or translation of a Source form, including but
|
|
33
|
+
not limited to compiled object code, generated documentation,
|
|
34
|
+
and conversions to other media types.
|
|
35
|
+
|
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
37
|
+
Object form, made available under the License, as indicated by a
|
|
38
|
+
copyright notice that is included in or attached to the work
|
|
39
|
+
(an example is provided in the Appendix below).
|
|
40
|
+
|
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
47
|
+
the Work and Derivative Works thereof.
|
|
48
|
+
|
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
|
50
|
+
the original version of the Work and any modifications or additions
|
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
62
|
+
|
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
65
|
+
subsequently incorporated within the Work.
|
|
66
|
+
|
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
|
73
|
+
|
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
79
|
+
where such license applies only to those patent claims licensable
|
|
80
|
+
by such Contributor that are necessarily infringed by their
|
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
83
|
+
institute patent litigation against any entity (including a
|
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
86
|
+
or contributory patent infringement, then any patent licenses
|
|
87
|
+
granted to You under this License for that Work shall terminate
|
|
88
|
+
as of the date such litigation is filed.
|
|
89
|
+
|
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
92
|
+
modifications, and in Source or Object form, provided that You
|
|
93
|
+
meet the following conditions:
|
|
94
|
+
|
|
95
|
+
(a) You must give any other recipients of the Work or
|
|
96
|
+
Derivative Works a copy of this License; and
|
|
97
|
+
|
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
|
99
|
+
stating that You changed the files; and
|
|
100
|
+
|
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
|
103
|
+
attribution notices from the Source form of the Work,
|
|
104
|
+
excluding those notices that do not pertain to any part of
|
|
105
|
+
the Derivative Works; and
|
|
106
|
+
|
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
|
109
|
+
include a readable copy of the attribution notices contained
|
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
|
112
|
+
of the following places: within a NOTICE text file distributed
|
|
113
|
+
as part of the Derivative Works; within the Source form or
|
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
|
115
|
+
within a display generated by the Derivative Works, if and
|
|
116
|
+
wherever such third-party notices normally appear. The contents
|
|
117
|
+
of the NOTICE file are for informational purposes only and
|
|
118
|
+
do not modify the License. You may add Your own attribution
|
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
+
that such additional attribution notices cannot be construed
|
|
122
|
+
as modifying the License.
|
|
123
|
+
|
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
|
125
|
+
may provide additional or different license terms and conditions
|
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
+
the conditions stated in this License.
|
|
130
|
+
|
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
+
this License, without any additional terms or conditions.
|
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
+
the terms of any separate license agreement you may have executed
|
|
137
|
+
with Licensor regarding such Contributions.
|
|
138
|
+
|
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
+
except as required for reasonable and customary use in describing the
|
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
+
|
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
|
153
|
+
|
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
|
159
|
+
incidental, or consequential damages of any character arising as a
|
|
160
|
+
result of this License or out of the use or inability to use the
|
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
+
other commercial damages or losses), even if such Contributor
|
|
164
|
+
has been advised of the possibility of such damages.
|
|
165
|
+
|
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
+
or other liability obligations and/or rights consistent with this
|
|
170
|
+
License. However, in accepting such obligations, You may act only
|
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
+
of your accepting any such warranty or additional liability.
|
|
176
|
+
|
|
177
|
+
END OF TERMS AND CONDITIONS
|
|
178
|
+
|
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
180
|
+
|
|
181
|
+
To apply the Apache License to your work, attach the following
|
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
183
|
+
replaced with your own identifying information. (Don't include
|
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
185
|
+
comment syntax for the file format. We also recommend that a
|
|
186
|
+
file or class name and description of purpose be included on the
|
|
187
|
+
same "printed page" as the copyright notice for easier
|
|
188
|
+
identification within third-party archives.
|
|
189
|
+
|
|
190
|
+
Copyright 2026 JuneYaooo
|
|
191
|
+
|
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
|
+
you may not use this file except in compliance with the License.
|
|
194
|
+
You may obtain a copy of the License at
|
|
195
|
+
|
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
197
|
+
|
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
|
+
See the License for the specific language governing permissions and
|
|
202
|
+
limitations under the License.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rea-video
|
|
3
|
+
description: 逆向拆解一条视频是怎么做出来的——逐镜头判断实拍 / 影视片段 / AI 生成 / 3D 渲染 / 2D 动画 / 定格动画 / 代码模板渲染 / 录屏截图 / 静态图推拉 / 静帧,以及实拍是否经过 AI 加工(换脸、对口型、风格化),标出后期叠加层(逐句字幕时间轴、花字、标题、贴纸 / GIF / 表情包、画中画)和用户真实素材,拆解人声、背景音乐、音效(卡在哪个画面事件上)与剪辑节奏,并给出可执行的复刻方案(可对接 capsule-cinema)。当用户给出参考视频、问"这条视频怎么做的 / 是不是 AI / 用了什么素材 / 怎么复刻"时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **Limix Bot.** Python 3.12 and `uv` are bundled with Limix Bot and on PATH. If the command is missing, ask the
|
|
7
|
+
> person once, then install it with:
|
|
8
|
+
>
|
|
9
|
+
> ```
|
|
10
|
+
> uv tool install "rea-video[ocr] @ https://github.com/JuneYaooo/rea-video/archive/3669923645e3953632e7406a57fb883e0ba8a6e0.zip"
|
|
11
|
+
> ```
|
|
12
|
+
>
|
|
13
|
+
> Tools installed this way land in Limix Bot's own folder (no administrator rights needed) and are on PATH from the
|
|
14
|
+
> next command. `<root>` is the folder named by this skill's `root`.
|
|
15
|
+
> Source: https://github.com/JuneYaooo/rea-video/tree/3669923645e3953632e7406a57fb883e0ba8a6e0/skills/rea-video (Apache-2.0).
|
|
16
|
+
|
|
17
|
+
# rea-video:视频制作方式逆向拆解
|
|
18
|
+
|
|
19
|
+
你是视频制作的逆向工程师。用户给你一条视频,你要回答清楚:
|
|
20
|
+
|
|
21
|
+
1. **每个镜头的底层画面是怎么来的?**从 11 类里选:实拍 / 影视片段 / AI 视频 / 数字人 / 3D 渲染 / 2D 动画 / 定格动画 / 代码模板渲染 / 录屏截图 / 静态图推拉 / 静帧。2D 动画、定格动画和影视片段(剪进来的电影、电视剧、短剧画面)工具测不出,要你看图判断。实拍镜头再看有没有被 AI 加工过(换脸、对口型、风格化、换装、换背景),填在 `ai_edits` 里(对照 `references/taxonomy.md`)。
|
|
22
|
+
2. **上面叠了什么?(剪辑包装)**逐句字幕(时间轴、颜色、描边、关键词高亮、入场方式)、花字、标题、章节牌、跟着物体走的标签、表情包 / GIF / 贴纸 / 画中画、版式模板,以及哪些音效卡在文字弹出或贴纸出现上。
|
|
23
|
+
3. **哪些是用户真实素材?**分两类:画面里嵌入的真实像素(实拍、照片、截图、录屏、版式里播放的视频片段),复刻时必须拿到原文件;AI / 3D 画面里出现的商品、Logo、人物,是复刻时要准备的参考图(报告里的「复刻要准备的参考素材」),不是嵌入素材。
|
|
24
|
+
4. **声音怎么做的?**人声(TTS 还是真人)、BGM(风格 / BPM / 调性 / 段落)、音效(时间点、类型、对应哪个画面事件),以及切镜是否卡在节拍上。**重点是来源:AI 生成的还是现成的。**先看视频形式——AI 音乐 MV(整片是一首唱出来的歌)大概率是 AI 歌;普通视频配乐大概率是现成曲库,但 AI 工作流的视频 BGM 也常是 Suno 生成,必须标"待确认"并给确认方法。
|
|
25
|
+
5. **实拍的话,怎么拍、怎么打光、怎么调色、怎么剪?**景别、机位、自拍还是支架、正常速度还是慢动作/延时;主光方向/软硬/光比/色温、有无补光和轮廓光,布光方案(正面柔光、主光 + 补光、侧光、逆光、夜景环境光、低调、高调、彩色氛围光、产品静物、户外直射/阴天/逆光——户外要靠你在 `lighting.location` 里写明"户外");调色风格(自然、青橙、日系、胶片、黑白、暗调);跳切、推近切、插入素材的节奏。
|
|
26
|
+
6. **怎么复刻?**每镜给出路线和工具;实拍镜头给拍摄方案(布光 + 器材清单),不是只写"用 AI 近似",AI 类镜头可以交给 capsule-cinema 生成。
|
|
27
|
+
|
|
28
|
+
核心原则:**每个结论都要有证据,确定不了就如实写"待确认"并说明还缺什么。**宁可写"实拍还是 AI 待确认(倾向 AI 70%)",也不要编一个确定的答案。
|
|
29
|
+
|
|
30
|
+
## 0. 环境
|
|
31
|
+
|
|
32
|
+
先跑 `rea-video --help`。没装就按 `references/setup.md` 安装(需要 ffmpeg、Python ≥ 3.10)。
|
|
33
|
+
|
|
34
|
+
VLM(能看图的多模态模型)建议配,不强制,配置方法也在 `references/setup.md`。没配也照常跑,不要因此中止:
|
|
35
|
+
- 你自己能看图:你就是这次的"VLM",按下面的「看图复核并入」做。
|
|
36
|
+
- 你看不了图:遵守 `references/review.md` 的「看不了图时的规则」,回复末尾一句话建议配置 VLM。
|
|
37
|
+
|
|
38
|
+
**VLM 是否真的生效,以 `rea-video summary` 的 `VLM:` 一行为准**:`failed` / `not_configured` 等同没开,报告里如实写。
|
|
39
|
+
|
|
40
|
+
## 1. 标准流程
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# ⓪ 先看记住了什么:用户偏好(默认引擎、是否开 VLM、给你的偏好说明)和常见纠正类型
|
|
44
|
+
rea-video memory
|
|
45
|
+
# ① 拆解(产出 out/<名>/breakdown.json、report.html、report.md、storyboard.jpg、audio.png、shots/、stems/)
|
|
46
|
+
rea-video --env-file <你的 .env> decompose ref.mp4 -o out/ref --vlm --lang <zh|en> # --lang 按用户提问的语言选(见「交付给用户」);没有 VLM 配置就去掉 --env-file 和 --vlm;字幕/花字是日文就加 --ocr-lang ja
|
|
47
|
+
# ② 看紧凑摘要:低置信镜头会被标出;先看 VLM: 那一行确认 VLM 是否生效
|
|
48
|
+
rea-video summary out/ref/breakdown.json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**省 token**:结果以 `rea-video summary` 为准,不要整份读 `breakdown.json`(几十万字)或 `report.md`(附录占一半)。要某一节时先 `grep -n '^##' out/ref/report.md` 找行号,只读那一节;复核时每镜看 `shots/shot_XXX.jpg` 联系表就够(已含首 / 中 / 尾帧),`_first` / `_last` 是复刻时给生成模型参照用的,不用另开。
|
|
52
|
+
|
|
53
|
+
### 看图复核并入(能看图的 agent 必做,开了 VLM 也建议做低置信镜头)
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
rea-video review out/ref # 写出 review_tasks.json(每镜要看的图、工具判断、优先级)和 review_answers.json(答案模板)
|
|
57
|
+
# 读 review_tasks.json 的 instructions,逐镜看 images 里的图(priority=high 必看),把 label_probs / evidence / description / narrative / embedded_assets 填进 review_answers.json;narrative 是「这个镜头在讲什么」:role 选叙事作用(抓注意 / 交代背景 / 补信息 / 给证据 / 转折 / 给结论 / 引导行动 / 渲染情绪),point 一句话写它讲的那一点,报告会连成「叙事线」;若某镜头实为多刀合并(暗底图形与暗底口播交替时容易被合成一个长镜头),可加 split_suggestion(cuts 切点秒数 + labels 各段类别 + note),报告会在该镜头标注拆分建议,镜头边界本身不变
|
|
58
|
+
# 顶层 cast 填整片的角色 / 场景 / 道具(同一个角色跨镜头认成同一个,外观写到能据此复刻)和一句视觉风格;没开 VLM 时报告的「角色、场景与道具」一节全靠这里
|
|
59
|
+
rea-video apply-review out/ref --by <你的名字> # 并入:重写 breakdown.json、report.md、report.html,打印改判了哪些镜头
|
|
60
|
+
rea-video summary out/ref/breakdown.json # 用并入后的结果写回复
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
没看过的镜头 label_probs 留空 `{}`,会被跳过。你的答案会和确定性结果融合(不是直接覆盖),所以帧率、AIGC 标识这类强证据仍然起作用;如果并入后的结论和你的看法不同,在回复里写明理由。
|
|
64
|
+
|
|
65
|
+
融合规则、看不了图时怎么办、原片 / 转码视频的特殊规则,见 `references/review.md`。能看图时**一定要做看图复核**,开了 VLM 也要做,并且独立判断,不要照抄 VLM。
|
|
66
|
+
|
|
67
|
+
然后**一定要自己复核**,不要直接转述工具输出:
|
|
68
|
+
|
|
69
|
+
1. 先看 `storyboard.jpg` 和 `audio.png`,对整片建立整体印象。
|
|
70
|
+
2. 对标了"低置信,需要复核"的镜头,或"次选"概率很接近的镜头:
|
|
71
|
+
- 打开 `shots/shot_XXX.jpg`(首、中、尾联系表)。
|
|
72
|
+
- 必要时抽帧细看:`rea-video tiles ref.mp4 --start 12.3 --end 13.1 --every 0.1 -o out/ref/check.jpg`。
|
|
73
|
+
- 按 `references/taxonomy.md` 的"易混对照表"逐条核对。
|
|
74
|
+
3. 角色与场景:`rea-video summary` 的「角色 / 场景」几行(`report.md`「角色、场景与道具」一节)。核对同一个角色有没有被 VLM 认成几个(逐镜描述里叫法不一致是常见问题),复刻时每个角色固定一张参考图贯穿所有生成单元;不对就在 `review_answers.json` 顶层 `cast` 里改。
|
|
75
|
+
4. 声音按 `references/audio.md` 复核:先听 `stems/vocals.wav`(人声干声)和 `stems/music.wav`(配乐),再看 `rea-video summary` 里的"声音来源"一行(视频类型 → 人声 / 音乐 / 音效来源)。信号层面检出的音效只是**低置信候选**,音效清单以 VLM 听到的为准;没开 VLM 时要说明"轻音效可能漏检"。
|
|
76
|
+
5. **实拍(口播 / 桌拍 / vlog / 商品)**:`rea-video summary` 末尾按维度列出「取景 / 机位 / 打光 / 剪辑 / 形式」(`report.md`「拍法、打光与剪辑」一节,含复刻拍摄方案和器材)。
|
|
77
|
+
工具在画面主体上测量:有人脸用人脸,没有人脸(桌拍、商品、手)用画面里最清晰的区域,后者的景别是估算。
|
|
78
|
+
看图时在 `review_answers.json` 每镜的 `aspects` 和顶层 `aspects` 里补像素测不出的:机位角度、自拍还是支架、主光是什么光源、眼神光、轮廓光/背景灯、画面里的光源、推测设备、视频形式。报告里测量、VLM、看图三个来源并列,不平均。
|
|
79
|
+
注意:平台转码会压暗部,软硬和补光的测量偏保守。AI / 3D 画面也会给光影描述,但标明「不是拍摄方案」,只用于写生成提示词。
|
|
80
|
+
6. 真实素材按 `references/materials.md` 复核:代码模板里嵌入的截图和照片,确定性检测能找出大部分,但**暗色、半透明的背景照片会漏**。
|
|
81
|
+
7. 剪辑包装(`rea-video summary` 的「包装:」几行,`report.md`「剪辑包装层」一节,文件在 `packaging/`):
|
|
82
|
+
- 字幕时间轴和样式是测出来的,一般可信;字体是什么要你看图补(工具只给颜色、描边、底框、字高)。
|
|
83
|
+
- 贴纸:标了「需要看图确认」的,看 `packaging/sticker_XX.jpg` 和 `review_tasks.json` 里的 `frame_cmd`,在 `review_answers.json` 的 `packaging.stickers` 里填 `is_overlay` 和 `what`;工具漏掉的写进 `packaging.missed`。3D / 动画 / 版式画面里突然出现的物体工具不算贴纸,你看到是后期贴的再补。
|
|
84
|
+
- 花字和标签分错类时在 `packaging.text` 里改 `kind`。
|
|
85
|
+
- 音效「对应画面」一列是按时间就近对齐的,没开 VLM 时补出的候选(来源 `deterministic_anchored`)实测只有约四成是真音效,写成"可能"。
|
|
86
|
+
- 「按台词定位」是花字 / 标题 / 贴纸落在哪句字幕上(句中第几秒、对上哪个词),「常驻图层」是跨切镜不变的免责声明、标题栏、角标。只在有字幕时才有;定位按时间推的,看图觉得不对就在回复里说明。
|
|
87
|
+
8. 第 3、5、6、7 步改了 `review_answers.json` 的,改完**再跑一次** `rea-video apply-review out/ref --by <你的名字>`,否则这些修改进不了报告。
|
|
88
|
+
9. 如果你的判断和工具不同,以你的复核为准,在回复里写明理由;有价值的话,建议用户把这条视频加进评测集(仓库 `docs/dev/evaluation.md`)。
|
|
89
|
+
|
|
90
|
+
用户指出判错或说出长期偏好时,按 `references/memory.md` 记下来(`rea-video correct` / `rea-video prefs`)。
|
|
91
|
+
|
|
92
|
+
## 2. 交付给用户
|
|
93
|
+
|
|
94
|
+
按 `references/output-template.md` 回复:先一句话结论,再内容与角色(这条视频讲什么、主要角色和场景),叙事线(每一步在抓注意、补信息还是给结论,见 `report.md`「内容与结构」;建议用户保留这条线、换成自己的案例和素材来重写,不只是换个主角),然后复刻方案(按生成单元 / 拍摄场次组织)、分镜表、剪辑包装、声音、真实素材清单、不确定点,最后给 `report.html` 路径。不要把 breakdown.json 贴进对话。
|
|
95
|
+
|
|
96
|
+
**报告和回复都用用户的语言。**语言的判断顺序:用户明确指定的语言(「用英文出报告」「report in Chinese」)> 用户提问所用的语言 > `rea-video memory` 里的 `lang` 偏好 > 中文。
|
|
97
|
+
- 工具支持 `--lang zh` 和 `--lang en`:`decompose` 时就传对,报告文件(`report.html` / `report.md`)、`summary` 输出、VLM 的画面描述和提示词都会是该语言;忘了传可以在 `apply-review out/ref --lang en` 时补上(会重新生成结论和报告文字;VLM 已写好的描述和提示词保持原语言)。看图复核时,`review_answers.json` 里的 evidence / description / prompt 也用这个语言写。
|
|
98
|
+
- 用户用日语、韩语等工具不支持的语言提问时,跑 `--lang en`,回复用用户的语言写;用户要该语言的报告文件时,把 `report.md` 翻译成 `report_<语言>.md` 放在同一目录,并说明 `report.html` 是英文的。
|
|
99
|
+
- 用户设了长期偏好(「以后都出英文报告」)就 `rea-video prefs lang en` 记下来。
|
|
100
|
+
|
|
101
|
+
## 3. 复刻(需要时)
|
|
102
|
+
|
|
103
|
+
见 `references/remake.md`:AI 镜头走 capsule-cinema(会计费,先 `rea-video remake-run --dry-run` 并征得用户同意);实拍给拍摄方案;代码渲染用 Remotion;用户自己的素材用 `rea-video assemble` 拼回原时间线。
|
|
104
|
+
|
|
105
|
+
## 参考文件
|
|
106
|
+
|
|
107
|
+
| 文件 | 什么时候看 |
|
|
108
|
+
|---|---|
|
|
109
|
+
| `references/setup.md` | 安装、配置 VLM |
|
|
110
|
+
| `references/review.md` | 看图复核:融合规则、看不了图、原片判 AI、平台转码 |
|
|
111
|
+
| `references/taxonomy.md` | 11 类画面、AI 加工、判断要点速查、易混对照 |
|
|
112
|
+
| `references/audio.md` | 声音复核 |
|
|
113
|
+
| `references/materials.md` | 真实素材复核 |
|
|
114
|
+
| `references/output-template.md` | 交付格式 |
|
|
115
|
+
| `references/remake.md` | 复刻、对接 capsule-cinema |
|
|
116
|
+
| `references/memory.md` | 记住纠正和偏好 |
|
|
117
|
+
|
|
118
|
+
## 4. 不要做的事
|
|
119
|
+
|
|
120
|
+
- 不要只凭画风判断。卡通 3D 风格既可能是 AI 视频,也可能是 Blender 渲染,要看形变、闪烁和几何稳定性。
|
|
121
|
+
- 不要把代码渲染画面里的文字算成"叠加层",那些文字就是画面本身。
|
|
122
|
+
- 不要把用户的真实素材写成"可用 AI 生成"。
|
|
123
|
+
- 不要把元数据缺失当成"不是 AI"的证据,平台转码常会清除元数据。
|
|
124
|
+
- 不要在用户确认之前调用付费生成。
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "rea-video",
|
|
3
|
+
"name": "rea-video",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"description": "Reverse-engineers how a video was made, shot by shot (live action, AI, 3D, screen recording...), its subtitles, sound and editing, and how to remake it.",
|
|
6
|
+
"defaultEnabled": true,
|
|
7
|
+
"triggerTerms": [
|
|
8
|
+
"video này làm",
|
|
9
|
+
"video này được làm",
|
|
10
|
+
"phân tích video",
|
|
11
|
+
"mổ xẻ video",
|
|
12
|
+
"làm lại video",
|
|
13
|
+
"dựng lại video",
|
|
14
|
+
"video có phải ai",
|
|
15
|
+
"video ai hay thật",
|
|
16
|
+
"how was this video made",
|
|
17
|
+
"remake this video",
|
|
18
|
+
"reverse engineer this video",
|
|
19
|
+
"这条视频怎么做",
|
|
20
|
+
"视频怎么做的",
|
|
21
|
+
"是不是ai",
|
|
22
|
+
"怎么复刻",
|
|
23
|
+
"rea-video"
|
|
24
|
+
],
|
|
25
|
+
"requiredCapabilities": [],
|
|
26
|
+
"source": {
|
|
27
|
+
"repo": "JuneYaooo/rea-video",
|
|
28
|
+
"commit": "3669923645e3953632e7406a57fb883e0ba8a6e0",
|
|
29
|
+
"folder": "skills/rea-video",
|
|
30
|
+
"license": "Apache-2.0"
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# 声音拆解
|
|
2
|
+
|
|
3
|
+
工具产出:`breakdown.json` 的 `audio`(测量值)和 `audio_plan`(与 VLM 合并后的结果和复刻方案),以及 `audio.png` 时间轴。
|
|
4
|
+
|
|
5
|
+
## 能信多少
|
|
6
|
+
|
|
7
|
+
| 项 | 方法 | 可靠度(capsule-cinema 样本) |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| 有无人声 | 人声频段的音节调制(3–8Hz),加上句间停顿 | 高 |
|
|
10
|
+
| 有无 BGM | 人声间隙里仍有响亮、有音调的声音(谐波占比 >0.62);没有人声时看谐波持续性;或者有明显节拍周期。整段只有一个音高(测试音、蜂鸣、带谐波的电流嗡声,底下有点底噪也一样)不算音乐,记为 `steady_tone` | 高 |
|
|
11
|
+
| BPM | 打击成分起音包络的自相关,同时给出半速/倍速候选;持续音、长音铺底这类几乎没有打击成分的声音报「无明显节拍」,不给 BPM;打击成分很少、周期也很弱的(没有鼓的铺底)同样不给 | 高(咸鸭蛋 110.0 vs 真值 110.15) |
|
|
12
|
+
| 调性 | 色度 + Krumhansl 调性轮廓 | 中高(两条真值都对:D major) |
|
|
13
|
+
| 段落变化 | 色度和响度的新颖度峰值 | 中 |
|
|
14
|
+
| 音效 | 人声段落之外非常突出的瞬态,且不在节拍上;有 BGM 时要求更突出;瞬态处要有真实的打击能量(持续音的压缩噪声不算),音轨最后 0.1 秒的截断声不算 | **低**:在人声 + BGM 的混音里,信号层面实测精度只有约 0.2,轻音效基本测不出。音效清单以 VLM 为准 |
|
|
15
|
+
| TTS 还是真人 | 交给 VLM | — |
|
|
16
|
+
| 男声 / 女声 | 基频中位数(<150Hz 偏男声,>200Hz 偏女声) | 中,只作参考 |
|
|
17
|
+
| 卡点剪辑 | 切点落在节拍上的比例 vs 随机概率 | 中高 |
|
|
18
|
+
|
|
19
|
+
## 剥离音轨
|
|
20
|
+
|
|
21
|
+
`decompose` 默认把声音剥成三条轨,放在 `stems/` 下(`rea-video stems <视频>` 可以只做这一步):
|
|
22
|
+
|
|
23
|
+
| 文件 | 内容 |
|
|
24
|
+
|---|---|
|
|
25
|
+
| `original.wav` | 原声(视频里的完整混音) |
|
|
26
|
+
| `vocals.wav` | 人声干声:旁白、口播、歌声。注意:键盘声、"叮"之类的瞬态音效也会落在这里 |
|
|
27
|
+
| `music.wav` | 配乐 + 环境声 |
|
|
28
|
+
|
|
29
|
+
模型是 UVR MDX-Net Inst HQ 3(ONNX,CPU 即可,首次运行从 GitHub 下载约 67 MB,缓存在 `~/.cache/rea-video/models`,可用 `REA_VIDEO_MODELS` 改位置)。实测 TTS + Suno BGM 混音分离 SDR 约 19.7 dB;纯 BGM 漏进人声轨 −42 dB。约 0.6 倍实时(4 核)。
|
|
30
|
+
|
|
31
|
+
复核时**直接听 vocals.wav 和 music.wav**,比听混音容易判断:人声是唱还是说、是不是 TTS,配乐有没有人声、结尾是不是被截断。
|
|
32
|
+
|
|
33
|
+
## 来源判断:AI 生成还是现成的?
|
|
34
|
+
|
|
35
|
+
**一句话结论**在 `sound_sources.summary_zh`,格式是"视频类型 → 人声 / 音乐 / 音效来源":
|
|
36
|
+
|
|
37
|
+
| 视频类型 | 人声 | 音乐 | 音效 |
|
|
38
|
+
|---|---|---|---|
|
|
39
|
+
| 音乐 MV / 歌曲类 | 歌曲自带的演唱 | **AI 生成**(Suno 等)为主 | 音效库 |
|
|
40
|
+
| AI 视频原生出声 | 视频模型生成 | 后期配乐 | 视频模型生成 |
|
|
41
|
+
| 实拍 | 同期声 / 真人配音 | 现成配乐 | 同期声 |
|
|
42
|
+
| 旁白/口播 + 配乐 | TTS 或真人配音 | **现成曲库**为主(AI 工作流也常用 Suno 垫乐) | 音效库 |
|
|
43
|
+
| 纯配乐 | — | 现成曲库 | 音效库 |
|
|
44
|
+
|
|
45
|
+
工具产出:`breakdown.json` 的 `sound_sources`(music / voice / sfx 各自的 `source`、`leaning`、`probs`、`evidence`、`how_to_confirm`)。
|
|
46
|
+
|
|
47
|
+
### 第一步:先看视频形式(决定先验)
|
|
48
|
+
|
|
49
|
+
| 形式 | 怎么认 | 音乐来源先验 |
|
|
50
|
+
|---|---|---|
|
|
51
|
+
| **AI 音乐 MV**(整片就是一首带人声的歌) | VLM 说 format=MV;或确定性层:音乐铺满全片(>85%)**且人声是唱的**(`voice.style` = singing / rap_or_rhythmic,在分离出的干声上测) | AI 生成 60%(未开 VLM 时降权为 45%) |
|
|
52
|
+
| **普通视频配乐**(旁白/口播 + 垫底 BGM,或无人声的纯配乐) | 人声是说话(`voice.style` = speech),或没有人声 | 现成曲库 60% |
|
|
53
|
+
|
|
54
|
+
"唱"和"说"在**人声干声**上判断,两个信号:
|
|
55
|
+
|
|
56
|
+
- 持续音高(`sustained_note_ratio`):唱歌会在一个音高上停留 ≥160ms,>0.3 算唱。实测 TTS 旁白 0.14–0.15,说唱 0.24(说唱本来就不拖长音)。
|
|
57
|
+
- 副歌重复(`chorus_repeat_share`):4 秒的人声旋律片段在 6 秒以后又出现。>0.1 算歌(包括说唱)。实测 AI 说唱 MV 0.26,TTS 旁白 0.00。短视频只截了一段、没有重复的副歌时,这个信号会失效。
|
|
58
|
+
|
|
59
|
+
### 第二步:用证据修正
|
|
60
|
+
|
|
61
|
+
| 证据 | 指向 | 权重 |
|
|
62
|
+
|---|---|---|
|
|
63
|
+
| 歌词唱的就是本片的角色/商品/剧情(VLM `lyrics_match_content`) | AI 生成(定制歌) | 强 |
|
|
64
|
+
| VLM 认出歌名(`song_guess`) | 知名歌曲 | 强 |
|
|
65
|
+
| 平台音乐标签是具体歌名(`--meta`) | 现成曲目 | 强 |
|
|
66
|
+
| 平台标签是「@作者创作的原声」 | 不是平台曲库;MV 类多为 AI 歌 | 中 |
|
|
67
|
+
| 片尾音乐满音量被硬切 | 截取的现成曲目 | 弱 |
|
|
68
|
+
| 音乐和视频一起收尾 | 按片长定制/剪辑(两种都可能) | 很弱 |
|
|
69
|
+
| 文件带 AIGC 隐式标识 | 整片声明含 AI 内容 | 很弱 |
|
|
70
|
+
|
|
71
|
+
最高概率 <45% 时输出"待确认",同时给出倾向(`leaning`)。
|
|
72
|
+
|
|
73
|
+
### 已知陷阱(一定要在回复里提醒)
|
|
74
|
+
|
|
75
|
+
**AI 工作流做出来的普通视频,BGM 也常是 Suno 生成的**(capsule-cinema 自己的 monkey_wine、咸鸭蛋、鸟窝都是)。"普通配乐 = 曲库"的先验在这类视频上会错,而纯听感/信号特征分不开 Suno 器乐和曲库器乐。所以普通配乐的结论必须写成"倾向曲库,待确认",并给出确认方法:
|
|
76
|
+
|
|
77
|
+
1. 抖音/小红书原页面的音乐标签(`--meta` 传进来最好)。
|
|
78
|
+
2. 汽水音乐 / QQ 音乐「听歌识曲」或 ACRCloud:识别得到就是现成歌曲;识别不到不代表是 AI(曲库冷门曲也常识别不到)。
|
|
79
|
+
3. 听感:AI 歌咬字含糊、高频发虚带金属感、歌词紧扣画面;AI 器乐常见结构一成不变、结尾突然收住或循环拼接。
|
|
80
|
+
|
|
81
|
+
### 人声和音效的来源
|
|
82
|
+
|
|
83
|
+
- **人声**:TTS / AI 视频自带人声 / 真人录音。镜头切换处底噪跳变(`per_clip_audio.resets_at_cuts`)说明每段声音跟着画面片段走,是 AI 视频模型原生出声(如 Veo、Seedance 带音频)或实拍同期声。
|
|
84
|
+
- **音效**:多数来自现成音效库(mixkit、爱给等);AI 视频模型原生出声时音效也跟着片段走。确定性层只能给倾向,清单以 VLM 为准。
|
|
85
|
+
|
|
86
|
+
## 复核方法
|
|
87
|
+
|
|
88
|
+
1. 看 `audio.png`:人声条、音乐条和切镜线是否对得上直觉。
|
|
89
|
+
2. 音效有疑问时,抽那一段画面看看有没有对应事件(文字弹出、转场、动作):`rea-video tiles`。
|
|
90
|
+
3. VLM 给出 `source_guess=popular_song`,或平台标签是具体歌名时,在复刻方案里写明"需要授权或替换"。
|
|
91
|
+
4. 音乐来源按上面的"来源判断"写,普通配乐不要写成确定的"曲库"。
|
|
92
|
+
|
|
93
|
+
## 复刻
|
|
94
|
+
|
|
95
|
+
- **人声**:capsule-cinema 的 DoubaoTTSTool / UniversalTTSTool 或 MiniMax 克隆;要卡原时间窗时用时长可控 TTS。
|
|
96
|
+
- **BGM**:按 BPM、调性、情绪用 Suno(UniversalMusicGenerationTool)或曲库;在段落变化点对齐镜头。
|
|
97
|
+
- **音效**:按时间点摆放;有音高的音效对齐 BGM 调性(capsule-cinema plush 配方的 sfx.py / cues.py 就是这样做的)。
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# 用户真实素材
|
|
2
|
+
|
|
3
|
+
**定义**:画面里不是制作方生成或渲染、而是从现实中引入的像素,包括实拍视频、真实照片、网页/App 截图、录屏、版式里播放的视频片段、贴上去的 Logo / 商品图。复刻时这些必须由用户提供原文件,**不能写成"用 AI 生成"**。
|
|
4
|
+
|
|
5
|
+
**和「参考素材」分开**:AI 视频、数字人、3D 画面里出现的商品、Logo、人物,像素是模型或渲染器做出来的,不算真实素材;它们记在 `material.references`,报告里是「复刻要准备的参考素材」,复刻时作为参考图(`@图片N`)喂给模型。实拍画面里的商品是道具,同样记为参考。
|
|
6
|
+
|
|
7
|
+
## 工具怎么标
|
|
8
|
+
|
|
9
|
+
- **整帧**:
|
|
10
|
+
- 实拍 → 实拍视频素材
|
|
11
|
+
- 录屏/截图 → 录屏素材或界面截图(静止的算截图)
|
|
12
|
+
- 静帧/推拉且来源是照片或截图 → 真实照片或截图
|
|
13
|
+
- 静帧来源不明(没开 VLM)→ "图片素材(真实/AI 待确认)",不计为真实素材
|
|
14
|
+
- **嵌入**(只在渲染画面里检测,即代码渲染、录屏、3D、渲染卡片):
|
|
15
|
+
- 照片纹理区域:灰度熵高、无平涂,且不在字幕带 → 照片/图片素材,**标为"真实还是 AI 待确认"**(模板里贴的也可能是 AI 图)。要么由 VLM 确认,要么你自己看图判断
|
|
16
|
+
- 浅色面板 + 单帧 ≥6 处小字 → 界面截图(直接算真实素材)
|
|
17
|
+
- 区域内有运动而周围静止 → 嵌入视频片段或录屏
|
|
18
|
+
- **VLM**:`embedded_assets` 里 `is_real_material=true` 的条目。底层是渲染版式(代码、录屏、静图)时算嵌入素材,VLM 说的 `real_footage` 记为「嵌入视频片段」(它可能本身是 AI 视频);底层是 AI 视频 / 数字人 / 实拍,或 3D 里的商品、Logo、人物,记为参考素材。
|
|
19
|
+
|
|
20
|
+
## 已知漏检
|
|
21
|
+
|
|
22
|
+
- 暗色、半透明、作为氛围背景的照片(例如 mediank 的 NASA 背景图):纹理对比太低,确定性检测不出来。看到深色模板时,要自己看一眼背景。
|
|
23
|
+
- 暗色主题网页截图:不是浅色面板,检测不到,要看画面里有没有浏览器或界面框。
|
|
24
|
+
- 实拍或 AI 画面里叠加的小 Logo、商品图:确定性层不在照片底图上做嵌入检测(容易误报),依赖 VLM。
|
|
25
|
+
|
|
26
|
+
## 素材库空镜
|
|
27
|
+
|
|
28
|
+
城市航拍、延时、风景、商务人物、手部特写这类和视频主体无关的实拍空镜,常是从素材网站买的,不是作者自己拍的。工具会把它们标成「实拍视频素材」。看图时在 `description` 写明「疑似素材库空镜」,交付时和作者自拍的素材分开列:复刻时到素材网站找同类即可,不用向用户要原片。
|
|
29
|
+
|
|
30
|
+
影视片段(`film_footage`)同理:素材来自片方,交付时写「需要找原片对应片段,商用要授权」,不要写成用户自己的素材。
|
|
31
|
+
|
|
32
|
+
## 交付时的写法
|
|
33
|
+
|
|
34
|
+
逐条列出:镜头号、时间、素材类型、画面位置、内容描述,以及"复刻时需要你提供:……"。
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# 记住用户的纠正和偏好
|
|
2
|
+
|
|
3
|
+
- 用户指出某个镜头判错("这是定格动画不是 AI"、"这段是我自己拍的素材"):运行
|
|
4
|
+
`rea-video correct out/ref --shots 3,5 --label stop_motion --note "<用户原话>"`(`--label` 填用户说的那一类,类别名见 `taxonomy.md`:定格动画是 `stop_motion`,静态图 + 推拉是 `still_motion`;也可用 `--start/--end` 指定时间段,`--shots all` 表示整条;真实素材用 `--real yes|no`)。
|
|
5
|
+
这会立刻改结论和报告,并记入 `~/.rea-video/corrections.jsonl`;以后拆同一个文件会自动套用,同类镜头会在复核任务里提示。
|
|
6
|
+
- 用户说出长期偏好:能对应参数的用 `rea-video prefs engine kling2.1`、`prefs vlm on`、`prefs env_file <路径>`、`prefs reviewer <名字>`、`prefs capsule_root <capsule-cinema 路径>`;其余的用 `rea-video prefs --note "报告尽量短,重点写复刻方案"` 记下,下次 `rea-video memory` 会显示,按它调整回复。
|
|
7
|
+
- 只记用户明确说的,不要把你自己的猜测写成纠正。纠正不会自动改分类权重;积累到几条以后,用 `rea-video memory --export-labels eval/user_labels.yaml` 导出成评测样本,再按开发约定评测、改规则(仓库 `docs/dev/evaluation.md`)。
|