IT 项目实现规格生成 skill 体系(opencode Agent Skills)。把一句模糊需求变成可开工、可验收的工程规格:像素级、帧级、可验证。
v2.3 · 14 个领域 skill + 共享内核 · 静态断言:
node scripts/lint-skills.mjs· 行为回归:evals/(promptfoo)· 迭代计划见 ROADMAP.md
仓库质量不靠一次性结论,靠可重跑断言。CI(GitHub Actions)与本地执行同一脚本 scripts/lint-skills.mjs,断言:
- 内核完整性 —
_spec-core三文件存在,每个子 skill 的生成前置均引用且定位为「同级_spec-core/」相对路径; - 无绝对路径 — 仓库全部 Markdown 文档(含 README/ROADMAP,不只
skills/)不得出现绝对路径兜底;禁用形态清单以脚本内ABS_PATTERNS为单一事实源(/root、/home、/Users、盘符加反斜杠等前缀形态;绝对路径只在特定机器成立,换机即失效); - 单一事实源 — 铁律正文与内核加载协议只存在于
_spec-core,子 skill 一行引用,不得复制;复制检测哨兵由脚本从内核「铁律 N」标题与铁律表行动态提取,内核新增铁律自动纳入保护; - 触发词唯一 — 跨 skill 触发词无完全重复;
- frontmatter 完整 — name/description/version/license 齐备;
- 官方规范对齐 — name kebab-case 且与目录同名、description ≤ 1024 字符、SKILL.md < 500 行、每个子 skill 含「不适用」触发边界段(对齐 agentskills.io 规范)。
行为层回归(v2.3 起):evals/ 用 promptfoo 断言红线拦截、禁词清零、无内核降级、档位纪律——静态绿灯之上补行为证明,见 evals/README.md。
内核设计依据同目录 _spec-core/github-research-2026-08.md——基于 19 万+ stars 的头部 prompt/skill 仓库语料对标得出(正反例执行法、表格化约束、验收可观测等规则的来源与反例)。
skills/
├── it-project-spec-generator/ 总纲路由器:识别需求 → 加载对应子 skill
├── _spec-core/ 共享内核(单一事实源,所有子 skill 引用)
│ ├── core-laws.md 七铁律 + 正反例执行法
│ ├── protocol.md 追问分级 / 质量档位 / brownfield / 复盘协议
│ ├── structure.md 输出锚点 / 10章与轻量3章 / 自检清单 / 黄金示例
│ ├── CHANGELOG.md 版本演进记录
│ └── github-research-2026-08.md GitHub 语料对标报告(19万+ stars 语料)
├── fs-spec-* 全栈 7 向
│ ├── frontend Web 前端:SPA/SSR/组件库/动画/PWA/扩展
│ ├── backend 后端:REST/GraphQL/gRPC/MQ/认证/支付
│ ├── data-ai 数据管道/流处理/ML 服务/LLM 应用/RAG
│ ├── mobile iOS/Android/RN/Flutter/小程序
│ ├── desktop-cli Electron/Tauri/WPF/TUI/CLI 工具
│ ├── game 2D/3D/Web 游戏/VR-AR/物理/音频
│ └── devops CI/CD/IaC/K8s/可观测性
└── sec-spec-* 网络安全 6 向(攻/防/管全覆盖)
├── web-pentest 渗透方案/SRC 报告/CNVD 提交(授权红线内置)
├── redteam 内网/AD 攻防/ROE/ATT&CK 映射(ROE 强制)
├── detection 检测工程 Sigma/YARA/SIEM/应急响应 PICERL/取证
├── appsec SDL/威胁建模/代码审计/SAST-DAST-SCA/SBOM
├── cloud IAM 最小权限/K8s 安全/CIS 基线/零信任
└── grc 等保2.0/ISO27001/GDPR/密码学参数/风险登记册
# 渠道一:skills.sh(标准 skills 布局,免克隆)
npx skills add wufufu770/prompt-skill
# 渠道二:手动复制到 opencode 全局技能目录
cp -r skills/* ~/.config/opencode/skills/
# 重启 opencode 会话(技能注册表在会话启动时快照)只装部分领域也可以——子 skill 相互独立,但 _spec-core 必须一起带上(七铁律的单一事实源)。
- 提示词 = 分布约束器:规格类 skill 的失效只有五个根因(模糊词/无锚点/无反例/幻觉值/长文遗忘),每个根因都有机械化对策。
- 共享内核 + 领域薄壳:铁律与流程只在
_spec-core维护一份,13 个子 skill 只含领域知识。 - 数字即法律:版本号
[已验证]/[待验证]双态纪律,禁凭记忆填精确值;验收必须可观测、可自动断言。 - 安全类强制红线:无授权不出攻击性细节;ROE/授权范围声明为第一章节。
对 opencode 直接说:
- "做一个 React 仪表板" → 自动路由
fs-spec-frontend - "写一个微服务 API 的规范" → 路由
fs-spec-backend - "出个 EduSRC 测试计划和报告模板" → 路由
sec-spec-web-pentest - "我需要一份详细实现规格" → 总纲追问收敛后处理
MIT