speccore 5.27.0 → 5.27.1
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/README.md +3 -2
- package/dist/commands/retro.js +3 -3
- package/dist/commands/retro.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SpecCore — Code by Spec, Not by Vibe
|
|
2
2
|
|
|
3
|
-
🖥️ 规范驱动开发 CLI ·
|
|
3
|
+
🖥️ 规范驱动开发 CLI · 21 命令(55 全量)· 人机协同闭环 · 三层 AI 架构
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
6
|
speccore ask "我想做一个登录功能,计划晚8点分批执行"
|
|
@@ -69,7 +69,7 @@ speccore dev --auto # 智能级联一键推进
|
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
71
|
npm install -g speccore
|
|
72
|
-
speccore --version # v5.
|
|
72
|
+
speccore --version # v5.27.0
|
|
73
73
|
```
|
|
74
74
|
|
|
75
75
|
## 命令列表
|
|
@@ -94,6 +94,7 @@ speccore --version # v5.26.2
|
|
|
94
94
|
| `validate` | `vl` | ✅ 合规验证 |
|
|
95
95
|
| `track` | `trk` | 🔗 REQ→Task→Code 全链路 |
|
|
96
96
|
| `search` | `sh` | 🔍 跨 Spec 全文搜索 |
|
|
97
|
+
| `retro` | `rt` | 📝 任务回顾复盘 + 评分 |
|
|
97
98
|
| `rename` | `rn` | ✏️ 重命名 |
|
|
98
99
|
| `ops` | `op` | 📜 操作历史 |
|
|
99
100
|
|
package/dist/commands/retro.js
CHANGED
|
@@ -64,7 +64,7 @@ async function retroCommand(options) {
|
|
|
64
64
|
logger_1.logger.info(` 完成时间: ${report.completedAt}`);
|
|
65
65
|
logger_1.logger.info(` 文件变更: ${report.filesChanged} 个`);
|
|
66
66
|
logger_1.logger.info(` 验证通过: ${report.validationPassed ? '✅' : '❌'}`);
|
|
67
|
-
logger_1.logger.info(` 评分: ${'⭐'.repeat(report.score)}`);
|
|
67
|
+
logger_1.logger.info(` 评分: ${'⭐'.repeat(report.score)}${report.score < 5 ? '☆'.repeat(5 - report.score) : ''} (${report.score}/5)`);
|
|
68
68
|
logger_1.logger.info(` ${report.summary}`);
|
|
69
69
|
if (report.improvement)
|
|
70
70
|
logger_1.logger.info(` 💡 改进: ${report.improvement}`);
|
|
@@ -114,7 +114,7 @@ async function generateReport(taskId, iterDir) {
|
|
|
114
114
|
`- 完成时间: ${now}`,
|
|
115
115
|
`- 文件变更: ${filesChanged}`,
|
|
116
116
|
`- 验证通过: ${validationPassed ? '✅' : '❌'}`,
|
|
117
|
-
`- 质量评分: ${'⭐'.repeat(report.score)}`,
|
|
117
|
+
`- 质量评分: ${'⭐'.repeat(report.score)}${'☆'.repeat(Math.max(0, 5 - report.score))} (${report.score}/5)`,
|
|
118
118
|
'',
|
|
119
119
|
`## 总结`,
|
|
120
120
|
report.summary,
|
|
@@ -130,7 +130,7 @@ async function generateReport(taskId, iterDir) {
|
|
|
130
130
|
}
|
|
131
131
|
function renderRetroHtml(report) {
|
|
132
132
|
const ver = require('../../package.json').version;
|
|
133
|
-
const stars = '⭐'.repeat(report.score);
|
|
133
|
+
const stars = '⭐'.repeat(report.score) + (report.score < 5 ? '<span style="opacity:0.15">⭐</span>'.repeat(5 - report.score) : '');
|
|
134
134
|
const vClass = report.validationPassed ? 'pass' : 'fail';
|
|
135
135
|
return `<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1.0"><title>SpecCore Retro · ${report.task}</title><style>@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=JetBrains+Mono:wght@400;600;700');body{margin:0;padding:40px 20px;background:#0b1929;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;font-family:'JetBrains Mono',monospace}.scanlines{position:fixed;inset:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,240,255,.015) 2px,rgba(0,240,255,.015) 4px)}.grid-pattern{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(14,165,233,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(14,165,233,.03) 1px,transparent 1px);background-size:60px 60px}.card{max-width:560px;width:100%;background:rgba(13,31,56,.95);border:1px solid rgba(14,165,233,.15);border-radius:16px;padding:32px;position:relative;overflow:hidden;z-index:1}.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#0ea5e9,transparent);animation:scanX 3s linear infinite}.card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#0ea5e9,transparent);animation:scanX-rev 3s linear infinite}.vline{position:absolute;top:0;width:1px;bottom:0;pointer-events:none}.vline.l{left:0;background:linear-gradient(0deg,transparent,#0ea5e9,transparent);animation:scanY-rev 3s linear infinite}.vline.r{right:0;background:linear-gradient(0deg,transparent,#0ea5e9,transparent);animation:scanY 3s linear infinite}@keyframes scanX{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes scanX-rev{0%{transform:translateX(100%)}100%{transform:translateX(-100%)}}@keyframes scanY{0%{transform:translateY(-100%)}100%{transform:translateY(100%)}}@keyframes scanY-rev{0%{transform:translateY(100%)}100%{transform:translateY(-100%)}}h1{font-family:'Orbitron',sans-serif;font-size:22px;font-weight:900;background:linear-gradient(135deg,#0ea5e9,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:2px}.meta{color:#5b7fa5;font-size:11px;margin:8px 0 20px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}.stat{background:rgba(14,165,233,.06);border:1px solid rgba(14,165,233,.1);border-radius:8px;padding:12px;text-align:center}.stat .val{font-family:'Orbitron',sans-serif;font-size:20px;font-weight:900;color:#0ea5e9}.stat .lbl{font-size:10px;color:#5b7fa5;margin-top:4px}.score{text-align:center;font-size:28px;margin:12px 0}.summary{padding:12px;background:rgba(20,184,166,.06);border:1px solid rgba(20,184,166,.15);border-radius:8px;color:#bae6fd;font-size:12px;line-height:1.6;margin:12px 0}.improve{padding:12px;background:rgba(249,115,22,.06);border:1px solid rgba(249,115,22,.15);border-radius:8px;color:#f97316;font-size:11px}.pass{color:#14b8a6}.fail{color:#f97316}.ft{text-align:center;color:#5b7fa5;font-size:10px;margin-top:24px}</style></head><body><div class="scanlines"></div><div class="grid-pattern"></div><div class="card"><div class="vline l"></div><div class="vline r"></div><h1>RETRO · ${report.task}</h1><div class="meta">${report.iteration ? '期次: ' + report.iteration + ' · ' : ''}${report.completedAt}</div><div class="score">${stars}</div><div class="grid2"><div class="stat"><div class="val">${report.filesChanged}</div><div class="lbl">文件变更</div></div><div class="stat"><div class="val ${vClass}">${report.validationPassed ? '✅' : '❌'}</div><div class="lbl">验证</div></div></div><div class="grid2"><div class="stat"><div class="val" style="color:${report.issuesUnresolved > 0 ? '#f97316' : '#14b8a6'}">${report.issuesUnresolved}</div><div class="lbl">未解决问题</div></div><div class="stat"><div class="val" style="color:#5b7fa5">${report.issuesTotal}</div><div class="lbl">问题总数</div></div></div><div class="summary">${report.summary}</div><div class="improve">💡 ${report.improvement || '任务完成,无特别建议'}</div></div><div class="ft">SpecCore Retro v${ver} · ${report.completedAt}</div></body></html>`;
|
|
136
136
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retro.js","sourceRoot":"","sources":["../../src/commands/retro.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,oCA0BC;AAmED,0CAKC;AA/HD;;;GAGG;AACH,+BAA4B;AAC5B,uCAAsE;AACtE,4CAAyC;AACzC,6CAAsD;AACtD,yDAAkD;AAqB3C,KAAK,UAAU,YAAY,CAAC,OAAqB;IACtD,MAAM,SAAS,GAAG,MAAM,IAAA,6BAAmB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;IAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAErD,eAAe;IACf,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,MAAM,OAAO,CAAC,CAAC;QACvF,MAAM,IAAA,oBAAS,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,eAAM,CAAC,IAAI,CAAC,WAAW,OAAO,EAAE,CAAC,CAAC;QAClC,OAAO;IACT,CAAC;IAED,WAAW;IACX,eAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChB,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACvC,eAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;IACnD,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9C,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,YAAY,IAAI,CAAC,CAAC;IACjD,eAAM,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/D,eAAM,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"retro.js","sourceRoot":"","sources":["../../src/commands/retro.ts"],"names":[],"mappings":"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"}
|