Files
workbuddy_skills/.gitignore
T
admin a9d2adaf72 feat(dual-link-proxy): 新增双链路代理搭建与运维技能(已脱敏)
把「在已跑 nginx 的 VPS 上从零搭起橙云 + 灰云双链路、并用 3x-ui 管多用户」
的全过程沉淀成技能:五阶段工作流、五条硬性前提、三条易踩反的判据、19 条避坑。

- references/01 前置取证与选型:泛解析不等通、端口取证、nginx 约束下的选型
- references/02 服务端落地:3x-ui 与 sing-box 两条路线,含包名与 2096 冲突
- references/03 nginx 与证书:80 → 签证书 → 443 的顺序、AEAD 套件、口令文件位置
- references/04 面板与多用户:3x-ui 三层模型、加人步骤、CSRF 登录法
- references/05 避坑清单:19 条,正向写做法、括号里附踩过的坑
- scripts/verify-links.sh 与 scripts/3xui-api.py:两个脚本均对真实环境跑通

正文已脱敏,域名/端口/口令/UUID/主机 全部改为占位符。
2026-10-18 15:05:52 +08:00

112 lines
6.3 KiB
Plaintext
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.
# ══════════════════════════════════════════════════════════════════════════
# 🔴🔴 白名单:本仓**只收录对外发布的那几个技能**(用户 2026-10-09 令:「肯定要收回」)
# 写法=先把根下一律挡掉(`/*`),再逐个放行。⛔ 这样"新冒出来的技能目录"
# 不会被任何 `git add -A` 顺手捎进仓库 —— 2026-10-08 那 9 个就是这么混进来的。
# 本轮从索引撤出(**本地文件一律保留**):AI HOT、draw-ui、dsh-diagnose、dsh-knowledge、
# dsh-local-env、dsh-opensource-release、dsh-workflow、oil-motion、skills-security-check
# ⚠️ 保留 oil-ui-pro:它是 product-planning 第③段的**功能依赖**(撤了两边都会悬空)。
# ══════════════════════════════════════════════════════════════════════════
/*
!/.gitignore
# 🔴 2026-10-14 加:行尾符策略文件。它跟 `.gitignore` 一样是**仓级规则**,必须入库 ——
# ⛔ 不入库的话别的机器取仓后仍按各自 `core.autocrlf` 各行其是,本仓的行尾符约定形同虚设。
!/.gitattributes
!/改包纪律.md
!/browser-harness/
!/humanizer/
!/oil-ui-pro/
!/open-design/
!/product-planning/
!/session-mechanism/
# 🔴 2026-10-12 加(用户当轮令「可以加入」):新建的全局技能 `video-capture`(取视频 + 抽帧)要入库。
# 判据=product-planning 第③段已把它当**依赖**引用(交接说明指向它)⇒ 仓里有引用、仓里就该有实体;
# ⛔ 否则别的机器从本仓还原会拿到一个「指向装不出来的技能」的悬空引用。
# ⚠️ 它目录内的 `env/`、`logs/` 仍被下面那几条本机配置规则挡着 —— 那部分照旧各机器自建。
!/video-capture/
# 🔴 2026-10-18 加(用户当轮令「脱敏后进仓」):双链路代理的搭建与运维技能。
# 正文已脱敏(域名/IP/UUID/口令一律用占位符),本机的真实参数留在工作区的部署文档里。
!/dual-link-proxy/
# 🔴 不入库:运行期产物与备份
# 判据(记忆铁律):技能包=**可复制的资产**;⛔ 运行日志/缓存/备份/本机部署副本一律不入库。
# 运行日志(install.py 每次跑都写)
*.log
install.log
*_collabd.log
# 缓存
__pycache__/
*.pyc
*.pyo
# 备份(⛔ 备份不是资产,是历史)
*.bak-*
*.bak
*.orig
*.rej
*.mutbak
# 编辑器
.DS_Store
Thumbs.db
*.swp
*~
# 🔴 2026-10-09 改(用户令:「A 肯定要收回」+「别的电脑取仓时不要影响已有文件」):
# 下面两份是 **install.py 在本机生成**的 ⇒ ⛔ 撤出仓库、改为本机各自生成。
# 为什么必须撤(实测):别的电脑取仓时「同名覆盖」会把它们换成**我们这台机器**的路径
# ⇒ 那台机器的机制脚本会去找不存在的目录(`roots.env` 里就是本机绝对路径)。
session-mechanism/references/manifest.md
# 🔴🔴 2026-10-11 加(用户令:「脚本是脚本 配置是配置」⇒「**每个技能 需要环境配置的 都有自己的 env文件夹**」):
# **每台机器各不同**的配置一律放**该技能包自己的 `env/`**;`scripts/` 只留通用代码。
# 本仓收录的每个技能 —— 其 `env/` 下**只入库 `*.example` 样例**,真配置一律本机生成、不入库
# (理由同上面那条:入库 ⇒ 别的电脑取仓时被本机路径覆盖 ⇒ 机制去找不存在的目录)。
# ⚠️ 三行三种层级都写,避免"某个深度漏挡"(`**/env/*` 覆盖任意层,另两行是它的保守冗余)。
env/*
!env/*.example
*/env/*
!*/env/*.example
**/env/*
!**/env/*.example
# 兼容旧位置(2026-10-11 之前的布局):包根那份 `roots.env` 也是本机真身 ⇒ 同样不许入库。
# ⚠️ `roots.env` 不带斜杠 ⇒ 按**文件名**匹配任意层级,正好把「包根旧位置」一并兜住。
roots.env
# 📌 刻意**入库**的(⛔ 别误删):
# assets/*.png —— 文档配图,是内容不是产物
# 🔴 凭据类一律不入库(2026-10-06 发现「当前版本仍跟踪」)
.neodata_token
# 🔴 2026-10-07 补(本目录改成 git 工作区后新增,按实测盘点)
# 运行期目录(session-mechanism/logs 里是钩子日志,不是资产)
logs/
tmp/
# 机制运行时写的**域锁目录**(handoff-guard 的 `.locks`)—— 运行时产物,⛔ 不入库
# ⚠️ 用 `**/` 兜两种落点:脚本在 `<技能包>/scripts/` 时 ROOT 算成 `<技能包>` ⇒ 是
# `<技能包>/05-交接单/`;脚本被整体拷到别处时也可能落成 `<技能包>/scripts/05-交接单/`。
# ⚠️ 与**文档库仓**的同名目录不冲突:那边的 `05-交接单/` 是锁根、**要**入库,本规则只在本仓生效。
**/05-交接单/
# 宿主写的技能库迁移标记(每次启动可能重写,⛔ 不是内容)
.disable_to_model_invocation_migration.json
.model_invocation_to_override_migration.json
.user_invocable_only_to_off_migration.json
_bm_skillid_migration.json
# 本机虚拟环境与构建产物(browser-harness 等)
.venv/
*.egg-info/
uv.lock
node_modules/
# 本机部署副本与状态(`.workbuddy/` 是**工作区**的东西,⛔ 不该出现在技能库)
.workbuddy/
# 🔴 2026-10-16 用户令:「design-system-tiaoyue」**整个目录不入库**(磁盘保留、照常用)。
# 判据=体积(14 MB:真机组件库 13 MB + 整站样式合并 1.1 MB)+ 可再采(CDP 直连真机重采即可)。
# 已入库的 9 个文件用 `git rm -r --cached` 移出(⛔ 磁盘保留)。
# ⚠️ 取仓后③段 D1 定调拿不到自带套 ⇒ 按 `product-planning/references/stage-delivery/SKILL.md` §供给 另取或重采。
# 🔴 本行必须留在文件末尾:白名单是「先 /* 全挡、再逐个放行」,否则 `!/product-planning/` 会把它放回来。
/product-planning/references/stage-delivery/assets/design-systems/design-system-tiaoyue/
# 运行期存档(`element-picker` 拾取器每次点「确认」都会往这里追加;服务自己会建目录,不入库)
/product-planning/assets/element-picker/marks/