Skip to main content

f-stack-dev-rule

F-Stack 工程开发强制规约(零容忍)。覆盖:Shell 操作必须走 rm_tmp_file.sh / kill_process.sh / chmod_modify.sh 脚本、改代码先 make clean 再完整编译、config.ini 本地测试值不入库、文档禁止真实 IP(用占位符)、commit message 英文 1-3 句、F-Stack 代码注释与提交信息只用简短英文、lib/ 最小注释、多 agent 协作规约(写审分离 / bounce≤3 / leader 轮询不提前退出)、实际执行不臆测以代码为准、所有提问/分析/调研类任务必须使用 f-stack-info-search 技能搜索资料、任务规模判断与 harness 流程(大任务先多 agent 调研出中文 spec 人工审核→人工触发实现验收→plan.md 先审→按里程碑多次提交→验收后翻译英文 spec)、代码改动必须完成单测与运行时回归测试并受门禁限制。当在 /data/workspace/f-stack 工作区执行任何开发、调试、测试、提交任务时使用本技能。

소스 정보

저장소
F-Stack/f-stack
최근 소스 활동
2026년 8월 14일 08:07
감지된 SKILL.md 언어
중국어
스타
4,268
포크
963

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
4 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
f-stack-dev-rule
description
F-Stack 工程开发强制规约(零容忍)。覆盖:Shell 操作必须走 rm_tmp_file.sh / kill_process.sh / chmod_modify.sh 脚本、改代码先 make clean 再完整编译、config.ini 本地测试值不入库、文档禁止真实 IP(用占位符)、commit message 英文 1-3 句、F-Stack 代码注释与提交信息只用简短英文、lib/ 最小注释、多 agent 协作规约(写审分离 / bounce≤3 / leader 轮询不提前退出)、实际执行不臆测以代码为准、所有提问/分析/调研类任务必须使用 f-stack-info-search 技能搜索资料、任务规模判断与 harness 流程(大任务先多 agent 调研出中文 spec 人工审核→人工触发实现验收→plan.md 先审→按里程碑多次提交→验收后翻译英文 spec)、代码改动必须完成单测与运行时回归测试并受门禁限制。当在 /data/workspace/f-stack 工作区执行任何开发、调试、测试、提交任务时使用本技能。
# F-Stack 开发强制规约 本技能是 /data/workspace/f-stack 工作区所有开发任务的强制规约合集,违反任何一条都会导致任务被打回修正,零容忍。 ## 1. Shell 操作脚本规约 严禁直接调用 rm / kill / chmod 系列命令,必须一律通过本 skill 附带的以下脚本执行(位于本 skill 目录的 `scripts/` 子目录,以 SKILL 加载时注入的 base directory 为根拼接绝对路径调用): ### 1.1 删除文件 → scripts/rm_tmp_file.sh - 单文件:`scripts/rm_tmp_file.sh /full/path/to/file` - 多文件:`scripts/rm_tmp_file.sh /path/a /path/b` - 目录:`scripts/rm_tmp_file.sh /full/path/to/dir` - 回收站位置:`/tmp/.trash`(自动保留路径前缀便于回查) - 永久清理:`scripts/rm_tmp_file.sh --purge <trash_path> [--older-than Nd] [--dry-run]`(purge 白名单仅 /tmp/.trash、/data/.Trash-0/files、/data/.Trash-0/info) - 禁止:直接 `rm`、`rm -rf`、`find -delete`、嵌入 bash 片段 - 批量删除 *.o 等:先用 `ls`/`find` 收集绝对路径再一次性传给脚本 ### 1.2 停止进程 → scripts/kill_process.sh - 单 PID:`scripts/kill_process.sh <pid>` - 多 PID:`scripts/kill_process.sh <pid1> <pid2>` - 禁止:`kill`、`pkill`、`killall`、`kill -9`、`pgrep | xargs kill`、trap/cleanup 内嵌 kill 等任何形式 ### 1.3 修改权限 → scripts/chmod_modify.sh - 用法:`scripts/chmod_modify.sh <mode> <path1> <path2> ...`(mode 与 chmod(1) 兼容,八进制/符号式均可) - 禁止:直接 `chmod`、`chmod -R`、`install -m`、`setfacl` 等任何形式 - 说明:脚本会先快照变更前权限到 /tmp/.trash/、审计到 /tmp/.chmod_audit.log、拒绝高危路径、对 setuid/setgid 位 WARN ### 1.4 通用规则 - make clean / make install 等构建系统 target 属于构建工具操作,允许直接执行 - 若脚本缺少所需功能(如 --reference=),先扩展脚本再调用,不允许临时绕过 ## 2. 编译规约 - 修改任何 .c/.h 后,必须先 `make clean`(或等效完整清理 target)再完整编译,严禁依赖增量编译 - 头文件改动会影响所有 include 它的编译单元,即使只改一个文件也必须 clean - 编译验证以 clean build 通过为准;增量编译通过不作为依据 - 修改公共头文件后,逐一验证所有 include 它的文件可编译;PR 前必须完整 make 无 error - 本机编译环境两个已知坑及规避方式: - IDE 注入 safe-delete hook 会拦截 make clean 内嵌的 rm:用 `PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" make clean` 规避 - `make -j16` 与 machine_includes 存在并行竞态:先 `make machine_includes` 再 `make -j16` - 编译基线参考:lib error 0 / warning 51(既有 baseline,新改动不允许新增 warning) ## 3. config.ini 规约 - config.ini 及类似入库配置文件,提交时只允许提交与当前功能特性直接相关的改动 - 严禁提交本地测试/调试环境临时改动:lcore_mask、vlan_filter、idle_sleep、[portN] 本机真实 IP、性能调优临时值等 - 每次 `git add config.ini` 之前必须先 review `git diff` 逐项确认 - 严禁用 `git checkout config.ini` 还原本地测试值(本地配置是运行所必需的,必须保留) - 正确做法:git add 时不选中 config.ini,让本地测试值自然留在未暂存区 ## 4. 文档真实 IP 规约 - 严禁在任何文档(docs、README、spec、测试报告、执行日志、commit message、PR 评论等)中记录本地运行时环境的真实 IP - 必须使用描述性占位符:`<DPDK_NIC_IP>`、`<DPDK_NIC_IPV6>`、`<KERNEL_NIC_IP>`、`<CLIENT_IP>`、`<CLIENT_IPV6>`、`<GATEWAY_IP>`、`<GATEWAY_IPV6>`、`<BROADCAST_IP>`、`<NETWORK_PREFIX>`、`<VIP_IPV6>`、`<BACKEND_IPV6>` 等 - 泛指写法(如 9.134.x)允许,完整真实地址禁止 - `127.0.0.1`、`fe80::` link-local 可写 ## 5. 提交规约 - commit message 一律英文,1-3 句话简单总结,不长篇大论 - config.ini 本地测试值不入库(见第 3 节) - 误提交修复采用 forward-fix(新提交回滚),不改写历史 ## 6. 代码注释语言规约 - F-Stack 工程(/data/workspace/f-stack,含 lib/、freebsd/、example/、tests/ 等所有代码文件):注释和 git 提交信息都必须使用简短的英文,禁止中文 - 文档类(docs/*.md、spec 中文文档)不受此限,按文档语言要求撰写 ## 7. lib 最小注释规约 - 仅确有必要处写注释:对外接口契约(如 ff_api.h)、配置项含义(如 config.ini)、确实复杂不直观的算法/边界处理 - 严禁给一看就懂的代码加注释(简单赋值、显而易见的分支、自解释调用) - 复杂逻辑的注释也要精炼,优先用清晰命名让代码自解释 ## 8. 多 agent 协作规约 适用于 harness 工程 + 多 agent(agent team / spec 驱动)任务: - **leader 严禁提前退出**:任一子 agent 未回报最终结果前不得结束任务,必须主动轮询等待 - **子 agent 超时探测**:禁止无超时死等;旁路探测(读落盘文件、git 状态、产物路径)优先于消息探测 - **写审分离铁律**:写代码/文档 与 审核 必须不同 agent;leader 严禁自写自审;纯调研/探测/汇总等单一角色可由 leader 兼任 - **bounce≤3**:任一阶段门禁失败必须打回上一步修复,不得带病放行;同一单步骤打回超 3 次立即停止转人工决策 - **异常回退**:子 agent 超时/卡死/与裁决冲突时,可 leader 接管或 spawn 新 agent 重做,但不得违反写审分离 ## 9. 实事求是规约 - 所有行动必须实际执行,严禁未执行就猜测给结果 - 代码/文档/外部数据源交叉验证,不一致处以实际代码为准 - 无法静态坐实或环境不满足的项,如实标注「未坐实/未执行」,不得臆断 PASS ## 10. 资料搜索规约 - 所有提问、分析、调研类任务,必须使用 **f-stack-info-search** 技能来搜索资料 - 覆盖范围:issue 分析、bug 定位、功能调研、方案设计前的资料搜集、技术问题答疑等一切需要查资料的场景 - 搜索流程按 f-stack-info-search 的五部分执行:项目架构文档与知识图谱 → 代码提交记录 → 关联 issue/PR → 公开资料 → 内外网技术网站/博客/公众号等 - 交叉验证:内部文档 + 外部资料 + 实际代码/实测三方证据收敛,不一致处以实际代码为准 - 严禁不搜索资料直接凭猜测回答或给出结论 ## 11. 运行时测试环境 - 本机双网卡:DPDK 独占网卡与 eth1 是不同卡 - 测试 DPDK 网卡程序:通过 `ssh f-stack-client` 从对端机器访问本机 DPDK 接管网卡(IP 用 `<DPDK_NIC_IP>` 占位符) - 本机内核栈测试:用 127.0.0.1 的 lo - 停进程走 kill_process.sh,临时文件清理走 rm_tmp_file.sh,config.ini 临时测试值测完还原且不入库 ## 12. 任务规模判断与 harness 流程规约 - 由提示词或大模型自动判断任务规模:小任务可以直接分析执行;大任务必须按以下步骤进行: - 12.1 功能调研:先使用多 agent harness 方式完成功能调研,产出中文 spec 文档(可安装使用其他 spec 相关 skill)+ 门禁审核;中文文档存放目录 `docs/<FEATURE_NAME>_spec/zh_cn/`;**暂不生成英文 spec 文档**(功能验收完成后再翻译生成英文 spec 文档);交由人工审核 - 12.2 功能实现与验收:人工审核 spec 文档通过后,由人工提示词触发进入功能实际实现和验收阶段(使用多 agent harness 方式,遵循多 agent 各种相关规则),完成代码编写、CR、测试(单元测试和运行时测试)、文档更新、各里程碑步骤的门禁审核 - 12.3 spec 文档生成和功能实际实现都必须先生成 plan.md 交由人工审核后再执行 - 12.4 按里程碑进行多次 git 提交 - 12.5 测试验收完成后,将 `docs/<FEATURE_NAME>_spec/zh_cn/` 下的中文 spec 文档翻译为英文文档(文件名和文件内容都需要翻译),存放目录 `docs/<FEATURE_NAME>_spec/` ## 13. 测试门禁规约 - 涉及代码改动必须完成单元测试和运行时回归测试 - 单元测试和运行时回归测试同样受门禁规则限制(bounce≤3、写审分离等,见第 8 节)
GitHub에서 보기