# 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\\.claude\skills CODEX_SKILLS_DIR = C:\Users\\.codex\skills ``` 凭据说明:首次 clone 成功后运行 `git config --global credential.helper manager`, 让 Windows 凭据管理器接管,此后 `SKILLS_REPO_PASS` 可以清空。 ### gitea 服务端(tools-sync 的 gitea_doctor 用;不自建 gitea 就整节留空) ``` GITEA_SSH_HOST = GITEA_SSH_PORT = 22 GITEA_SSH_HOST_ALT = <走公网跳板时的地址,没有就留空> GITEA_SSH_PORT_ALT = <跳板端口,没有就留空> GITEA_SSH_USER = <登录用户> GITEA_HOST_KEY_FP = GITEA_CONTAINER = gitea GITEA_DOCKER_BIN = /usr/local/bin/docker GITEA_DATA_DIR = <宿主机上 bind 到容器 /data 的目录> GITEA_COMPOSE_FILE = 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\\.conda\envs\langgraph\python.exe ``` ## LangGraph 工作流仓库(各 flow skill 的 driver 从这里取项目根) ``` LANGGRAPH_DESIGN_ROOT = 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} pga-goldenref-flow ``` ## EDA / 硬件工具 ``` VIVADO_ROOT = VIVADO_PATH = <上一行 + \bin\vivado.bat> SDK_ROOT = KICAD_PYTHONPATH = C:\Program Files\KiCad\10.0\bin\Lib\site-packages MATLAB_ROOT = MATLAB_AGENTIC_ROOT = C:\Users\\.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 = 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\config.toml` 的 `[mcp_servers.*]`)中应使用**同一份** command/args/env。 同步时还要对两侧用户级注册表取并集,确保任一侧新增的可移植 MCP 都同步到另一侧; `mcp_list.md` 继续用于发现“两侧都漏装”的本地工程。托管连接器、插件动态 MCP、 Codex 内置运行时 MCP 不进入这个并集。 标准配置如下(路径变量引用上文条目): | 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 | \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 是特例:Codex 还要设置 `tool_timeout_sec=600` 与 `env_vars=["WINDIR"]`;Claude 侧要设置 `alwaysLoad=true`。MATLAB 与 Simulink 共用该条目。 ## 本机状态备注(同步时更新) ``` LAST_SYNC = <日期> TODO = <遗留事项> ```