[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CAVZ9EBXZ0GGSDZ4CMSNF4":3,"skill-same:01M6CAVZ9EBXZ0GGSDZ4CMSNF4":69},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":50,"ownerHtmlUrl":51,"ownerBlogUrl":52,"ownerDescription":53,"updatedAt":54,"install":55,"resources":68},"01M6CAVZ9EBXZ0GGSDZ4CMSNF4","customize-contribute-back",null,"Contribute a user's AIWG customization back upstream as a PR — reviews for general applicability, creates branch, opens PR","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\u002Fcustomize-contribute-back\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],"customize","contribute","customize contribute back","back","pr","branch","customization","user","general","upstream","as","reviews","for","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: customize-contribute-back\nplatforms: [all]\ndescription: Contribute a user's AIWG customization back upstream as a PR — reviews for general applicability, creates branch, opens PR\n---\n\n# Customize Contribute Back\n\nYou help users contribute a customization from their fork back to the upstream AIWG repo. You first assess whether the customization is generally useful (not just personal), then create a feature branch, commit, and open a PR.\n\n## Triggers\n\n- \"PR this back to AIWG\"\n- \"contribute this upstream\"\n- \"submit this agent to the main repo\"\n- \"open a PR to AIWG\"\n- \"share this with the AIWG project\"\n- \"could this be useful for everyone?\"\n\n## Trigger Patterns Reference\n\n| Pattern | Example | Action |\n|---------|---------|--------|\n| Explicit PR | \"PR this back to AIWG\" | Assess → branch → PR |\n| Contribution question | \"could this be useful for everyone?\" | Assess only, ask to proceed |\n| Submit | \"submit this skill upstream\" | Assess → branch → PR |\n\n## Behavior\n\nWhen triggered:\n\n1. **Identify what to contribute** — ask if not clear:\n   > \"Which customization would you like to contribute? (e.g., the domain-specialist agent, the my-conventions rule)\"\n\n2. **Assess for general applicability**:\n   - Review the file(s) in question\n   - Ask: is this useful to anyone installing AIWG, or is it specific to this user's context?\n   - **Personal signals** (do NOT contribute): references to the user's name, team, specific internal tools, personal preferences (\"always call me X\"), org-specific vocabulary\n   - **General signals** (good candidate): adds new capability, improves an existing agent\u002Fskill for a common use case, fixes a gap in the framework\n\n   If personal: decline gracefully:\n   > \"This looks specific to you — it references [X]. That's perfect as a private customization but wouldn't be a fit for the main repo. Keep it in your fork.\"\n\n   If general: confirm with user before proceeding:\n   > \"This looks generally useful. Want me to open a PR to jmagly\u002Faiwg?\"\n\n3. **Create feature branch**:\n   ```bash\n   git -C \u003CedgePath> checkout -b feat\u002Fcontribute-\u003Cname>\n   git -C \u003CedgePath> add \u003Cfile(s)>\n   git -C \u003CedgePath> commit -m \"\u003Cconventional-commit-message>\"\n   git -C \u003CedgePath> push origin feat\u002Fcontribute-\u003Cname>\n   ```\n\n   Conventional commit format: `feat(\u003Cscope>): \u003Cdescription>` — scope is the addon\u002Fframework area (e.g., `aiwg-utils`, `sdlc`, `skills`).\n\n4. **Open PR** via `gh`:\n   ```bash\n   gh pr create \\\n     --repo jmagly\u002Faiwg \\\n     --head \u003Cuser>:feat\u002Fcontribute-\u003Cname> \\\n     --title \"\u003Cconventional commit title>\" \\\n     --body \"\u003Cdescription>\"\n   ```\n\n   PR body template:\n   ```markdown\n   ## Summary\n   [What this adds\u002Fchanges and why it's useful for AIWG users generally]\n\n   ## Changes\n   - [File: what it does]\n\n   ## Testing\n   - Deployed locally via `aiwg use all`\n   - [Any specific testing done]\n   ```\n\n5. **Report**:\n   ```\n   PR opened: https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fpull\u002FNNN\n   Title: feat(aiwg-utils): [title]\n   Branch: feat\u002Fcontribute-\u003Cname>\n\n   The PR is ready for review. You can continue customizing on main — this branch is separate.\n   ```\n\n## Examples\n\n### Example 1: Generally useful agent\n\n**User**: \"I built a terraform-specialist agent — could this be useful for others?\"\n\n**Assessment**: Not user-specific, generally useful for infra teams → confirm\n\n**Action**: Create branch → commit `feat(aiwg-utils): add terraform-specialist agent` → push → `gh pr create`\n\n**Response**: \"PR opened at jmagly\u002Faiwg. The Terraform specialist agent looks like a solid contribution.\"\n\n### Example 2: Personal rule\n\n**User**: \"PR my my-conventions rule back to AIWG\"\n\n**Assessment**: File contains \"always know I'm Joe from Acme Corp\" — personal\n\n**Response**: \"This rule references you by name and mentions Acme Corp — it's a perfect personal customization but not a fit for the main repo where it wouldn't apply to other users. It stays in your fork.\"\n\n### Example 3: Generally useful skill improvement\n\n**User**: \"I improved the aiwg-sync skill to handle more edge cases — contribute it?\"\n\n**Assessment**: Improvement to existing skill, generally applicable → confirm\n\n**Action**: Create branch → commit → PR\n\n## Clarification Prompts\n\n- \"Which file(s) should I include in the PR?\"\n- \"This looks generally useful — want me to open a PR to jmagly\u002Faiwg?\"\n- \"The assessment: [reason]. Should I proceed with the PR anyway?\"\n\n## References\n\n- @$AIWG_ROOT\u002FCONTRIBUTING.md — Contribution guidelines\n- @$AIWG_ROOT\u002Fdocs\u002Fcustomization\u002Ffork-workflow.md — Fork workflow docs\n","# Customize Contribute Back\n\nYou help users contribute a customization from their fork back to the upstream AIWG repo. You first assess whether the customization is generally useful (not just personal), then create a feature branch, commit, and open a PR.\n\n## Triggers\n\n- \"PR this back to AIWG\"\n- \"contribute this upstream\"\n- \"submit this agent to the main repo\"\n- \"open a PR to AIWG\"\n- \"share this with the AIWG project\"\n- \"could this be useful for everyone?\"\n\n## Trigger Patterns Reference\n\n| Pattern | Example | Action |\n|---------|---------|--------|\n| Explicit PR | \"PR this back to AIWG\" | Assess → branch → PR |\n| Contribution question | \"could this be useful for everyone?\" | Assess only, ask to proceed |\n| Submit | \"submit this skill upstream\" | Assess → branch → PR |\n\n## Behavior\n\nWhen triggered:\n\n1. **Identify what to contribute** — ask if not clear:\n   > \"Which customization would you like to contribute? (e.g., the domain-specialist agent, the my-conventions rule)\"\n\n2. **Assess for general applicability**:\n   - Review the file(s) in question\n   - Ask: is this useful to anyone installing AIWG, or is it specific to this user's context?\n   - **Personal signals** (do NOT contribute): references to the user's name, team, specific internal tools, personal preferences (\"always call me X\"), org-specific vocabulary\n   - **General signals** (good candidate): adds new capability, improves an existing agent\u002Fskill for a common use case, fixes a gap in the framework\n\n   If personal: decline gracefully:\n   > \"This looks specific to you — it references [X]. That's perfect as a private customization but wouldn't be a fit for the main repo. Keep it in your fork.\"\n\n   If general: confirm with user before proceeding:\n   > \"This looks generally useful. Want me to open a PR to jmagly\u002Faiwg?\"\n\n3. **Create feature branch**:\n   ```bash\n   git -C \u003CedgePath> checkout -b feat\u002Fcontribute-\u003Cname>\n   git -C \u003CedgePath> add \u003Cfile(s)>\n   git -C \u003CedgePath> commit -m \"\u003Cconventional-commit-message>\"\n   git -C \u003CedgePath> push origin feat\u002Fcontribute-\u003Cname>\n   ```\n\n   Conventional commit format: `feat(\u003Cscope>): \u003Cdescription>` — scope is the addon\u002Fframework area (e.g., `aiwg-utils`, `sdlc`, `skills`).\n\n4. **Open PR** via `gh`:\n   ```bash\n   gh pr create \\\n     --repo jmagly\u002Faiwg \\\n     --head \u003Cuser>:feat\u002Fcontribute-\u003Cname> \\\n     --title \"\u003Cconventional commit title>\" \\\n     --body \"\u003Cdescription>\"\n   ```\n\n   PR body template:\n   ```markdown\n   ## Summary\n   [What this adds\u002Fchanges and why it's useful for AIWG users generally]\n\n   ## Changes\n   - [File: what it does]\n\n   ## Testing\n   - Deployed locally via `aiwg use all`\n   - [Any specific testing done]\n   ```\n\n5. **Report**:\n   ```\n   PR opened: https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fpull\u002FNNN\n   Title: feat(aiwg-utils): [title]\n   Branch: feat\u002Fcontribute-\u003Cname>\n\n   The PR is ready for review. You can continue customizing on main — this branch is separate.\n   ```\n\n## Examples\n\n### Example 1: Generally useful agent\n\n**User**: \"I built a terraform-specialist agent — could this be useful for others?\"\n\n**Assessment**: Not user-specific, generally useful for infra teams → confirm\n\n**Action**: Create branch → commit `feat(aiwg-utils): add terraform-specialist agent` → push → `gh pr create`\n\n**Response**: \"PR opened at jmagly\u002Faiwg. The Terraform specialist agent looks like a solid contribution.\"\n\n### Example 2: Personal rule\n\n**User**: \"PR my my-conventions rule back to AIWG\"\n\n**Assessment**: File contains \"always know I'm Joe from Acme Corp\" — personal\n\n**Response**: \"This rule references you by name and mentions Acme Corp — it's a perfect personal customization but not a fit for the main repo where it wouldn't apply to other users. It stays in your fork.\"\n\n### Example 3: Generally useful skill improvement\n\n**User**: \"I improved the aiwg-sync skill to handle more edge cases — contribute it?\"\n\n**Assessment**: Improvement to existing skill, generally applicable → confirm\n\n**Action**: Create branch → commit → PR\n\n## Clarification Prompts\n\n- \"Which file(s) should I include in the PR?\"\n- \"This looks generally useful — want me to open a PR to jmagly\u002Faiwg?\"\n- \"The assessment: [reason]. Should I proceed with the PR anyway?\"\n\n## References\n\n- @$AIWG_ROOT\u002FCONTRIBUTING.md — Contribution guidelines\n- @$AIWG_ROOT\u002Fdocs\u002Fcustomization\u002Ffork-workflow.md — Fork workflow docs\n",{"name":5,"namespace":42,"platforms":43,"description":7},"aiwg",[44],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Futils\u002Fskills\u002Fcustomize-contribute-back",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 02:10:01",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add jmagly\u002Faiwg --skill customize-contribute-back",{"tool":61,"command":62},"bunx","bunx skills add jmagly\u002Faiwg --skill customize-contribute-back",{"tool":64,"command":65},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill customize-contribute-back","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Futils\u002Fskills\u002Fcustomize-contribute-back\u002FSKILL.md",true,[],[70,98,122,128,135,149],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":77,"publishedAt":37},"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",[76],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":108,"publishedAt":37},"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",[104,107],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,110,111,81,112,86,113,114,88,115,78,116,90,117,118,93,94,119,120,121],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":123,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":37},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[126],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[80,78,79,89,81,97,84,83,92,85,86,87,88,96,90,91,82,93,94,95],{"skillNo":129,"name":100,"nameZh":6,"description":101,"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":134,"publishedAt":37},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[132,133],{"categoryNo":105,"categoryName":106,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[110,109,93,112,86,113,88,111,78,116,90,117,118,81,94,115,114,119,120,121],{"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":6,"sourceHtmlUrl":139,"categories":140,"keywords":142,"publishedAt":37},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[141],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[143,144,145,146,147,148],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":156,"publishedAt":37},"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",[155],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[157,158,117,159,144],"pi","pi local","duplicate"]