2026-09-01 16:31:40 +08:00
/* submit-review-tasks.cjs — 对俊希最新的 AI 脚本逐条提交复盘任务(与诊断页「复盘」按钮一致 + 落库 script_review 指令)
用法: node submit-review-tasks.cjs [rewriteId1,rewriteId2,...] (不传则自动取 account_id=3 的最新 done 记录) */
const { DatabaseSync } = require ( 'node:sqlite' );
const path = require ( 'path' );
const DB = path . join ( __dirname , 'mcn-plugin.db' );
const API = 'http://localhost:8900/api/run' ;
const ACCOUNT_ID = 3 ;
const db = new DatabaseSync ( DB , { readOnly : true });
let ids = process . argv . slice ( 2 ). map ( Number ). filter ( Boolean );
if ( ! ids . length ) {
ids = db . prepare ( "SELECT id FROM rewrite_log WHERE account_id=? AND status='done' AND script_text IS NOT NULL AND script_text <> '' ORDER BY id DESC LIMIT 20" ). all ( ACCOUNT_ID ). map (( r ) => r . id );
}
const rows = [];
for ( const id of ids ) {
const r = db . prepare ( 'SELECT rl.id, rl.video_id, rl.title, v.video_title FROM rewrite_log rl LEFT JOIN account_videos v ON v.id=rl.video_id WHERE rl.id=?' ). get ( id );
if ( r ) rows . push ( r );
}
db . close ();
if ( ! rows . length ) { console . log ( 'NO REWRITES TO REVIEW' ); process . exit ( 1 ); }
const sleep = ( ms ) => new Promise (( r ) => setTimeout ( r , ms ));
( async () => {
for ( const r of rows ) {
const prompt = `请对这条 AI 脚本做复盘评分(AI脚本 / 原视频脚本 / 对比分析三种模式),按 mcn-script-review(脚本复盘)技能执行。
脚本标题:《 ${ r . title || r . video_title || '' } 》(rewrite_log.id= ${ r . id } , video_id=${ r . video_id } )
【任务完成后必须执行】
2026-09-03 11:11:57 +08:00
将复盘结果保存到工作台数据库 mcn-plugin.db 的 script_review 表(数据库路径:D:\\AgentSkill\\mcn-video-script\\project\\短视频脚本创作\\V1.0\\mcn-work-shop\\mcn-plugin.db),字段:
2026-09-01 16:31:40 +08:00
- type='ai'
- rewrite_id= ${ r . id }
- video_id= ${ r . video_id }
- dims_json=各维度评分 JSON(设定承接/框架节奏/钩子设置/叙事逻辑/极致事件/共鸣和共情/格式规范性/台词口语化/内容合规/教程完整链/其他)
- total=总分(数字)
- verdict=结论
- issues_json=问题清单 JSON
- content=复盘完整内容
- summary=摘要
- status='done'
(用 node:sqlite 或 sqlite3 写入;若该表不存在则创建后再写)
完成后回复:评分 + 是否已保存。` ;
try {
const resp = await fetch ( API , {
method : 'POST' ,
headers : { 'Content-Type' : 'application/json' },
body : JSON . stringify ({ prompt , name : '复盘指令' , skills : [ '脚本复盘' ] }),
});
const d = await resp . json ();
console . log ( `SUBMIT review rw ${ r . id } →` , d . ok ? ( 'id=' + d . id ) : ( 'ERR ' + d . error ));
} catch ( e ) {
console . log ( `SUBMIT review rw ${ r . id } → EXCEPTION ${ e . message } ` );
}
await sleep ( 3000 );
}
console . log ( 'ALL REVIEW TASKS SUBMITTED' );
})();