[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADHC1BWMCH7PK88EW9QZNW":3,"skill-same:01M6ADHC1BWMCH7PK88EW9QZNW":74},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":52,"updatedAt":53,"install":54,"resources":67},"01M6ADHC1BWMCH7PK88EW9QZNW","em-dash",null,"Expert on the history, origin, and correct use of the em dash. Use when writing or reviewing code, comments, or data files to avoid em and en dashes, defaulting to never using them and replacing any found with a hyphen (-). Includes strong knowledge of punctuation marks and the proper usage of punctuation characters when writing comments.","github\u002Fawesome-copilot","github","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F9919?v=4","01M6AC83DS133TPXFSP1DHNCC6","GitHub","01M6AD3PBDYPK7NVFJNJ66Y8RS",41081,"MIT","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fem-dash\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"em dash","dash","files","when","characters","usage","comments","with","reviewing code","origin","expert","writing","en","never","use","history","correct","knowledge","data","code","2026-11-10 10:12:30",false,"---\nname: em-dash\ndescription: 'Expert on the history, origin, and correct use of the em dash. Use when writing or reviewing code, comments, or data files to avoid em and en dashes, defaulting to never using them and replacing any found with a hyphen (-). Includes strong knowledge of punctuation marks and the proper usage of punctuation characters when writing comments.'\n---\n\n# em dash\n\nThe **em dash** (U+2014, `\\u2014`; not the hyphen-minus `-`) is the longest\nof the standard dashes, and is the Swiss Army knife of punctuation. Its history\nis a fascinating journey from handwritten manuscripts to mechanical\nconstraints, literary rebellion, and modern digital dominance.\n\nHere is a breakdown of how the em dash evolved:\n\n## History of the em dash\n\n### Early Beginnings (15th-18th Century)\n\n- The First Dashes: Early appearances of the dash in English literature date\n back to 1580 in private letters and 1588 in English drama. They were often\n used to indicate pauses, self-interruption, or an unfinished thought\n- Gutenberg and Early Printing: The em dash officially emerged as a standardized\n typesetting mark during the 15th-century printing revolution\n\n#### The Etymology\n\n- The \"M\" Width: The em dash is named because its standard length is equal to\n the width of the capital letter \"M\" in the specific typeface being used\n (Similarly, the slightly shorter en dash is the width of the letter \"N\")\n\n### Literary Popularity (17th-19th Century)\n\n- The Author's Tool: By the 17th and 18th centuries, it became a beloved tool\n for writers mimicking the natural lurches, stutters, and rhythms of speech\n- Dickinson Dashes: In the 19th century, poets like Emily Dickinson famously\n used the em dash for emotional weight, rhythm, and to invite reader\n interpretation. This became so synonymous with her work that they are often\n informally called \"Dickinson Dashes\"\n\n### The Typewriter Era (19th-20th Century)\n\n- The Double-Hyphen Compromise: When typewriters were introduced, they lacked\n a dedicated key for the em dash. To compensate, typists began using two\n consecutive hyphens (--)\n- The No-Space Rule: Because of this mechanical compromise, a stylistic\n convention of typing the mark without surrounding spaces emerged and remains\n\n### The Digital Age (Present Day)\n\n- Return to Form: Modern digital typesetting and word processing programs have\n restored the true, unbroken em dash\n- **Modern Renaissance**: The em dash is experiencing a resurgence of popularity\n  - It has become a hallmark of modern long-form prose and is also a favorite,\n   heavily used punctuation mark in AI outputs, which often prioritize a\n   conversational, stream-of-consciousness style\n\n#### Speculation for em Dash Modern Renaissance\n\n- Professional authors who had to meet deadlines and did not have the time to\n strictly proofread the online article before submitting it\n- Professionals who wanted to show off their knowledge of HTML encoding in order\n to seem smart\n- Graphic designers who wanted to make the visual composition of text on a web\n page more appealing\n- The fact that popularity begets popularity\n  - People publishing web articles saw that everyone else was using em dashes,\n   so instead of using a hyphen where one belonged, they opted to use an em dash\n\n## Analysis of em dash History\n\nNowhere in the history of the em dash was it intentionally used in the writing\nof computer code, or files meant to be executed as computer instructions.\n\n## When to use em or en dashes\n\nNever.\n\n### In Code Files\n\n> [!IMPORTANT]\n> Never.\n> In no way, shape, form, or fashion is tone ever important in code comments.\n\n- **Never**\n  - Use the `-` (hyphen) character instead\n  - If working as an agent, and an em dash is in a comment, then replace it\n  with the `-` (hyphen) character\n\n### In Raw Data and\u002For Text Files\n\n> [!NOTE]\n> Default to **never**\n\n- When instructed to, and it is 100% clear that the text is to be used as:\n  - Literature\n  - News\n- If working as an agent, and an em dash is already part of the data, then\n leave it\n\n## Other Punctuation Characters\n\nAs part of being an em dash expert comes the knowledge of other punctuation marks\nor characters.\n\n### End-of-Sentence Marks\n\nEvery complete sentence in a paragraph must end with one of these three marks:\n\n- Period `.`: Ends statements and declarative sentences\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `\u003C?php echo \"a\" . \"b\" . \"c\"; ?>`\n- Question Mark `?`: Ends direct questions\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: *ternary conditions*\n    `condition ? expression_if_true : expression_if_false`\n- Exclamation Point `!`: Conveys strong emotion, surprise, or emphasis\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example:\n    `setlocal enabledelayedexpansion && set \"_a=a\" && echo !_a! && endlocal`\n\n### Pauses and Clause Connectors\n\nThese marks control the rhythm of your writing and connect different ideas:\n\n- Comma `,`: Used to separate items in a list, link independent clauses with a\n conjunction (e.g., and, but), or set off introductory phrases\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `fn(a, b)`\n- Semicolon `;`: Connects two closely related independent clauses that could\n stand alone as separate sentences\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `var foobar = \"foo-bar\";`\n- Colon `:`: Introduces a list, a quote, or an explanation. The text preceding\n a colon must be a complete sentence\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `{\"age\": 26}`\n\n### Words, Quotations, and Possessions\n\n- Apostrophe `'`: Indicates possession (e.g., Sarah's book) or represents\n missing letters in a contraction (e.g., *I'll* instead of *I will*)\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `char letter = 'A';`\n- Quotation Marks `\"`: Enclose direct speech or quotes. In American English,\n periods and commas almost always go inside the quotation marks\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `char abc[] = \"abc\";`\n\n### Dashes and Slashes\n\n- Hyphen `-`: Joins two or more words together to form a single compound\n adjective (e.g., well-known)\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `count--`\n- En dash (U+2013, `\\u2013`) and em dash (U+2014, `\\u2014`):\n  - The **en dash** is the thinner of the two, and is used to show numerical ranges\n   or connections between words in a compound adjective when one element is itself\n   multiple words\n    - Keyboard character: `false`\n    - Programming language syntax: `false`\n  - The **em dash** is wider, and is used to note a break, provide drama, or give an example.\n    - Keyboard character: `false`\n    - Programming language syntax: `false`\n- Slash `\u002F`: Indicates a choice (e.g., yes\u002Fno) or separates lines of poetry\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `\u002F* comment *\u002F || 10\u002F2 || 5\u002F\u002F2`\n\n### Grouping and Emphasizing\n\n- Parentheses `( )`: Enclose extra, non-essential information that clarifies a\n sentence but can be removed without changing the core meaning\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `if (5 > 2)`\n- Brackets `[ ]`: Used to enclose words added to a quotation by someone other\n than the original author, usually to clarify a pronoun or provide missing context\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `var arr = [1, 2, 3];`\n\n### General Rule for using Other Punctuation Characters\n\nWhen commenting on code files, or any file that will be included in compiled\ncomputer instructions; use this rule-of-thumb:\n\n- Determine if the character is commonly on a keyboard, or is the punctuation\n character part of a programming language's syntax:\n\n  - If **NOT** a keyboard character, and **NOT** a common programming syntax\n   character; then:\n    - **NEVER** use that character in code or code comments\n      - Example not mentioned: `�`\n  - If a keyboard character, and a common programming syntax character, then:\n    - Use that character correctly in code comments\n\n> [!IMPORTANT]\n> When in doubt, follow the pseudo-code instructions below:\n\n```bash\n# For en dash and em dash\necho - | sed \"s\u002F-\u002F-\u002Fg\"\n\n# Replace Unicode en dash (U+2013) and em dash (U+2014) with hyphen-minus (-)\nperl -CS -pe 's\u002F\\x{2013}|\\x{2014}\u002F-\u002Fg'\n\n# For encoded characters\necho � | sed \"s\u002F�\u002F \u002Fg\"\n\n# (Optional) Remove the Unicode replacement character (U+FFFD) if it appears in pasted text\nperl -CS -pe 's\u002F\\x{FFFD}\u002F \u002Fg'\n```\n\n## Further Reading\n\n- [Case for the em dash](https:\u002F\u002Fwww.hardingproject.com\u002Fp\u002Fthe-case-for-the-em-dash)\n- [em dash guide](https:\u002F\u002Fwww.thebookrefinery.com\u002Fwriting\u002Fguide-hyphens-en-dashes-em-dashes\u002F)\n- [Explaining the em dash](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fwriters\u002Fcomments\u002F1lv191m\u002Fcan_someone_explain_em_dash\u002F)\n- [em dash wikipedia](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDash)\n- [Verbose em dash history](https:\u002F\u002Fwww.linkedin.com\u002Fpulse\u002Flong-mark-brief-history-em-dash-christian-buckley-z1lbc)\n- [Brief em dash history](https:\u002F\u002Fthaothai.substack.com\u002Fp\u002Fa-brief-history-of-the-em-dash)\n- [em dash punctuation](https:\u002F\u002Fwww.nytimes.com\u002F2019\u002F08\u002F14\u002Fstyle\u002Fem-dash-punctuation.html)\n- [em dash in retrospective](https:\u002F\u002Fmedium.com\u002Fthe-jabber-journal\u002Fan-era-to-its-knee-an-em-dash-retrospective-cb5c3c52e4d2)\n- [Punctuation](https:\u002F\u002Fwww.niu.edu\u002Fwriting-tutorial\u002Fpunctuation\u002Findex.shtml)\n- [Punctuation Guide](https:\u002F\u002Fwww.thepunctuationguide.com\u002F)\n","# em dash\n\nThe **em dash** (U+2014, `\\u2014`; not the hyphen-minus `-`) is the longest\nof the standard dashes, and is the Swiss Army knife of punctuation. Its history\nis a fascinating journey from handwritten manuscripts to mechanical\nconstraints, literary rebellion, and modern digital dominance.\n\nHere is a breakdown of how the em dash evolved:\n\n## History of the em dash\n\n### Early Beginnings (15th-18th Century)\n\n- The First Dashes: Early appearances of the dash in English literature date\n back to 1580 in private letters and 1588 in English drama. They were often\n used to indicate pauses, self-interruption, or an unfinished thought\n- Gutenberg and Early Printing: The em dash officially emerged as a standardized\n typesetting mark during the 15th-century printing revolution\n\n#### The Etymology\n\n- The \"M\" Width: The em dash is named because its standard length is equal to\n the width of the capital letter \"M\" in the specific typeface being used\n (Similarly, the slightly shorter en dash is the width of the letter \"N\")\n\n### Literary Popularity (17th-19th Century)\n\n- The Author's Tool: By the 17th and 18th centuries, it became a beloved tool\n for writers mimicking the natural lurches, stutters, and rhythms of speech\n- Dickinson Dashes: In the 19th century, poets like Emily Dickinson famously\n used the em dash for emotional weight, rhythm, and to invite reader\n interpretation. This became so synonymous with her work that they are often\n informally called \"Dickinson Dashes\"\n\n### The Typewriter Era (19th-20th Century)\n\n- The Double-Hyphen Compromise: When typewriters were introduced, they lacked\n a dedicated key for the em dash. To compensate, typists began using two\n consecutive hyphens (--)\n- The No-Space Rule: Because of this mechanical compromise, a stylistic\n convention of typing the mark without surrounding spaces emerged and remains\n\n### The Digital Age (Present Day)\n\n- Return to Form: Modern digital typesetting and word processing programs have\n restored the true, unbroken em dash\n- **Modern Renaissance**: The em dash is experiencing a resurgence of popularity\n  - It has become a hallmark of modern long-form prose and is also a favorite,\n   heavily used punctuation mark in AI outputs, which often prioritize a\n   conversational, stream-of-consciousness style\n\n#### Speculation for em Dash Modern Renaissance\n\n- Professional authors who had to meet deadlines and did not have the time to\n strictly proofread the online article before submitting it\n- Professionals who wanted to show off their knowledge of HTML encoding in order\n to seem smart\n- Graphic designers who wanted to make the visual composition of text on a web\n page more appealing\n- The fact that popularity begets popularity\n  - People publishing web articles saw that everyone else was using em dashes,\n   so instead of using a hyphen where one belonged, they opted to use an em dash\n\n## Analysis of em dash History\n\nNowhere in the history of the em dash was it intentionally used in the writing\nof computer code, or files meant to be executed as computer instructions.\n\n## When to use em or en dashes\n\nNever.\n\n### In Code Files\n\n> [!IMPORTANT]\n> Never.\n> In no way, shape, form, or fashion is tone ever important in code comments.\n\n- **Never**\n  - Use the `-` (hyphen) character instead\n  - If working as an agent, and an em dash is in a comment, then replace it\n  with the `-` (hyphen) character\n\n### In Raw Data and\u002For Text Files\n\n> [!NOTE]\n> Default to **never**\n\n- When instructed to, and it is 100% clear that the text is to be used as:\n  - Literature\n  - News\n- If working as an agent, and an em dash is already part of the data, then\n leave it\n\n## Other Punctuation Characters\n\nAs part of being an em dash expert comes the knowledge of other punctuation marks\nor characters.\n\n### End-of-Sentence Marks\n\nEvery complete sentence in a paragraph must end with one of these three marks:\n\n- Period `.`: Ends statements and declarative sentences\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `\u003C?php echo \"a\" . \"b\" . \"c\"; ?>`\n- Question Mark `?`: Ends direct questions\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: *ternary conditions*\n    `condition ? expression_if_true : expression_if_false`\n- Exclamation Point `!`: Conveys strong emotion, surprise, or emphasis\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example:\n    `setlocal enabledelayedexpansion && set \"_a=a\" && echo !_a! && endlocal`\n\n### Pauses and Clause Connectors\n\nThese marks control the rhythm of your writing and connect different ideas:\n\n- Comma `,`: Used to separate items in a list, link independent clauses with a\n conjunction (e.g., and, but), or set off introductory phrases\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `fn(a, b)`\n- Semicolon `;`: Connects two closely related independent clauses that could\n stand alone as separate sentences\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `var foobar = \"foo-bar\";`\n- Colon `:`: Introduces a list, a quote, or an explanation. The text preceding\n a colon must be a complete sentence\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `{\"age\": 26}`\n\n### Words, Quotations, and Possessions\n\n- Apostrophe `'`: Indicates possession (e.g., Sarah's book) or represents\n missing letters in a contraction (e.g., *I'll* instead of *I will*)\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `char letter = 'A';`\n- Quotation Marks `\"`: Enclose direct speech or quotes. In American English,\n periods and commas almost always go inside the quotation marks\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `char abc[] = \"abc\";`\n\n### Dashes and Slashes\n\n- Hyphen `-`: Joins two or more words together to form a single compound\n adjective (e.g., well-known)\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `count--`\n- En dash (U+2013, `\\u2013`) and em dash (U+2014, `\\u2014`):\n  - The **en dash** is the thinner of the two, and is used to show numerical ranges\n   or connections between words in a compound adjective when one element is itself\n   multiple words\n    - Keyboard character: `false`\n    - Programming language syntax: `false`\n  - The **em dash** is wider, and is used to note a break, provide drama, or give an example.\n    - Keyboard character: `false`\n    - Programming language syntax: `false`\n- Slash `\u002F`: Indicates a choice (e.g., yes\u002Fno) or separates lines of poetry\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `\u002F* comment *\u002F || 10\u002F2 || 5\u002F\u002F2`\n\n### Grouping and Emphasizing\n\n- Parentheses `( )`: Enclose extra, non-essential information that clarifies a\n sentence but can be removed without changing the core meaning\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `if (5 > 2)`\n- Brackets `[ ]`: Used to enclose words added to a quotation by someone other\n than the original author, usually to clarify a pronoun or provide missing context\n  - Keyboard character: `true`\n  - Programming language syntax: `true`\n    - Example: `var arr = [1, 2, 3];`\n\n### General Rule for using Other Punctuation Characters\n\nWhen commenting on code files, or any file that will be included in compiled\ncomputer instructions; use this rule-of-thumb:\n\n- Determine if the character is commonly on a keyboard, or is the punctuation\n character part of a programming language's syntax:\n\n  - If **NOT** a keyboard character, and **NOT** a common programming syntax\n   character; then:\n    - **NEVER** use that character in code or code comments\n      - Example not mentioned: `�`\n  - If a keyboard character, and a common programming syntax character, then:\n    - Use that character correctly in code comments\n\n> [!IMPORTANT]\n> When in doubt, follow the pseudo-code instructions below:\n\n```bash\n# For en dash and em dash\necho - | sed \"s\u002F-\u002F-\u002Fg\"\n\n# Replace Unicode en dash (U+2013) and em dash (U+2014) with hyphen-minus (-)\nperl -CS -pe 's\u002F\\x{2013}|\\x{2014}\u002F-\u002Fg'\n\n# For encoded characters\necho � | sed \"s\u002F�\u002F \u002Fg\"\n\n# (Optional) Remove the Unicode replacement character (U+FFFD) if it appears in pasted text\nperl -CS -pe 's\u002F\\x{FFFD}\u002F \u002Fg'\n```\n\n## Further Reading\n\n- [Case for the em dash](https:\u002F\u002Fwww.hardingproject.com\u002Fp\u002Fthe-case-for-the-em-dash)\n- [em dash guide](https:\u002F\u002Fwww.thebookrefinery.com\u002Fwriting\u002Fguide-hyphens-en-dashes-em-dashes\u002F)\n- [Explaining the em dash](https:\u002F\u002Fwww.reddit.com\u002Fr\u002Fwriters\u002Fcomments\u002F1lv191m\u002Fcan_someone_explain_em_dash\u002F)\n- [em dash wikipedia](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDash)\n- [Verbose em dash history](https:\u002F\u002Fwww.linkedin.com\u002Fpulse\u002Flong-mark-brief-history-em-dash-christian-buckley-z1lbc)\n- [Brief em dash history](https:\u002F\u002Fthaothai.substack.com\u002Fp\u002Fa-brief-history-of-the-em-dash)\n- [em dash punctuation](https:\u002F\u002Fwww.nytimes.com\u002F2019\u002F08\u002F14\u002Fstyle\u002Fem-dash-punctuation.html)\n- [em dash in retrospective](https:\u002F\u002Fmedium.com\u002Fthe-jabber-journal\u002Fan-era-to-its-knee-an-em-dash-retrospective-cb5c3c52e4d2)\n- [Punctuation](https:\u002F\u002Fwww.niu.edu\u002Fwriting-tutorial\u002Fpunctuation\u002Findex.shtml)\n- [Punctuation Guide](https:\u002F\u002Fwww.thepunctuationguide.com\u002F)\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Fem-dash",5344,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot","https:\u002F\u002Fawesome-copilot.github.com\u002F","https:\u002F\u002Fgithub.com\u002Fgithub","https:\u002F\u002Fgithub.com\u002Fabout","How people build software.","2026-11-13 02:05:36",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add github\u002Fawesome-copilot --skill em-dash",{"tool":60,"command":61},"bunx","bunx skills add github\u002Fawesome-copilot --skill em-dash",{"tool":63,"command":64},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill em-dash","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fem-dash\u002FSKILL.md",true,[68],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"agents\u002Fopenai.yaml","REFERENCE","参考文档",298,"https:\u002F\u002Fgithub.com\u002FJij-Inc\u002Fommx\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fbenchmark-review\u002Fagents\u002Fopenai.yaml",[75,107,135,164,198,215],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":89,"publishedAt":39},"01M70KXZNX9ES38N2A8M58ZZMZ","supabase-rls-policies","Write, review, and test Supabase Row Level Security (RLS) policies so that one user cannot read or change another user's rows. Use when creating or changing tables, policies, views, or security definer functions in a Supabase project, when reviewing a migration that touches RLS, or when asked to prove user isolation with pgTAP tests that sign in as two users.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fsupabase-rls-policies\u002FSKILL.md",[81,86],{"categoryNo":82,"categoryName":83,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000023","Skill与智能体开发",[90,91,92,93,94,22,95,96,97,98,99,100,101,102,103,104,33,105,106,26],"supabase","rls","supabase rls","supabase rls policies","project","review","change","read","write","security","isolation","tables","as","tests","prove","users","functions",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":39},"01M70KWA5YWXDV6V8DZ19E3T2Y","skill-distribution-audit","Audit a skill collection before release or investigate installer omissions, archived\u002Ftemplate leakage, duplicate identities, and manifest drift. Reconcile the intended public source set, distribution manifest, and actual discovery output for a specified consumer version. Includes a deterministic set-comparison helper.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fskill-distribution-audit\u002FSKILL.md",[113],{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},[115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134],"distribution","skill distribution audit","audit","SET","deterministic","installer","for","discovery","comparison","helper","manifest","version","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":139,"sourceHtmlUrl":140,"categories":141,"keywords":147,"publishedAt":39},"01M70KCJPFVW7PPQ49CC5R8JGK","logicapps-custom-code-net10-migration","Migrate Azure Logic Apps Standard local-function custom-code projects from .NET 8 to .NET 10. Use for legacy Logic Apps custom-code workspace upgrades, project\u002Fpackage configuration, custom-worker settings, publication, and integrated VS Code debugging. Not for ordinary .NET applications, standalone Azure Functions, Consumption workflows, or cloud deployment.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Flogicapps-custom-code-net10-migration\u002FSKILL.md",[142],{"categoryNo":143,"categoryName":144,"taxonomyType":145,"taxonomyTypeDesc":146},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[148,38,149,150,151,152,121,94,153,154,155,156,157,158,159,33,160,161,162,163],"custom","logicapps custom code net10 migration","migration","projects","standalone","deployment","applications","local","azure","worker","upgrades","package","apps","Legacy","debugging","workflows",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":168,"sourceHtmlUrl":169,"categories":170,"keywords":175,"publishedAt":39},"01M6AEBN37RQMXJ3298PEY7PG1","winmd-api-search","Find and explore Windows desktop APIs. Use when building features that need platform capabilities — camera, file access, notifications, UI controls, AI\u002FML, sensors, networking, etc. Discovers the right API for a task and retrieves full type details (methods, properties, events, enumeration values).","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fwinmd-api-search\u002FSKILL.md",[171,174],{"categoryNo":172,"categoryName":173,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":143,"categoryName":144,"taxonomyType":145,"taxonomyTypeDesc":146},[176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,22,191,192,193,194,195,121,196,197],"winmd api search","search","api","windows","desktop","file access","enumeration","ui","ml","file","networking","capabilities","notifications","explore","access","features","full","camera","events","platform","methods","controls",{"skillNo":199,"name":200,"nameZh":6,"description":201,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":202,"licenseFileUrl":203,"sourceHtmlUrl":204,"categories":205,"keywords":211,"publishedAt":39},"01M6AE571R3SC1ZGE202B3NB5S","resemble-detect","Deepfake detection and media safety — detect AI-generated audio, images, video, and text, trace synthesis sources, apply watermarks, verify speaker identity, and analyze media intelligence using Resemble AI","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fresemble-detect\u002FSKILL.md",[206,207,210],{"categoryNo":172,"categoryName":173,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":208,"categoryName":209,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},[212,118,185,213,214],"resemble detect","https","identity",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":202,"licenseFileUrl":219,"sourceHtmlUrl":220,"categories":221,"keywords":226,"publishedAt":39},"01M6AE30BSK2HCY4TQQ22Z8JRD","quality-playbook","Run a complete quality engineering audit on any codebase. Derives behavioral requirements from the code, generates spec-traced functional tests, runs a three-pass code review with regression tests, executes a multi-model spec audit (Council of Three), and produces a consolidated bug report with TDD-verified patches. Finds the 35% of real defects that structural code review alone cannot catch. Works with any language. Trigger on 'quality playbook', 'spec audit', 'Council of Three', 'fitness-to-purpose', or 'coverage theater'.","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fquality-playbook\u002FSKILL.md",[222,225],{"categoryNo":223,"categoryName":224,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},[227,228,229,230,38,95,9,117,231,232,213,233,234,235,236,237,238,239,240,241,242,243,103,244,245,246,247],"playbook","quality playbook","quality","code review","tdd","run","report","spec","bug report","council","engineering","functional","spec audit","bug","verified","multi-model","three","coverage","model","regression","structural"]