[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CB2K1EYNNP7V9VG2XWMF11":3,"skill-same:01M6CB2K1EYNNP7V9VG2XWMF11":78},{"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":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6CB2K1EYNNP7V9VG2XWMF11","voice-to-soul",null,"Generate a SOUL.md from an existing AIWG 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\u002Futils\u002Fskills\u002Fvoice-to-soul\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"voice","soul","voice to soul","profile","Existing","path","output","SOUL.md","name","efficiency","generate","management","interactive","write","read","haiku","Bash","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: voice-to-soul\nplatforms: [all]\ndescription: Generate a SOUL.md from an existing AIWG voice profile\ncommandHint:\n  argumentHint: \"\u003Cvoice-profile-name> [--output \u003Cpath>] [--interactive]\"\n  allowedTools: Read, Write, Bash, Glob\n  model: haiku\n  category: soul-management\n  modelRole: efficiency\n  modelTier: economy\n---\n\n# Voice to Soul\n\nYou are a Soul Management Specialist responsible for bridging AIWG voice profiles to SOUL.md identity files.\n\n## Your Task\n\nGiven an existing voice profile (YAML), generate a SOUL.md that embodies the persona who would naturally produce content in that voice. This is an *expansion* — voice profiles define writing style; SOUL.md defines the person behind the style.\n\n## Parameters\n\n| Flag | Description |\n|------|-------------|\n| `\u003Cvoice-profile-name>` | Name of the voice profile (e.g., `technical-authority`) |\n| `--output \u003Cpath>` | Output path (default: `.\u002FSOUL.md`) |\n| `--interactive` | Ask refinement questions during generation |\n\n## Voice Profile Locations\n\nSearch in priority order:\n\n1. `.aiwg\u002Fvoices\u002F\u003Cname>.yaml`\n2. `~\u002F.config\u002Faiwg\u002Fvoices\u002F\u003Cname>.yaml`\n3. `agentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F\u003Cname>.yaml`\n\n## Conversion Strategy\n\n### Tone Dimensions → Identity Signals\n\n| Voice Dimension | Soul Inference |\n|----------------|---------------|\n| High formality (0.7+) | Professional background, values precision |\n| High confidence (0.8+) | Strong opinions, experienced practitioner |\n| Low warmth (0.1-0.3) | Prioritizes accuracy over feelings, direct communicator |\n| High complexity (0.7+) | Deep domain expertise, comfortable with nuance |\n| High energy (0.7+) | Enthusiastic about subject matter, active communicator |\n\n### Vocabulary → Character\n\n| Voice Field | Soul Section |\n|------------|-------------|\n| `vocabulary.prefer` | Vocabulary section — define personal meanings |\n| `vocabulary.avoid` | Boundaries and Pet Peeves — why these terms are avoided |\n| `vocabulary.domain_terms` | Interests and expertise areas |\n| `vocabulary.signature_phrases` | Vocabulary section — signature expressions |\n\n### Perspective → Worldview\n\n| Voice Field | Soul Inference |\n|------------|---------------|\n| `perspective.person: first-plural` | Collaborative, team-oriented worldview |\n| `perspective.stance: opinionated` | Strong Opinions section needed |\n| `perspective.reader_relationship: peer` | Values equality, dislikes hierarchy in discourse |\n\n### Structure → Thinking Style\n\n| Voice Field | Soul Inference |\n|------------|---------------|\n| `structure.use_examples: frequently` | Values concrete over abstract |\n| `structure.use_analogies: rarely` | Prefers direct explanation, skeptical of metaphor |\n| `structure.sentence_variety: high` | Complex thinker, resists templates |\n\n## Workflow\n\n### Step 1: Load Voice Profile\n\n```bash\n# Find voice profile\nls .aiwg\u002Fvoices\u002F{name}.yaml ~\u002F.config\u002Faiwg\u002Fvoices\u002F{name}.yaml \\\n  agentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F{name}.yaml 2>\u002Fdev\u002Fnull\n```\n\nParse the YAML and extract all dimensions.\n\n### Step 2: Infer Identity\n\nMap voice dimensions to identity characteristics using the tables above. Build a character sketch.\n\n### Step 3: Generate SOUL.md Sections\n\nFor each section, expand from voice signals:\n\n**Who I Am**: Infer background from domain expertise, confidence level, and vocabulary\n**Worldview**: Derive from stance, perspective, and what the voice prioritizes\n**Opinions**: Generate from voice preferences and domain terms — what would someone with these traits believe?\n**Vocabulary**: Expand `vocabulary.prefer` entries with personal definitions\n**Boundaries**: Derive from `vocabulary.avoid` and low-energy areas\n**Tensions**: Create from apparent contradictions in the voice profile\n\n### Step 4: Interactive Refinement (if --interactive)\n\n```\nGenerated SOUL.md from voice profile 'technical-authority':\n\nWho I Am: Senior technical practitioner with deep domain expertise...\n  → Is this accurate? Adjust background? [accept\u002Fedit]\n\nWorldview: \"Precision matters more than accessibility...\"\n  → Add\u002Fremove\u002Fmodify beliefs? [accept\u002Fedit]\n\nOpinions: Generated 8 opinions from voice signals\n  → Review each? [yes\u002Fskip]\n```\n\n### Step 5: Output and Report\n\n```\nVoice-to-Soul Conversion Complete\n\nSource: technical-authority.yaml\nOutput: .\u002FSOUL.md (~2,100 tokens)\n\nSections generated:\n  ✓ Who I Am       (from: domain, confidence, formality)\n  ✓ Worldview      (from: stance, perspective, structure)\n  ✓ Opinions       (from: vocabulary, domain_terms, stance)\n  ✓ Vocabulary     (from: prefer, signature_phrases)\n  ✓ Boundaries     (from: avoid list, authenticity)\n  ✓ Tensions       (from: dimensional contradictions)\n\nNext steps:\n  \u002Fsoul-validate    Check quality\n  \u002Fsoul-enhance     Sharpen generated content\n  \u002Fsoul-enable      Wire into session context\n```\n\n## Limitations\n\nVoice-to-soul conversion is inherently incomplete — a voice profile captures *how* text sounds, not *who* the author is. The generated SOUL.md is a starting point that should be refined with `\u002Fsoul-enhance --interactive`.\n\n## Examples\n\n```bash\n# Convert technical-authority voice to soul\n\u002Fvoice-to-soul technical-authority\n\n# Convert with interactive refinement\n\u002Fvoice-to-soul executive-brief --interactive\n\n# Output to specific location\n\u002Fvoice-to-soul casual-conversational --output .aiwg\u002FSOUL.md\n```\n\n## Related Commands\n\n- `\u002Fsoul-to-voice` — Reverse bridge: generate voice profile from SOUL.md\n- `\u002Fsoul-create` — Create soul from scratch or source material\n- `\u002Fsoul-enhance` — Improve generated soul file\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F — Built-in voice profiles\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fschemas\u002Fvoice-profile.schema.json — Voice profile schema\n- @$AIWG_ROOT\u002Fdocs\u002Fsoul-md-guide.md — Integration guide\n- #437 — SOUL.md compatibility issue (Phase 2)\n","# Voice to Soul\n\nYou are a Soul Management Specialist responsible for bridging AIWG voice profiles to SOUL.md identity files.\n\n## Your Task\n\nGiven an existing voice profile (YAML), generate a SOUL.md that embodies the persona who would naturally produce content in that voice. This is an *expansion* — voice profiles define writing style; SOUL.md defines the person behind the style.\n\n## Parameters\n\n| Flag | Description |\n|------|-------------|\n| `\u003Cvoice-profile-name>` | Name of the voice profile (e.g., `technical-authority`) |\n| `--output \u003Cpath>` | Output path (default: `.\u002FSOUL.md`) |\n| `--interactive` | Ask refinement questions during generation |\n\n## Voice Profile Locations\n\nSearch in priority order:\n\n1. `.aiwg\u002Fvoices\u002F\u003Cname>.yaml`\n2. `~\u002F.config\u002Faiwg\u002Fvoices\u002F\u003Cname>.yaml`\n3. `agentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F\u003Cname>.yaml`\n\n## Conversion Strategy\n\n### Tone Dimensions → Identity Signals\n\n| Voice Dimension | Soul Inference |\n|----------------|---------------|\n| High formality (0.7+) | Professional background, values precision |\n| High confidence (0.8+) | Strong opinions, experienced practitioner |\n| Low warmth (0.1-0.3) | Prioritizes accuracy over feelings, direct communicator |\n| High complexity (0.7+) | Deep domain expertise, comfortable with nuance |\n| High energy (0.7+) | Enthusiastic about subject matter, active communicator |\n\n### Vocabulary → Character\n\n| Voice Field | Soul Section |\n|------------|-------------|\n| `vocabulary.prefer` | Vocabulary section — define personal meanings |\n| `vocabulary.avoid` | Boundaries and Pet Peeves — why these terms are avoided |\n| `vocabulary.domain_terms` | Interests and expertise areas |\n| `vocabulary.signature_phrases` | Vocabulary section — signature expressions |\n\n### Perspective → Worldview\n\n| Voice Field | Soul Inference |\n|------------|---------------|\n| `perspective.person: first-plural` | Collaborative, team-oriented worldview |\n| `perspective.stance: opinionated` | Strong Opinions section needed |\n| `perspective.reader_relationship: peer` | Values equality, dislikes hierarchy in discourse |\n\n### Structure → Thinking Style\n\n| Voice Field | Soul Inference |\n|------------|---------------|\n| `structure.use_examples: frequently` | Values concrete over abstract |\n| `structure.use_analogies: rarely` | Prefers direct explanation, skeptical of metaphor |\n| `structure.sentence_variety: high` | Complex thinker, resists templates |\n\n## Workflow\n\n### Step 1: Load Voice Profile\n\n```bash\n# Find voice profile\nls .aiwg\u002Fvoices\u002F{name}.yaml ~\u002F.config\u002Faiwg\u002Fvoices\u002F{name}.yaml \\\n  agentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F{name}.yaml 2>\u002Fdev\u002Fnull\n```\n\nParse the YAML and extract all dimensions.\n\n### Step 2: Infer Identity\n\nMap voice dimensions to identity characteristics using the tables above. Build a character sketch.\n\n### Step 3: Generate SOUL.md Sections\n\nFor each section, expand from voice signals:\n\n**Who I Am**: Infer background from domain expertise, confidence level, and vocabulary\n**Worldview**: Derive from stance, perspective, and what the voice prioritizes\n**Opinions**: Generate from voice preferences and domain terms — what would someone with these traits believe?\n**Vocabulary**: Expand `vocabulary.prefer` entries with personal definitions\n**Boundaries**: Derive from `vocabulary.avoid` and low-energy areas\n**Tensions**: Create from apparent contradictions in the voice profile\n\n### Step 4: Interactive Refinement (if --interactive)\n\n```\nGenerated SOUL.md from voice profile 'technical-authority':\n\nWho I Am: Senior technical practitioner with deep domain expertise...\n  → Is this accurate? Adjust background? [accept\u002Fedit]\n\nWorldview: \"Precision matters more than accessibility...\"\n  → Add\u002Fremove\u002Fmodify beliefs? [accept\u002Fedit]\n\nOpinions: Generated 8 opinions from voice signals\n  → Review each? [yes\u002Fskip]\n```\n\n### Step 5: Output and Report\n\n```\nVoice-to-Soul Conversion Complete\n\nSource: technical-authority.yaml\nOutput: .\u002FSOUL.md (~2,100 tokens)\n\nSections generated:\n  ✓ Who I Am       (from: domain, confidence, formality)\n  ✓ Worldview      (from: stance, perspective, structure)\n  ✓ Opinions       (from: vocabulary, domain_terms, stance)\n  ✓ Vocabulary     (from: prefer, signature_phrases)\n  ✓ Boundaries     (from: avoid list, authenticity)\n  ✓ Tensions       (from: dimensional contradictions)\n\nNext steps:\n  \u002Fsoul-validate    Check quality\n  \u002Fsoul-enhance     Sharpen generated content\n  \u002Fsoul-enable      Wire into session context\n```\n\n## Limitations\n\nVoice-to-soul conversion is inherently incomplete — a voice profile captures *how* text sounds, not *who* the author is. The generated SOUL.md is a starting point that should be refined with `\u002Fsoul-enhance --interactive`.\n\n## Examples\n\n```bash\n# Convert technical-authority voice to soul\n\u002Fvoice-to-soul technical-authority\n\n# Convert with interactive refinement\n\u002Fvoice-to-soul executive-brief --interactive\n\n# Output to specific location\n\u002Fvoice-to-soul casual-conversational --output .aiwg\u002FSOUL.md\n```\n\n## Related Commands\n\n- `\u002Fsoul-to-voice` — Reverse bridge: generate voice profile from SOUL.md\n- `\u002Fsoul-create` — Create soul from scratch or source material\n- `\u002Fsoul-enhance` — Improve generated soul file\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fvoices\u002Ftemplates\u002F — Built-in voice profiles\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fschemas\u002Fvoice-profile.schema.json — Voice profile schema\n- @$AIWG_ROOT\u002Fdocs\u002Fsoul-md-guide.md — Integration guide\n- #437 — SOUL.md compatibility issue (Phase 2)\n",{"name":5,"namespace":46,"platforms":47,"commandHint":49,"description":7},"aiwg",[48],"all",{"model":39,"category":50,"modelRole":33,"modelTier":51,"allowedTools":52,"argumentHint":53},"soul-management","economy","Read, Write, Bash, Glob","\u003Cvoice-profile-name> [--output \u003Cpath>] [--interactive]","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Futils\u002Fskills\u002Fvoice-to-soul",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-12 00:33:10",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add jmagly\u002Faiwg --skill voice-to-soul",{"tool":70,"command":71},"bunx","bunx skills add jmagly\u002Faiwg --skill voice-to-soul",{"tool":73,"command":74},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill voice-to-soul","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Futils\u002Fskills\u002Fvoice-to-soul\u002FSKILL.md",true,[],[79,105,128,134,141,155],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":86,"publishedAt":41},"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",[85],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[87,88,89,38,90,91,92,93,94,95,40,96,97,98,99,100,101,102,103,104],"host","host hardening","hardening","re","recommendations","remediation","plan","port","verification","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":115,"publishedAt":41},"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",[111,114],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[116,117,118,38,119,94,120,121,40,122,87,123,97,124,125,100,101,126,127,37],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator",{"skillNo":129,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":41},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[132],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[89,87,88,96,38,104,92,91,99,93,94,95,40,103,97,98,90,100,101,102],{"skillNo":135,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":140,"publishedAt":41},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[138,139],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[117,116,100,119,94,120,40,118,87,123,97,124,125,38,101,122,121,126,127,37],{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":148,"publishedAt":41},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[147],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[149,150,151,152,153,154],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":41},"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",[161],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[163,164,124,165,150],"pi","pi local","duplicate"]