Qiu Yuzhou be30f64f9f docs(design): 移除 to-spec 产物,去掉 user-plugin 文档的 -spec 后缀
两类文档来源不同,处理方式也不同:

- system-proxy-runtime-control-spec.md、terminal-command-address-spec.md 是
  to-spec 技能的原样产物(英文模板小节标题,无标题与日期头)。其内容已发布为
  Issue #72 / #73,人类需要的信息已由同日提交的无后缀中文文档承载;在仓库里再
  存一份,等于同一份规格有两个事实来源。删除后仍可从 git 历史追回。
- user-plugin-*-spec.md 四份来自 improve-codebase-architecture 会话:该技能把
  报告写进 OS 临时目录、不写 docs/design/,因此这四份是模型模仿仓库既有
  -spec.md 旧例命名(“猜测旧例”而非技能指令)。去掉后缀后仓库不再有该样板,
  后续模型少了可模仿的命名来源。四份保留原名主体,内容不动。

影响面:这六份文件全仓库零入站引用(含 docs/ 内部),移除与改名都无需改写链接。
docs/design/ 现为 12 份,无一带 -spec 后缀,与 AGENTS.md 的定位一致。

有意不做:不加“docs/design/*.md 必须带可解析 日期:/状态: 头”的确定性检查。
AI 输出本就无法保证规范化;更关键的是这类文档的“状态”只描述某次改进上下文,
不跟踪现状,把它当可校验字段是假精确。日期是写作时点的事实,两回事。
2026-10-05 22:39:58 +08:00
2017-01-13 13:08:32 +08:00

ShadowsocksX-NG

🚧 重新实现进行中 —— 本仓库正在使用现代技术栈重写 ShadowsocksX-NG macOS 客户端。

新工程不再通过 git 子模块在仓库内构建依赖,而是直接复制上游项目发布好的可执行文件,以简化构建流程。

目录结构

.
└── ShadowsocksX-NG2/   # 新工程:现代化重写版本(开发中)

旧版工程源码已从本仓库移除,归档在 shadowsocks/ShadowsocksX-NG 的 legacy-v1 分支,仅供参考,不保证可构建;其功能说明与使用文档见 legacy-v1 的 README。

开发钩子

新 clone 后,在仓库根目录启用 Git hooks:

git config core.hooksPath .githooks

启用后,pre-commit 只检查暂存区中 ShadowsocksX-NG2/ 下的 .swift 文件:swift format 的结果写回暂存区、不修改工作区;SwiftLint 的 error 级违规拒绝提交,warning 仅提示。其他文件跳过;没有 NG2 Swift 文件时直接放行。含有 NG2 Swift 文件但缺少工具时,提交检查失败。两关都把「工具没能执行」与「查出问题」分开报告:看到「执行失败」应查工具与配置环境,而不是去改代码。工具安装与版本见 ShadowsocksX-NG2/README.md。

领域文档语言

本项目的 术语表 和新建 架构决策记录(ADR) 使用简体中文,代码标识符与必要的英文术语保留原文;已有 ADR 保留原文,不作语言迁移。

AI 生成大量文档后,人与机器之间的沟通成为协作瓶颈:人的阅读、理解和审阅速度决定了文档能否有效推动开发。使用简体中文可以降低维护者的认知负荷,提高沟通与审阅效率。

S
Description
No description provided
Readme GPL-3.0
84 MiB
Languages
Swift 95.8%
Python 2.5%
Shell 1.4%
C 0.3%