doyourmagic
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSkill: doyourmagic
Skill: doyourmagic
WHAT
WHAT
Purpose và context
Purpose 与上下文
- Purpose: biến một repo/tool ngoài vừa clone thành bundle skill workflow CHẠY ĐƯỢC (hub + N sub-skill) kèm
/dym-<repo>(bảng kiểm chứng) vàworkflows.md, mọi lệnh đã đối chiếu với code/flow.html/chạy thật — rồi đưa một verdict adapt-modes.--help - Trigger (when to use):
- User just cloned/installed an external repo/CLI/tool and wants "how do I actually use this thing" as something gõ được, not a README to re-read each time.
- User says "kéo repo mới về", "doyourmagic <repo>", "làm workflow cho tool này", "generate workflow docs for this repo", "viết hộ cách dùng runnable cho repo này".
- Before folding an external tool into project conventions/CI — produce the bundle first so the integration decision is grounded in verified commands, not README paraphrase.
- Non-goals: không paraphrase README; không sửa clone (read-only); không tự scaffold/tích hợp vào repo chính khi verdict chưa được user duyệt; không promote hub.
- Purpose: 将一个刚 clone 的外部 repo/tool 转换为一套可实际运行的 workflow skill bundle(hub + N 个 sub-skill),并附带
/dym-<repo>(验证表)和workflows.md;所有命令都要与代码/flow.html/实际运行结果交叉验证,然后给出一个 adapt-modes verdict。--help - Trigger(何时使用):
- 用户刚 clone/install 一个外部 repo/CLI/tool,希望把“这个东西到底怎么用”变成可以直接输入执行的内容,而不是每次都要重新阅读 README。
- 用户说出「kéo repo mới về」、「doyourmagic <repo>」、「làm workflow cho tool này」、「generate workflow docs for this repo」或「viết hộ cách dùng runnable cho repo này」。
- 在将外部 tool 纳入项目规范或 CI 之前,先产出 bundle,使集成决策建立在经过验证的命令之上,而不是对 README 的转述。
- Non-goals: 不转述 README;不修改 clone(只读);在 verdict 尚未获得用户批准前,不自动 scaffold 或集成到主 repo;不 promote hub。
Mental model
Mental model
clone (sandbox, read-only) → manifest → README = giả thuyết → đối chiếu parser/--help/exit thật → chạy thật (scope pin) → workflow chia theo ĐỐI TƯỢNG → sub-skill + hub → workflows.md + flow.html → verdict adapt-modes → (tuỳ) dym-sync push / install / promoteclone(sandbox,只读) → manifest → README = 假设 → 对照 parser/--help/真实 exit → 实际运行(锁定 scope) → 按对象拆分 workflow → sub-skill + hub → workflows.md + flow.html → adapt-modes verdict →(可选)dym-sync push / install / promoteInput và output contract
Input 与 output contract
| Field | Required? | Ý nghĩa | |
|---|---|---|---|
| In | repo/URL tool ngoài | có | thứ cần làm workflow |
| In | | không | chế độ đặt tên (mặc định |
| In | bản tích hợp thật trên máy | không | có thì thắng fixture trong clone |
| Out | | có | hub có |
| Out | | có | bảng kiểm chứng (khẳng định → file:dòng / ca chạy / rc); flow mở thật trước khi giao |
| Out | verdict adapt-modes | có | HÒA TAN · KÉO NGOÀI · NHÚNG-SỞ-HỮU · KHÔNG LẤY |
| 字段 | 必需? | 含义 | |
|---|---|---|---|
| In | 外部 repo/URL tool | 是 | 需要为其制作 workflow 的对象 |
| In | | 否 | 命名模式(默认 |
| In | 机器上的真实集成版本 | 否 | 如果存在,则优先于 clone 中的 fixture |
| Out | | 是 | hub 包含 |
| Out | | 是 | 验证表(断言 → file:行号/运行用例/rc);交付前实际打开 flow |
| Out | adapt-modes verdict | 是 | HÒA TAN · KÉO NGOÀI · NHÚNG-SỞ-HỮU · KHÔNG LẤY |
Rules và capabilities
Rules 与 capabilities
- RULE-01 (MUST): Không paraphrase README thành "runnable" — mỗi lệnh phải có trong manifest scripts / thật / argument parser.
--help - RULE-02 (MUST): Không giả định mã thoát 0/1 — đọc literal exit; tool có thể dùng 2 = "có finding" hay fail-open 0 khi thiếu file, người gọi phải rẽ nhánh đúng.
- RULE-03 (MUST): Không bê của tool vào skill CI cho người tiêu thụ — viết ví dụ tối giản riêng.
.github/workflows/*.yml - RULE-04 (MUST): Lệnh chat và lệnh shell không chung một skill.
- RULE-05 (MUST): Không chạy installer của tool mà không pin scope (đo 2026-09-04: cài thật vào
npx impeccable install --help13 thư mục). Sandbox +$HOMEcô lập + cờ scope tường minh.HOME - RULE-06 (MUST): Read-only với clone; chỉ ghi vào .
.overstack/doyourmagic/<repo>/ - RULE-07 (MUST): Mỗi sub-skill tự chứa; hub chỉ đọc đúng file được gọi — không nhồi cả bundle vào context.
- RULE-08 (MUST): tự chứa (không CDN, không path tuyệt đối cục bộ), đọc được cả sáng/tối, mở qua
flow.html.file:// - RULE-09 (MUST): Ưu tiên bằng chứng chạy thật hơn trích dẫn; cái gì chưa chạy được thì ghi "chưa kiểm chứng" ngay tại chỗ.
- Capabilities: clone + đọc repo ngoài trong sandbox cô lập; chạy lệnh của tool với scope pin; ghi chỉ dưới ; mở trang HTML bằng trình duyệt để verify; (tuỳ) đẩy bundle lên kho chung qua công cụ đồng bộ + PR.
.overstack/doyourmagic/<repo>/
- RULE-01(MUST):不得将 README 转述成“可运行”内容——每条命令都必须存在于 manifest scripts、真实的 输出或 argument parser 中。
--help - RULE-02(MUST):不得假定退出码为 0/1——必须读取真实的 exit code;tool 可能用 2 表示“有 finding”,也可能在缺少文件时 fail-open 并返回 0,调用方必须正确分支。
- RULE-03(MUST):不得将 tool 自身的 复制进供消费者使用的 skill CI;应单独编写最小示例。
.github/workflows/*.yml - RULE-04(MUST):chat 命令和 shell 命令不得放在同一个 skill 中。
- RULE-05(MUST):未锁定 scope 时不得运行 tool 的 installer(2026-09-04 实测:实际向
npx impeccable install --help中的 13 个目录安装了内容)。必须使用 sandbox、隔离的$HOME以及明确的 scope 参数。HOME - RULE-06(MUST):对 clone 保持只读;只能写入 。
.overstack/doyourmagic/<repo>/ - RULE-07(MUST):每个 sub-skill 必须自包含;hub 只读取被调用的那个文件——不得将整个 bundle 塞入 context。
- RULE-08(MUST):必须自包含(不使用 CDN,不使用本地绝对路径),同时支持浅色和深色模式,并能通过
flow.html打开。file:// - RULE-09(MUST):优先采用实际运行证据,而不是引用;无法运行的内容必须就地标记为“未验证”。
- Capabilities:在隔离的 sandbox 中 clone 并读取外部 repo;以锁定的 scope 运行 tool 命令;仅写入 ;使用浏览器打开 HTML 页面进行 verify;(可选)通过同步工具和 PR 将 bundle 推送到共享仓库。
.overstack/doyourmagic/<repo>/
Failure boundaries
Failure boundaries
- Lệnh không đối chiếu được với code//chạy thật → không viết như "runnable"; ghi "chưa kiểm chứng" tại chỗ (partial).
--help - Installer không pin được scope → blocked cho ca đó, không chạy.
- trùng tên skill có sẵn → rơi về chế độ mặc định và nói rõ.
--humanize - Kho đã có bundle của repo → kéo về thay vì chạy lại (clarify với user nếu muốn chạy lại).
rheinmir/dym - Verdict HÒA TAN/NHÚNG → dừng hỏi trước khi scaffold.
- 命令无法与代码//实际运行结果交叉验证 → 不得将其写为“runnable”;应就地标记为**“未验证”**(partial)。
--help - Installer 无法锁定 scope → 该用例为 blocked,不得运行。
- 生成的 skill 名与现有名称冲突 → 回退到默认模式,并明确说明。
--humanize - 中已经存在该 repo 的 bundle → 优先拉取现有 bundle,而不是重新运行(如果用户希望重新运行,则先 clarify)。
rheinmir/dym - Verdict 为 HÒA TAN/NHÚNG → 在 scaffold 前必须先询问用户。
HOW
HOW
Main workflow
Main workflow
| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | effect | repo | Clone vào sandbox (bước 1); xem | clone read-only | đã có bundle → B03 |
| W02 | deterministic | clone | Manifest trước, README là giả thuyết, đối chiếu parser/ | danh sách lệnh đã đối chiếu | không đối chiếu được → "chưa kiểm chứng" |
| W03 | effect | lệnh | Chạy thật trong sandbox, scope pin; đọc bản tích hợp thật nếu có (bước 4–5) | rc từng ca | không pin được scope → bỏ ca đó |
| W04 | judgment | kết quả | Chia workflow theo đối tượng, chốt tên (bước 6–7) | danh sách hub/slug | trùng tên |
| W05 | effect | workflow | Viết sub-skill + hub + | bundle trên đĩa | |
| W06 | effect | bundle | Sinh | flow.html đã verify | lỗi hiển thị → sửa, mở lại |
| W07 | judgment | bundle | Gate adapt-modes: MỘT verdict (bước 12) | verdict | HÒA TAN/NHÚNG → hỏi trước khi scaffold |
Chi tiết từng bước (nguồn chân lý cho W01–W07):
- Clone vào sandbox (scratch dir) — không khám phá tại chỗ trong cây dự án của user. Exploration là read-only với clone.
- Manifest trước, prose sau: tìm /
package.json/pyproject.toml/Cargo.toml/ installer script TRƯỚC khi đọc README — nó cho lệnh cài thật, entry point/bin, danh sách script.go.mod - README/AGENTS.md/docs là giả thuyết, không phải sự thật. Mỗi lệnh định viết ra phải đối chiếu với argument parser / chạy thật / literal
--helpprocess.exit(...)— đọc mã thoát thật, đừng giả định 0/1.sys.exit(...) - Chạy thật những gì chạy được trong sandbox với scope pin chặt (cô lập,
HOME,--scope=project…): installer, validator trên input bẩn/sạch, mode lạ, file thiếu. Ghi rc từng ca — bảng kiểm chứng của--no-verifylấy từ đây.workflows.md - Nếu máy đã có một bản tích hợp thật (config đã commit ở dự án khác) → đọc nó; nó thắng fixture trong clone về "dùng đúng ngoài đời trông thế nào". Tái hiện lỗi trên bản thật là bằng chứng mạnh nhất.
- Chia workflow theo ĐỐI TƯỢNG, không theo tính năng: tiêu thụ (dùng tool trong dự án của mình) vs đóng góp (sửa chính tool). Lệnh chat () và lệnh shell tách skill riêng — trộn là copy-paste gãy.
/x - Chốt tên theo bảng Naming (kiểm trùng nếu ).
--humanize - Viết mỗi workflow thành một sub-skill :
.overstack/doyourmagic/<repo>/skills/<hub>-<slug>/SKILL.md- frontmatter ,
name: <hub>-<slug>= một câu nói KHI NÀO gọi + từ khoá trigger, vàdescription— để khi cài cả bundle quadisable-model-invocation: true(7 skill) cũng không có dòng description nào tự nhồi vào context; chỉ nạp khi gõ.npx skills add - — tình huống + "tại sao chạy / sinh ra gì".
## When to use - — lệnh copy-paste được, đường dẫn chính xác, output/mã thoát kỳ vọng. Lệnh nào đã chạy thật thì ghi rc đo được.
## Steps - — bẫy đã ĐO (không phải đoán), kèm cách né; carve-out "không được làm".
## Rules - Self-contained: không trỏ tới file chỉ có trong clone; cần thì "nếu file X có mặt thì…".
- frontmatter
- Viết hub :
.overstack/doyourmagic/<repo>/skills/<hub>/SKILL.md--- name: <hub> disable-model-invocation: true domains: [<domain-1>, <domain-2>] # bắt buộc — /dym định tuyến theo đây (chart · frontend · diagram · security · …) source: <url repo gốc> description: "<một dòng: tool gì · gõ /<hub> <slug> · slugs: a · b · c>" --- ## Steps 1. Đọc ARGUMENTS → <slug>. Không có slug → in bảng slug + một dòng mục đích, dừng. 2. Tìm file con theo thứ tự, lấy file ĐẦU TIÊN tồn tại rồi đọc ĐÚNG MỘT file: (1) `.claude/skills/<hub>-<slug>/SKILL.md` — đã cài qua `npx skills add rheinmir/dym`; (2) `.overstack/doyourmagic/<repo>/skills/<hub>-<slug>/SKILL.md` — bundle nằm trong dự án, hub symlink; (3) `doyourmagic-bundles/<repo>/skills/<hub>-<slug>/SKILL.md` — clone `rheinmir/dym` cạnh dự án. Làm theo Steps/Rules của file đó; không đọc file con khác; không thấy cả 3 → nói rõ, dừng. - : bảng (skill · mục đích · nhánh · lệnh gọi), "thứ tự chạy đề xuất", "bẫy đắt nhất", bảng "kiểm chứng thế nào" (khẳng định → file:dòng / ca chạy thật / rc), chế độ đặt tên đã dùng, và lệnh symlink 1 dòng (mục Install bên dưới).
workflows.md - — sinh theo skill
flow.html(BẮT BUỘC: sidebar kính, background orbs, mind map collapsible, nút gạt sáng/tối ở footer sidebar + chống FOUC, cỡ chữ compact 13″, skip-link/focus ring, footer hiện đường dẫn tuyệt đối của chính file). Nội dung = luồng chính xác các skill thực hiện: mỗi skill một node, cạnhdocs-site-macos(connector do JS vẽ từskill → sản phẩm → skill kế, vẽ lại khi resize — không hardcode toạ độ), thứ tự chạy theo nhánh, mỗi node ghi lệnh gọi + sản phẩm + bẫy 1 dòng. Thuật ngữ có giải nghĩa trong ngoặc. Mở thật bằng trình duyệt (hoặcgetBoundingClientRect) trước khi giao — đọc code không đủ./playwright-verify - Gate adapt-modes — bundle không phải đích đến. Đưa MỘT verdict cho user: HÒA TAN (rewrite thành code/skill của ta) · KÉO NGOÀI (pointer + pin) · NHÚNG-SỞ-HỮU (vendor) · KHÔNG LẤY (đã có gì phủ, ghi path). So trên trục quyết định chi phí — số lượt agent/lần dùng, code sinh được không cần LLM — không so byte. Verdict HÒA TAN/NHÚNG → hỏi trước khi scaffold.
| Step | Type | Inputs | Action | Outputs/exit | Failure/next |
|---|---|---|---|---|---|
| W01 | effect | repo | Clone 到 sandbox(步骤 1);检查 | 只读 clone | 已有 bundle → B03 |
| W02 | deterministic | clone | 优先分析 manifest;README 仅作为假设;对照 parser/ | 已交叉验证的命令列表 | 无法交叉验证 → 标记“未验证” |
| W03 | effect | 命令 | 在 sandbox 中实际运行并锁定 scope;如果存在则读取真实集成版本(步骤 4–5) | 每个用例的 rc | 无法锁定 scope → 跳过该用例 |
| W04 | judgment | 结果 | 按对象拆分 workflow,并确定名称(步骤 6–7) | hub/slug 列表 | |
| W05 | effect | workflow | 编写 sub-skill + hub + | 磁盘上的 bundle | |
| W06 | effect | bundle | 按 | 已验证的 flow.html | 显示异常 → 修复并重新打开 |
| W07 | judgment | bundle | 执行 adapt-modes gate:只给出一个 verdict(步骤 12) | verdict | HÒA TAN/NHÚNG → scaffold 前先询问 |
各步骤的详细信息(W01–W07 的事实来源):
- Clone 到 sandbox(scratch dir)——不要直接在用户项目树中探索。对 clone 的探索必须保持只读。
- Manifest 优先,prose 在后:在读取 README 之前,先查找 /
package.json/pyproject.toml/Cargo.toml/ installer script;它们能够提供真实的安装命令、entry point/bin 和脚本列表。go.mod - README/AGENTS.md/docs 只是假设,不是事实。准备写入的每条命令都必须与 argument parser、实际运行的 或字面量
--help/process.exit(...)交叉验证;必须读取真实退出码,不得假定为 0/1。sys.exit(...) - 尽可能实际运行能够在 sandbox 中运行的命令,并严格锁定 scope(隔离的 、
HOME、--scope=project等):测试 installer、在脏输入/干净输入上运行 validator、特殊模式以及文件缺失场景。记录每个用例的 rc——--no-verify的验证表由此生成。workflows.md - 如果机器上已经存在真实集成版本(例如另一个项目提交的配置)→ 读取它;在“真实世界中的正确用法”方面,它优先于 clone 中的 fixture。在真实版本上复现错误是最有力的证据。
- 按对象而非按功能拆分 workflow:消费(在自己的项目中使用 tool)与贡献(修改 tool 本身)。chat 命令()和 shell 命令必须拆成独立的 skill——混在一起会产生容易失效的 copy-paste 内容。
/x - 按 Naming 表确定名称(使用 时检查名称冲突)。
--humanize - 将每个 workflow 写成一个 sub-skill::
.overstack/doyourmagic/<repo>/skills/<hub>-<slug>/SKILL.md- frontmatter 包含 ;
name: <hub>-<slug>用一句话说明何时调用并包含 trigger 关键词;还必须包含description——这样即使通过disable-model-invocation: true安装整个 bundle(7 个 skill),也不会自动将任何 description 塞入 context;只有用户输入时才会加载。npx skills add - ——描述适用场景,以及“为什么运行/会生成什么”。
## When to use - ——提供可直接 copy-paste 的命令、精确路径以及预期的 output/退出码。已经实际运行过的命令必须记录测得的 rc。
## Steps - ——记录已经实测出的陷阱(不是猜测),并说明规避方式;明确列出“不得执行”的 carve-out。
## Rules - Self-contained:不得引用仅存在于 clone 中的文件;如果需要,则写成“如果文件 X 存在,则……”。
- frontmatter 包含
- 编写 hub::
.overstack/doyourmagic/<repo>/skills/<hub>/SKILL.mdundefined
name: <hub> disable-model-invocation: true domains: [<domain-1>, <domain-2>] # bắt buộc — /dym định tuyến theo đây (chart · frontend · diagram · security · …) source: <url repo gốc> description: "<một dòng: tool gì · gõ /<hub> <slug> · slugs: a · b · c>"
Branches
Steps
| ID | Kind | Guard | Hành vi | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | user_optional | | đặt tên theo bảng Naming; | trùng → rơi về mặc định, nói rõ | W05 |
| B02 | capability_optional | máy đã có bản tích hợp thật (config commit ở dự án khác) | đọc nó, ưu tiên hơn fixture trong clone; tái hiện lỗi trên bản thật | không có → bỏ qua | W04 |
| B03 | conditional_required | | kéo về ( | user muốn chạy lại → W02 | kết thúc |
| B04 | user_optional | sau khi bundle xong, muốn chia sẻ/dùng | | thiếu | kết thúc |
- Đọc ARGUMENTS → <slug>. Không có slug → in bảng slug + một dòng mục đích, dừng.
- Tìm file con theo thứ tự, lấy file ĐẦU TIÊN tồn tại rồi đọc ĐÚNG MỘT file:
(1) — đã cài qua
.claude/skills/<hub>-<slug>/SKILL.md; (2)npx skills add rheinmir/dym— bundle nằm trong dự án, hub symlink; (3).overstack/doyourmagic/<repo>/skills/<hub>-<slug>/SKILL.md— clonedoyourmagic-bundles/<repo>/skills/<hub>-<slug>/SKILL.mdcạnh dự án. Làm theo Steps/Rules của file đó; không đọc file con khác; không thấy cả 3 → nói rõ, dừng.rheinmir/dymundefined - :包含表格(skill · 用途 · 分支 · 调用命令)、“建议执行顺序”、“代价最高的陷阱”、“如何验证”表(断言 → file:行号/实际运行用例/rc)、已采用的命名模式,以及一行 symlink 命令(见下方 Install)。
workflows.md - ——按
flow.htmlskill 生成(必须具备:全屏 sidebar、background orbs、可折叠 mind map、位于 footer sidebar 的明暗切换按钮并防止 FOUC、适合 13″ 屏幕的紧凑字号、skip-link/focus ring,以及在 footer 中显示该文件自身的绝对路径)。内容必须呈现各 skill 实际执行的准确流程:每个 skill 一个节点,连接线表示docs-site-macos(connector 由 JS 根据skill → 产物 → 下一 skill绘制,并在 resize 时重绘——不得硬编码坐标);按分支展示执行顺序;每个节点写明调用命令、产物和一行陷阱说明。术语应在括号中给出解释。交付前必须使用浏览器实际打开(或使用getBoundingClientRect)——只阅读代码并不足够。/playwright-verify - Adapt-modes gate——bundle 不是终点。向用户提供一个 verdict:HÒA TAN(改写为我们自己的代码/skill)· KÉO NGOÀI(pointer + pin)· NHÚNG-SỞ-HỮU(vendor)· KHÔNG LẤY(已有方案覆盖,记录 path)。比较时应基于成本决策轴——每次使用的 agent 轮数、无需 LLM 即可生成的代码——而不是比较字节数。Verdict 为 HÒA TAN/NHÚNG 时,必须在 scaffold 前先询问。
Validation và stopping
Branches
Bảng "kiểm chứng thế nào" trong : mỗi khẳng định trỏ về file:dòng / ca chạy thật / rc — thiếu thì ghi "chưa kiểm chứng". xanh (bundle dạng SKILL, hub có ). phải được mở thật. Dừng ở verdict adapt-modes; scaffold chỉ sau khi user duyệt.
workflows.mdpython3 harness/scripts/dym-sync.py lintdomains:flow.html| ID | Kind | Guard | 行为 | Skip / failure | Rejoin |
|---|---|---|---|---|---|
| B01 | user_optional | | 按 Naming 表确定名称;使用 | 冲突 → 回退到默认模式并明确说明 | W05 |
| B02 | capability_optional | 机器上已有真实集成版本(配置提交在其他项目中) | 读取它,并优先于 clone 中的 fixture;在真实版本上复现错误 | 不存在 → 跳过 | W04 |
| B03 | conditional_required | | 拉取现有 bundle( | 用户希望重新运行 → W02 | 结束 |
| B04 | user_optional | bundle 完成后,用户希望共享或使用它 | 运行 | 缺少 | 结束 |
Examples
Validation 与 stopping
- Positive: → clone sandbox, đọc installer +
/doyourmagic https://github.com/Rheinmir/setupthật, chạy validator trên input bẩn/sạch ghi rc → hub--help+ 6 sub-skill,dym-setupbảng kiểm chứng 30 dòng,workflows.mdmở thật → verdict (xemflow.html).references/example-setup/ - Boundary/failure: tool có mà
npx <tool> installkhông liệt kê cờ scope → không chạy installer (cài thật vào--help), sub-skill ghi "chưa kiểm chứng" cho lệnh cài kèm bẫy đã biết.$HOME
workflows.mdpython3 harness/scripts/dym-sync.py lintdomains:flow.htmlReference — Output shape (what a finished run leaves behind)
Examples
.overstack/doyourmagic/<repo>/
workflows.md # chỉ mục + thứ tự chạy + bảng "kiểm chứng thế nào" (thứ không thuộc về một skill nào)
flow.html # docs-site-macos: sidebar · mind map · SƠ ĐỒ LUỒNG skill→sản phẩm→skill kế · toggle sáng/tối
skills/
<hub>/SKILL.md # /<hub> <slug> — 1 dòng description, disable-model-invocation, đọc ĐÚNG file con được gọi
<hub>-<slug-1>/SKILL.md # mỗi workflow = một skill đầy đủ (frontmatter + When/Steps/Rules), tự chứa, promote được
<hub>-<slug-2>/SKILL.md- Hub là thứ duy nhất được symlink vào → context chỉ tốn một dòng description; thân workflow con chỉ được đọc khi user gõ
.claude/skills/. Đây là "hub 1-tên, mô tả phạm vi" của/<hub> <slug>, không phải N skill rải trong context./fdk - Sub-skill là SKILL.md thật (không phải doc): copy nguyên thư mục sang của repo chính là thành skill cài bằng
skills/.npx skills add - Không còn : nội dung runnable nằm trong Steps của sub-skill — một nguồn, không có bản doc song song để drift.
NN-*.md
- Positive: → clone 到 sandbox,读取 installer 和真实的
/doyourmagic https://github.com/Rheinmir/setup,在脏输入/干净输入上运行 validator 并记录 rc → hub--help+ 6 个 sub-skill,生成包含 30 行验证内容的dym-setup,实际打开workflows.md→ verdict(参见flow.html)。references/example-setup/ - Boundary/failure: tool 包含 ,但
npx <tool> install未列出 scope 参数 → 不运行 installer(它会实际安装到--help);sub-skill 仍须为安装命令记录“未验证”以及已知陷阱。$HOME
Reference — Naming — 3 chế độ, ghi chế độ đã dùng vào workflows.md
workflows.mdReference — Output shape(一次完整运行最终留下的内容)
| Chế độ | Hub | Sub-skill | Khi nào |
|---|---|---|---|
| mặc định | | | user không nói gì. Không bao giờ trùng, nhìn tên biết nguồn; đổi tên lúc promote |
| | | user tự đặt |
| agent đặt tên ngắn gõ được bằng cơ bắp (vd | | phải |
|
.overstack/doyourmagic/<repo>/
workflows.md # chỉ mục + thứ tự chạy + bảng "kiểm chứng thế nào" (thứ không thuộc về một skill nào)
flow.html # docs-site-macos: sidebar · mind map · SƠ ĐỒ LUỒNG skill→sản phẩm→skill kế · toggle sáng/tối
skills/
<hub>/SKILL.md # /<hub> <slug> — 1 dòng description, disable-model-invocation, đọc ĐÚNG file con được gọi
<hub>-<slug-1>/SKILL.md # mỗi workflow = một skill đầy đủ (frontmatter + When/Steps/Rules), tự chứa, promote được
<hub>-<slug-2>/SKILL.md- Hub 是唯一会被 symlink 到 的内容 → context 只消耗一行 description;子 workflow 的正文仅在用户输入
.claude/skills/时读取。这就是/<hub> <slug>使用的“单名称 hub、描述范围”模式,而不是将 N 个 skill 散落在 context 中。/fdk - Sub-skill 是真正的 SKILL.md(不是普通文档):将整个目录复制到主 repo 的 后,即可成为通过
skills/安装的 skill。npx skills add - 不再保留 :可运行内容全部位于 sub-skill 的 Steps 中——只保留一个事实来源,避免并行文档产生 drift。
NN-*.md
Reference — Đồng bộ + định tuyến — harness/scripts/dym-sync.py
(stdlib, 0 token)
harness/scripts/dym-sync.pyReference — Naming——3 种模式,并将采用的模式记录到 workflows.md
workflows.mdbash
S=harness/scripts/dym-sync.py
python3 $S lint # mọi bundle phải ở DẠNG SKILL (hub có `domains:`); dạng cũ NN-*.md → `migrate <repo> --domains chart,report`
python3 $S index # sinh meta-hub .overstack/doyourmagic/dym/SKILL.md: bảng domain → hub → slug
python3 $S install [dym|<repo>] [--auto slug,slug] # symlink vào .claude/skills; --auto = bỏ disable-model-invocation, agent tự nạp theo description
python3 $S check [--yes] # đĩa ↔ baseline ↔ dym: NEW-LOCAL/SAME/LOCAL/REMOTE-AHEAD/CONFLICT; hỏi y/N rồi push. Hook Stop tự nhắc khi phiên đụng bundle.
python3 $S push <repo> [--yes] # copy vào clone dym → nhánh dym/<repo> → PR (gh); ghi .dym-baseline.jsonHub bắt buộc khai trong frontmatter — (1 dòng context, model-invocable) đọc bảng domain để tự chọn bundle: chart → lieflat-charts, frontend → impeccable… Hub và sub-skill vẫn , chỉ nạp khi được gọi.
domains: [a, b]/dymdisable-model-invocation| 模式 | Hub | Sub-skill | 何时使用 |
|---|---|---|---|
| 默认 | | | 用户未指定时。名称永不冲突,从名称即可看出来源;promote 时可以重命名 |
| | | 用户自行指定 |
| agent 指定简短、符合肌肉记忆的名称(例如 | | 确定名称前必须运行 |
<repo>.git-<slug>installcicontributorReference — Kho bundle đã chạy — rheinmir/dym
rheinmir/dymReference — 同步与路由——harness/scripts/dym-sync.py
(stdlib,0 token)
harness/scripts/dym-sync.pyMỗi lượt chạy xong, đẩy lên https://github.com/Rheinmir/dym thành (PR) để người sau kéo về thay vì chạy lại: (cài hub + sub-skill, project-scope; thêm cho global) hoặc . Trước khi chạy mới: xem ở đó đã có bundle chưa.
dym-sync.py push <repo>.overstack/doyourmagic/<repo>/<repo>/npx skills add rheinmir/dym-ggit clone --depth 1 https://github.com/Rheinmir/dym.git doyourmagic-bundles/doyourmagic <repo>bash
S=harness/scripts/dym-sync.py
python3 $S lint # mọi bundle phải ở DẠNG SKILL (hub có `domains:`); dạng cũ NN-*.md → `migrate <repo> --domains chart,report`
python3 $S index # sinh meta-hub .overstack/doyourmagic/dym/SKILL.md: bảng domain → hub → slug
python3 $S install [dym|<repo>] [--auto slug,slug] # symlink vào .claude/skills; --auto = bỏ disable-model-invocation, agent tự nạp theo description
python3 $S check [--yes] # đĩa ↔ baseline ↔ dym: NEW-LOCAL/SAME/LOCAL/REMOTE-AHEAD/CONFLICT; hỏi y/N rồi push. Hook Stop tự nhắc khi phiên đụng bundle.
python3 $S push <repo> [--yes] # copy vào clone dym → nhánh dym/<repo> → PR (gh); ghi .dym-baseline.jsonHub 必须在 frontmatter 中声明 ——(仅占一行 context、可由 model 调用)会读取该表并自动选择 bundle:chart → lieflat-charts,frontend → impeccable 等。Hub 和 sub-skill 仍设置 ,仅在被调用时加载。
domains: [a, b]/dymdisable-model-invocationReference — Install (dùng tại chỗ) — một lệnh, chỉ nạp khi cần
Reference — 已运行过的 bundle 仓库——rheinmir/dym
rheinmir/dymbash
mkdir -p .claude/skills && ln -sfn ../../.overstack/doyourmagic/<repo>/skills/<hub> .claude/skills/<hub>Chỉ hub vào context. Gõ để xem bảng slug, để chạy một workflow. Muốn gọi thẳng thì symlink thêm đúng thư mục đó — mỗi symlink thêm là thêm một dòng context, cân nhắc.
/<hub>/<hub> <slug>/<hub>-<slug>每次运行完成后,使用 将 推送到 https://github.com/Rheinmir/dym ,在仓库中对应为 (通过 PR 提交),以便后续用户直接拉取而不是重新运行:使用 (安装 hub + sub-skill,project-scope;添加 可用于 global),或运行 。在首次运行 前:先检查其中是否已经存在对应 bundle。
dym-sync.py push <repo>.overstack/doyourmagic/<repo>/<repo>/npx skills add rheinmir/dym-ggit clone --depth 1 https://github.com/Rheinmir/dym.git doyourmagic-bundles/doyourmagic <repo>Reference — Promote lên repo chính (skill cài bằng npx)
Reference — Install(在本地使用)——一条命令,仅在需要时加载
Đường có sẵn, không đẻ tool:
/fdkbash
bash <(curl -fsSL https://raw.githubusercontent.com/Rheinmir/setup/orca/fdk/tools/fdk-kit.sh) pull # lần đầu
cp -R .overstack/doyourmagic/<repo>/skills/<hub>-<slug> .overstack/kit/skills/<tên-mới> # đổi tên nếu bỏ tiền tố dym-
cd .overstack/kit && python3 fdk/tools/new-skill.py <tên-mới> --dry-run # in checklist registerbash
mkdir -p .claude/skills && ln -sfn ../../.overstack/doyourmagic/<repo>/skills/<hub> .claude/skills/<hub>只将 hub 加载进 context。输入 可查看 slug 表,输入 可运行一个 workflow。如果希望直接调用 ,则再 symlink 对应目录——每增加一个 symlink,就会额外占用一行 context,因此需要权衡。
/<hub>/<hub> <slug>/<hub>-<slug>register: LOOP_MAP (sync-skills.py) · LOOP_GROUPS · marketplace.json · bảng AGENT.md+CLAUDE.md · provenance
Reference — Promote 到主 repo(通过 npx 安装的 skill)
bash fdk/tools/fdk-kit.sh check && bash fdk/tools/fdk-kit.sh submit skill/<tên-mới> "<mô tả>"
Sửa `name:` trong frontmatter cho khớp tên mới; giữ `description` trigger. Hub KHÔNG promote (nó chỉ có nghĩa cạnh bundle).已有 路径,无需自行造轮子:
/fdkbash
bash <(curl -fsSL https://raw.githubusercontent.com/Rheinmir/setup/orca/fdk/tools/fdk-kit.sh) pull # lần đầu
cp -R .overstack/doyourmagic/<repo>/skills/<hub>-<slug> .overstack/kit/skills/<tên-mới> # đổi tên nếu bỏ tiền tố dym-
cd .overstack/kit && python3 fdk/tools/new-skill.py <tên-mới> --dry-run # in checklist registerReference example
register: LOOP_MAP (sync-skills.py) · LOOP_GROUPS · marketplace.json · bảng AGENT.md+CLAUDE.md · provenance
references/example-setup/rheinmir/setupdym-setup<tên>.skill.mdworkflows.mdflow.htmlbash fdk/tools/fdk-kit.sh check && bash fdk/tools/fdk-kit.sh submit skill/<tên-mới> "<mô tả>"
修改 frontmatter 中的 `name:` 以匹配新名称;保留用于触发 skill 的 `description`。Hub 不得 promote(它只对 bundle 内部有意义)。—
Reference example
—
references/example-setup/rheinmir/setupdym-setup<tên>.skill.mdworkflows.mdflow.html