[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KWD2XQ9D5SHD2K0XQTC0MW":3,"skill-same:01M6KWD2XQ9D5SHD2K0XQTC0MW":59},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":14,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6KWD2XQ9D5SHD2K0XQTC0MW","rules-instructions-sync",null,"Detects and resolves drift between .claude\u002Frules\u002F*.md (Claude rules) and .github\u002Finstructions\u002F*.instructions.md (Copilot instructions files). Ensures every rule has a matching instructions file and vice versa. Invoked exclusively by the agent-manager agent.","rafsanulhasan\u002FHypermediaEngine","rafsanulhasan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2341142?v=4","01M6KW2HWPTZWK051N7B0HTBVG","Rafsanul Hasan","01M6KW2J0N3613382MF5DRN79H",0,"GPL-3.0","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frules-instructions-sync\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"sync","Rules","instructions","rules instructions sync","github","copilot","file","files","agent-manager","drift","matching","rule","manager","copilot instructions","2026-11-10 10:12:30",false,"---\nname: rules-instructions-sync\ndescription: Detects and resolves drift between .claude\u002Frules\u002F*.md (Claude rules) and .github\u002Finstructions\u002F*.instructions.md (Copilot instructions files). Ensures every rule has a matching instructions file and vice versa. Invoked exclusively by the agent-manager agent.\n---\n\n# Rules or Instructions Sync\n\nUse this skill when rule and instructions files have drifted apart, when a rule was added to one platform but not the other, or when a full rules\u002Finstructions audit is needed. Parse the args to determine the operation mode, then execute the corresponding procedure.\n\n---\n\n## Phase 0 — Context Load (silent)\n\n1. Read `.claude\u002FCLAUDE.md` and `AGENTS.md` to internalize project conventions and portability rules.\n2. Invoke `Skill(\"manage-memory\", args: \"agent-manager\")` to load persistent memory (prior sync decisions, known rule names, naming conventions).\n3. Glob `.claude\u002Frules\u002F*.md` and `.github\u002Finstructions\u002F*.instructions.md` to build the current rules\u002Finstructions inventory.\n\n---\n\n## Mode: audit\n\n**Args:** `audit`\n\nList all rules and instructions files, flag orphans and content drift.\n\n1. Glob `.claude\u002Frules\u002F*.md` — for each file read frontmatter and extract: `name` (derived from filename), `description` or first heading, `status`.\n2. Glob `.github\u002Finstructions\u002F*.instructions.md` — for each file read frontmatter and extract: `name` (derived from filename, strip `.instructions.md` suffix), `description` or first heading, `applyTo` (if present).\n3. Normalise names: strip `.md` \u002F `.instructions.md` extensions to get the bare rule name.\n4. Build a cross-reference map keyed on bare name.\n5. Classify each entry:\n   - **present-both** — `.claude\u002Frules\u002F\u003Cname>.md` and `.github\u002Finstructions\u002F\u003Cname>.instructions.md` both exist\n   - **rule-only** — `.claude\u002Frules\u002F\u003Cname>.md` exists but no `.github\u002Finstructions\u002F\u003Cname>.instructions.md`\n   - **instructions-only** — `.github\u002Finstructions\u002F\u003Cname>.instructions.md` exists but no `.claude\u002Frules\u002F\u003Cname>.md`\n   - **drifted** — both files exist but their content (description, first heading, or body) differs significantly\n6. For **drifted** pairs, show the first heading or description from each side.\n7. Output a structured audit report:\n\n```\n## Rules \u002F Instructions Drift Report\n\n| Name | Claude rule | Copilot instructions | Status | Drift |\n|------|-------------|---------------------|--------|-------|\n| \u003Cname> | ✅ | ✅ | in sync | — |\n| \u003Cname> | ✅ | ❌ | — | missing instructions file |\n| \u003Cname> | ❌ | ✅ | — | missing rule file |\n| \u003Cname> | ✅ | ✅ | drifted | content mismatch |\n```\n\n8. Summarise counts: total pairs, fully in sync, drifted, orphans.\n\n---\n\n## Mode: sync\n\n**Args:** `sync \u003Cname>`\n\nSync a single named rule→instructions pair, using the Claude rule as the authoritative source.\n\n1. Read `.claude\u002Frules\u002F\u003Cname>.md`; fail with a clear error if it does not exist.\n2. Read `.github\u002Finstructions\u002F\u003Cname>.instructions.md` if it already exists (to detect what would change).\n3. Derive the Copilot instructions file content from the Claude rule:\n   - Preserve any `applyTo` frontmatter from the existing Copilot file if it does not conflict.\n   - Copy body content verbatim from the Claude rule.\n   - Set `description` frontmatter to match the Claude rule's `description` if present.\n4. Write `.github\u002Finstructions\u002F\u003Cname>.instructions.md`.\n5. Confirm: \"Rule `\u003Cname>` synced to `.github\u002Finstructions\u002F\u003Cname>.instructions.md`.\"\n\n---\n\n## Mode: sync-all\n\n**Args:** `sync-all`\n\nRun `sync \u003Cname>` for every rule currently in the Claude rules directory.\n\n1. Glob `.claude\u002Frules\u002F*.md` — collect all bare names.\n2. Filter out rules with `status: deprecated` in frontmatter (skip deprecated, report them separately).\n3. For each remaining name, execute **Mode: sync** in sequence.\n4. Produce a summary: pairs synced, pairs skipped (deprecated), any errors encountered.\n\n---\n\n## Mode: diff\n\n**Args:** `diff \u003Cname>`\n\nShow a structured diff between the Claude rule and Copilot instructions file for a single name.\n\n1. Read `.claude\u002Frules\u002F\u003Cname>.md`; fail if it does not exist.\n2. Read `.github\u002Finstructions\u002F\u003Cname>.instructions.md`; fail if it does not exist.\n3. Compare frontmatter:\n   - `description` — show both; flag if different\n   - `applyTo` — Copilot only; note presence\u002Fabsence\n   - `status` — show both if present\n4. Compare body sections: identify headings present in one file but absent from the other; compare first 200 chars of each matching section.\n5. Output:\n\n```\n## Rule\u002FInstructions Diff: \u003Cname>\n\n### Frontmatter\n| Field | Claude rule | Copilot instructions |\n|-------|-------------|---------------------|\n| description | \u003Cval> | \u003Cval> |\n| applyTo | n\u002Fa | \u003Cval> |\n| status | \u003Cval> | \u003Cval> |\n\n### Body Sections\n| Section heading | Claude rule | Copilot instructions |\n|-----------------|-------------|---------------------|\n| ## Overview | ✅ | ✅ |\n| ## Examples | ✅ | ❌ |\n```\n\n6. Conclude with: **In sync** \u002F **Drifted — run `sync \u003Cname>` to resolve**.\n\n---\n\n## Validation Rules\n\n- Every Claude rule (`.claude\u002Frules\u002F\u003Cname>.md`) should have a matching Copilot instructions file (`.github\u002Finstructions\u002F\u003Cname>.instructions.md`).\n- Rule and instructions file names must be identical (modulo the `.instructions.md` vs `.md` extension difference).\n- Never delete any rule or instructions file — use deprecation patterns when retiring.\n- Never read or modify `.env` files or sensitive configuration.\n","# Rules or Instructions Sync\n\nUse this skill when rule and instructions files have drifted apart, when a rule was added to one platform but not the other, or when a full rules\u002Finstructions audit is needed. Parse the args to determine the operation mode, then execute the corresponding procedure.\n\n---\n\n## Phase 0 — Context Load (silent)\n\n1. Read `.claude\u002FCLAUDE.md` and `AGENTS.md` to internalize project conventions and portability rules.\n2. Invoke `Skill(\"manage-memory\", args: \"agent-manager\")` to load persistent memory (prior sync decisions, known rule names, naming conventions).\n3. Glob `.claude\u002Frules\u002F*.md` and `.github\u002Finstructions\u002F*.instructions.md` to build the current rules\u002Finstructions inventory.\n\n---\n\n## Mode: audit\n\n**Args:** `audit`\n\nList all rules and instructions files, flag orphans and content drift.\n\n1. Glob `.claude\u002Frules\u002F*.md` — for each file read frontmatter and extract: `name` (derived from filename), `description` or first heading, `status`.\n2. Glob `.github\u002Finstructions\u002F*.instructions.md` — for each file read frontmatter and extract: `name` (derived from filename, strip `.instructions.md` suffix), `description` or first heading, `applyTo` (if present).\n3. Normalise names: strip `.md` \u002F `.instructions.md` extensions to get the bare rule name.\n4. Build a cross-reference map keyed on bare name.\n5. Classify each entry:\n   - **present-both** — `.claude\u002Frules\u002F\u003Cname>.md` and `.github\u002Finstructions\u002F\u003Cname>.instructions.md` both exist\n   - **rule-only** — `.claude\u002Frules\u002F\u003Cname>.md` exists but no `.github\u002Finstructions\u002F\u003Cname>.instructions.md`\n   - **instructions-only** — `.github\u002Finstructions\u002F\u003Cname>.instructions.md` exists but no `.claude\u002Frules\u002F\u003Cname>.md`\n   - **drifted** — both files exist but their content (description, first heading, or body) differs significantly\n6. For **drifted** pairs, show the first heading or description from each side.\n7. Output a structured audit report:\n\n```\n## Rules \u002F Instructions Drift Report\n\n| Name | Claude rule | Copilot instructions | Status | Drift |\n|------|-------------|---------------------|--------|-------|\n| \u003Cname> | ✅ | ✅ | in sync | — |\n| \u003Cname> | ✅ | ❌ | — | missing instructions file |\n| \u003Cname> | ❌ | ✅ | — | missing rule file |\n| \u003Cname> | ✅ | ✅ | drifted | content mismatch |\n```\n\n8. Summarise counts: total pairs, fully in sync, drifted, orphans.\n\n---\n\n## Mode: sync\n\n**Args:** `sync \u003Cname>`\n\nSync a single named rule→instructions pair, using the Claude rule as the authoritative source.\n\n1. Read `.claude\u002Frules\u002F\u003Cname>.md`; fail with a clear error if it does not exist.\n2. Read `.github\u002Finstructions\u002F\u003Cname>.instructions.md` if it already exists (to detect what would change).\n3. Derive the Copilot instructions file content from the Claude rule:\n   - Preserve any `applyTo` frontmatter from the existing Copilot file if it does not conflict.\n   - Copy body content verbatim from the Claude rule.\n   - Set `description` frontmatter to match the Claude rule's `description` if present.\n4. Write `.github\u002Finstructions\u002F\u003Cname>.instructions.md`.\n5. Confirm: \"Rule `\u003Cname>` synced to `.github\u002Finstructions\u002F\u003Cname>.instructions.md`.\"\n\n---\n\n## Mode: sync-all\n\n**Args:** `sync-all`\n\nRun `sync \u003Cname>` for every rule currently in the Claude rules directory.\n\n1. Glob `.claude\u002Frules\u002F*.md` — collect all bare names.\n2. Filter out rules with `status: deprecated` in frontmatter (skip deprecated, report them separately).\n3. For each remaining name, execute **Mode: sync** in sequence.\n4. Produce a summary: pairs synced, pairs skipped (deprecated), any errors encountered.\n\n---\n\n## Mode: diff\n\n**Args:** `diff \u003Cname>`\n\nShow a structured diff between the Claude rule and Copilot instructions file for a single name.\n\n1. Read `.claude\u002Frules\u002F\u003Cname>.md`; fail if it does not exist.\n2. Read `.github\u002Finstructions\u002F\u003Cname>.instructions.md`; fail if it does not exist.\n3. Compare frontmatter:\n   - `description` — show both; flag if different\n   - `applyTo` — Copilot only; note presence\u002Fabsence\n   - `status` — show both if present\n4. Compare body sections: identify headings present in one file but absent from the other; compare first 200 chars of each matching section.\n5. Output:\n\n```\n## Rule\u002FInstructions Diff: \u003Cname>\n\n### Frontmatter\n| Field | Claude rule | Copilot instructions |\n|-------|-------------|---------------------|\n| description | \u003Cval> | \u003Cval> |\n| applyTo | n\u002Fa | \u003Cval> |\n| status | \u003Cval> | \u003Cval> |\n\n### Body Sections\n| Section heading | Claude rule | Copilot instructions |\n|-----------------|-------------|---------------------|\n| ## Overview | ✅ | ✅ |\n| ## Examples | ✅ | ❌ |\n```\n\n6. Conclude with: **In sync** \u002F **Drifted — run `sync \u003Cname>` to resolve**.\n\n---\n\n## Validation Rules\n\n- Every Claude rule (`.claude\u002Frules\u002F\u003Cname>.md`) should have a matching Copilot instructions file (`.github\u002Finstructions\u002F\u003Cname>.instructions.md`).\n- Rule and instructions file names must be identical (modulo the `.instructions.md` vs `.md` extension difference).\n- Never delete any rule or instructions file — use deprecation patterns when retiring.\n- Never read or modify `.env` files or sensitive configuration.\n",{"name":5,"description":7},"main","00b2c68281930728ee390bb16cec32b88d2caac7",".github\u002Fskills\u002Frules-instructions-sync","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine","https:\u002F\u002Fgithub.com\u002Frafsanulhasan","\r\n    MCSD || A-CSD || Software Architect\r\n\r\n","2026-06-06 07:47:06",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add rafsanulhasan\u002FHypermediaEngine --skill rules-instructions-sync",{"tool":51,"command":52},"bunx","bunx skills add rafsanulhasan\u002FHypermediaEngine --skill rules-instructions-sync",{"tool":54,"command":55},"pnpm","pnpm dlx skills add rafsanulhasan\u002FHypermediaEngine --skill rules-instructions-sync","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Frules-instructions-sync\u002FSKILL.md",true,[],[60,92,111,130,159,182],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":71,"publishedAt":33},"01M6KWEJD606FG3DBBRM0W4DKW","write-tests","Test implementation skill for HypermediaEngine. Takes a confirmed test plan from design-test-cases and produces compilable, runnable xUnit tests following project conventions. Validates coverage quality through mutation testing. Invoked by the sqa-engineer agent after the test plan is approved.","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fwrite-tests\u002FSKILL.md",[66],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91],"write tests","write","tests","testing","design","test","project conventions","test plan","Bash","plan","quality","xunit","read","edit","coverage","engineer","mutation testing","project","mutation","for",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":33},"01M6KWEF2XQ00C1Y6QCK7YHZ1H","write-documentation","Structured documentation writing workflow for HypermediaEngine. Writes or updates README.md files at the repo root and in each project directory (src\u002F, tests\u002F, samples\u002F, etc.) based on current implementation, ADRs, and architecture decisions.","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fwrite-documentation\u002FSKILL.md",[],[99,73,100,101,102,103,104,80,105,106,107,108,84,85,26,89,74,109,110,91],"documentation","write documentation","writing","directory","workflow","architecture","src","repo","decisions","README","updates","at",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":33},"01M6KWEBDXTXAVPQ3BHS3YYYNT","write-adr","Writes a numbered Architecture Decision Record (ADR) for a significant architectural choice in the HypermediaEngine project. Invoked by the software-architect agent whenever a consequential design decision is made or ratified. Saves the ADR to docs\u002Farchitecture\u002Fdecisions\u002F.","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fwrite-adr\u002FSKILL.md",[],[118,73,119,76,120,104,121,122,123,124,107,84,125,126,89,127,128,91,129],"adr","write adr","docs","architect","decision","choice","grep","architecture decision record","record","software","opus","architecture decision",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":142,"publishedAt":33},"01M6KWE76TM3QHGQ08PEB3KY6D","tunit-playwright-ui-testing","Comprehensive guidance for writing coded end-to-end UI tests in C# using TUnit.Playwright. Tests inherit from PageTest — the base class manages all browser lifecycle. Covers NuGet setup, PageTest inheritance, Page Object Model, browser configuration, parallelism limiting, and CI integration. Based on the official TUnit docs at https:\u002F\u002Ftunit.dev\u002Fdocs\u002Fexamples\u002Fplaywright.","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftunit-playwright-ui-testing\u002FSKILL.md",[136,137],{"categoryNo":67,"categoryName":68,"taxonomyType":69,"taxonomyTypeDesc":70},{"categoryNo":138,"categoryName":139,"taxonomyType":140,"taxonomyTypeDesc":141},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[75,143,144,145,146,147,148,101,149,150,151,152,153,154,155,156,74,157,158,91],"playwright","ui","playwright ui testing","ui testing","tunit","tunit playwright ui testing","official","dev","examples","ci","lifecycle","model","page","inheritance","end","object",{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":168,"publishedAt":33},"01M6KWE44A738GDK65QS02XJBG","triage","Task classification, decomposition, dependency mapping, and routing skill. Invoked by the triage-agent to break any user request into discrete, independently-routable work items with assigned priorities and agent chains.","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Ftriage\u002FSKILL.md",[165],{"categoryNo":166,"categoryName":167,"taxonomyType":69,"taxonomyTypeDesc":70},"01JBSEEDCAT000000000000023","Skill与智能体开发",[161,169,170,171,172,173,174,175,176,177,178,179,180,181],"routing","classification","work","user","dependency","task","priorities","decomposition","user request","mapping","with","break","request",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":192,"publishedAt":33},"01M6KWDZ3W9ZKPR7FTTTSX8H2K","system-design","Expert system design skill. Use PROACTIVELY to design systems, review architectures, and assist software engineers in learning design principles and implementing them in the code with design patterns.","https:\u002F\u002Fgithub.com\u002Frafsanulhasan\u002FHypermediaEngine\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsystem-design\u002FSKILL.md",[188,191],{"categoryNo":189,"categoryName":190,"taxonomyType":69,"taxonomyTypeDesc":70},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":138,"categoryName":139,"taxonomyType":140,"taxonomyTypeDesc":141},[76,193,194,195,196,197,198,124,84,199,200,201,202,203,204,127,205,206,179,207],"system","system design","web","design systems","learning","haiku","use","design patterns","design principles","expert","patterns","systems","architectures","principles","implementing"]