{"id":"65cecd9a-e02d-464b-a026-9a9ddf95cec0","shortId":"9vVUQn","kind":"skill","title":"skill-creator-advanced","tagline":"當使用者要建立、改版、測試、評估或發布 skill 時使用。涵蓋 description 優化、evals、benchmark、邊界管理與打包流程。","description":"# Skill Creator Advanced\n\n此 skill 的目標是把「做 skill」變成可重複執行的工程流程，而不是一次性的 prompt 雜談。\n\n它同時提供：\n- 可操作的流程：從需求、設計、驗證、evals、benchmark、打包到迭代\n- 可重用的腳本：初始化、格式檢查、驗證、測試計畫產生、workspace 準備、benchmark 彙整、regression gate 檢查、打包\n- 可拆分的參考文件：把長內容放到 references/，維持 progressive disclosure\n- 輕量 review viewer：把 with-skill / baseline 結果整理成可檢閱的 HTML\n\n## 快速開始（你只要做一個新 skill）\n\n1) 先從現有對話、repo、範例任務整理 2-3 個 use cases，不夠再補問。\n2) 為每個 use case 寫 trigger 語句與 done looks like。\n3) 建立 skill 資料夾：\n\n```bash\npython scripts/init_skill_advanced.py <skill-name> --path <output-dir>\n```\n\n4) 補完新 skill 的 `SKILL.md`，優先寫對 YAML 的 `description`。\n5) 做格式與結構檢查：\n\n```bash\npython scripts/format_check.py <path/to/skill>\npython scripts/quick_validate.py <path/to/skill>\n```\n\n6) 規劃真實測試案例，必要時產生測試計畫：\n\n```bash\npython scripts/generate_test_plan.py <path/to/skill> --out references/test_plan.md\n```\n\n7) 準備 eval workspace，讓 with-skill / baseline 能沿用固定目錄結構：\n\n```bash\npython scripts/prepare_eval_workspace.py <path/to/skill>\n```\n\n8) 打包成 `.skill`：\n\n```bash\npython scripts/package_skill.py <path/to/skill> <output-dir>\n```\n\n9) 若要優化 description 的觸發品質，另外準備 trigger eval set，再跑：\n\n```bash\npython scripts/run_eval.py --eval-set <path/to/trigger-evals.json> --skill-path <path/to/skill> --model <model-id>\npython scripts/run_loop.py --eval-set <path/to/trigger-evals.json> --skill-path <path/to/skill> --model <model-id> --apply-best\n```\n\n## 操作方式\n\n當使用者要建立或改版 skill 時，請用下列順序推進；可以跳步，但要明確說明原因。\n\n1) Phase 0：從上下文萃取需求\n- 先看對話歷史、現有檔案、既有流程，再決定要不要追問。\n- 用使用者熟悉的術語溝通；如果對方不熟技術名詞，不要把 jargon 當前提。\n- 先判斷是否真的值得做成 skill：如果問題一次性、沒有可重用流程，應直接指出不值得包成 skill。\n\n2) Phase 1：需求與 use cases\n- 先拿到 2-3 個具體 use cases。\n- 每個 use case 至少要有：trigger 語句、必要輸入、主要步驟、輸出、done looks like。\n- 若使用者只給模糊目標，應主動提出一組合理 use cases 讓對方確認。\n\n3) Phase 2：架構與 SKILL.md\n- 決定哪些內容要放 `scripts/`、`references/`、`assets/`。\n- `description` 必須同時回答兩件事：這個 skill 做什麼、什麼情況下應該觸發。\n- `description` 要用真實使用者語句，而不是作者自嗨式分類。\n- 核心流程留在 `SKILL.md`，細節與變體移到 `references/`。\n\n4) Phase 3：撰寫指令\n- 優先寫會改變行為的指令，不要解釋模型本來就知道的常識。\n- 能直接下命令就直接下命令；只有在理由能降低誤用時才補一句 why。\n- 預設遵守 least surprise：讓 skill 的行為符合一般使用者直覺，不要偷偷改目標。\n\n5) Phase 4：格式檢查與最小合規驗證\n- 先跑 `format_check.py` 修掉結構與格式問題。\n- 再跑 `quick_validate.py` 做最小合規確認。\n\n6) Phase 5：測試、evals 與 benchmark\n- Triggering tests：應觸發、近義改寫、near-miss、不應觸發。\n- Multilingual tests：至少考慮 `zh`、`en`、`mixed`、縮寫/俗稱。\n- Skill overlap tests：列出容易混淆的鄰近 skill 與 negative triggers。\n- Functional tests：Given/When/Then，至少含 happy path、edge case、failure mode。\n- 把核准過的測試 prompt 寫進 `assets/evals/evals.json`。\n- 先建立 `<skill-name>-workspace/iteration-N/`，每個 eval 各自有 `with_skill/` 與 baseline 目錄。\n- 若環境支援 subagents 或平行 workers，應在同一輪啟動 with-skill 與 baseline/old-skill；不支援時可序列執行，但保留相同目錄結構。\n- Performance comparison：和 baseline 比較輪次、tool calls、失敗率、結果品質。\n- ROI comparison：確認提升是否值得額外的 token、時間與維護成本。\n- 執行後用 `scripts/aggregate_benchmark.py` 彙整 benchmark，再用 `scripts/generate_review.py` 產生 review viewer。\n- 用 `scripts/check_regression_gates.py` 檢查是否達到發版門檻。\n- 測試用語要接近真實使用者會講的話，不要只測教科書式 prompt。\n\n7) Phase 6：打包與發布\n- 用 `package_skill.py` 產生 `.skill`。\n- 分享時，README、安裝說明、release notes 應放在 skill folder 外。\n\n8) Phase 7：迭代與維護\n- Under-trigger：補真實 trigger phrases、專有名詞、檔案類型。\n- Over-trigger：加入 negative triggers、縮小範圍、移除模糊字眼。\n- 執行不穩：補 validation、把脆弱步驟搬到 scripts。\n- 內容過大：縮短 SKILL.md，把細節下放到 references。\n- 迭代時優先收集具體失敗案例與使用者回饋，不要只憑感覺改 wording。\n\n完整細節見：\n- `references/lifecycle.md`\n- `references/testing-playbook.md`\n- `references/description-optimization.md`\n- `references/eval-workflow.md`\n- `references/eval-schemas.md`\n- `references/multilingual-trigger-strategy.md`\n- `references/skill-boundary-management.md`\n- `references/regression-gates.md`\n- `references/skill-roi-model.md`\n- `references/distribution-playbook.md`\n- `references/patterns-troubleshooting.md`\n\n## 核心規則（請強制遵守）\n\n1) **先把 description 寫對**\n- 這是 skill 是否會被載入的主要因素。\n- description 內要包含真實 trigger phrases、工作情境、必要時的檔案類型。\n- 優先讓明顯 query 穩定命中，再處理邊角案例；不要為了少數怪句子把 description 寫得過寬。\n\n2) **先從上下文學會，再提最少的問題**\n- 先讀對話、檔案與現有 skill。\n- 只有在高風險假設會害結果偏掉時，才追問使用者。\n\n3) **把脆弱步驟移到 scripts**\n- 只要是重複、易出錯、或需要 deterministic 的檢查/轉換，就寫成腳本。\n\n4) **避免 context 膨脹**\n- `SKILL.md` 放流程與導航。\n- 細節放 `references/`，必要時再讀。\n\n5) **測試要真實，不要只測漂亮案例**\n- 用接近實際對話的 prompt。\n- 比較 baseline，確認 skill 真的有幫助，而不是只是多了一堆指令。\n\n6) **with-skill 與 baseline 要用同一批 evals 比**\n- 盡量同一輪啟動，避免時間與上下文條件差太多。\n- 若是改版既有 skill，baseline 應是舊版 skill snapshot，而不是「完全不用 skill」。\n\n7) **先處理 skill 邊界，再處理 wording**\n- 若多個 skill 搶同一類 query，先做 overlap matrix 與 in-scope / out-of-scope。\n- 不要只靠把 description 寫得更長來硬解衝突。\n\n8) **ROI 不成立的 skill 不值得硬留**\n- 若提升太小、成本太高、維護太重，要直接考慮縮 scope、拆 skill，或退回一般 prompt。\n\n9) **不要在 skill folder 放 README.md**\n- README 是給人看的，應放在 repo root 或其他 skill folder 外的位置。\n\n## 寫作與設計準則\n\n- 用使用者懂的語言描述，不要預設對方知道你的內部名詞。\n- 指令優先用明確動詞開頭，例如「先檢查」「若失敗就停止並回報」。\n- 當某一步驟的理由能防止錯誤時，把理由寫出來；否則保持精簡。\n- 技能不該偷偷改任務。若 workflow 需要做取捨，應明示取捨原則。\n- 若某個任務其實不該做成 skill，要直接指出原因，而不是硬湊內容。\n\n## 你可以用的腳本\n\n- `scripts/init_skill_advanced.py`：建立帶測試/發布欄位的 SKILL.md 骨架。\n- `scripts/format_check.py`：格式與結構檢查器（含 `--fix`）。\n- `scripts/quick_validate.py`：最小合規驗證。\n- `scripts/generate_test_plan.py`：產生測試計畫模板。\n- `scripts/prepare_eval_workspace.py`：從 `assets/evals/evals.json` 建立 iteration workspace。\n- `scripts/aggregate_benchmark.py`：彙整 with-skill / baseline run 結果，輸出 `benchmark.json` 與 `benchmark.md`。\n- `scripts/check_regression_gates.py`：依 benchmark 與門檻設定判斷是否可發版。\n- `scripts/run_eval.py`：跑 description trigger eval，輸出 query-level 與 run-level 診斷結果。\n- `scripts/improve_description.py`：依 trigger eval 失敗型態重寫 description，保留 transcript。\n- `scripts/run_loop.py`：把 eval 與 description 改寫串成多輪迭代，可選擇直接套用最佳 description。\n- `scripts/generate_report.py`：產生 description optimization 的 HTML 報告。\n- `scripts/utils.py`：共用的 `SKILL.md` / JSON 讀寫輔助。\n- `scripts/package_skill.py`：驗證後打包成 `.skill`。\n\n## 你可以用的 viewer / eval 結構\n\n- `assets/evals/evals.json`：保存真實測試 prompt、預期輸出與 expectations。\n- `assets/evals/regression_gates.json`：保存 benchmark 的發版門檻設定。\n- `scripts/generate_review.py`：把 workspace 結果輸出成 review HTML。\n- `<skill-name>-workspace/iteration-N/`：保存每輪 with-skill / baseline 的輸出、grading 與 benchmark。\n\n## 常見交付物\n\n交付給使用者時，通常包含：\n- skill folder（`SKILL.md` + `scripts/` + `references/` + `assets/`）\n- `assets/evals/evals.json`\n- `<skill-name>-workspace/iteration-N/` 的 benchmark 與 review 輸出\n- `.skill` 打包檔\n- 放在 skill folder 外的 README、示例、release notes、安裝說明","tags":["skill","creator","advanced","dotnet","testing","agent","skills","kevintsengtw","agent-skills","ai-assisted-development","copilot-skills","csharp"],"capabilities":["skill","source-kevintsengtw","skill-skill-creator-advanced","topic-agent-skills","topic-ai-assisted-development","topic-copilot-skills","topic-csharp","topic-dotnet","topic-dotnet-testing","topic-github-copilot","topic-integration-testing","topic-testing","topic-unit-testing","topic-xunit"],"categories":["dotnet-testing-agent-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/kevintsengtw/dotnet-testing-agent-skills/skill-creator-advanced","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add kevintsengtw/dotnet-testing-agent-skills","source_repo":"https://github.com/kevintsengtw/dotnet-testing-agent-skills","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 23 github stars · SKILL.md body (6,185 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T13:02:27.825Z","embedding":null,"createdAt":"2026-04-18T23:04:38.038Z","updatedAt":"2026-04-24T13:02:27.825Z","lastSeenAt":"2026-04-24T13:02:27.825Z","tsv":"'-3':74,214 '0':189 '1':69,187,208,443 '2':73,79,206,213,237,463 '3':89,235,259,471 '4':97,257,275,481 '5':106,273,285,490 '6':115,283,381,501 '7':124,379,398,521 '8':138,396,545 '9':145,559 'advanc':4,19 'appli':178 'apply-best':177 'asset':243,711 'assets/evals/evals.json':327,609,678,712 'assets/evals/regression_gates.json':683 'baselin':63,132,336,353,496,506,514,618,698 'baseline/old-skill':347 'bash':93,108,118,134,141,154 'benchmark':15,35,44,289,367,627,685,702,715 'benchmark.json':622 'benchmark.md':624 'best':179 'call':356 'case':77,82,211,217,220,233,321 'comparison':351,360 'context':483 'creator':3,18 'descript':12,105,147,244,250,445,450,461,543,631,648,655,658,661 'determinist':477 'disclosur':55 'done':86,227 'edg':320 'en':302 'eval':14,34,126,151,158,169,287,331,508,633,646,653,676 'eval-set':157,168 'expect':682 'failur':322 'fix':602 'folder':394,562,572,707,723 'format_check.py':278 'function':314 'gate':47 'given/when/then':316 'grade':700 'happi':318 'html':65,664,692 'in-scop':535 'iter':611 'jargon':198 'json':669 'least':267 'level':637,641 'like':88,229 'look':87,228 'matrix':533 'miss':296 'mix':303 'mode':323 'model':165,176 'multilingu':298 'near':295 'near-miss':294 'negat':312,412 'note':391,728 'optim':662 'out-of-scop':538 'over-trigg':408 'overlap':307,532 'package_skill.py':384 'path':96,163,174,319 'path/to/skill':111,114,121,137,144,164,175 'path/to/trigger-evals.json':160,171 'perform':350 'phase':188,207,236,258,274,284,380,397 'phrase':405,453 'progress':54 'prompt':27,325,378,494,558,680 'python':94,109,112,119,135,142,155,166 'queri':457,530,636 'query-level':635 'quick_validate.py':281 'readm':388,565,725 'readme.md':564 'refer':52,242,256,425,488,710 'references/description-optimization.md':432 'references/distribution-playbook.md':439 'references/eval-schemas.md':434 'references/eval-workflow.md':433 'references/lifecycle.md':430 'references/multilingual-trigger-strategy.md':435 'references/patterns-troubleshooting.md':440 'references/regression-gates.md':437 'references/skill-boundary-management.md':436 'references/skill-roi-model.md':438 'references/test_plan.md':123 'references/testing-playbook.md':431 'regress':46 'releas':390,727 'repo':71,568 'review':57,371,691,717 'roi':359,546 'root':569 'run':619,640 'run-level':639 'scope':537,541,554 'script':241,420,473,709 'scripts/aggregate_benchmark.py':365,613 'scripts/check_regression_gates.py':374,625 'scripts/format_check.py':110,599 'scripts/generate_report.py':659 'scripts/generate_review.py':369,687 'scripts/generate_test_plan.py':120,605 'scripts/improve_description.py':643 'scripts/init_skill_advanced.py':95,594 'scripts/package_skill.py':143,671 'scripts/prepare_eval_workspace.py':136,607 'scripts/quick_validate.py':113,603 'scripts/run_eval.py':156,629 'scripts/run_loop.py':167,651 'scripts/utils.py':666 'set':152,159,170 'skill':2,9,17,21,24,62,68,91,99,131,140,162,173,182,201,205,247,270,306,310,334,345,386,393,448,468,498,504,513,516,520,523,528,548,556,561,571,590,617,673,697,706,719,722 'skill-creator-advanc':1 'skill-path':161,172 'skill-skill-creator-advanced' 'skill.md':101,239,254,423,485,597,668,708 'snapshot':517 'source-kevintsengtw' 'subag':339 'surpris':268 'test':291,299,308,315 'token':362 'tool':355 'topic-agent-skills' 'topic-ai-assisted-development' 'topic-copilot-skills' 'topic-csharp' 'topic-dotnet' 'topic-dotnet-testing' 'topic-github-copilot' 'topic-integration-testing' 'topic-testing' 'topic-unit-testing' 'topic-xunit' 'transcript':650 'trigger':84,150,222,290,313,402,404,410,413,452,632,645 'under-trigg':400 'use':76,81,210,216,219,232 'valid':418 'viewer':58,372,675 'with-skil':60,129,343,502,615,695 'word':428,526 'worker':341 'workflow':586 'workspac':42,127,612,689 'workspace/iteration-n':329,693,713 'yaml':103 'zh':301 '不值得硬留':549 '不夠再補問':78 '不應觸發':297 '不成立的':547 '不支援時可序列執行':348 '不要偷偷改目標':272 '不要只憑感覺改':427 '不要只測教科書式':377 '不要只測漂亮案例':492 '不要只靠把':542 '不要在':560 '不要把':197 '不要為了少數怪句子把':460 '不要解釋模型本來就知道的常識':262 '不要預設對方知道你的內部名詞':576 '主要步驟':225 '交付給使用者時':704 '什麼情況下應該觸發':249 '但保留相同目錄結構':349 '但要明確說明原因':186 '你只要做一個新':67 '你可以用的':674 '你可以用的腳本':593 '例如':578 '依':626,644 '俗稱':305 '保存':684 '保存每輪':694 '保存真實測試':679 '保留':649 '修掉結構與格式問題':279 '個':75 '個具體':215 '做':23 '做什麼':248 '做最小合規確認':282 '做格式與結構檢查':107 '優先寫對':102 '優先寫會改變行為的指令':261 '優先讓明顯':456 '優化':13 '先做':531 '先判斷是否真的值得做成':200 '先建立':328 '先從上下文學會':464 '先從現有對話':70 '先把':444 '先拿到':212 '先檢查':579 '先看對話歷史':191 '先處理':522 '先讀對話':466 '先跑':277 '內容過大':421 '內要包含真實':451 '共用的':667 '再提最少的問題':465 '再決定要不要追問':194 '再用':368 '再處理':525 '再處理邊角案例':459 '再跑':153,280 '分享時':387 '列出容易混淆的鄰近':309 '初始化':38 '加入':411 '另外準備':149 '只有在理由能降低誤用時才補一句':264 '只有在高風險假設會害結果偏掉時':469 '只要是重複':474 '可以跳步':185 '可拆分的參考文件':50 '可操作的流程':30 '可選擇直接套用最佳':657 '可重用的腳本':37 '各自有':332 '否則保持精簡':583 '含':601 '和':352 '執行不穩':416 '執行後用':364 '報告':665 '外':395 '外的':724 '外的位置':573 '失敗型態重寫':647 '失敗率':357 '如果問題一次性':202 '如果對方不熟技術名詞':196 '它同時提供':29 '安裝說明':389,729 '完全不用':519 '完整細節見':429 '寫':83 '寫作與設計準則':574 '寫對':446 '寫得更長來硬解衝突':544 '寫得過寬':462 '寫進':326 '專有名詞':406 '就寫成腳本':480 '工作情境':454 '常見交付物':703 '建立':90,610 '建立帶測試':595 '彙整':45,366,614 '從':608 '從上下文萃取需求':190 '從需求':31 '必要時再讀':489 '必要時產生測試計畫':117 '必要時的檔案類型':455 '必要輸入':224 '必須同時回答兩件事':245 '快速開始':66 '應主動提出一組合理':231 '應在同一輪啟動':342 '應放在':392,567 '應明示取捨原則':588 '應是舊版':515 '應直接指出不值得包成':204 '應觸發':292 '成本太高':551 '或其他':570 '或平行':340 '或退回一般':557 '或需要':476 '才追問使用者':470 '打包':49 '打包到迭代':36 '打包成':139 '打包檔':720 '打包與發布':382 '技能不該偷偷改任務':584 '把':59,652,688 '把核准過的測試':324 '把理由寫出來':582 '把細節下放到':424 '把脆弱步驟搬到':419 '把脆弱步驟移到':472 '把長內容放到':51 '拆':555 '指令優先用明確動詞開頭':577 '搶同一類':529 '撰寫指令':260 '操作方式':180 '改寫串成多輪迭代':656 '改版':6 '放':563 '放在':721 '放流程與導航':486 '既有流程':193 '易出錯':475 '是否會被載入的主要因素':449 '是給人看的':566 '時':183 '時使用':10 '時間與維護成本':363 '最小合規驗證':604 '架構與':238 '核心流程留在':253 '核心規則':441 '格式檢查':39 '格式檢查與最小合規驗證':276 '格式與結構檢查器':600 '檔案與現有':467 '檔案類型':407 '檢查':48 '檢查是否達到發版門檻':375 '此':20 '每個':218,330 '比':509 '比較':495 '比較輪次':354 '決定哪些內容要放':240 '沒有可重用流程':203 '涵蓋':11 '測試':7,286 '測試用語要接近真實使用者會講的話':376 '測試要真實':491 '測試計畫產生':41 '準備':43,125 '為每個':80 '現有檔案':192 '產生':370,385,660 '產生測試計畫模板':606 '用':373,383 '用使用者懂的語言描述':575 '用使用者熟悉的術語溝通':195 '用接近實際對話的':493 '當使用者要建立':5 '當使用者要建立或改版':181 '當前提':199 '當某一步驟的理由能防止錯誤時':581 '發布欄位的':596 '的':100,104,663,714 '的檢查':478 '的發版門檻設定':686 '的目標是把':22 '的行為符合一般使用者直覺':271 '的觸發品質':148 '的輸出':699 '盡量同一輪啟動':510 '目錄':337 '真的有幫助':499 '確認':497 '確認提升是否值得額外的':361 '示例':726 '移除模糊字眼':415 '穩定命中':458 '範例任務整理':72 '細節放':487 '細節與變體移到':255 '結果':620 '結果品質':358 '結果整理成可檢閱的':64 '結果輸出成':690 '結構':677 '維持':53 '維護太重':552 '縮寫':304 '縮小範圍':414 '縮短':422 '而不是':518 '而不是一次性的':26 '而不是作者自嗨式分類':252 '而不是只是多了一堆指令':500 '而不是硬湊內容':592 '能沿用固定目錄結構':133 '能直接下命令就直接下命令':263 '膨脹':484 '至少含':317 '至少考慮':300 '至少要有':221 '與':288,311,335,346,505,534,623,638,654,701,716 '與門檻設定判斷是否可發版':628 '若':585 '若使用者只給模糊目標':230 '若多個':527 '若失敗就停止並回報':580 '若提升太小':550 '若是改版既有':512 '若某個任務其實不該做成':589 '若環境支援':338 '若要優化':146 '補':417 '補完新':98 '補真實':403 '要用同一批':507 '要用真實使用者語句':251 '要直接指出原因':591 '要直接考慮縮':553 '規劃真實測試案例':116 '設計':32 '診斷結果':642 '評估或發布':8 '語句':223 '語句與':85 '請強制遵守':442 '請用下列順序推進':184 '讀寫輔助':670 '變成可重複執行的工程流程':25 '讓':128,269 '讓對方確認':234 '資料夾':92 '跑':630 '輕量':56 '輸出':226,621,634,718 '轉換':479 '近義改寫':293 '迭代時優先收集具體失敗案例與使用者回饋':426 '迭代與維護':399 '這個':246 '這是':447 '通常包含':705 '避免':482 '避免時間與上下文條件差太多':511 '邊界':524 '邊界管理與打包流程':16 '雜談':28 '需求與':209 '需要做取捨':587 '預期輸出與':681 '預設遵守':266 '驗證':33,40 '驗證後打包成':672 '骨架':598","prices":[{"id":"b53a0760-7d47-4086-8217-dd213c6de0b9","listingId":"65cecd9a-e02d-464b-a026-9a9ddf95cec0","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"kevintsengtw","category":"dotnet-testing-agent-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T23:04:38.038Z"}],"sources":[{"listingId":"65cecd9a-e02d-464b-a026-9a9ddf95cec0","source":"github","sourceId":"kevintsengtw/dotnet-testing-agent-skills/skill-creator-advanced","sourceUrl":"https://github.com/kevintsengtw/dotnet-testing-agent-skills/tree/main/skills/skill-creator-advanced","isPrimary":false,"firstSeenAt":"2026-04-18T23:04:38.038Z","lastSeenAt":"2026-04-24T13:02:27.825Z"}],"details":{"listingId":"65cecd9a-e02d-464b-a026-9a9ddf95cec0","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"kevintsengtw","slug":"skill-creator-advanced","github":{"repo":"kevintsengtw/dotnet-testing-agent-skills","stars":23,"topics":["agent-skills","ai-assisted-development","copilot-skills","csharp","dotnet","dotnet-testing","github-copilot","integration-testing","testing","unit-testing","xunit"],"license":"mit","html_url":"https://github.com/kevintsengtw/dotnet-testing-agent-skills","pushed_at":"2026-03-31T07:28:56Z","description":"AI Agent Skills for .NET Testing - Based on 30-Day Testing Challenge (iThome Ironman 2025 Winner)","skill_md_sha":"81dcddbe5761beac724077d0d24304fea65a5f3f","skill_md_path":"skills/skill-creator-advanced/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/kevintsengtw/dotnet-testing-agent-skills/tree/main/skills/skill-creator-advanced"},"layout":"multi","source":"github","category":"dotnet-testing-agent-skills","frontmatter":{"name":"skill-creator-advanced","license":"Complete terms in LICENSE.txt","description":"當使用者要建立、改版、測試、評估或發布 skill 時使用。涵蓋 description 優化、evals、benchmark、邊界管理與打包流程。"},"skills_sh_url":"https://skills.sh/kevintsengtw/dotnet-testing-agent-skills/skill-creator-advanced"},"updatedAt":"2026-04-24T13:02:27.825Z"}}