用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/HHU3637kr/skills --skill project-overview命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
当用户开始新的开发任务、需要启动完整 Spec 流程(需求对齐→探索→设计→实现→测试→收尾), 或需要为一个新 Spec 创建协作上下文和 GitHub Flow 工作分支时使用。 不要用于已有完成 Spec 的小迭代(用 spec-update)或项目首次初始化(用 spec-init)。
当用户要求以「Agent 主控 + 全程 spawn 子 Agent」的方式启动 R&K Flow 开发流程时使用: 当前 Agent 只做编排(账本、门禁代问、批次调度),七个角色的实质工作一律交子 Agent 执行。 典型信号:用户说"用 swarm 模式启动"/"蜂群模式"/"所有任务都 spawn 子 Agent 做"/"你只做主控不要自己写代码"。 本 Skill 只做前置校验、写入 execution 字段、声明编排硬约束,随后委派 spec-start 跑既有五阶段流程。 不要用于运行时不支持子 Agent 的环境(退回 spec-start 串行路径)、已有活跃 Spec 的小迭代(用 spec-update), 也不要用它替代 spec-start —— 流程本体、账本模板、门禁定义仍由 spec-start 唯一承载。
当 spec-start 需要为新 Spec 创建 GitHub Flow 工作分支,spec-update 需要复用/校验当前 Spec 分支,或 spec-end/spec-update 需要提交、推送、创建 PR、合并后清理分支时使用。也用于发版管理:建立或维护 release 分支、打版本 tag、发补丁版本、把修复 cherry-pick 到多条发布线、核对 tag 与分支是否错位、对齐镜像标签与 git tag、清理带版本号的旧分支。不要用于单次查看 git 状态、普通 diff 查询,或用户明确要求不走 GitHub Flow 的临时操作。
基于 SOC 职业分类
正在显示 SKILL.md
| name | project-overview |
| version | 1.2.0 |
| description | 整理项目全链路结构与流程,生成单文件 HTML 总览(tab 分模块、字段级折叠明细、记录 git 版本)。当用户要求整理项目结构/梳理全链路流程/生成或更新项目总览 HTML、或代码改动后要同步总览口径时使用。 |
| metadata | {"requires":{"bins":["git"]}} |
把「从输入到产出的全链路流程与细节」整理成单文件 HTML 总览。产出物:
docs/全链路流程总览.html(或用户指定路径)。
skill 自带三件套(在本 skill 目录的 assets/ 下),新建报告直接用,
不要从零写样式或交互:
| 文件 | 作用 | 缺了会怎样 |
|---|---|---|
assets/skeleton.html | HTML 骨架(页眉/tab/折叠表/占位块示例) | 手写易错 tab- 前缀与折叠行顺序 |
assets/overview.css | 全部样式 | 无样式裸页 |
assets/overview.js | tab 切换 + hash 同步 + 行内折叠 | 点折叠行无反应、tab 点不动 |
起步:cp assets/skeleton.html <目标路径> → 把 assets/overview.css 与
assets/overview.js 全文粘进骨架对应的 <style> / <script>(骨架里已标注
粘贴位置)→ 按实际模块替换 tab 与内容。本规范任何项目通用,
不预设模块清单,模块以扫描结果和用户确认为准。
① 扫模块 → ② 问:初版总览 or 深挖某模块 → ③ 生成/填充 → ④ 展示等确认 → 回到 ②,直到无占位块
read 项目根目录 + glob 各目录结构,读项目说明文件
(CLAUDE.md / AGENTS.md / README.md)与各模块入口文件确认职责边界。内容权威源:产物契约 / schema 是层间协议的权威源;实现文件确认实际 行为;文档注释与实现冲突时以契约为准并在总览里标注差异。
.todo 占位块;用户说「深挖 X」→ 填 X 的指标/字段级明细。assets/skeleton.html,不从空文件写。CSS/JS 取本 skill 的
assets/overview.css / assets/overview.js,内联进 <style> / <script>
(保持单文件离线可开)。样式或交互要改只改 skill assets/ 里这两个文件,
不在报告里派生第二份。<meta charset="utf-8">。overview.js,漏了页面看着正常但点不动
——交付前必须实际点一次验证。nav.tabs + section.tab-page,URL hash 记录当前 tab
(location.hash,刷新/分享停在原页)。header.site:渐变蓝底。必须含 git 版本行(见下节)。h2 模块标题(带目录 code 标注)→ card 概览/流程框图 →
职责表 → 明细。流程用纯 CSS 框图(.flow / .fnode / .farrow),不用图片。tr.gx-row(点击展开)+ 紧跟的
tr.gx-detail hidden(明细表)。样式已内联在 overview.css,直接复用:
▸ 指示符、table-layout: fixed 固定列宽(长字段名
word-break: break-all,否则长名会撑爆表格)。.badge code|llm|mix 标注每个指标/维度的产出方式
(CODE / LLM / CODE+LLM)——没有 LLM 的项目删掉对应徽标用法即可。.todo 块(橙虚线「待填充细节」),逐条列深挖
方向;填充后必须删除对应占位块。页眉副标题格式:
{一句话定位} · 按功能模块划分 · 更新于 {YYYY-MM-DD HH:MM}
(代码 {git rev-parse --short HEAD} · {最近一条 commit 标题摘要} · 已同步 MR !N/!M 的口径变更)
git rev-parse --short HEAD + git log --oneline -1,
把短 commit 号与摘要写进页眉。没有版本行视为未完成。git log --oneline -10 + 相关 spec/变更记录,盘出本次改了哪些口径;# 结构自检:三项一次跑完
import re, pathlib
h = pathlib.Path("<报告路径>").read_text(encoding="utf-8")
print("残留占位块:", len(re.findall(r'class="todo[\s"]', h))) # 须为 0
navs = re.findall(r'data-tab="([\w-]+)"', h)
secs = re.findall(r'id="tab-([\w-]+)"', h)
print("tab 配对:", navs == secs, navs, secs) # 须 True
print("折叠行配对:", len(re.findall(r'class="gx-row"', h)) ==
len(re.findall(r'class="gx-detail"', h))) # 须 True
print("含版本行:", bool(re.search(r'代码 [0-9a-f]{7,}', h))) # 须 True
print("含交互 JS:", "gx-detail" in h.split("<script>")[-1]) # 须 True
脚本全绿后必须用浏览器实跑——源码检查看不出交互失效与版式溢出:
hashchange);scrollWidth > clientWidth 即有元素撑穿容器:// 逐视口跑;overflow 须全为 false
({ scrollW: document.documentElement.scrollWidth,
clientW: document.documentElement.clientWidth,
overflow: document.documentElement.scrollWidth > document.documentElement.clientWidth + 1 })
// 溢出时定位罪魁:找 scrollWidth 超出自身 clientWidth 的容器
[...document.querySelectorAll('div.card, li, td, .fnode')]
.filter(el => el.scrollWidth > el.clientWidth + 1)
.map(el => ({ tag: el.tagName, cls: el.className, sw: el.scrollWidth, cw: el.clientWidth }))
?v=<时间戳> 绕缓存,否则跑的是旧 CSS/JS 会误判。| 坑 | 处理 |
|---|---|
| 长字段名撑爆表格 | 明细表 table-layout: fixed + 首列 word-break: break-all(overview.css 已有) |
| 连续 ASCII 长串撑穿整页 | 白名单/路径串(a/b/c/d… 200+ 字符)在 CJK 段落里不断行,顶穿容器产生整页横向滚动。overview.css 已加 .card, .card p, .card li, .fnode, td, .hint { overflow-wrap: anywhere; };验证必查 scrollWidth > clientWidth |
| 只内联 CSS 忘了 JS | 页面样式正常但 tab 点不动、折叠行无反应。overview.js 必带,交付前实点验证 |
| 从空文件手写 HTML | 用 skeleton.html 起步;手写易错 tab- 前缀、折叠行顺序、colspan |
gx-detail 放在 gx-row 之前 | 折叠靠 nextElementSibling,顺序颠倒即失效 |
| 只在启动时读一次 hash | 手改 #tab、站内锚点、后退键都不切内容。必须监听 hashchange;点 tab 用 pushState(replaceState 会让后退键失效)——overview.js 已修 |
| 浏览器缓存导致「改了没生效」 | 验证时用 ?v=N 绕缓存或硬刷新,否则跑的是旧 JS,会误判修复无效 |
| 折叠块新开独立章节(用户明确不喜欢) | 折叠必须做在表格的行内,不新开位置 |
| 文档注释与实现/契约冲突 | 以契约 + 实现为准,总览里按实际行为写并标注 |
| 需求/产品指标名对不上 | 从文档原文复制名称,发现命名差异标注出来,不猜 |
| 忘了页眉版本行 | 每次更新总览都必须刷新 commit 号与时间戳 |
| 多轮对话后内容漂移 | 每轮填充完让用户看一遍再继续,口径变更逐处 grep 确认 |
| 模块命名自作主张 | 划分口径先问用户,沿用用户既定叫法(层1/层2…) |
git add 等一律先展示命令等用户批准;只读(log/
rev-parse/status)可直接执行。