用途:从裸机重建 claude-night-market 开发环境,并在一小时内完成验证。核心规则是所有 Python 工具都通过 uv run 运行;首次 uv run 会创建 .venv/ 并按 uv.lock 同步,禁止用裸 pip 安装仓库依赖。
必要工具链(按顺序):uv(官方安装器 astral.sh/uv,验证 uv --version)、Python 3.12(uv python install 3.12)、make 与 bash(需 GNU make 3.82+,Xcode CLT 自带 3.81 会忽略 .SHELLFLAGS,可 brew install make 后用 gmake)。ruff、bandit、mypy、pre-commit 通过 uv 从 uv.lock 解析,无需手动安装;pre-commit 需执行 uv run pre-commit install。可选:Python 3.9(仅本地 hook 兼容测试)、node/npm(conjure 的 Gemini 委派)、Rust/cargo 与 skrills 二进制、mdbook、gh CLI。
首小时验证:git clone 仓库后依次执行 uv --version、make validate-all(每个插件输出 Plugin validation passed)、make -C plugins/leyline test(零失败并带覆盖率表)、uv run pre-commit install。任一步失败可参考 night-market-debugging-playbook。
Python 版本分三层:根工具链要求 3.12;各插件包版本不一(3.9 至 3.12);hook 导入链必须兼容 3.9,因为 Claude Code 用宿主系统 Python(macOS 为 3.9.6)在虚拟环境外执行 hook。因此 hook 可达代码须用 timezone.utc 而非 datetime.UTC,并守卫 yaml、anthropic 等第三方导入。
已知陷阱:setup-uv 需固定 astral-sh/setup-uv@v8.2.0;pre-commit 的 bandit 固定 rev 1.8.6;避免裸 ruff(会被 .uv-tools 旧二进制遮蔽),应使用 make lint 或 uv run ruff;根目录 pytest 不会收集插件测试;imbue 会生成覆盖率产物;skrills 构建需设置 SKRILLS_REPO;插件从缓存目录运行,hook 不可用相对当前工作目录的路径。
不适用场景:日常测试、lint、发布命令用 night-market-operations;环境原本可用后突然失败先用 night-market-debugging-playbook;配置项与插件机制分别参考 night-market-config-catalog 与 claude-code-plugin-reference。资料未提供收费与价格信息。