fullstack-forge
Skill1 starsChanged 3 months agoMITView on GitHub
端到端全栈网站生成系统(DeepSeek Harness 专属)。v1.0:9 阶段强制流水线(需求审析→架构选型→数据建模→NestJS后端→React19前端→安全加固OWASP→测试→Docker部署→三角色对抗评审)+ 9 道独立质检门禁(R1/A1/D1/B1/F1/S1/T1/O1/W1)+ 反模式硬阻断(AP1/AP2/AP3)+ 人工在环检查点(H1/H2/H3)+ 状态持久化。多智能体对抗协作:需求分析师/架构师/后端工程师/前端工程师/安全专家/测试工程师/运维工程师 + 独立质检与三角色评审,产出前后端与安全均达工业级标准的全栈网站。当用户说"搭建网站""建网站""全栈开发""做网站""网站开发"/fullstack-forge,或描述一个网站需求时使用。
- Reads credentials
1 other project uses a version of this.
Adopted by
Most recently taken up by
- is-bo/fullstack-forge-skilltheir own version, first seen Aug 28, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- is-bo/fullstack-forge-skill★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
Files
全栈锻造 · FullStack Forge v1.0
把一句需求,经 9 个阶段、多智能体协作 + 独立质检 + 对抗评审,产出可一键 Docker 部署的工业级全栈网站。
技术栈(固定):React 19 + Vite + TypeScript(前端)· NestJS 11 + TypeScript(后端)· PostgreSQL 16 + Prisma ORM(数据库)· Docker / docker-compose(部署)。
版本与环境
- 当前版本: v1.0.0 · 更新日志
<skill>/CHANGELOG.md - 环境自检: 开工时先运行
node <skill>/scripts/doctor.js验证 Node/npm/Docker/端口可用性,失败项必须先修复再进入阶段 0。 - 命令约定: 命令行显式用
node、npm;Windows 环境下用 pwsh 执行。 - Skill 根目录:
<skill>= 本 skill 包所在目录(SKILL.md 的父目录)。
路径解析协议
| 类型 | 位置 | 示例 |
| skill 内通用 | <skill>/ 下相对路径 | references/06-security-hardening.md |
| 用户产物 | 项目根目录相对路径 | <proj>/REPORT.md, <proj>/backend/, <proj>/frontend/ |
| 状态持久化 | <proj>/state/decision_log.json | 每阶段必读必写 |
| 工作流脚本 | <skill>/workflows/*.js | 用 workflow 工具执行 |
何时用哪种执行方式
- 主流水线:用
workflow工具跑<skill>/workflows/fullstack-build.js(阶段 0→9 编排 + 门禁派发 + 状态落盘)。 - 独立质检 Subagent:R1/A1/D1/B1/F1/S1/T1/O1 门禁由工作流派发只读质检 subagent;不在工作流内执行时由主 Agent 派发,规则见"Subagent 质检协议"。
- 对抗评审:阶段 9 跑
<skill>/workflows/adversarial-review.js(三角色并行打分,加权聚合,≤3 轮)。 - 用户明确要"多智能体/工作流/对抗"或说触发词时启动 Workflow;小改动(修 bug、加个字段)按手册直接干,不跑全流水线。
⛔ 强制流程门禁(不允许跳步)
这是硬性约束,优先级高于一切效率考量。必须严格按阶段 0→1→2→3→4→5→6→7→8→9 顺序执行,禁止跳过、合并、颠倒任何阶段。
核心规则
- 每阶段三步骤:执行 → 验证 → 确认。验证不通过不得进入下一阶段。
- 落盘即证据:每阶段产出必须写入对应文件/目录,产出不存在 = 该阶段未完成。
- 状态持久化:每阶段开始前读
<proj>/state/decision_log.json,完成后写入决策记录;流水线中断后可恢复。 - 禁止心算跳过:不允许因"这网站简单""安全后面再补"而略过任何阶段——安全(阶段 6)与测试(阶段 7)是硬阶段。
- 任务跟踪:开工建 10 个任务(阶段 0–9),任一时刻只允许一个阶段 in_progress。
- 需求结论贯穿全流程:阶段 1 的审析报告是"宪法"——架构必须引用它、API 必须覆盖每个验收标准、安全必须回应每个风险点。
- API 契约先行:阶段 2 必须产出 OpenAPI 契约与数据模型草案,后端(阶段 4)与前端(阶段 5)以此为准并行推进。
- 安全不可后补:阶段 6 是独立硬阶段;认证授权(JWT+refresh+RSA/argon2、RBAC)、helmet、限流、审计日志从阶段 4 起就是代码的一部分,阶段 6 负责系统性加固与独立审计。
- Subagent 质检不可省:9 道门禁必须逐道通过,主 Agent 自检不能替代 Subagent 独立验收。
- ⛔ 反模式是硬阻断:AP1/AP2/AP3 门禁中任何 High 级命中 → 必须退回修复,不得携带 High 反模式进入下一阶段。
- ⛔ 人工在环不可省:H1/H2/H3 检查点必须暂停呈现关键产物给用户确认。
阶段依赖链
0 脚手架+环境自检 → 1 需求审析 REPORT.md§1 [R1+🛑H1]
→ 2 架构选型 REPORT.md§2 + OpenAPI 契约 [A1]
→ 3 数据建模 prisma/schema.prisma + 迁移 [D1]
→ 4 后端实现 backend/ [B1 + AP1]
→ 5 前端实现 frontend/ [F1 + AP2] (4/5 依据阶段 2 契约可并行)
→ 6 安全加固 [S1 + AP3 ⛔硬阻断] [🛑H2]
→ 7 测试 [T1]
→ 8 Docker 部署配置 [O1]
→ 9 三角色对抗评审 [W1 评分≥8.0] [🛑H3] → 终版Subagent 质检协议(9 道门禁)
角色分离原则:写代码的 Agent 不能同时质检自己的产出。质检 Subagent 必须是独立的只读实例。
九道门禁
| 门禁 | 触发时机 | 被审产物 | 质检角色 | 通过标准 |
| R1 | 阶段 1 后 | REPORT.md §1 | ff-verifier | 需求完整性 8 项全部通过 |
| A1 | 阶段 2 后 | REPORT.md §2 + docs/openapi.yaml | ff-verifier | 架构合理性 7 项全部通过 |
| D1 | 阶段 3 后 | prisma/schema.prisma + 迁移 SQL | ff-verifier | 建模规范 8 项全部通过 |
| B1 | 阶段 4 后 | backend/ 全部代码 | ff-verifier | 代码可构建 + 规范 8 项 + 单测通过 |
| F1 | 阶段 5 后 | frontend/ 全部代码 | ff-verifier | 构建+类型检查通过 + 规范 8 项 |
| S1 | 阶段 6 后 | 全站安全配置 | ff-security-auditor | OWASP 全覆盖 + 安全清单 10 项(⛔) |
| T1 | 阶段 7 后 | 测试报告 | ff-verifier | e2e 全绿 + 安全用例全绿 + 构建全绿 |
| O1 | 阶段 8 后 | docker-compose.yml + Dockerfile×2 + 部署文档 | ff-verifier | 部署就绪 8 项全部通过 |
| W1 | 阶段 9 后 | 终版全站 | ff-reviewer | 三角色加权评分 ≥ 8.0(⛔) |
质检规则
- 派发时机:每道门禁在其触发阶段产物落盘后立即派发。
- 只读质检:质检 Subagent 只能读取产物、返回评估报告,不得修改文件。
- FAIL 回溯:任一门禁 FAIL → 退回对应阶段按证据修正 → 重新派发复验。已通过的后续门禁在相关产物变化后自动失效。
- PASS 签名:PASS 结果含 Subagent ID + 时间戳 + 检查摘要,写入
REPORT.md附录与state/decision_log.json。 - 不可跳过:环境不支持 Subagent 时记为 BLOCKED,不得谎称通过。
- ⛔ S1/W1 是硬阻断:安全门禁 S1 任何 High 级安全反模式(AP3)命中、终版评审均分 < 8.0 → 必须退回修复。
⛔ 反模式硬阻断(AP1/AP2/AP3)
反模式知识库见 references/09-anti-patterns.md(36+ 条,按 High/Medium/Low 分级,含唯一编号、识别特征、危害、修复方案)。
| 门禁 | 类别 | 触发时机 | 规则 |
| AP1 | 后端代码反模式 | 阶段 4 后(B1 通过后) | 任何 High 命中 → ⛔ 退回阶段 4 修复 |
| AP2 | 前端反模式 | 阶段 5 后(F1 通过后) | 任何 High 命中 → ⛔ 退回阶段 5 修复 |
| AP3 | 安全反模式 | 阶段 6 后(S1 中执行) | 任何 High 命中 → ⛔ 退回阶段 6 修复,不得进入阶段 7 |
High 级反模式示例:硬编码密钥、SQL 拼接、密码明文/弱哈希、token 存 localStorage、CORS 全开、无限流、无输入校验、dangerouslySetInnerHTML 注入用户输入、日志泄漏敏感信息、无审计日志。
🛑 人工在环检查点(H1/H2/H3)
AI 不是产品经理也不是安全专家——它在以下节点必须暂停,把关键产物呈现给用户做"合理性 sniff test"。
| 检查点 | 时机 | 暂停产物 | 确认问题 | 不通过处理 |
| 🛑H1 | 阶段 1 + R1 通过后 | §1 需求清单 + 范围边界 + 风险清单 | "功能范围是否对?有没有漏需求/过度设计?" | 用户纠正 → 更新 §1 → 重新 R1 |
| 🛑H2 | 阶段 6 + S1 通过后 | 安全加固摘要 + 认证流程说明 + 残余风险 | "认证/权限设计符合预期吗?数据敏感级别划分对吗?" | 用户指出问题 → 回阶段 6 修复 |
| 🛑H3 | 阶段 9 评审前 | 完整站点(运行中的 demo) | "整体印象是否达标?有无明显体验缺陷?" | 用户不满意 → 回对应阶段修改 |
执行规则:
- 人工检查点不可跳过。用户不在时(异步运行),将产物 + 确认问题写入
state/human_checkpoint.md,标记AWAITING_HUMAN,暂停流水线。 - 用户确认(或给出修改指示)后,记录确认结果和时间戳到
state/decision_log.json。 - 人工确认不等同于质检——Subagent 质检仍须独立执行。
对抗评审协议(阶段 9)
三个评审角色并行批改同一份站点——架构师看系统设计,安全专家看攻击面,代码质量专家看可维护性。写作者(项目 Agent)逐条修改后三评审重新打分,加权均分 < 8.0 继续改,最多 3 轮。
| 角色 | 职责 | 权重 |
ff-arch-reviewer | 架构合理性:分层、模块边界、API 设计、数据模型 | 30% |
ff-security-reviewer | 安全:OWASP 覆盖、认证授权、密钥管理、攻击面 | 40% |
ff-quality-reviewer | 质量:可维护性、可读性、测试覆盖、错误处理、文档 | 30% |
评分规则:五维度(功能完整性/安全性/性能/可维护性/文档)各 10 分;加权聚合 = Σ(角色均分 × 权重);任一维度 < 6.0 触发硬上限直接判 FAIL;三角色分差 > 2.5 时触发仲裁(追加一轮 ff-reasoner 复核)。评分记录写入 state/review_log.json。
各阶段执行与验证
阶段 0:脚手架 + 环境自检
- 运行
node <skill>/scripts/doctor.js;建项目目录:<proj>/{REPORT.md, backend/, frontend/, docs/, prisma/, state/, .env.example, .gitignore, README.md} - 初始化 backend(NestJS)与 frontend(Vite React-TS)骨架,
git init(如无) - 验证:doctor 全绿;目录完整;
.gitignore已排除.env、node_modules、dist
阶段 1:需求审析(参考 01-requirements-analysis.md)
- 逐条挖功能需求/非功能需求/约束/风险;用户故事 + 验收标准(AC);范围边界(明确"不做什么")
- 产出
REPORT.md§1(≥1500 字,含需求清单表、用户故事、AC、风险清单、问题待确认项) - 验证:8 项需求完整性检查(见手册质检要点)→ R1 独立质检 → 🛑H1 人工确认
阶段 2:架构选型(参考 02-architecture-selection.md)
- 分层设计、NestJS 模块划分、认证授权方案(JWT access 15min + refresh 7d 轮换 + RBAC)、API 契约
- 产出
REPORT.md§2 +docs/openapi.yaml(OpenAPI 3.1)+ ER 草案 - 验证:7 项架构合理性检查 → A1 独立质检
阶段 3:数据建模(参考 03-data-modeling.md)
- Prisma schema:类型选型、唯一约束、索引策略、审计字段(createdAt/updatedAt)、枚举状态机、级联策略
- 产出
prisma/schema.prisma+ 首个迁移 SQL + seed 脚本 - 验证:8 项建模规范检查 → D1 独立质检
阶段 4:后端实现(参考 04-backend-engineering.md)
- NestJS 模块化:认证(argon2 + JWT + refresh 轮换 + httpOnly cookie)、RBAC Guard、DTO+ValidationPipe、审计日志拦截器、限流、Swagger、统一错误格式、结构化日志
- 验证:
npm run build通过 + 规范 8 项 → B1 → AP1 反模式硬阻断
阶段 5:前端实现(参考 05-frontend-engineering.md)
- React 19:路由守卫、401 自动刷新、zod 表单校验、错误边界、加载/空/错误三态、a11y、性能预算、Tailwind
- 验证:
tsc --noEmit+vite build通过 + 规范 8 项 → F1 → AP2 反模式硬阻断
阶段 6:安全加固(参考 06-security-hardening.md)⛔
- OWASP Top 10 逐条落地:helmet 安全头、CORS 白名单、CSRF 防护、限流+登录锁定、参数化查询确认、密钥管理审计、
npm audit依赖扫描、审计日志完整性、错误不泄漏细节 - 产出
REPORT.md§6 安全加固报告(含逐条对照表 + 残余风险) - 验证:S1 安全清单 10 项 → S1 + AP3 ⛔硬阻断 → 🛑H2 人工确认
阶段 7:测试(参考 07-testing-gates.md)
- 后端:单元测试 + e2e(supertest),必须含安全用例(未认证 401、越权 403、注入、暴力破解限流、CSRF)
- 前端:vitest 关键组件 +
tsc --noEmit+vite build - 产出
REPORT.md§7 测试报告(用例清单 + 结果 + 覆盖率摘要) - 验证:全绿 → T1 独立质检
阶段 8:部署(参考 08-deployment-ops.md)
- Dockerfile×2(多阶段构建、非 root、HEALTHCHECK)+
docker-compose.yml(postgres+backend+frontend/nginx)+ 迁移执行策略 + 备份说明 + CI 建议 - 产出
README.md部署文档 +.env.example完整化 - 验证:
docker compose config合法 + 8 项就绪检查 → O1 独立质检
阶段 9:对抗评审 → 终版
- 跑
workflows/adversarial-review.js:三角色并行打分 → 加权聚合 → 退回修改(≤3 轮) - 验证:加权均分 ≥ 8.0 → W1 → 🛑H3 人工确认 → 终版
状态协议(state/decision_log.json)
{
"project": "<项目名>",
"stages": { "0": {"status": "completed", "gate": "PASS", "ts": "ISO8601"}, "1": {...} },
"gates": [ {"id": "R1", "subagentId": "...", "verdict": "PASS", "ts": "...", "summary": "..."} ],
"review_rounds": 0,
"human_checkpoints": [ {"id": "H1", "status": "CONFIRMED", "ts": "..."} ],
"decisions": [ {"stage": "2", "decision": "...", "reason": "..."} ],
"resume_point": "stage_5"
}每阶段开始前必读、完成后必写;resume_point 让流水线在任意中断处恢复,重跑已通过阶段是允许的(幂等),但跳阶段永远禁止。
验收终态(何为"工业级")
docker compose up -d一条命令起全站,/health返回 200- 认证闭环:注册 → 登录(argon2 + JWT access/refresh + httpOnly cookie)→ RBAC 越权被 403 拦截
- OWASP Top 10 全覆盖有证据(阶段 6 报告逐条对照 + 安全 e2e 用例全绿)
npm audit0 高危;密钥零泄漏(git grep验证无.env内容入库)- 结构化审计日志记录登录/敏感操作;限流与登录锁定生效
- 前端类型检查 + 构建全绿;后端构建 + 单测 + e2e 全绿
- 三评审加权均分 ≥ 8.0,评分与修改记录可追溯
- 状态日志、门禁签名、人工确认记录完整——整个产出过程可审计
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

