[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C32FE5FD1YNW49KADX7YFX":3,"skill-same:01M6C32FE5FD1YNW49KADX7YFX":98},{"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":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":74,"commitSha":75,"skillDirectory":76,"forksCount":77,"repositoryHtmlUrl":78,"repositoryHomepageUrl":79,"ownerHtmlUrl":80,"ownerBlogUrl":81,"ownerDescription":82,"updatedAt":83,"install":84,"resources":97},"01M6C32FE5FD1YNW49KADX7YFX","line-memory",null,"Retain and retrieve small durable project facts through a bounded, recency-ordered plain-text memory","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\u002Fline-memory\u002Fskills\u002Fline-memory\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,41,42,43,44,45,46,47,48,49,50,51],"memory","line","line memory","context","retain","startup context","reading","plain-text","move","false","commands","project","only","never","use","personal","list","text","prune","Bash","secrets","credentials","data","startup","file","search","config","cli","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: line-memory\nplatforms: [all]\ndescription: Retain and retrieve small durable project facts through a bounded, recency-ordered plain-text memory\nrequires:\n  - addon: line-memory deployed with `aiwg use line-memory`\nensures:\n  - bounded-retrieval: memory queries return only the requested slice\n  - recency-retention: referenced memories move to the newest position\ninvariants:\n  - never store secrets, credentials, tokens, or sensitive personal data\n  - never inject the complete memory file into provider startup context\n  - use line-memory CLI commands instead of directly reading the complete backing file\ncommandHint:\n  argumentHint: add|list|search|touch|prune|config\n  allowedTools: Bash\n  category: memory\n  orchestration: false\n---\n\n# Line Memory\n\nUse line memory for a small set of durable project facts that benefit from\nleast-recently-used retention but do not need wiki pages, semantic search,\ncitations, or a knowledge graph.\n\n## Retrieval\n\nAlways retrieve a bounded slice:\n\n```bash\naiwg line-memory search \"canonical tracker\" --limit 5\naiwg line-memory list --limit 20\n```\n\n`list` and `search` refresh the returned entries by moving them to the newest\nposition. Pass `--no-touch` only for inspection that must not change recency.\nNever read the complete backing file into startup context.\n\n## Mutation\n\n```bash\naiwg line-memory add \"Project uses Gitea as the canonical tracker.\"\naiwg line-memory touch \"Project uses Gitea as the canonical tracker.\"\naiwg line-memory prune\naiwg line-memory list --limit 20 --json\naiwg line-memory import \"Reviewed fact\" --source-ref wiki:path --reviewer operator --confirm\n```\n\nStore one concise, non-sensitive fact per entry. Do not store secrets,\ncredentials, access tokens, private keys, or sensitive personal data.\n\nUse stable handles from `--json` for governed archive\u002Fremove\u002Fsupersede\noperations. These mutations require `--confirm`; reviewed imports additionally\nrequire `--source-ref` and `--reviewer` so provenance is not lost.\n\n## Configuration\n\n```bash\naiwg line-memory config get maxLines\naiwg line-memory config set maxLines 100\n```\n\nThe default memory file is `.aiwg\u002Fmemory\u002Fline-memory.txt`; configuration is\nstored in `.aiwg\u002Fmemory\u002Fline-memory.config.json`.\n","# Line Memory\n\nUse line memory for a small set of durable project facts that benefit from\nleast-recently-used retention but do not need wiki pages, semantic search,\ncitations, or a knowledge graph.\n\n## Retrieval\n\nAlways retrieve a bounded slice:\n\n```bash\naiwg line-memory search \"canonical tracker\" --limit 5\naiwg line-memory list --limit 20\n```\n\n`list` and `search` refresh the returned entries by moving them to the newest\nposition. Pass `--no-touch` only for inspection that must not change recency.\nNever read the complete backing file into startup context.\n\n## Mutation\n\n```bash\naiwg line-memory add \"Project uses Gitea as the canonical tracker.\"\naiwg line-memory touch \"Project uses Gitea as the canonical tracker.\"\naiwg line-memory prune\naiwg line-memory list --limit 20 --json\naiwg line-memory import \"Reviewed fact\" --source-ref wiki:path --reviewer operator --confirm\n```\n\nStore one concise, non-sensitive fact per entry. Do not store secrets,\ncredentials, access tokens, private keys, or sensitive personal data.\n\nUse stable handles from `--json` for governed archive\u002Fremove\u002Fsupersede\noperations. These mutations require `--confirm`; reviewed imports additionally\nrequire `--source-ref` and `--reviewer` so provenance is not lost.\n\n## Configuration\n\n```bash\naiwg line-memory config get maxLines\naiwg line-memory config set maxLines 100\n```\n\nThe default memory file is `.aiwg\u002Fmemory\u002Fline-memory.txt`; configuration is\nstored in `.aiwg\u002Fmemory\u002Fline-memory.config.json`.\n",{"name":5,"ensures":57,"requires":62,"namespace":65,"platforms":66,"invariants":68,"commandHint":72,"description":7},[58,60],{"bounded-retrieval":59},"memory queries return only the requested slice",{"recency-retention":61},"referenced memories move to the newest position",[63],{"addon":64},"line-memory deployed with `aiwg use line-memory`","aiwg",[67],"all",[69,70,71],"never store secrets, credentials, tokens, or sensitive personal data","never inject the complete memory file into provider startup context","use line-memory CLI commands instead of directly reading the complete backing file",{"category":24,"allowedTools":43,"argumentHint":73,"orchestration":53},"add|list|search|touch|prune|config","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Fline-memory\u002Fskills\u002Fline-memory",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":85,"prompt":95,"zipAvailable":96},[86,89,92],{"tool":87,"command":88},"npx","npx skills add jmagly\u002Faiwg --skill line-memory",{"tool":90,"command":91},"bunx","bunx skills add jmagly\u002Faiwg --skill line-memory",{"tool":93,"command":94},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill line-memory","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fline-memory\u002Fskills\u002Fline-memory\u002FSKILL.md",true,[],[99,123,146,152,159,173],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":106,"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",[105],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[107,108,109,110,111,112,113,114,115,116,43,117,36,118,119,37,120,121,44,122],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","access","retention","audit","firewall","bind","request",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":133,"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",[129,132],{"categoryNo":130,"categoryName":131,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[134,135,136,110,45,115,137,138,43,139,107,140,36,141,142,37,120,143,144,145],"exposure analysis","analysis","unknown","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":147,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":52},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[150],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,107,108,117,110,122,113,112,119,114,115,116,43,44,36,118,111,37,120,121],{"skillNo":153,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":158,"publishedAt":52},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[156,157],{"categoryNo":130,"categoryName":131,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[135,134,37,45,115,137,43,136,107,140,36,141,142,110,120,139,138,143,144,145],{"skillNo":160,"name":161,"nameZh":6,"description":162,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"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",[165],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[167,168,169,170,171,172],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":180,"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",[179],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[181,182,141,183,168],"pi","pi local","duplicate"]