[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C1CVYPD3HCFJHDF5DM3JFX":3,"skill-same:01M6C1CVYPD3HCFJHDF5DM3JFX":67},{"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":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6C1CVYPD3HCFJHDF5DM3JFX","soul-blend",null,"Merge multiple SOUL.md files into a composite persona for team-level agents or multi-perspective characters","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\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fsoul-blend\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],"soul blend","soul","merge","team","persona","files","multi","SOUL.md","for","perspective","characters","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: soul-blend\nplatforms: [all]\ndescription: Merge multiple SOUL.md files into a composite persona for team-level agents or multi-perspective characters\n---\n\n# soul-blend\n\nMerge multiple SOUL.md files into a composite persona — for team-level agents or multi-perspective characters.\n\n## Triggers\n\n\nAlternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):\n\n- \"blend souls\" → multi-SOUL.md synthesis\n- \"merge voice profiles\" → soul blending\n\n## Behavior\n\nWhen triggered, this skill takes two or more SOUL.md files and produces a unified composite that preserves distinctive elements from each while resolving conflicts coherently.\n\n### Blending Process\n\n1. **Load source souls** — read all input SOUL.md files\n2. **Identify overlaps** — shared beliefs, vocabulary, boundaries\n3. **Identify conflicts** — contradictory opinions, incompatible boundaries\n4. **Resolve conflicts** using a configurable strategy\n5. **Merge non-conflicting sections** — union of vocabulary, interests, influences\n6. **Generate composite** — new SOUL.md with attribution for each element\n7. **Validate result** — run soul-validate on the output\n\n### Conflict Resolution Strategies\n\n| Strategy | Behavior | Use When |\n|----------|----------|----------|\n| `weighted` (default) | Primary soul takes precedence on conflicts | One soul is dominant, others add flavor |\n| `union` | Include both sides of each conflict as a Tension | Building a deliberately complex persona |\n| `consensus` | Keep only opinions both souls share | Building a team consensus persona |\n| `interactive` | Ask user to resolve each conflict | Precision matters |\n\n### Section Merging Rules\n\n| Section | Merge Strategy |\n|---------|---------------|\n| Who I Am | Combine backgrounds into composite narrative |\n| Worldview | Union non-conflicting beliefs; conflicts → strategy |\n| Opinions | Union non-conflicting; conflicts → strategy |\n| Standards | **Highest-bar wins** by default. Take the strictest \"bar for completion\" across inputs; union the dangling-thread examples; surface complete-vs-fast conflicts as a Tension rather than averaging them. Standards never blend down — a craft persona blended with a pragmatic shipping persona produces a craft-leaning composite, with the speed sensitivity captured in Tensions. Override with `--strategy consensus` to keep only the bar both souls share. |\n| Vocabulary | Union all terms; flag conflicting definitions |\n| Boundaries | Union all (strictest boundary wins) |\n| Interests | Union all |\n| Influences | Union all, deduplicate |\n| Tensions | Union all + add new tensions from resolved conflicts |\n| Pet Peeves | Union all |\n\n### Output Format\n\nThe blended SOUL.md includes attribution comments:\n\n```markdown\n## Worldview\n\n- Simplicity beats cleverness \u003C!-- from: engineer.soul.md -->\n- Security is not optional \u003C!-- from: auditor.soul.md -->\n- Both agreed: test what matters, not everything \u003C!-- shared -->\n\n## Tensions\n\n- Values moving fast (engineer) but also thorough review (auditor) \u003C!-- blend tension -->\n```\n\n## Parameters\n\n| Flag | Description |\n|------|-------------|\n| `\u003Cfiles...>` | Two or more SOUL.md files to blend |\n| `--primary \u003Cpath>` | Designate the primary soul for weighted blending |\n| `--strategy \u003Cname>` | Conflict resolution: `weighted`, `union`, `consensus`, `interactive` |\n| `--output \u003Cpath>` | Output path (default: `.\u002FSOUL.md`) |\n| `--strip-attribution` | Remove `\u003C!-- from: -->` comments from output |\n\n## Examples\n\n```bash\n# Blend two agent souls\n\u002Fsoul-blend .claude\u002Fagents\u002Ftest-engineer.soul.md .claude\u002Fagents\u002Fsecurity-auditor.soul.md\n\n# Weighted blend with primary\n\u002Fsoul-blend --primary engineer.soul.md engineer.soul.md designer.soul.md\n\n# Interactive conflict resolution\n\u002Fsoul-blend --strategy interactive soul-a.md soul-b.md soul-c.md\n\n# Team consensus\n\u002Fsoul-blend --strategy consensus team-member-*.soul.md --output team-soul.md\n```\n\n## Integration\n\n### With voice-blend\n\nParallel to `\u002Fvoice-blend` which merges voice profiles. If both voice profiles and soul files exist for the same sources, consider blending both and running `\u002Fsoul-to-voice` to keep them synchronized.\n\n### With SDLC Agent Souls\n\nBlend SDLC agent souls to create cross-functional agents:\n\n```bash\n# Create a \"security-aware test engineer\"\n\u002Fsoul-blend \\\n  --primary .claude\u002Fagents\u002Ftest-engineer.soul.md \\\n  .claude\u002Fagents\u002Ftest-engineer.soul.md \\\n  .claude\u002Fagents\u002Fsecurity-auditor.soul.md \\\n  --output .claude\u002Fagents\u002Fsecurity-test-engineer.soul.md\n```\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fskills\u002Fvoice-blend\u002FSKILL.md — Voice blending (parallel pattern)\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fsoul-create\u002FSKILL.md — Soul creation\n- @$AIWG_ROOT\u002Fdocs\u002Fsoul-md-guide.md — Integration guide\n- #437 — SOUL.md compatibility issue (Phase 3)\n","# soul-blend\n\nMerge multiple SOUL.md files into a composite persona — for team-level agents or multi-perspective characters.\n\n## Triggers\n\n\nAlternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):\n\n- \"blend souls\" → multi-SOUL.md synthesis\n- \"merge voice profiles\" → soul blending\n\n## Behavior\n\nWhen triggered, this skill takes two or more SOUL.md files and produces a unified composite that preserves distinctive elements from each while resolving conflicts coherently.\n\n### Blending Process\n\n1. **Load source souls** — read all input SOUL.md files\n2. **Identify overlaps** — shared beliefs, vocabulary, boundaries\n3. **Identify conflicts** — contradictory opinions, incompatible boundaries\n4. **Resolve conflicts** using a configurable strategy\n5. **Merge non-conflicting sections** — union of vocabulary, interests, influences\n6. **Generate composite** — new SOUL.md with attribution for each element\n7. **Validate result** — run soul-validate on the output\n\n### Conflict Resolution Strategies\n\n| Strategy | Behavior | Use When |\n|----------|----------|----------|\n| `weighted` (default) | Primary soul takes precedence on conflicts | One soul is dominant, others add flavor |\n| `union` | Include both sides of each conflict as a Tension | Building a deliberately complex persona |\n| `consensus` | Keep only opinions both souls share | Building a team consensus persona |\n| `interactive` | Ask user to resolve each conflict | Precision matters |\n\n### Section Merging Rules\n\n| Section | Merge Strategy |\n|---------|---------------|\n| Who I Am | Combine backgrounds into composite narrative |\n| Worldview | Union non-conflicting beliefs; conflicts → strategy |\n| Opinions | Union non-conflicting; conflicts → strategy |\n| Standards | **Highest-bar wins** by default. Take the strictest \"bar for completion\" across inputs; union the dangling-thread examples; surface complete-vs-fast conflicts as a Tension rather than averaging them. Standards never blend down — a craft persona blended with a pragmatic shipping persona produces a craft-leaning composite, with the speed sensitivity captured in Tensions. Override with `--strategy consensus` to keep only the bar both souls share. |\n| Vocabulary | Union all terms; flag conflicting definitions |\n| Boundaries | Union all (strictest boundary wins) |\n| Interests | Union all |\n| Influences | Union all, deduplicate |\n| Tensions | Union all + add new tensions from resolved conflicts |\n| Pet Peeves | Union all |\n\n### Output Format\n\nThe blended SOUL.md includes attribution comments:\n\n```markdown\n## Worldview\n\n- Simplicity beats cleverness \u003C!-- from: engineer.soul.md -->\n- Security is not optional \u003C!-- from: auditor.soul.md -->\n- Both agreed: test what matters, not everything \u003C!-- shared -->\n\n## Tensions\n\n- Values moving fast (engineer) but also thorough review (auditor) \u003C!-- blend tension -->\n```\n\n## Parameters\n\n| Flag | Description |\n|------|-------------|\n| `\u003Cfiles...>` | Two or more SOUL.md files to blend |\n| `--primary \u003Cpath>` | Designate the primary soul for weighted blending |\n| `--strategy \u003Cname>` | Conflict resolution: `weighted`, `union`, `consensus`, `interactive` |\n| `--output \u003Cpath>` | Output path (default: `.\u002FSOUL.md`) |\n| `--strip-attribution` | Remove `\u003C!-- from: -->` comments from output |\n\n## Examples\n\n```bash\n# Blend two agent souls\n\u002Fsoul-blend .claude\u002Fagents\u002Ftest-engineer.soul.md .claude\u002Fagents\u002Fsecurity-auditor.soul.md\n\n# Weighted blend with primary\n\u002Fsoul-blend --primary engineer.soul.md engineer.soul.md designer.soul.md\n\n# Interactive conflict resolution\n\u002Fsoul-blend --strategy interactive soul-a.md soul-b.md soul-c.md\n\n# Team consensus\n\u002Fsoul-blend --strategy consensus team-member-*.soul.md --output team-soul.md\n```\n\n## Integration\n\n### With voice-blend\n\nParallel to `\u002Fvoice-blend` which merges voice profiles. If both voice profiles and soul files exist for the same sources, consider blending both and running `\u002Fsoul-to-voice` to keep them synchronized.\n\n### With SDLC Agent Souls\n\nBlend SDLC agent souls to create cross-functional agents:\n\n```bash\n# Create a \"security-aware test engineer\"\n\u002Fsoul-blend \\\n  --primary .claude\u002Fagents\u002Ftest-engineer.soul.md \\\n  .claude\u002Fagents\u002Ftest-engineer.soul.md \\\n  .claude\u002Fagents\u002Fsecurity-auditor.soul.md \\\n  --output .claude\u002Fagents\u002Fsecurity-test-engineer.soul.md\n```\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Fvoice-framework\u002Fskills\u002Fvoice-blend\u002FSKILL.md — Voice blending (parallel pattern)\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fsoul-create\u002FSKILL.md — Soul creation\n- @$AIWG_ROOT\u002Fdocs\u002Fsoul-md-guide.md — Integration guide\n- #437 — SOUL.md compatibility issue (Phase 3)\n",{"name":5,"namespace":40,"platforms":41,"description":7},"aiwg",[42],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fsoul-blend",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-11 08:11:25",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add jmagly\u002Faiwg --skill soul-blend",{"tool":59,"command":60},"bunx","bunx skills add jmagly\u002Faiwg --skill soul-blend",{"tool":62,"command":63},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill soul-blend","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fsoul-blend\u002FSKILL.md",true,[],[68,96,120,126,133,147],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":75,"publishedAt":35},"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",[74],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":106,"publishedAt":35},"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",[102,105],{"categoryNo":103,"categoryName":104,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[107,108,109,79,110,84,111,112,86,113,76,114,88,115,116,91,92,117,118,119],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":121,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":35},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[124],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[78,76,77,87,79,95,82,81,90,83,84,85,86,94,88,89,80,91,92,93],{"skillNo":127,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":132,"publishedAt":35},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[130,131],{"categoryNo":103,"categoryName":104,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[108,107,91,110,84,111,86,109,76,114,88,115,116,79,92,113,112,117,118,119],{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":140,"publishedAt":35},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[139],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[141,142,143,144,145,146],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":35},"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",[153],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[155,156,115,157,142],"pi","pi local","duplicate"]