doyourmagic

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Skill: 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
    /dym-<repo>
    + N sub-skill) kèm
    workflows.md
    (bảng kiểm chứng) và
    flow.html
    , mọi lệnh đã đối chiếu với code/
    --help
    /chạy thật — rồi đưa một verdict adapt-modes.
  • 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
    /dym-<repo>
    + N 个 sub-skill),并附带
    workflows.md
    (验证表)和
    flow.html
    ;所有命令都要与代码/
    --help
    /实际运行结果交叉验证,然后给出一个 adapt-modes verdict。
  • 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 / promote
.
clone(sandbox,只读) → manifest → README = 假设 → 对照 parser/--help/真实 exit → 实际运行(锁定 scope) → 按对象拆分 workflow → sub-skill + hub → workflows.md + flow.html → adapt-modes verdict →(可选)dym-sync push / install / promote

Input và output contract

Input 与 output contract

FieldRequired?Ý nghĩa
Inrepo/URL tool ngoàicóthứ cần làm workflow
In
--name <prefix>
/
--humanize
khôngchế độ đặt tên (mặc định
dym-<repo>
)
Inbản tích hợp thật trên máykhôngcó thì thắng fixture trong clone
Out
.overstack/doyourmagic/<repo>/skills/<hub>/SKILL.md
+
<hub>-<slug>/SKILL.md
cóhub có
domains:
; mọi skill
disable-model-invocation: true
Out
workflows.md
+
flow.html
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
Outverdict adapt-modescóHÒA TAN · KÉO NGOÀI · NHÚNG-SỞ-HỮU · KHÔNG LẤY
字段必需?含义
In外部 repo/URL tool是需要为其制作 workflow 的对象
In
--name <prefix>
/
--humanize
否命名模式(默认
dym-<repo>
)
In机器上的真实集成版本否如果存在,则优先于 clone 中的 fixture
Out
.overstack/doyourmagic/<repo>/skills/<hub>/SKILL.md
+
<hub>-<slug>/SKILL.md
是hub 包含
domains:
;所有 skill 均设置
disable-model-invocation: true
Out
workflows.md
+
flow.html
是验证表(断言 → file:行号/运行用例/rc);交付前实际打开 flow
Outadapt-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 /
    --help
    thật / argument parser.
  • 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ê
    .github/workflows/*.yml
    của tool vào skill CI cho người tiêu thụ — viết ví dụ tối giản riêng.
  • 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:
    npx impeccable install --help
    cài thật vào
    $HOME
    13 thư mục). Sandbox +
    HOME
    cô lập + cờ scope tường minh.
  • 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):
    flow.html
    tự chứa (không CDN, không path tuyệt đối cục bộ), đọc được cả sáng/tối, mở qua
    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
    .overstack/doyourmagic/<repo>/
    ; mở trang HTML bằng trình duyệt để verify; (tuỳ) đẩy bundle lên kho chung qua công cụ đồng bộ + PR.
  • RULE-01(MUST):不得将 README 转述成“可运行”内容——每条命令都必须存在于 manifest scripts、真实的
    --help
    输出或 argument parser 中。
  • RULE-02(MUST):不得假定退出码为 0/1——必须读取真实的 exit code;tool 可能用 2 表示“有 finding”,也可能在缺少文件时 fail-open 并返回 0,调用方必须正确分支。
  • RULE-03(MUST):不得将 tool 自身的
    .github/workflows/*.yml
    复制进供消费者使用的 skill CI;应单独编写最小示例。
  • RULE-04(MUST):chat 命令和 shell 命令不得放在同一个 skill 中。
  • RULE-05(MUST):未锁定 scope 时不得运行 tool 的 installer(2026-09-04 实测:
    npx impeccable install --help
    实际向
    $HOME
    中的 13 个目录安装了内容)。必须使用 sandbox、隔离的
    HOME
    以及明确的 scope 参数。
  • RULE-06(MUST):对 clone 保持只读;只能写入
    .overstack/doyourmagic/<repo>/
    。
  • RULE-07(MUST):每个 sub-skill 必须自包含;hub 只读取被调用的那个文件——不得将整个 bundle 塞入 context。
  • RULE-08(MUST):
    flow.html
    必须自包含(不使用 CDN,不使用本地绝对路径),同时支持浅色和深色模式,并能通过
    file://
    打开。
  • RULE-09(MUST):优先采用实际运行证据,而不是引用;无法运行的内容必须就地标记为“未验证”。
  • Capabilities:在隔离的 sandbox 中 clone 并读取外部 repo;以锁定的 scope 运行 tool 命令;仅写入
    .overstack/doyourmagic/<repo>/
    ;使用浏览器打开 HTML 页面进行 verify;(可选)通过同步工具和 PR 将 bundle 推送到共享仓库。

Failure boundaries

Failure boundaries

  • Lệnh không đối chiếu được với code/
    --help
    /chạy thật → không viết như "runnable"; ghi "chưa kiểm chứng" tại chỗ (partial).
  • Installer không pin được scope → blocked cho ca đó, không chạy.
  • --humanize
    trùng tên skill có sẵn → rơi về chế độ mặc định và nói rõ.
  • Kho
    rheinmir/dym
    đã 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).
  • Verdict HÒA TAN/NHÚNG → dừng hỏi trước khi scaffold.
  • 命令无法与代码/
    --help
    /实际运行结果交叉验证 → 不得将其写为“runnable”;应就地标记为**“未验证”**(partial)。
  • Installer 无法锁定 scope → 该用例为 blocked,不得运行。
  • --humanize
    生成的 skill 名与现有名称冲突 → 回退到默认模式,并明确说明。
  • rheinmir/dym
    中已经存在该 repo 的 bundle → 优先拉取现有 bundle,而不是重新运行(如果用户希望重新运行,则先 clarify)。
  • Verdict 为 HÒA TAN/NHÚNG → 在 scaffold 前必须先询问用户。

HOW

HOW

Main workflow

Main workflow

StepTypeInputsActionOutputs/exitFailure/next
W01effectrepoClone vào sandbox (bước 1); xem
rheinmir/dym
đã có bundle chưa
clone read-onlyđã có bundle → B03
W02deterministiccloneManifest trước, README là giả thuyết, đối chiếu parser/
--help
/exit thật (bước 2–3)
danh sách lệnh đã đối chiếukhông đối chiếu được → "chưa kiểm chứng"
W03effectlệnhChạ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 cakhông pin được scope → bỏ ca đó
W04judgmentkết quảChia workflow theo đối tượng, chốt tên (bước 6–7)danh sách hub/slugtrùng tên
--humanize
→ mặc định
W05effectworkflowViết sub-skill + hub +
workflows.md
(bước 8–10)
bundle trên đĩa
dym-sync.py lint
đỏ → sửa
W06effectbundleSinh
flow.html
theo
docs-site-macos
, mở thật bằng trình duyệt (bước 11)
flow.html đã verifylỗi hiển thị → sửa, mở lại
W07judgmentbundleGate adapt-modes: MỘT verdict (bước 12)verdictHÒ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):
  1. 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.
  2. Manifest trước, prose sau: tìm
    package.json
    /
    pyproject.toml
    /
    Cargo.toml
    /
    go.mod
    / installer script TRƯỚC khi đọc README — nó cho lệnh cài thật, entry point/bin, danh sách script.
  3. 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 /
    --help
    chạy thật / literal
    process.exit(...)
    sys.exit(...)
    — đọc mã thoát thật, đừng giả định 0/1.
  4. Chạy thật những gì chạy được trong sandbox với scope pin chặt (
    HOME
    cô lập,
    --scope=project
    ,
    --no-verify
    …): 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
    workflows.md
    lấy từ đây.
  5. 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.
  6. 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 (
    /x
    ) và lệnh shell tách skill riêng — trộn là copy-paste gãy.
  7. Chốt tên theo bảng Naming (kiểm trùng nếu
    --humanize
    ).
  8. Viết mỗi workflow thành một sub-skill
    .overstack/doyourmagic/<repo>/skills/<hub>-<slug>/SKILL.md
    :
    • frontmatter
      name: <hub>-<slug>
      ,
      description
      = một câu nói KHI NÀO gọi + từ khoá trigger, và
      disable-model-invocation: true
      — để khi cài cả bundle qua
      npx skills add
      (7 skill) cũng không có dòng description nào tự nhồi vào context; chỉ nạp khi gõ.
    • ## When to use
      — tình huống + "tại sao chạy / sinh ra gì".
    • ## Steps
      — 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.
    • ## Rules
      — bẫy đã ĐO (không phải đoán), kèm cách né; carve-out "không được làm".
    • Self-contained: không trỏ tới file chỉ có trong clone; cần thì "nếu file X có mặt thì…".
  9. 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.
  10. workflows.md
    : 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).
  11. flow.html
    — sinh theo skill
    docs-site-macos
    (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ạnh
    skill → sản phẩm → skill kế
    (connector do JS vẽ từ
    getBoundingClientRect
    , 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ặc
    /playwright-verify
    ) trước khi giao — đọc code không đủ.
  12. 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.
StepTypeInputsActionOutputs/exitFailure/next
W01effectrepoClone 到 sandbox(步骤 1);检查
rheinmir/dym
中是否已有 bundle
只读 clone已有 bundle → B03
W02deterministicclone优先分析 manifest;README 仅作为假设;对照 parser/
--help
/真实 exit(步骤 2–3)
已交叉验证的命令列表无法交叉验证 → 标记“未验证”
W03effect命令在 sandbox 中实际运行并锁定 scope;如果存在则读取真实集成版本(步骤 4–5)每个用例的 rc无法锁定 scope → 跳过该用例
W04judgment结果按对象拆分 workflow,并确定名称(步骤 6–7)hub/slug 列表
--humanize
名称冲突 → 使用默认模式
W05effectworkflow编写 sub-skill + hub +
workflows.md
(步骤 8–10)
磁盘上的 bundle
dym-sync.py lint
失败 → 修复
W06effectbundle按
docs-site-macos
生成
flow.html
,并使用浏览器实际打开(步骤 11)
已验证的 flow.html显示异常 → 修复并重新打开
W07judgmentbundle执行 adapt-modes gate:只给出一个 verdict(步骤 12)verdictHÒA TAN/NHÚNG → scaffold 前先询问
各步骤的详细信息(W01–W07 的事实来源):
  1. Clone 到 sandbox(scratch dir)——不要直接在用户项目树中探索。对 clone 的探索必须保持只读。
  2. Manifest 优先,prose 在后:在读取 README 之前,先查找
    package.json
    /
    pyproject.toml
    /
    Cargo.toml
    /
    go.mod
    / installer script;它们能够提供真实的安装命令、entry point/bin 和脚本列表。
  3. README/AGENTS.md/docs 只是假设,不是事实。准备写入的每条命令都必须与 argument parser、实际运行的
    --help
    或字面量
    process.exit(...)
    /
    sys.exit(...)
    交叉验证;必须读取真实退出码,不得假定为 0/1。
  4. 尽可能实际运行能够在 sandbox 中运行的命令,并严格锁定 scope(隔离的
    HOME
    、
    --scope=project
    、
    --no-verify
    等):测试 installer、在脏输入/干净输入上运行 validator、特殊模式以及文件缺失场景。记录每个用例的 rc——
    workflows.md
    的验证表由此生成。
  5. 如果机器上已经存在真实集成版本(例如另一个项目提交的配置)→ 读取它;在“真实世界中的正确用法”方面,它优先于 clone 中的 fixture。在真实版本上复现错误是最有力的证据。
  6. 按对象而非按功能拆分 workflow:消费(在自己的项目中使用 tool)与贡献(修改 tool 本身)。chat 命令(
    /x
    )和 shell 命令必须拆成独立的 skill——混在一起会产生容易失效的 copy-paste 内容。
  7. 按 Naming 表确定名称(使用
    --humanize
    时检查名称冲突)。
  8. 将每个 workflow 写成一个 sub-skill:
    .overstack/doyourmagic/<repo>/skills/<hub>-<slug>/SKILL.md
    :
    • frontmatter 包含
      name: <hub>-<slug>
      ;
      description
      用一句话说明何时调用并包含 trigger 关键词;还必须包含
      disable-model-invocation: true
      ——这样即使通过
      npx skills add
      安装整个 bundle(7 个 skill),也不会自动将任何 description 塞入 context;只有用户输入时才会加载。
    • ## When to use
      ——描述适用场景,以及“为什么运行/会生成什么”。
    • ## Steps
      ——提供可直接 copy-paste 的命令、精确路径以及预期的 output/退出码。已经实际运行过的命令必须记录测得的 rc。
    • ## Rules
      ——记录已经实测出的陷阱(不是猜测),并说明规避方式;明确列出“不得执行”的 carve-out。
    • Self-contained:不得引用仅存在于 clone 中的文件;如果需要,则写成“如果文件 X 存在,则……”。
  9. 编写 hub:
    .overstack/doyourmagic/<repo>/skills/<hub>/SKILL.md
    :
    undefined

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

IDKindGuardHành viSkip / failureRejoin
B01user_optional
--name <prefix>
hoặc
--humanize
đặt tên theo bảng Naming;
--humanize
phải kiểm trùng trước
trùng → rơi về mặc định, nói rõW05
B02capability_optionalmá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ậtkhông có → bỏ quaW04
B03conditional_required
rheinmir/dym
đã có bundle của repo
kéo về (
npx skills add rheinmir/dym
hoặc clone) thay vì chạy lại
user muốn chạy lại → W02kết thúc
B04user_optionalsau khi bundle xong, muốn chia sẻ/dùng
dym-sync.py
lint/index/install/check/push; hoặc symlink hub tại chỗ; hoặc promote sub-skill lên repo chính
thiếu
gh
→ push dừng
kết thúc
  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.
    undefined
  3. workflows.md
    :包含表格(skill · 用途 · 分支 · 调用命令)、“建议执行顺序”、“代价最高的陷阱”、“如何验证”表(断言 → file:行号/实际运行用例/rc)、已采用的命名模式,以及一行 symlink 命令(见下方 Install)。
  4. flow.html
    ——按
    docs-site-macos
    skill 生成(必须具备:全屏 sidebar、background orbs、可折叠 mind map、位于 footer sidebar 的明暗切换按钮并防止 FOUC、适合 13″ 屏幕的紧凑字号、skip-link/focus ring,以及在 footer 中显示该文件自身的绝对路径)。内容必须呈现各 skill 实际执行的准确流程:每个 skill 一个节点,连接线表示
    skill → 产物 → 下一 skill
    (connector 由 JS 根据
    getBoundingClientRect
    绘制,并在 resize 时重绘——不得硬编码坐标);按分支展示执行顺序;每个节点写明调用命令、产物和一行陷阱说明。术语应在括号中给出解释。交付前必须使用浏览器实际打开(或使用
    /playwright-verify
    )——只阅读代码并不足够。
  5. 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
workflows.md
: 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".
python3 harness/scripts/dym-sync.py lint
xanh (bundle dạng SKILL, hub có
domains:
).
flow.html
phải được mở thật. Dừng ở verdict adapt-modes; scaffold chỉ sau khi user duyệt.
IDKindGuard行为Skip / failureRejoin
B01user_optional
--name <prefix>
或
--humanize
按 Naming 表确定名称;使用
--humanize
前必须检查名称冲突
冲突 → 回退到默认模式并明确说明W05
B02capability_optional机器上已有真实集成版本(配置提交在其他项目中)读取它,并优先于 clone 中的 fixture;在真实版本上复现错误不存在 → 跳过W04
B03conditional_required
rheinmir/dym
已有该 repo 的 bundle
拉取现有 bundle(
npx skills add rheinmir/dym
或 clone),而不是重新运行
用户希望重新运行 → W02结束
B04user_optionalbundle 完成后,用户希望共享或使用它运行
dym-sync.py
的 lint/index/install/check/push;或在本地 symlink hub;或 promote sub-skill 到主 repo
缺少
gh
→ 停止 push
结束

Examples

Validation 与 stopping

  • Positive:
    /doyourmagic https://github.com/Rheinmir/setup
    → clone sandbox, đọc installer +
    --help
    thật, chạy validator trên input bẩn/sạch ghi rc → hub
    dym-setup
    + 6 sub-skill,
    workflows.md
    bảng kiểm chứng 30 dòng,
    flow.html
    mở thật → verdict (xem
    references/example-setup/
    ).
  • Boundary/failure: tool có
    npx <tool> install
    mà
    --help
    không liệt kê cờ scope → không chạy installer (cài thật vào
    $HOME
    ), sub-skill ghi "chưa kiểm chứng" cho lệnh cài kèm bẫy đã biết.
workflows.md
中的“如何验证”表:每项断言都必须指向 file:行号、实际运行用例或 rc;如果缺失,则标记为“未验证”。
python3 harness/scripts/dym-sync.py lint
必须通过(bundle 必须采用 SKILL 形式,hub 必须包含
domains:
)。
flow.html
必须被实际打开。流程在 adapt-modes verdict 处停止;只有用户批准后才能 scaffold。

Reference — 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
    .claude/skills/
    → context chỉ tốn một dòng description; thân workflow con chỉ được đọc khi user gõ
    /<hub> <slug>
    . Đây là "hub 1-tên, mô tả phạm vi" của
    /fdk
    , không phải N skill rải trong context.
  • Sub-skill là SKILL.md thật (không phải doc): copy nguyên thư mục sang
    skills/
    của repo chính là thành skill cài bằng
    npx skills add
    .
  • Không còn
    NN-*.md
    : 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.
  • Positive:
    /doyourmagic https://github.com/Rheinmir/setup
    → clone 到 sandbox,读取 installer 和真实的
    --help
    ,在脏输入/干净输入上运行 validator 并记录 rc → hub
    dym-setup
    + 6 个 sub-skill,生成包含 30 行验证内容的
    workflows.md
    ,实际打开
    flow.html
    → verdict(参见
    references/example-setup/
    )。
  • Boundary/failure: tool 包含
    npx <tool> install
    ,但
    --help
    未列出 scope 参数 → 不运行 installer(它会实际安装到
    $HOME
    );sub-skill 仍须为安装命令记录“未验证”以及已知陷阱。

Reference — Naming — 3 chế độ, ghi chế độ đã dùng vào
workflows.md

Reference — Output shape(一次完整运行最终留下的内容)

Chế độHubSub-skillKhi nào
mặc định
dym-<repo>
dym-<repo>-<slug>
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
--name <prefix>
<prefix>
<prefix>-<slug>
user tự đặt
--humanize
agent đặt tên ngắn gõ được bằng cơ bắp (vd
overstack
)
<hub>-<slug>
phải
ls ~/.claude/skills .claude/skills
kiểm trùng TRƯỚC khi chốt; trùng → rơi về mặc định và nói rõ
<repo>
= tên repo (segment cuối của URL, bỏ
.git
), chữ thường,
-
thay ký tự lạ.
<slug>
= 1–2 từ nói việc (
install
,
ci
,
contributor
), không đánh số.
.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 到
    .claude/skills/
    的内容 → context 只消耗一行 description;子 workflow 的正文仅在用户输入
    /<hub> <slug>
    时读取。这就是
    /fdk
    使用的“单名称 hub、描述范围”模式,而不是将 N 个 skill 散落在 context 中。
  • Sub-skill 是真正的 SKILL.md(不是普通文档):将整个目录复制到主 repo 的
    skills/
    后,即可成为通过
    npx skills add
    安装的 skill。
  • 不再保留
    NN-*.md
    :可运行内容全部位于 sub-skill 的 Steps 中——只保留一个事实来源,避免并行文档产生 drift。

Reference — Đồng bộ + định tuyến —
harness/scripts/dym-sync.py
(stdlib, 0 token)

Reference — Naming——3 种模式,并将采用的模式记录到
workflows.md

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.json
Hub bắt buộc khai
domains: [a, b]
trong frontmatter —
/dym
(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
disable-model-invocation
, chỉ nạp khi được gọi.
模式HubSub-skill何时使用
默认
dym-<repo>
dym-<repo>-<slug>
用户未指定时。名称永不冲突,从名称即可看出来源;promote 时可以重命名
--name <prefix>
<prefix>
<prefix>-<slug>
用户自行指定
--humanize
agent 指定简短、符合肌肉记忆的名称(例如
overstack
)
<hub>-<slug>
确定名称前必须运行
ls ~/.claude/skills .claude/skills
检查冲突;冲突 → 回退到默认模式并明确说明
<repo>
= repo 名称(URL 的最后一段,移除
.git
),转为小写,并用
-
替换特殊字符。
<slug>
= 1–2 个描述用途的词(例如
install
、
ci
、
contributor
),不得添加数字。

Reference — Kho bundle đã chạy —
rheinmir/dym

Reference — 同步与路由——
harness/scripts/dym-sync.py
(stdlib,0 token)

Mỗi lượt chạy xong,
dym-sync.py push <repo>
đẩy
.overstack/doyourmagic/<repo>/
lên https://github.com/Rheinmir/dym thành
<repo>/
(PR) để người sau kéo về thay vì chạy lại:
npx skills add rheinmir/dym
(cài hub + sub-skill, project-scope; thêm
-g
cho global) hoặc
git clone --depth 1 https://github.com/Rheinmir/dym.git doyourmagic-bundles
. Trước khi chạy
/doyourmagic <repo>
mới: xem ở đó đã có bundle chưa.
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.json
Hub 必须在 frontmatter 中声明
domains: [a, b]
——
/dym
(仅占一行 context、可由 model 调用)会读取该表并自动选择 bundle:chart → lieflat-charts,frontend → impeccable 等。Hub 和 sub-skill 仍设置
disable-model-invocation
,仅在被调用时加载。

Reference — Install (dùng tại chỗ) — một lệnh, chỉ nạp khi cần

Reference — 已运行过的 bundle 仓库——
rheinmir/dym

bash
mkdir -p .claude/skills && ln -sfn ../../.overstack/doyourmagic/<repo>/skills/<hub> .claude/skills/<hub>
Chỉ hub vào context. Gõ
/<hub>
để xem bảng slug,
/<hub> <slug>
để chạy một workflow. Muốn gọi thẳng
/<hub>-<slug>
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.
每次运行完成后,使用
dym-sync.py push <repo>
将
.overstack/doyourmagic/<repo>/
推送到 https://github.com/Rheinmir/dym ,在仓库中对应为
<repo>/
(通过 PR 提交),以便后续用户直接拉取而不是重新运行:使用
npx skills add rheinmir/dym
(安装 hub + sub-skill,project-scope;添加
-g
可用于 global),或运行
git clone --depth 1 https://github.com/Rheinmir/dym.git doyourmagic-bundles
。在首次运行
/doyourmagic <repo>
前:先检查其中是否已经存在对应 bundle。

Reference — Promote lên repo chính (skill cài bằng npx)

Reference — Install(在本地使用)——一条命令,仅在需要时加载

Đường
/fdk
có sẵn, không đẻ tool:
bash
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 register
bash
mkdir -p .claude/skills && ln -sfn ../../.overstack/doyourmagic/<repo>/skills/<hub> .claude/skills/<hub>
只将 hub 加载进 context。输入
/<hub>
可查看 slug 表,输入
/<hub> <slug>
可运行一个 workflow。如果希望直接调用
/<hub>-<slug>
,则再 symlink 对应目录——每增加一个 symlink,就会额外占用一行 context,因此需要权衡。

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).
已有
/fdk
路径,无需自行造轮子:
bash
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 register

Reference example

register: LOOP_MAP (sync-skills.py) · LOOP_GROUPS · marketplace.json · bảng AGENT.md+CLAUDE.md · provenance

references/example-setup/
— một lượt chạy thật của skill này trên
rheinmir/setup
(overstack: bootstrap + 19 luật + 87 skill): hub
dym-setup
+ 6 sub-skill (file con lưu dạng
<tên>.skill.md
để không bị loader quét nhầm thành skill),
workflows.md
với bảng kiểm chứng 30 dòng,
flow.html
. Lượt đó tìm ra 5 lỗi thật (đã vá ở PR #114–#117) — đó là mức "kiểm chứng" cần khớp.
bash 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/
——该 skill 在
rheinmir/setup
上的一次真实运行(overstack:bootstrap + 19 条规则 + 87 个 skill):hub
dym-setup
+ 6 个 sub-skill(子文件使用
<tên>.skill.md
格式保存,避免 loader 误将其扫描为 skill)、包含 30 行验证内容的
workflows.md
,以及
flow.html
。该次运行发现了 5 个真实错误(已在 PR #114–#117 中修复)——这才是需要对齐的“验证”标准。