// scripts/generate-readme.js // 铸渊 · README Dashboard 总生成器(副控增强版) // 读取各数据源 → 拼接成美观的 README.md // 之之专属:含铸渊指令签发区(区块五) // // 环境变量: // DEV_ID - 开发者编号 (DEV-004) // DEV_NAME - 开发者名称 (之之) // DEV_ROLE - 开发者角色 (零点原核语言副控·仓库人类主控) // PERSONA_NAME - 人格宝宝名称 (秋秋) // PERSONA_ID - 人格宝宝编号 (PER-Q0001) const fs = require('fs'); const DEV_ID = process.env.DEV_ID || 'DEV-XXX'; const PERSONA_NAME = process.env.PERSONA_NAME || '宝宝'; const PERSONA_ID = process.env.PERSONA_ID || 'PER-XXXX'; const DEV_NAME = process.env.DEV_NAME || '开发者'; const DEV_ROLE = process.env.DEV_ROLE || '光湖共创者'; let readme = ''; // ═══════════ HEADER ═══════════ readme += '
\n\n'; readme += `# 🌊 光湖系统 · ${PERSONA_NAME}宝宝主控台\n\n`; readme += `**${DEV_NAME}(${DEV_ID})** · ${DEV_ROLE}\n\n`; readme += `\`人格宝宝:${PERSONA_NAME}(${PERSONA_ID})\`\n\n`; readme += '---\n\n'; readme += '**🇨🇳 通感语言核系统 TCS Language Core · 国作登字-2026-A-00037559**\n\n'; readme += '
\n\n'; // ═══════════ 区块一:总控台公告 ═══════════ readme += '## 🌊 总控台公告\n\n'; try { const bulletin = fs.readFileSync('system-bulletin/LATEST.md', 'utf8'); readme += '
\n\n' + bulletin + '\n\n
\n\n'; } catch { readme += '> 📭 暂无系统公告\n\n'; } readme += '---\n\n'; // ═══════════ 区块二:个人广播 ═══════════ readme += `## 📡 ${PERSONA_NAME}的主控台 · 最新广播\n\n`; try { const broadcast = fs.readFileSync('my-bulletin/LATEST-BROADCAST.md', 'utf8'); const summary = broadcast.substring(0, 500).split('\n').slice(0, 10).join('\n'); readme += '
\n\n' + summary + '\n\n[📖 查看完整广播](my-bulletin/LATEST-BROADCAST.md)\n\n
\n\n'; } catch { readme += '> 📭 暂无个人广播\n\n'; } readme += '---\n\n'; // ═══════════ 区块三:签到状态 ═══════════ readme += `## 🤖 ${PERSONA_NAME}宝宝 · 每日签到\n\n`; readme += `> 含铸渊连接状态检查\n\n`; try { const checkin = JSON.parse(fs.readFileSync('checkin/latest.json', 'utf8')); const ts = new Date(checkin.timestamp).toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' }); readme += `**最后签到**:${ts}\n\n`; readme += '| 检查项 | 状态 | 详情 |\n'; readme += '|--------|------|------|\n'; checkin.checks.forEach(function (c) { const statusIcon = c.status === 'ok' ? '✅' : c.status === 'warn' ? '⚠️' : '❌'; readme += `| ${c.icon} ${c.name} | ${statusIcon} | ${c.detail} |\n`; }); const issues = checkin.checks.filter(function (c) { return c.status !== 'ok'; }); if (issues.length > 0) { readme += '\n> 🔧 **待修复**:' + issues.map(function (i) { return i.detail; }).join(' · ') + '\n'; } } catch { readme += '> ⏳ 签到系统初始化中...\n'; } readme += '\n---\n\n'; // ═══════════ 区块四:项目进度 ═══════════ readme += '## 📊 项目进度\n\n'; try { const allStatus = JSON.parse(fs.readFileSync('dev-status/all-status.json', 'utf8')); const myStatus = allStatus[DEV_ID] || null; if (myStatus) { readme += '| 模块 | 进度 | 状态 | 最近更新 |\n'; readme += '|------|------|------|----------|\n'; (myStatus.modules || []).forEach(function (m) { const filled = Math.round(m.progress / 10); const bar = '█'.repeat(filled) + '░'.repeat(10 - filled); readme += `| ${m.name} | ${bar} ${m.progress}% | ${m.status_icon} ${m.status} | ${m.last_update} |\n`; }); } else { readme += '> ⏳ 进度数据同步中...\n'; } } catch { readme += '> ⏳ 进度数据同步中...\n'; } // ═══════════ 最近提交 ═══════════ try { const { execSync } = require('child_process'); const logs = execSync('git log --oneline --since="14 days ago" -10').toString().trim(); if (logs) { readme += '\n### 📈 最近提交\n\n'; readme += '```\n' + logs + '\n```\n'; } } catch { // git log 不可用时跳过 } readme += '\n---\n\n'; // ═══════════ 区块五:铸渊指令签发区(副控专属)═══════════ readme += `## ⚒️ 铸渊指令签发区\n\n`; readme += `> 之之签发给铸渊的指令存档在这里。铸渊执行完成后自动更新状态。\n\n`; try { const latest = fs.readFileSync('zhuyuan-instructions/LATEST.md', 'utf8'); const summary = latest.substring(0, 300).split('\n').slice(0, 8).join('\n'); readme += `
\n\n${summary}\n\n[📖 查看完整指令](zhuyuan-instructions/LATEST.md) · [📚 历史指令](zhuyuan-instructions/history/)\n\n
\n\n`; } catch { readme += `> 📭 暂无签发指令\n\n`; } // ═══════════ FOOTER ═══════════ readme += '---\n\n'; readme += '
\n\n'; readme += '*🌊 光湖纪元 · HoloLake Era · AGE OS v1.0*\n\n'; readme += '*本页由铸渊(ICE-GL-ZY001)自动生成 · 请勿手动编辑*\n\n'; readme += `*最后更新:${new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' })}*\n\n`; readme += '
\n'; fs.writeFileSync('README.md', readme); console.log('✅ README Dashboard 已生成(副控增强版 · 含铸渊指令签发区)');