[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CB3ASWTABMCX5BBWZ6RKN3":3,"skill-same:01M6CB3ASWTABMCX5BBWZ6RKN3":102},{"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":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":66,"commitSha":67,"skillDirectory":68,"forksCount":69,"repositoryHtmlUrl":70,"repositoryHomepageUrl":71,"ownerHtmlUrl":72,"ownerBlogUrl":73,"ownerDescription":74,"updatedAt":75,"install":76,"resources":89},"01M6CB3ASWTABMCX5BBWZ6RKN3","voice-apply",null,"Apply a voice profile to transform content. Use when the user asks to write in a specific voice, match a tone, or sound like a particular voice profile.","jmagly\u002Faiwg","jmagly","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1159087?v=4","01M6C10AK8N2WCSQN11FYGTJWN","Joseph Magly","01M6C10AQ8A2RMED1Y1BSVY7NF",229,"MIT","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fvoice\u002Fskills\u002Fvoice-apply\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"apply","voice","voice apply","profile","when","match","make","transform","tone","me","use","writing","user","write","choose","marketing","flow","content","validation","help","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: voice-apply\ndescription: Apply a voice profile to transform content. Use when the user asks to write in a specific voice, match a tone, or sound like a particular voice profile.\nversion: 1.0.0\nplatforms: [all]\ntriggers:\n  - \"help write better content\"\n  - \"help me make this writing clearer and consistent\"\n  - \"choose voice writing validation or marketing flow\"\n  - \"apply voice profile\"\n\n---\n\n# Voice Apply Skill\n\n## Local writing and participating consumer recipes\n\nUse [author-controlled writing workflows](..\u002F..\u002Fdocs\u002Fwriting-workflows.md) for the\nactual `aiwg writing plan` and `aiwg writing proofread` commands, channel APIs,\nbounded revision, explicit learning, scoped MCP resources and separate receipts.\nPlanning creates a structured artifact; proofreading applies exact listed\nauthor-authorized corrections without a model or voice rewrite. A selected mode\nis not an applied transformation. Unsupported consumers use explicit instruction\nexports; never claim every provider response is intercepted. Keep original text\nand unresolved review decisions recoverable. Publication controls remain with\nthe user's existing workflow.\n\n## Reviewed voice application\n\nFor model-driven voice transformation, use the packaged [criticism\u002Fcorrection flow](..\u002F..\u002Fflows\u002Fvoice-critique-correction.flow.yaml) and [output impact guide](..\u002F..\u002Fdocs\u002Fvoice-output-impact.md). The selected development lane uses one Astra draw and at most one correction with the primary session as reviewer. Neutral analytical packets are required; private author provenance stays outside generator and corrector context. Preserve the original unless a hash-bound review accepts both fidelity and cadence. This does not change deterministic proofread-only behavior or qualify all channels.\n\n## Brief and fidelity contract\n\nFor author-controlled writing, prepare a structured\n[writing brief](https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fdocs\u002Fvoice\u002Fwriting-briefs.md) before generating prose.\nRecord reader task, supported propositions, limitations, intended action and\napproved author notes. Missing first-person experiences or design rationale are\neditorial gaps; do not invent them. Keep evidence strength independent of voice.\nProofread-only applies selected authorized correction IDs to the original source;\nother operations expose explicit permissions and lineage for downstream execution.\n\nRun [fidelity checks](https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fdocs\u002Fvoice\u002Ffidelity.md) after every final\nstructure\u002Fpresentation pass. Uncertain paraphrases require review. Preserve the\noriginal on configured fallback and report attempted versus retained changes\noutside product prose. Automated literal guards are not semantic proof.\n\n## Purpose\n\nTransform content to match a specified voice profile. This skill loads voice profiles and applies their characteristics (tone, vocabulary, structure, perspective) to new or existing content.\n\nEvidence constraints are recorded in [the natural voice ownership ADR](..\u002F..\u002Fdocs\u002Fnatural-voice\u002FADR-001-evidence-and-ownership.md)\nand [versioned ledger](..\u002F..\u002Fdocs\u002Fnatural-voice\u002Fevidence-ledger.v1.json).\nTreat phrase highlights as contextual editorial suggestions, never authorship\nprobabilities. Preserve supplied facts, uncertainty and author intent; an assertive\ntone does not strengthen evidence. Author notes were already part of the cited\npost-editing study. Neither topic-matched examples nor a fixed example count is\nestablished as a universally best choice. The ledger is an evidence contract,\nnot a claim that the planned natural voice pipeline has been qualified.\n\n## When This Skill Applies\n\n- User asks to \"write in X voice\" or \"use Y tone\"\n- User wants to \"make this sound more [casual\u002Fformal\u002Ftechnical\u002Fetc.]\"\n- User provides content and asks to transform its style\n- User references a voice profile by name\n- User wants content to match a specific audience or context\n\n## Trigger Phrases\n\n| Natural Language | Action |\n|------------------|--------|\n| \"Write this in technical voice\" | Apply technical-authority profile |\n| \"Make it more casual\" | Apply casual-conversational or calibrate toward casual |\n| \"This needs to sound executive\" | Apply executive-brief profile |\n| \"Explain like I'm a beginner\" | Apply friendly-explainer profile |\n| \"Use the [profile-name] voice\" | Load and apply named profile |\n| \"Transform this to match [example]\" | Analyze example, apply derived voice |\n\n## Voice Profile Locations\n\nSkill checks these locations (in order):\n1. Project: `.aiwg\u002Fvoices\u002F`\n2. User: `~\u002F.config\u002Faiwg\u002Fvoices\u002F`\n3. Built-in: `voice-framework\u002Fvoices\u002Ftemplates\u002F`\n\n## Built-in Voice Profiles\n\n| Profile | Description | Best For |\n|---------|-------------|----------|\n| `technical-authority` | Direct, precise, confident | Docs, architecture, engineering |\n| `friendly-explainer` | Approachable, encouraging | Tutorials, onboarding, education |\n| `executive-brief` | Concise, outcome-focused | Business cases, stakeholder comms |\n| `casual-conversational` | Relaxed, personal | Blog posts, social, newsletters |\n\n## Application Process\n\n### 1. Load Voice Profile\n\n```python\n# Load from YAML\nprofile = load_voice_profile(\"technical-authority\")\n```\n\n### 2. Analyze Source Content (if transforming)\n\n- Current tone characteristics\n- Vocabulary patterns\n- Structure patterns\n- Gap analysis vs target voice\n\n### 3. Apply Voice Characteristics\n\n**Tone Calibration**:\n- Adjust formality level (word choice, contractions)\n- Preserve evidence strength and all required hedging; adjust expression only\n- Set warmth (clinical vs personable)\n- Tune energy (measured vs enthusiastic)\n\n**Vocabulary Transformation**:\n- Replace words per `prefer`\u002F`avoid` guidance\n- Introduce domain terminology naturally\n- Use characteristic phrasing only where natural and supported; never insert signatures mechanically\n\n**Structure Adjustment**:\n- Modify sentence length distribution\n- Adjust paragraph breaks\n- Reorganize supported material within edit permissions; do not invent examples or analogies that add claims\n\n**Perspective Shift**:\n- Adjust narrative person (I, we, you, they)\n- Preserve supported opinions and attribution; do not invent a viewpoint\n- Set reader relationship tone\n\n### 4. Verify Authenticity Markers\n\nCheck these properties only when supported by the source; never invent them to satisfy a profile:\n- Acknowledges uncertainty (if specified)\n- Shows tradeoffs (if specified)\n- Uses specific numbers (if specified)\n- References constraints (if specified)\n\n## Usage Examples\n\n### Apply Named Voice\n\n```\nUser: \"Write release notes in technical-authority voice\"\n\nProcess:\n1. Load technical-authority.yaml\n2. Generate release notes with:\n   - Precise technical terminology\n   - Specific version numbers\n   - Direct, confident statements\n   - Tradeoff acknowledgments where relevant\n```\n\n### Transform Existing Content\n\n```\nUser: \"Make this documentation more friendly for beginners\"\n\nInput: \"The API endpoint accepts a JSON payload containing the requisite parameters...\"\n\nProcess:\n1. Load friendly-explainer.yaml\n2. Analyze: formal, technical, passive\n3. Transform to: casual, accessible, active\n\nOutput: \"To use this endpoint, send it some JSON with the info it needs...\"\n```\n\n### Calibrate Voice\n\n```\nUser: \"This is too formal, dial it back 30%\"\n\nProcess:\n1. Identify current formality (~0.8)\n2. Calculate target (0.8 - 0.3 = 0.5)\n3. Adjust vocabulary and structure for medium formality\n```\n\n## Voice Blending\n\nCombine multiple profiles:\n\n```\nUser: \"Write this with 70% technical-authority and 30% friendly-explainer\"\n\nProcess:\n1. Load both profiles\n2. Weighted merge:\n   - tone.formality: 0.7 * 0.7 + 0.3 * 0.3 = 0.58\n   - tone.warmth: 0.7 * 0.3 + 0.3 * 0.8 = 0.45\n   - etc.\n3. Apply merged profile\n```\n\n## Script Reference\n\n### voice_loader.py\nLoad and validate voice profiles:\n```bash\npython scripts\u002Fvoice_loader.py --profile technical-authority\n```\n\n### voice_analyzer.py\nAnalyze content against voice profile:\n```bash\npython scripts\u002Fvoice_analyzer.py --content input.md --profile technical-authority\n```\n\n## Integration\n\nWorks with:\n- `\u002Fvoice-apply` command for explicit invocation\n- `\u002Fvoice-create` command for generating new profiles\n- SDLC templates (apply appropriate voice per artifact type)\n- Marketing templates (brand voice consistency)\n\n## Output Format\n\nWhen reporting voice application:\n\n```\nVoice Applied: technical-authority\n\nTransformations:\n- Formality: 0.4 → 0.7 (increased)\n- Evidence strength: unchanged; original qualifications retained\n- Vocabulary: 12 replacements\n- Structure: reordered supported clauses within approved edit scope\n\nAuthenticity Check:\n✓ Acknowledges tradeoffs\n✓ Uses specific numbers\n✓ References constraints\n```\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002FREADME.md — Voice framework addon overview and profile documentation\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F — Built-in voice profile templates\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fwriting-quality\u002FREADME.md — Writing quality addon for authenticity enforcement\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference for voice commands\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Finstruction-comprehension.md — Parsing voice and style directives accurately\n","# Voice Apply Skill\n\n## Local writing and participating consumer recipes\n\nUse [author-controlled writing workflows](..\u002F..\u002Fdocs\u002Fwriting-workflows.md) for the\nactual `aiwg writing plan` and `aiwg writing proofread` commands, channel APIs,\nbounded revision, explicit learning, scoped MCP resources and separate receipts.\nPlanning creates a structured artifact; proofreading applies exact listed\nauthor-authorized corrections without a model or voice rewrite. A selected mode\nis not an applied transformation. Unsupported consumers use explicit instruction\nexports; never claim every provider response is intercepted. Keep original text\nand unresolved review decisions recoverable. Publication controls remain with\nthe user's existing workflow.\n\n## Reviewed voice application\n\nFor model-driven voice transformation, use the packaged [criticism\u002Fcorrection flow](..\u002F..\u002Fflows\u002Fvoice-critique-correction.flow.yaml) and [output impact guide](..\u002F..\u002Fdocs\u002Fvoice-output-impact.md). The selected development lane uses one Astra draw and at most one correction with the primary session as reviewer. Neutral analytical packets are required; private author provenance stays outside generator and corrector context. Preserve the original unless a hash-bound review accepts both fidelity and cadence. This does not change deterministic proofread-only behavior or qualify all channels.\n\n## Brief and fidelity contract\n\nFor author-controlled writing, prepare a structured\n[writing brief](https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fdocs\u002Fvoice\u002Fwriting-briefs.md) before generating prose.\nRecord reader task, supported propositions, limitations, intended action and\napproved author notes. Missing first-person experiences or design rationale are\neditorial gaps; do not invent them. Keep evidence strength independent of voice.\nProofread-only applies selected authorized correction IDs to the original source;\nother operations expose explicit permissions and lineage for downstream execution.\n\nRun [fidelity checks](https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fdocs\u002Fvoice\u002Ffidelity.md) after every final\nstructure\u002Fpresentation pass. Uncertain paraphrases require review. Preserve the\noriginal on configured fallback and report attempted versus retained changes\noutside product prose. Automated literal guards are not semantic proof.\n\n## Purpose\n\nTransform content to match a specified voice profile. This skill loads voice profiles and applies their characteristics (tone, vocabulary, structure, perspective) to new or existing content.\n\nEvidence constraints are recorded in [the natural voice ownership ADR](..\u002F..\u002Fdocs\u002Fnatural-voice\u002FADR-001-evidence-and-ownership.md)\nand [versioned ledger](..\u002F..\u002Fdocs\u002Fnatural-voice\u002Fevidence-ledger.v1.json).\nTreat phrase highlights as contextual editorial suggestions, never authorship\nprobabilities. Preserve supplied facts, uncertainty and author intent; an assertive\ntone does not strengthen evidence. Author notes were already part of the cited\npost-editing study. Neither topic-matched examples nor a fixed example count is\nestablished as a universally best choice. The ledger is an evidence contract,\nnot a claim that the planned natural voice pipeline has been qualified.\n\n## When This Skill Applies\n\n- User asks to \"write in X voice\" or \"use Y tone\"\n- User wants to \"make this sound more [casual\u002Fformal\u002Ftechnical\u002Fetc.]\"\n- User provides content and asks to transform its style\n- User references a voice profile by name\n- User wants content to match a specific audience or context\n\n## Trigger Phrases\n\n| Natural Language | Action |\n|------------------|--------|\n| \"Write this in technical voice\" | Apply technical-authority profile |\n| \"Make it more casual\" | Apply casual-conversational or calibrate toward casual |\n| \"This needs to sound executive\" | Apply executive-brief profile |\n| \"Explain like I'm a beginner\" | Apply friendly-explainer profile |\n| \"Use the [profile-name] voice\" | Load and apply named profile |\n| \"Transform this to match [example]\" | Analyze example, apply derived voice |\n\n## Voice Profile Locations\n\nSkill checks these locations (in order):\n1. Project: `.aiwg\u002Fvoices\u002F`\n2. User: `~\u002F.config\u002Faiwg\u002Fvoices\u002F`\n3. Built-in: `voice-framework\u002Fvoices\u002Ftemplates\u002F`\n\n## Built-in Voice Profiles\n\n| Profile | Description | Best For |\n|---------|-------------|----------|\n| `technical-authority` | Direct, precise, confident | Docs, architecture, engineering |\n| `friendly-explainer` | Approachable, encouraging | Tutorials, onboarding, education |\n| `executive-brief` | Concise, outcome-focused | Business cases, stakeholder comms |\n| `casual-conversational` | Relaxed, personal | Blog posts, social, newsletters |\n\n## Application Process\n\n### 1. Load Voice Profile\n\n```python\n# Load from YAML\nprofile = load_voice_profile(\"technical-authority\")\n```\n\n### 2. Analyze Source Content (if transforming)\n\n- Current tone characteristics\n- Vocabulary patterns\n- Structure patterns\n- Gap analysis vs target voice\n\n### 3. Apply Voice Characteristics\n\n**Tone Calibration**:\n- Adjust formality level (word choice, contractions)\n- Preserve evidence strength and all required hedging; adjust expression only\n- Set warmth (clinical vs personable)\n- Tune energy (measured vs enthusiastic)\n\n**Vocabulary Transformation**:\n- Replace words per `prefer`\u002F`avoid` guidance\n- Introduce domain terminology naturally\n- Use characteristic phrasing only where natural and supported; never insert signatures mechanically\n\n**Structure Adjustment**:\n- Modify sentence length distribution\n- Adjust paragraph breaks\n- Reorganize supported material within edit permissions; do not invent examples or analogies that add claims\n\n**Perspective Shift**:\n- Adjust narrative person (I, we, you, they)\n- Preserve supported opinions and attribution; do not invent a viewpoint\n- Set reader relationship tone\n\n### 4. Verify Authenticity Markers\n\nCheck these properties only when supported by the source; never invent them to satisfy a profile:\n- Acknowledges uncertainty (if specified)\n- Shows tradeoffs (if specified)\n- Uses specific numbers (if specified)\n- References constraints (if specified)\n\n## Usage Examples\n\n### Apply Named Voice\n\n```\nUser: \"Write release notes in technical-authority voice\"\n\nProcess:\n1. Load technical-authority.yaml\n2. Generate release notes with:\n   - Precise technical terminology\n   - Specific version numbers\n   - Direct, confident statements\n   - Tradeoff acknowledgments where relevant\n```\n\n### Transform Existing Content\n\n```\nUser: \"Make this documentation more friendly for beginners\"\n\nInput: \"The API endpoint accepts a JSON payload containing the requisite parameters...\"\n\nProcess:\n1. Load friendly-explainer.yaml\n2. Analyze: formal, technical, passive\n3. Transform to: casual, accessible, active\n\nOutput: \"To use this endpoint, send it some JSON with the info it needs...\"\n```\n\n### Calibrate Voice\n\n```\nUser: \"This is too formal, dial it back 30%\"\n\nProcess:\n1. Identify current formality (~0.8)\n2. Calculate target (0.8 - 0.3 = 0.5)\n3. Adjust vocabulary and structure for medium formality\n```\n\n## Voice Blending\n\nCombine multiple profiles:\n\n```\nUser: \"Write this with 70% technical-authority and 30% friendly-explainer\"\n\nProcess:\n1. Load both profiles\n2. Weighted merge:\n   - tone.formality: 0.7 * 0.7 + 0.3 * 0.3 = 0.58\n   - tone.warmth: 0.7 * 0.3 + 0.3 * 0.8 = 0.45\n   - etc.\n3. Apply merged profile\n```\n\n## Script Reference\n\n### voice_loader.py\nLoad and validate voice profiles:\n```bash\npython scripts\u002Fvoice_loader.py --profile technical-authority\n```\n\n### voice_analyzer.py\nAnalyze content against voice profile:\n```bash\npython scripts\u002Fvoice_analyzer.py --content input.md --profile technical-authority\n```\n\n## Integration\n\nWorks with:\n- `\u002Fvoice-apply` command for explicit invocation\n- `\u002Fvoice-create` command for generating new profiles\n- SDLC templates (apply appropriate voice per artifact type)\n- Marketing templates (brand voice consistency)\n\n## Output Format\n\nWhen reporting voice application:\n\n```\nVoice Applied: technical-authority\n\nTransformations:\n- Formality: 0.4 → 0.7 (increased)\n- Evidence strength: unchanged; original qualifications retained\n- Vocabulary: 12 replacements\n- Structure: reordered supported clauses within approved edit scope\n\nAuthenticity Check:\n✓ Acknowledges tradeoffs\n✓ Uses specific numbers\n✓ References constraints\n```\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002FREADME.md — Voice framework addon overview and profile documentation\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F — Built-in voice profile templates\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fwriting-quality\u002FREADME.md — Writing quality addon for authenticity enforcement\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — CLI reference for voice commands\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Frules\u002Finstruction-comprehension.md — Parsing voice and style directives accurately\n",{"name":5,"version":57,"triggers":58,"namespace":63,"platforms":64,"description":7},"1.0.0",[59,60,61,62],"help write better content","help me make this writing clearer and consistent","choose voice writing validation or marketing flow","apply voice profile","aiwg",[65],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Fvoice\u002Fskills\u002Fvoice-apply",36,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg","https:\u002F\u002Faiwg.io","https:\u002F\u002Fgithub.com\u002Fjmagly","https:\u002F\u002Fintegrolabs.io","ml\u002Fai, industrial automation, safety\u002Fsecurity, ssi\r\n\r\nmagly.net\r\nintegrolabs.io\r\naiwg.io\r\nfortemi.com\r\npagenary.com\r\nbytecask.com","2026-11-14 10:46:34",{"source":8,"skillName":5,"commands":77,"prompt":87,"zipAvailable":88},[78,81,84],{"tool":79,"command":80},"npx","npx skills add jmagly\u002Faiwg --skill voice-apply",{"tool":82,"command":83},"bunx","bunx skills add jmagly\u002Faiwg --skill voice-apply",{"tool":85,"command":86},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill voice-apply","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fvoice\u002Fskills\u002Fvoice-apply\u002FSKILL.md",true,[90,96],{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fvoice-dimensions.md","REFERENCE","参考文档",1985,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fvoice\u002Fskills\u002Fvoice-apply\u002Freferences\u002Fvoice-dimensions.md",{"path":97,"resourceType":98,"resourceTypeDesc":99,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Fvoice_loader.py","SCRIPT","脚本",8577,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fvoice\u002Fskills\u002Fvoice-apply\u002Fscripts\u002Fvoice_loader.py",[103,131,154,160,167,181],{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":110,"publishedAt":52},"01M70QA0BSYJ49EES9V4RE8QH1","host-hardening","Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[109],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":141,"publishedAt":52},"01M70PNT2Z4HMZPRBTAF6073NN","exposure-analysis","Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fforensics\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[137,140],{"categoryNo":138,"categoryName":139,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[142,143,144,114,145,119,146,147,121,148,111,149,123,150,151,126,127,152,153,45],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator",{"skillNo":155,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":159,"publishedAt":52},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[158],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[113,111,112,122,114,130,117,116,125,118,119,120,121,129,123,124,115,126,127,128],{"skillNo":161,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":162,"categories":163,"keywords":166,"publishedAt":52},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[164,165],{"categoryNo":138,"categoryName":139,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[143,142,126,145,119,146,121,144,111,149,123,150,151,114,127,148,147,152,153,45],{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":174,"publishedAt":52},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[173],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[175,176,177,178,179,180],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":52},"01M6CB4AVK1W76MFMPP0JP32CJ","pi-local","Pi-local duplicate-precedence fixture.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fproviders\u002Fpi\u002Fproject\u002F.pi\u002Fskills\u002Fpi-local\u002FSKILL.md",[187],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[189,190,150,191,176],"pi","pi local","duplicate"]