بنقرة واحدة
server-standards
server 修改强制工作流与规范(先读结构文档定位;新文件按分层落目录;业务日志用 logx;导出函数/Handler/Service/Repo 写中文注释;交付自检清单)。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
server 修改强制工作流与规范(先读结构文档定位;新文件按分层落目录;业务日志用 logx;导出函数/Handler/Service/Repo 写中文注释;交付自检清单)。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
轻量 Git worktree 流程:修改前创建新 worktree、完成后输出审查摘要、明确询问用户是否合并、合并前生成“动作:修改内容”格式提交信息。Use when users want a simpler replacement for parafork or need create-review-merge flow with explicit merge approval.
Send native Windows notifications from WSL during coding workflows. Use by default when code is being modified and the user should be alerted at checkpoints: before asking for human choices, before permission/escalation prompts, when blocked by errors, and when work is complete. Trigger for Chinese or English intents such as "修改后提醒我", "人工介入时通知", "任务完成通知", "notify me when done", or "send Windows notification".
统一 PTNexus 提交标题为“动作:修改内容”格式,并基于当前改动生成可直接使用的 commit message。Use when users ask to write/optimize/format commit messages, summarize branch changes before commit, or enforce repository commit-title conventions.
| name | server-standards |
| description | server 修改强制工作流与规范(先读结构文档定位;新文件按分层落目录;业务日志用 logx;导出函数/Handler/Service/Repo 写中文注释;交付自检清单)。 |
本 Skill 用于所有涉及 server/ 的问题定位与代码修改,确保:
满足任一条件即视为 server 任务,强制按本 Skill 执行:
server/ 路径或明确提到 Go 后端server/** 文件server/docs/PROJECT_STRUCTURE.md,用业务关键词定位到对应分层与目录internal/http/handler:只做参数解析、调用 Service、返回 HTTP 响应;禁止承载核心业务算法。internal/service/migrationflow:只做编排、状态管理、入口收敛;禁止堆放底层抓取解析/修复实现细节。internal/service/acquire:只负责“获取与提取”(站点抓取、提取器路由、详情页解析)。internal/service/processing:只负责“修复、校验、标准化、入库”。internal/service/publish:只负责“发布、映射、上传、下载器操作”。internal/repository:只负责数据库读写;禁止反向依赖 HTTP Handler。依赖方向必须保持单向:
handler -> migrationflow -> acquire/processing/publish -> repository
repository -> service 反向依赖processing 直接依赖 handler新增/移动文件必须落在下列目录之一:
| 分层 | 目录 |
|---|---|
| HTTP Handler | server/internal/http/handler/** |
| 编排入口(只做编排) | server/internal/service/migrationflow/** |
| 获取与提取 | server/internal/service/acquire/** |
| 修复/校验/标准化/入库 | server/internal/service/processing/** |
| 发布/映射/上传/下载器 | server/internal/service/publish/** |
| 数据读写 | server/internal/repository/** |
必须保持“公共提取器 + 站点特殊提取器”模式:
server/internal/service/acquire/extractors/public.go(及同目录下公共引擎文件)server/internal/service/acquire/extractors/sites/站点特殊提取器必须满足:
{site}.go(示例:ssd.go、hdsky.go)processing 可无差别处理新增特殊站点时,必须同时更新:
server/internal/service/acquire/extractors/site_adapters.go(注册/适配)server/docs/PROJECT_STRUCTURE.md(结构文档同步)“抖音”默认站点 code 为 douyin,因此默认文件名为 douyin.go;若仓库实际站点 code 不同,以实际为准。
*_entry.go / *_flow.go*_state.gotypes.gomisc.go / tmp.go / new_utils.go 这类模糊命名。fetch_*、bdinfo_*)。server/docs/PROJECT_STRUCTURE.md。每个函数注释建议至少覆盖以下 4 点(可按函数复杂度裁剪):
必须使用 server/internal/platform/logx 提供的接口:
logx.Debugf(module, format, args...)logx.Infof(module, format, args...)logx.Warnf(module, format, args...)logx.Errorf(module, format, args...)module 必须使用固定中文模块名(如:媒体校验-PTGen、BDInfo、访问日志),便于检索。
禁止直接使用 log.Printf / fmt.Printf 打业务日志。
import "github.com/pt-nexus/server/internal/platform/logx"
const module = "媒体校验-PTGen"
logx.Infof(module, "开始请求 PTGen requestID=%s flowID=%s candidates=%d", requestID, flowID, len(candidates))
logx.Warnf(module, "PTGen 请求失败 requestID=%s flowID=%s err=%v", requestID, flowID, err)
logx.Errorf(module, "流程终止 requestID=%s flowID=%s reason=%s", requestID, flowID, reason)
X-Request-ID)已先查阅 server/docs/PROJECT_STRUCTURE.md 并据此定位分层/目录
新增/修改文件落在正确目录,且依赖方向未被破坏
新增导出函数/Handler/Service/Repository/异步入口/关键工具函数已按 4 点模板补全中文注释
未出现注释禁止项(无效注释/将来可能/中英混杂)
业务日志仅使用 logx,模块名为固定中文,等级使用合理
日志未输出敏感信息(密码/完整 Token/Cookie/隐私原文)
若新增站点特殊提取器:已更新 server/internal/service/acquire/extractors/site_adapters.go 与 server/docs/PROJECT_STRUCTURE.md
测试验证:修改完成后必须先跑测试再交付;至少执行一次 cd server && go test ./...(如有明确影响范围,可补充更聚焦的包级测试命令,但不可跳过全量测试)
测试文件清理(自动执行):为保持 server/ 代码库整洁,功能修改验证通过后(go test ./... 通过),必须自动清理 server/ 下所有 *_test.go 测试文件。
find server -type f -name '*_test.go' -printfind server -type f -name '*_test.go' -print -delete