[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C17NP8B6NGJSQWTWTKM9M4":3,"skill-same:01M6C17NP8B6NGJSQWTWTKM9M4":79},{"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":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":72},"01M6C17NP8B6NGJSQWTWTKM9M4","context-firewall",null,"Audit provider-facing context, trust, drift, poisoning signals, and budget, then manage the reviewed baseline through a plan-first public CLI workflow","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\u002Fcontext-firewall\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],"firewall","context firewall","context","public","true","signals","drift","trust","manage","provider","cli","plan","baseline","first","Budget","audit","workflow","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: context-firewall\nplatforms: [all]\nkernel: true\ndescription: Audit provider-facing context, trust, drift, poisoning signals, and budget, then manage the reviewed baseline through a plan-first public CLI workflow\n---\n\n# Context Firewall\n\nUse the public AIWG CLI to inspect context that can enter provider sessions. Keep\nscans read-only, never print source bodies as part of a threat finding, and treat\nbaseline confirmation as an attestation that every planned record was reviewed.\n\n## Triggers\n\n- \"audit context\" → run the read-only firewall scan\n- \"check context budget\" → scan and explain budget attribution\n- \"review memory baseline\" → produce the full baseline plan without writing\n- \"approve the context baseline\" → plan first, then request explicit write authorization\n- \"doctor says the context baseline is missing\" → route to the plan-first workflow\n\n## Process\n\n1. Run `aiwg context-firewall scan`, adding repeatable `--provider \u003Cname>`,\n   `--strict`, or `--json` only when the task needs them.\n2. Report violations and warnings using paths, trust labels, review states,\n   digests, sizes, and signal identifiers. Do not reproduce suspicious content.\n3. If a baseline is requested, run `aiwg context-firewall baseline --plan`.\n   Inspect every emitted record and surface any quarantined, stale, external, or\n   changed entry before considering a write.\n4. Do not infer approval from a request to scan, diagnose, plan, or repair.\n   Baseline mutation requires explicit user authorization after the plan has\n   been presented and reviewed.\n5. Only after that authorization, run\n   `aiwg context-firewall baseline --write --confirm-reviewed`. Use\n   `--output \u003Cproject-relative-path>` only when the user requested a custom\n   destination.\n6. Re-run `aiwg context-firewall scan --strict` and report the resulting status.\n\nThe writer fails closed for unsafe records, paths outside the project root,\nsymlink escapes, and missing confirmation. Do not bypass those checks or invoke\nthe underlying implementation script directly.\n\n## Output\n\nReport:\n\n- providers and total portable context budget;\n- attribution by memory, rule, skill, agent, generated bridge, and project-local;\n- trust and review findings by path, without source bodies;\n- whether the operation was read-only or changed the reviewed baseline;\n- the final strict scan status.\n\n## References\n\n- @$AIWG_ROOT\u002Fdocs\u002Fsecurity\u002Fcontext-memory-firewall.md — operator model and remediation guide\n- @$AIWG_ROOT\u002Fdocs\u002Fagents\u002Fcli-reference.md — public CLI contract\n- @$AIWG_ROOT\u002Ftools\u002Fsecurity\u002Fcontext-memory-firewall.mjs — packaged engine; never invoke directly for user remediation\n","# Context Firewall\n\nUse the public AIWG CLI to inspect context that can enter provider sessions. Keep\nscans read-only, never print source bodies as part of a threat finding, and treat\nbaseline confirmation as an attestation that every planned record was reviewed.\n\n## Triggers\n\n- \"audit context\" → run the read-only firewall scan\n- \"check context budget\" → scan and explain budget attribution\n- \"review memory baseline\" → produce the full baseline plan without writing\n- \"approve the context baseline\" → plan first, then request explicit write authorization\n- \"doctor says the context baseline is missing\" → route to the plan-first workflow\n\n## Process\n\n1. Run `aiwg context-firewall scan`, adding repeatable `--provider \u003Cname>`,\n   `--strict`, or `--json` only when the task needs them.\n2. Report violations and warnings using paths, trust labels, review states,\n   digests, sizes, and signal identifiers. Do not reproduce suspicious content.\n3. If a baseline is requested, run `aiwg context-firewall baseline --plan`.\n   Inspect every emitted record and surface any quarantined, stale, external, or\n   changed entry before considering a write.\n4. Do not infer approval from a request to scan, diagnose, plan, or repair.\n   Baseline mutation requires explicit user authorization after the plan has\n   been presented and reviewed.\n5. Only after that authorization, run\n   `aiwg context-firewall baseline --write --confirm-reviewed`. Use\n   `--output \u003Cproject-relative-path>` only when the user requested a custom\n   destination.\n6. Re-run `aiwg context-firewall scan --strict` and report the resulting status.\n\nThe writer fails closed for unsafe records, paths outside the project root,\nsymlink escapes, and missing confirmation. Do not bypass those checks or invoke\nthe underlying implementation script directly.\n\n## Output\n\nReport:\n\n- providers and total portable context budget;\n- attribution by memory, rule, skill, agent, generated bridge, and project-local;\n- trust and review findings by path, without source bodies;\n- whether the operation was read-only or changed the reviewed baseline;\n- the final strict scan status.\n\n## References\n\n- @$AIWG_ROOT\u002Fdocs\u002Fsecurity\u002Fcontext-memory-firewall.md — operator model and remediation guide\n- @$AIWG_ROOT\u002Fdocs\u002Fagents\u002Fcli-reference.md — public CLI contract\n- @$AIWG_ROOT\u002Ftools\u002Fsecurity\u002Fcontext-memory-firewall.mjs — packaged engine; never invoke directly for user remediation\n",{"name":5,"kernel":46,"namespace":47,"platforms":48,"description":7},true,"aiwg",[49],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fcontext-firewall",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":61,"prompt":71,"zipAvailable":46},[62,65,68],{"tool":63,"command":64},"npx","npx skills add jmagly\u002Faiwg --skill context-firewall",{"tool":66,"command":67},"bunx","bunx skills add jmagly\u002Faiwg --skill context-firewall",{"tool":69,"command":70},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill context-firewall","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fcontext-firewall\u002FSKILL.md",[73],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"references\u002Fdetailed-guide.md","REFERENCE","参考文档",20125,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-fp-ts-react\u002Freferences\u002Fdetailed-guide.md",[80,105,129,135,142,155],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":87,"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",[86],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[88,89,90,91,92,93,94,35,95,96,97,98,99,100,39,101,24,102,103,104],"host","host hardening","hardening","read","re","recommendations","remediation","port","verification","Bash","access","only","retention","never","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,91,119,95,120,121,97,122,88,123,99,124,125,101,24,126,127,128],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":130,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":134,"publishedAt":41},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[133],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[90,88,89,98,91,104,94,93,39,35,95,96,97,103,99,100,92,101,24,102],{"skillNo":136,"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":137,"categories":138,"keywords":141,"publishedAt":41},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[139,140],{"categoryNo":112,"categoryName":113,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[117,116,101,119,95,120,97,118,88,123,99,124,125,91,24,122,121,126,127,128],{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":149,"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",[148],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[150,151,152,153,28,154],"fixture skill","fixture","rule","delivery","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,151],"pi","pi local","duplicate"]