[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AE7RFZ4Q77D68SNB82YD86":3,"skill-same:01M6AE7RFZ4Q77D68SNB82YD86":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},"01M6AE7RFZ4Q77D68SNB82YD86","speak-summary",null,"Convert text, markdown, or a summary produced by another skill into a listenable MP3 using local CPU-only neural text-to-speech. Rewrites written prose for the ear before synthesising. Use when the user asks to \"read this out\", \"turn this into audio\", \"make an MP3\", \"I want to listen to this\", \"podcast version\", or wants a spoken digest for a commute or breakfast.","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\u002Fspeak-summary\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"speak summary","speak","summary","when","speech","for","text-to-speech","CPU","local","digest","another skill","mp3","Neural","only","version","use","text","convert","markdown","Audio","2026-11-10 10:12:30",false,"---\nname: speak-summary\ndescription: 'Convert text, markdown, or a summary produced by another skill into a listenable MP3 using local CPU-only neural text-to-speech. Rewrites written prose for the ear before synthesising. Use when the user asks to \"read this out\", \"turn this into audio\", \"make an MP3\", \"I want to listen to this\", \"podcast version\", or wants a spoken digest for a commute or breakfast.'\n---\n\n# Speak Summary\n\nTurn written text into audio someone will actually want to listen to.\n\nThis skill is deliberately a **terminal step in a chain**. Another skill (or you)\nproduces the text; this one makes it listenable. It pairs naturally with\n`roundup`, `daily-prep`, `meeting-minutes`, or any summarisation work.\n\nEverything runs locally on CPU. No text is sent to a cloud speech service, which\nmatters when the content is confidential, and it means the skill works in a\nheadless cloud agent or CI container just as well as on a laptop.\n\n## Prerequisites\n\nThe synthesis engine is [Kyutai `pocket-tts`](https:\u002F\u002Fgithub.com\u002Fkyutai-labs\u002Fpocket-tts),\na small neural TTS model designed to run on CPUs.\n\nThe bundled script installs it automatically into a cached virtualenv on first\nuse, so usually you need do nothing. To install it explicitly:\n\n```bash\npip install pocket-tts          # any platform\nbrew install pocket-tts         # macOS, if preferred\n```\n\n`pocket-tts` requires **Python >=3.10 and \u003C3.15**. The script searches for a\ncompatible interpreter rather than assuming `python3` is one — worth knowing if\nyou are on a very new Python, where installation would otherwise fail.\n\nYou also need an encoder. `ffmpeg` is strongly preferred (`brew install ffmpeg`\nor `apt-get install -y ffmpeg`); on macOS the script falls back to the built-in\n`afconvert` and emits `.m4a` instead of `.mp3`.\n\nThe first run downloads the model (~1GB) from Hugging Face. After that it is\nfully offline and synthesises roughly 6x faster than real-time.\n\n## The important step: rewrite for the ear\n\n**Do not feed written text straight into the synthesiser.** Prose that reads well\non screen is tiring to listen to. Rewriting it first is what separates a useful\naudio digest from an unlistenable one.\n\nProduce a spoken script that:\n\n- **Opens with orientation.** What this is, what it covers, roughly how long it runs.\n- **Replaces bullets with connective prose.** \"First… The bigger one is… Finally…\" — a listener has no visual structure to lean on, so carry it in the language.\n- **Expands abbreviations on first use.** \"PR\" becomes \"pull request\", \"CI\" becomes \"continuous integration\". Acronyms that read fine are noise when spoken.\n- **Speaks dates and numbers naturally.** \"the twentieth of August\", not \"2026-08-20\". \"About three thousand\", not \"2,847\".\n- **Never reads URLs aloud.** Say \"linked in the written version\" instead.\n- **Uses short sentences.** Split anything past roughly 25 words.\n- **Signposts transitions.** \"Turning to the product side…\", \"Two things need your attention…\".\n- **Ends with the actions.** Recap what the listener should do, since that is what they need to retain and they cannot scroll back.\n- **Drops anything purely visual.** Tables, code blocks, and diagrams should be summarised in a sentence or omitted, never read out.\n\nWrite this spoken script to its own `.txt` file. Keep the original written\nversion with its links intact — the audio is a companion to it, not a\nreplacement. The user will want to click through later.\n\n## Synthesise\n\n```bash\n.\u002Fscripts\u002Ftts.sh \u003Cinput.txt> \u003Coutput.mp3> [voice.safetensors]\n```\n\nThe script strips any residual markdown, splits the text on sentence boundaries\ninto ~600 character chunks (quality degrades on long single inputs), synthesises\neach chunk, and concatenates the result into a mono MP3 at 96kbps — small enough\nto sync to a phone, good enough for speech.\n\nEnvironment overrides:\n\n| Variable | Purpose |\n|---|---|\n| `SPEAK_TTS_BIN` | Path to a specific `pocket-tts` binary; skips all auto-detection. |\n| `SPEAK_TTS_HOME` | Where to create\u002Ffind the cached virtualenv. Default `~\u002F.cache\u002Fspeak-summary\u002Fvenv`. |\n\n## Voices\n\nThe default English voice is `alba`. To use a different one, `pocket-tts`\nsupports voice cloning from a short clean audio sample:\n\n```bash\npocket-tts export-voice --help\n```\n\nPass the resulting `.safetensors` file as the third argument to the script.\n\nOnly clone a voice you have the rights to use. Do not clone a real person's\nvoice — colleague, customer, or public figure — without their explicit consent.\n\n## Output\n\n- Default to `~\u002FMusic\u002FBriefings\u002F` unless the user says otherwise; it is easy to point a phone or podcast app at.\n- Name files `\u003Csubject>-\u003CYYYY-MM-DD>.mp3`.\n- Report the path, duration, and size.\n- Offer to play it: `afplay \u003Cpath>` on macOS, `ffplay -nodisp -autoexit \u003Cpath>` elsewhere.\n\n## Length guidance\n\nAim for 4–6 minutes for a routine digest, which is roughly 600–900 spoken words\nat a natural pace. If the source would run past about 10 minutes, say so and\noffer either a tighter edit or a split into multiple files — attention drops off\nsharply beyond that for informational audio.\n\n## Chaining onto other skills\n\nThe natural pattern is *gather → summarise → speak*:\n\n- `roundup` → `speak-summary` — a spoken version of the status briefing.\n- `daily-prep` → `speak-summary` — tomorrow's schedule, listened to tonight.\n- `meeting-minutes` → `speak-summary` — catch up on a meeting you missed.\n\nWhen invoked as part of a chain, do not re-summarise. The upstream skill owns\nwhat to say; this skill owns how it sounds. Take its output, rewrite it for the\near, and synthesise.\n\nTo run unattended (a briefing waiting before breakfast), schedule the upstream\nskill with a workflow and have it finish by calling this one.\n\n## Troubleshooting\n\n**Audio cuts off mid-sentence.** A chunk exceeded the model's comfortable length.\nShorten the sentences in the spoken script.\n\n**Words mispronounced.** Spell them phonetically in the input — \"Kubernetes\" as\n\"koo-ber-net-eez\". This is a normal part of preparing a spoken script.\n\n**First run is slow.** That is the one-off model download. Later runs start in\nabout a second.\n\n**`pocket-tts` not found after install.** The virtualenv may be stale, or your\n`python3` may be outside the supported 3.10–3.14 range. Delete\n`~\u002F.cache\u002Fspeak-summary\u002Fvenv` and re-run, or point `SPEAK_TTS_BIN` at a known binary.\n","# Speak Summary\n\nTurn written text into audio someone will actually want to listen to.\n\nThis skill is deliberately a **terminal step in a chain**. Another skill (or you)\nproduces the text; this one makes it listenable. It pairs naturally with\n`roundup`, `daily-prep`, `meeting-minutes`, or any summarisation work.\n\nEverything runs locally on CPU. No text is sent to a cloud speech service, which\nmatters when the content is confidential, and it means the skill works in a\nheadless cloud agent or CI container just as well as on a laptop.\n\n## Prerequisites\n\nThe synthesis engine is [Kyutai `pocket-tts`](https:\u002F\u002Fgithub.com\u002Fkyutai-labs\u002Fpocket-tts),\na small neural TTS model designed to run on CPUs.\n\nThe bundled script installs it automatically into a cached virtualenv on first\nuse, so usually you need do nothing. To install it explicitly:\n\n```bash\npip install pocket-tts          # any platform\nbrew install pocket-tts         # macOS, if preferred\n```\n\n`pocket-tts` requires **Python >=3.10 and \u003C3.15**. The script searches for a\ncompatible interpreter rather than assuming `python3` is one — worth knowing if\nyou are on a very new Python, where installation would otherwise fail.\n\nYou also need an encoder. `ffmpeg` is strongly preferred (`brew install ffmpeg`\nor `apt-get install -y ffmpeg`); on macOS the script falls back to the built-in\n`afconvert` and emits `.m4a` instead of `.mp3`.\n\nThe first run downloads the model (~1GB) from Hugging Face. After that it is\nfully offline and synthesises roughly 6x faster than real-time.\n\n## The important step: rewrite for the ear\n\n**Do not feed written text straight into the synthesiser.** Prose that reads well\non screen is tiring to listen to. Rewriting it first is what separates a useful\naudio digest from an unlistenable one.\n\nProduce a spoken script that:\n\n- **Opens with orientation.** What this is, what it covers, roughly how long it runs.\n- **Replaces bullets with connective prose.** \"First… The bigger one is… Finally…\" — a listener has no visual structure to lean on, so carry it in the language.\n- **Expands abbreviations on first use.** \"PR\" becomes \"pull request\", \"CI\" becomes \"continuous integration\". Acronyms that read fine are noise when spoken.\n- **Speaks dates and numbers naturally.** \"the twentieth of August\", not \"2026-08-20\". \"About three thousand\", not \"2,847\".\n- **Never reads URLs aloud.** Say \"linked in the written version\" instead.\n- **Uses short sentences.** Split anything past roughly 25 words.\n- **Signposts transitions.** \"Turning to the product side…\", \"Two things need your attention…\".\n- **Ends with the actions.** Recap what the listener should do, since that is what they need to retain and they cannot scroll back.\n- **Drops anything purely visual.** Tables, code blocks, and diagrams should be summarised in a sentence or omitted, never read out.\n\nWrite this spoken script to its own `.txt` file. Keep the original written\nversion with its links intact — the audio is a companion to it, not a\nreplacement. The user will want to click through later.\n\n## Synthesise\n\n```bash\n.\u002Fscripts\u002Ftts.sh \u003Cinput.txt> \u003Coutput.mp3> [voice.safetensors]\n```\n\nThe script strips any residual markdown, splits the text on sentence boundaries\ninto ~600 character chunks (quality degrades on long single inputs), synthesises\neach chunk, and concatenates the result into a mono MP3 at 96kbps — small enough\nto sync to a phone, good enough for speech.\n\nEnvironment overrides:\n\n| Variable | Purpose |\n|---|---|\n| `SPEAK_TTS_BIN` | Path to a specific `pocket-tts` binary; skips all auto-detection. |\n| `SPEAK_TTS_HOME` | Where to create\u002Ffind the cached virtualenv. Default `~\u002F.cache\u002Fspeak-summary\u002Fvenv`. |\n\n## Voices\n\nThe default English voice is `alba`. To use a different one, `pocket-tts`\nsupports voice cloning from a short clean audio sample:\n\n```bash\npocket-tts export-voice --help\n```\n\nPass the resulting `.safetensors` file as the third argument to the script.\n\nOnly clone a voice you have the rights to use. Do not clone a real person's\nvoice — colleague, customer, or public figure — without their explicit consent.\n\n## Output\n\n- Default to `~\u002FMusic\u002FBriefings\u002F` unless the user says otherwise; it is easy to point a phone or podcast app at.\n- Name files `\u003Csubject>-\u003CYYYY-MM-DD>.mp3`.\n- Report the path, duration, and size.\n- Offer to play it: `afplay \u003Cpath>` on macOS, `ffplay -nodisp -autoexit \u003Cpath>` elsewhere.\n\n## Length guidance\n\nAim for 4–6 minutes for a routine digest, which is roughly 600–900 spoken words\nat a natural pace. If the source would run past about 10 minutes, say so and\noffer either a tighter edit or a split into multiple files — attention drops off\nsharply beyond that for informational audio.\n\n## Chaining onto other skills\n\nThe natural pattern is *gather → summarise → speak*:\n\n- `roundup` → `speak-summary` — a spoken version of the status briefing.\n- `daily-prep` → `speak-summary` — tomorrow's schedule, listened to tonight.\n- `meeting-minutes` → `speak-summary` — catch up on a meeting you missed.\n\nWhen invoked as part of a chain, do not re-summarise. The upstream skill owns\nwhat to say; this skill owns how it sounds. Take its output, rewrite it for the\near, and synthesise.\n\nTo run unattended (a briefing waiting before breakfast), schedule the upstream\nskill with a workflow and have it finish by calling this one.\n\n## Troubleshooting\n\n**Audio cuts off mid-sentence.** A chunk exceeded the model's comfortable length.\nShorten the sentences in the spoken script.\n\n**Words mispronounced.** Spell them phonetically in the input — \"Kubernetes\" as\n\"koo-ber-net-eez\". This is a normal part of preparing a spoken script.\n\n**First run is slow.** That is the one-off model download. Later runs start in\nabout a second.\n\n**`pocket-tts` not found after install.** The virtualenv may be stale, or your\n`python3` may be outside the supported 3.10–3.14 range. Delete\n`~\u002F.cache\u002Fspeak-summary\u002Fvenv` and re-run, or point `SPEAK_TTS_BIN` at a known binary.\n",{"name":5,"description":7},"main","5269f7ea2d6c3a9bfda5ed878b6726cf509121fd","skills\u002Fspeak-summary",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 speak-summary",{"tool":60,"command":61},"bunx","bunx skills add github\u002Fawesome-copilot --skill speak-summary",{"tool":63,"command":64},"pnpm","pnpm dlx skills add github\u002Fawesome-copilot --skill speak-summary","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspeak-summary\u002FSKILL.md",true,[68],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"scripts\u002Ftts.sh","SCRIPT","脚本",5941,"https:\u002F\u002Fgithub.com\u002Fgithub\u002Fawesome-copilot\u002Fblob\u002Fmain\u002Fskills\u002Fspeak-summary\u002Fscripts\u002Ftts.sh",[75,108,134,163,197,214],{"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,34,105,106,107],"supabase","rls","supabase rls","supabase rls policies","project","review","change","read","write","security","isolation","tables","as","tests","prove","users","functions","with",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":115,"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",[114],{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},[116,117,118,119,120,121,24,122,123,124,125,33,126,127,128,129,130,131,132,133],"distribution","skill distribution audit","audit","SET","deterministic","installer","discovery","comparison","helper","manifest","collection","drift","output","investigate","duplicate","template","release","reconcile",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":138,"sourceHtmlUrl":139,"categories":140,"keywords":146,"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",[141],{"categoryNo":142,"categoryName":143,"taxonomyType":144,"taxonomyTypeDesc":145},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[147,148,149,150,151,152,24,94,153,154,27,155,156,157,158,34,159,160,161,162],"custom","code","logicapps custom code net10 migration","migration","projects","standalone","deployment","applications","azure","worker","upgrades","package","apps","Legacy","debugging","workflows",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":167,"sourceHtmlUrl":168,"categories":169,"keywords":174,"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",[170,173],{"categoryNo":171,"categoryName":172,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":142,"categoryName":143,"taxonomyType":144,"taxonomyTypeDesc":145},[175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,22,190,191,192,193,194,24,195,196],"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":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":201,"licenseFileUrl":202,"sourceHtmlUrl":203,"categories":204,"keywords":210,"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",[205,206,209],{"categoryNo":171,"categoryName":172,"taxonomyType":84,"taxonomyTypeDesc":85},{"categoryNo":207,"categoryName":208,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},[211,119,184,212,213],"resemble detect","https","identity",{"skillNo":215,"name":216,"nameZh":6,"description":217,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":201,"licenseFileUrl":218,"sourceHtmlUrl":219,"categories":220,"keywords":225,"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",[221,224],{"categoryNo":222,"categoryName":223,"taxonomyType":84,"taxonomyTypeDesc":85},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":87,"categoryName":88,"taxonomyType":84,"taxonomyTypeDesc":85},[226,227,228,229,148,95,9,118,230,231,212,232,233,234,235,236,237,238,239,240,241,242,103,243,244,245,246],"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"]