Files
skills-win/tools-sync/references/skills_env_template.md
T

131 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# skills_env — 本机环境档案(模板)
> 复制本文件到 `~\skills_env.md` 后逐项核对。此文件**只留在本机,不进 git**:
> 每台电脑的路径/IP/凭据不同。skills 中凡是机器相关的参数都从这里取值。
> 值为 `KEY = value` 形式,方便脚本和模型直接检索。
## 同步仓库
```
SKILLS_REPO_URL = http://git.rpchannel.com/bowei/skills-win.git
SKILLS_REPO_USER = bowei
SKILLS_REPO_PASS = <填写,或留空表示已存入 Windows 凭据管理器>
CLAUDE_SKILLS_DIR = C:\Users\<user>\.claude\skills # 唯一 git 检出(主副本)
CODEX_SKILLS_DIR = C:\Users\<user>\.codex\skills # 全量镜像,全是 junction
AGENTS_SKILLS_DIR = C:\Users\<user>\.agents\skills # 跨工具别名目录;只做发现/修复,不全量铺
OPENCODE_CONFIG_DIR = C:\Users\<user>\.config\opencode # OpenCode 全局配置;skills 数组登记 ~/.codex/skills(sync_opencode_skills.ps1 管理)
```
凭据说明:首次 clone 成功后运行 `git config --global credential.helper manager`,
让 Windows 凭据管理器接管,此后 `SKILLS_REPO_PASS` 可以清空。
### gitea 服务端(tools-sync 的 gitea_doctor 用;不自建 gitea 就整节留空)
```
GITEA_SSH_HOST = <gitea 宿主机地址,同网段/VPN 内的直连地址优先>
GITEA_SSH_PORT = 22
GITEA_SSH_HOST_ALT = <走公网跳板时的地址,没有就留空>
GITEA_SSH_PORT_ALT = <跳板端口,没有就留空>
GITEA_SSH_USER = <登录用户>
GITEA_HOST_KEY_FP = <SHA256:... 主机公钥指纹,用于确认连对了机器>
GITEA_CONTAINER = gitea
GITEA_DOCKER_BIN = /usr/local/bin/docker
GITEA_DATA_DIR = <宿主机上 bind 到容器 /data 的目录>
GITEA_COMPOSE_FILE = <docker-compose.yml 路径,没用 compose 就留空>
GITEA_HTTP_LOCAL = http://localhost:3000
```
填写要点:脚本要免密登录,先把本机公钥加进服务端的 `authorized_keys` 并实测一次。
`GITEA_DOCKER_BIN` 写绝对路径——**ssh 非交互登录通常不加载登录 shell 的 PATH,
`docker` 会找不到**。`GITEA_HOST_KEY_FP` 不是可选项:有跳板时它是你唯一能确认
"连上的确实是那台机器"的凭据。
## Python / Conda
```
CONDA_ROOT = C:\ProgramData\miniconda3
CONDA_LANGGRAPH_PYTHON = C:\Users\<user>\.conda\envs\langgraph\python.exe
```
## LangGraph 工作流仓库(各 flow skill 的 driver 从这里取项目根)
```
LANGGRAPH_DESIGN_ROOT = <LangGraph 工程总目录,如 E:\LangGraph_Design>
SIM_RTL_FLOW_ROOT = {LANGGRAPH_DESIGN_ROOT}\sim-rtl-flow
ZYNQ_IMX6_FLOW_ROOT = {LANGGRAPH_DESIGN_ROOT}\zynq-imx6-flow
FPGA_IMX6_FLOW_ROOT = {LANGGRAPH_DESIGN_ROOT}\FPGA-imx6-flow
FPGA_GOLDENREF_ROOT = {LANGGRAPH_DESIGN_ROOT}\fpga-goldenref-flow
DPD_MIG_FLOW_ROOT = {LANGGRAPH_DESIGN_ROOT}\dpd-mig-flow
KICAD_FLOW_ROOT = {LANGGRAPH_DESIGN_ROOT}\kicad-flow
XILINX_SMOD_ROOT = <SMOD 各制式工程的父目录,如 E:\Xilinx_design\smod(dpd-mig-flow 在此下找移植目标)>
```
## EDA / 硬件工具
```
VIVADO_ROOT = <Vivado 安装根目录,如 C:\Xilinx\Vivado\2018.1 —— 必须实测,不同机器盘符不同>
VIVADO_PATH = <上一行 + \bin\vivado.bat>
SDK_ROOT = <Xilinx SDK 安装根,如 D:\Xilinx\SDK\2018.1;含 bin\bootgen.bat / bin\program_flash.bat>
KICAD_PYTHONPATH = C:\Program Files\KiCad\10.0\bin\Lib\site-packages
MATLAB_ROOT = <MATLAB 安装根目录,如 D:\MATLAB\R2025b>
MATLAB_AGENTIC_ROOT = C:\Users\<user>\.matlab\agentic-toolkits
MATLAB_MCP_EXE = {MATLAB_AGENTIC_ROOT}\bin\matlab-mcp-server.exe
```
## 板卡 / 仪器 IP
```
N9320B_HOST = 192.168.1.147 # Keysight N9320B 频谱仪
SMOD_BOARD_IP = 192.168.1.143 # SMOD 板(ATSC 激励器远程升级)
```
## SMOD imx6 设备与交叉编译 VM(smod_atsc_dev / fpga_update 使用)
```
SMOD_REPO_ROOT = <ATSC 激励器 Vivado 工程根,同时是 git 仓库根>
SMOD_SSH_USER = root # imx6 SSH/网页登录名(老 dropbear)
SMOD_SSH_PASS = <填写>
SMOD_WEB_USER = <网页 Remote Update 账号,与 SSH 不同>
SMOD_WEB_PASS = <填写>
CROSS_VM_HOST = <交叉编译 VM 的 IP —— 随 VMware 网段变化,必须实测>
CROSS_VM_USER = <填写>
CROSS_VM_PASS = <填写>
```
## MCP 注册配置(真源:MCP_DESIGN_ROOT\mcp_list.md)
```
MCP_DESIGN_ROOT = E:\MCP_design
```
每个 MCP 在 Claude Code(`~\.claude.json` 的 `mcpServers`)和 Codex(`codex mcp add`,
读用 `codex mcp list --json`)中应使用**同一份** command/args/env。注意 Codex 侧
`~\.codex\config.toml` 的 `[mcp_servers.*]` 节**不生效**,手写无用;且它的注册存储
不跨 codex-cli 升级存活,所以下表是 Codex 侧唯一可重建的真源,每次同步都要核对。
同步时对两侧用户级注册表取并集,确保任一侧新增的可移植 MCP 都同步到另一侧;
`mcp_list.md` 继续用于发现“两侧都漏装”的本地工程。托管连接器、插件动态 MCP、
Codex 内置运行时 MCP(node_repl / cua_repl)不进入这个并集。
标准配置如下(路径变量引用上文条目):
| name | command | args | env |
|------------|----------------------------------|---------------------------------------------------|-----|
| vivado-mcp | {CONDA_LANGGRAPH_PYTHON} | E:\MCP_design\vivado-mcp-main\run_server.py(Codex)/ -m vivado_mcp(Claude) | VIVADO_PATH={VIVADO_PATH} |
| mcp_n9320b | {CONDA_LANGGRAPH_PYTHON} | E:\MCP_design\mcp_n9320b\n9320b_mcp.py | N9320B_HOST={N9320B_HOST} |
| cubemx | E:\MCP_design\MCP_cubemx\cubemx-mcp\.venv\Scripts\python.exe | E:\MCP_design\MCP_cubemx\cubemx-mcp\server\main.py | PYTHONPATH=E:\MCP_design\MCP_cubemx\cubemx-mcp\server |
| kicad | node | E:\MCP_design\KiCAD-MCP-Server\dist\index.js | NODE_ENV=production; PYTHONPATH={KICAD_PYTHONPATH}; KICAD_AUTO_LAUNCH=false |
| simetrix | <conda env>\Scripts\mcp-simetrix.exe | | SIMETRIX_PROJECT_ROOT=E:\ |
| matlab | {MATLAB_MCP_EXE} | --matlab-session-mode=existing --extension-file=...\simulink\tools\tools.json | |
Codex 侧所有 stdio MCP 额外加 `PYTHONIOENCODING=utf-8`、`PYTHONUTF8=1`。
MathWorks `matlab` MCP 是特例:Claude 侧要设 `alwaysLoad=true`;Codex 侧本应有
`tool_timeout_sec=600` 与 `env_vars=["WINDIR"]`,但 codex-cli 0.150.1 无接口可设,
属已知缺口(记录在 tools-sync 的 `references/codex_mcp_wanted_keys.json`)。
MATLAB 与 Simulink 共用该条目。
## 本机状态备注(同步时更新)
```
LAST_SYNC = <日期>
TODO = <遗留事项>
```