[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6HWTJP9C0CGSPFRMNY7XYSR":3,"skill-same:01M6HWTJP9C0CGSPFRMNY7XYSR":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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":38,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6HWTJP9C0CGSPFRMNY7XYSR","command-path-safety",null,"USE WHEN hardening command execution, path handling, or installer boundaries.","RohiRIK\u002FOpenLtm","RohiRIK","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F108658615?v=4","01M6HWTC7929WJNW4TQKGA8RDF","Rohi Rikman","01M6HWTCBBCQZ3M6RAWRMRNCHB",30,"MIT","https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FCommandPathSafety\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32],"path safety","Safety","command","path","command path safety","hardening","execution","use","installer","2026-11-10 10:12:30",false,"---\nname: command-path-safety\ndescription: \"USE WHEN hardening command execution, path handling, or installer boundaries.\"\n---\n\n# Command Path Safety\n\nTreat commands and paths as structured, validated inputs.\n\n## Workflow Routing\n\n| Workflow | Trigger | File |\n|---------|---------|------|\n| **HardenCommandExecution** | \"command injection\", \"shell safety\", \"exec hardening\", \"safe subprocess\" | `Workflows\u002FHardenCommandExecution.md` |\n| **EnforcePathBoundaries** | \"path traversal\", \"zip slip\", \"installer safety\", \"path boundaries\" | `Workflows\u002FEnforcePathBoundaries.md` |\n\n## SkillSearch\n\n- Command injection guidance: `SkillSearch('command path safety command injection patterns')` → loads `CommandInjectionPatterns.md`\n- Path and installer guidance: `SkillSearch('command path safety path traversal installer safety')` → loads `PathTraversalAndInstallerSafety.md`\n\n## Use This Skill To\n\n- Replace shell interpolation with validated structured execution.\n- Enforce path roots for writes, extraction, and installer operations.\n- Review archive and installer behavior for traversal and boundary escapes.\n\n## Not This Skill\n\n- Not for exploit scanning, malware analysis, or final security verdicts.\n- Hand off to @aegis for deep audits, exploitability assessment, or repo-wide review.\n","# Command Path Safety\n\nTreat commands and paths as structured, validated inputs.\n\n## Workflow Routing\n\n| Workflow | Trigger | File |\n|---------|---------|------|\n| **HardenCommandExecution** | \"command injection\", \"shell safety\", \"exec hardening\", \"safe subprocess\" | `Workflows\u002FHardenCommandExecution.md` |\n| **EnforcePathBoundaries** | \"path traversal\", \"zip slip\", \"installer safety\", \"path boundaries\" | `Workflows\u002FEnforcePathBoundaries.md` |\n\n## SkillSearch\n\n- Command injection guidance: `SkillSearch('command path safety command injection patterns')` → loads `CommandInjectionPatterns.md`\n- Path and installer guidance: `SkillSearch('command path safety path traversal installer safety')` → loads `PathTraversalAndInstallerSafety.md`\n\n## Use This Skill To\n\n- Replace shell interpolation with validated structured execution.\n- Enforce path roots for writes, extraction, and installer operations.\n- Review archive and installer behavior for traversal and boundary escapes.\n\n## Not This Skill\n\n- Not for exploit scanning, malware analysis, or final security verdicts.\n- Hand off to @aegis for deep audits, exploitability assessment, or repo-wide review.\n",{"name":5,"description":7},"main","4d24e9c5d547f33883581d9153af3d70fb8307bd","packages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FCommandPathSafety",2,"https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm","https:\u002F\u002Fgithub.com\u002FRohiRIK","https:\u002F\u002FCloudJourneyBlog.rohi-lab.org","Cloud security & infrastructure engineer. M365, Azure, GCP, Docker. I build the tools I wish existed, then publish what broke.","2026-11-10 01:34:10",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add RohiRIK\u002FOpenLtm --skill command-path-safety",{"tool":53,"command":54},"bunx","bunx skills add RohiRIK\u002FOpenLtm --skill command-path-safety",{"tool":56,"command":57},"pnpm","pnpm dlx skills add RohiRIK\u002FOpenLtm --skill command-path-safety","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FCommandPathSafety\u002FSKILL.md",true,[61,67,71,75],{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"CommandInjectionPatterns.md","REFERENCE","参考文档",2607,"https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FCommandPathSafety\u002FCommandInjectionPatterns.md",{"path":68,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":69,"sourceHtmlUrl":70},"PathTraversalAndInstallerSafety.md",3134,"https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FCommandPathSafety\u002FPathTraversalAndInstallerSafety.md",{"path":72,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":73,"sourceHtmlUrl":74},"Workflows\u002FEnforcePathBoundaries.md",1323,"https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FCommandPathSafety\u002FWorkflows\u002FEnforcePathBoundaries.md",{"path":76,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":77,"sourceHtmlUrl":78},"Workflows\u002FHardenCommandExecution.md",1298,"https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FCommandPathSafety\u002FWorkflows\u002FHardenCommandExecution.md",[80,106,132,151,174,190],{"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":86,"publishedAt":33},"01M6HWV9N0VAH3S0R73X665PGA","Spec","Writes a grounded spec: recalls prior decisions from LTM, explores the affected code, then writes testable acceptance criteria to specs\u002F\u003Cfeature>.md. Use when the user asks to 'spec this', 'write a spec', 'define what to build', or 'write requirements \u002F acceptance criteria' before planning or implementing a feature or bug fix.","https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fskills\u002FSpec\u002FSKILL.md",[],[87,31,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105],"spec","Ltm","implementing","affected","false","feature","define","requirements","acceptance criteria","build","bug","fix","user","write","decisions","bug fix","acceptance","planning","code",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":113,"publishedAt":33},"01M6HWV3QNVQYQSVSVMKKK6N80","MemoryReview","Curation pass over OpenLTM memory: triage pending session-end proposals, stale-flagged memories, conflicting or superseded entries, and low-value duplicates, then accept, revalidate, relate, or forget them with the user's approval. Use when the user says 'review memories', 'clean up memory', 'curate LTM', 'what's pending', 'any memory proposals', 'prune stale memories', or after a refactor that may have invalidated what LTM knows.","https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fskills\u002FMemoryReview\u002FSKILL.md",[112],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[108,114,115,116,31,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131],"proposals","admin","session","up","duplicates","forget","clean","memories","read","audit","learn","plugin","memory","review","MCP","entries","with","end",{"skillNo":133,"name":88,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":33},"01M6HWTZ80H2RGVVYGBK7EZN6R","OpenLTM long-term memory: tool names, the recall-before \u002F learn-after ritual, categories, project context, and what the hooks already inject. Use when the user says 'remember this', 'save this gotcha', 'what do we know about X', 'did we decide on Y before', 'forget that memory', 'link these memories', 'restore project context', 'set the project goal' — or before non-trivial work that may touch past decisions.","https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fskills\u002FLtm\u002FSKILL.md",[],[88,138,139,140,141,142,143,144,119,145,146,31,101,147,148,149,121,124,150,126],"project","categories","touch","long","do","SET","what the","restore","hooks","decide","work","tool","remember",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":158,"publishedAt":33},"01M6HWTS8DTXZGA2PFXC1RSNF1","GitLearn","Mines durable LTM memories from past git commits through the git-learner agent (no API key needed). Use when the user says 'learn from our git history', 'mine the last N commits', 'backfill memories since \u003Cdate>', 'onboard this repo into LTM', or wants to harvest patterns after a sprint.","https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fskills\u002FGitLearn\u002FSKILL.md",[157],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[153,159,31,99,160,161,162,163,164,165,166,124,121,167,168,169,170,171,172,173],"patterns","repo","history","onboard","commits","api","dd","git","past","last","mm","learner","sprint","mine","harvest",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":181,"publishedAt":33},"01M6HWTPKAWJ7XK8VCKK4RBJ23","secret-safe-handling","USE WHEN handling credentials, env vars, logs, tests, or docs safely.","https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FSecretSafeHandling\u002FSKILL.md",[180],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[182,183,184,185,31,186,187,188,189],"secret safe handling","safe","env","tests","credentials","env vars","logs","docs",{"skillNo":191,"name":192,"nameZh":6,"description":193,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":194,"categories":195,"keywords":197,"publishedAt":33},"01M6HWTEC222W46TD16S70XJ4W","agent-trust-boundaries","USE WHEN separating trusted instructions from untrusted content or tool output.","https:\u002F\u002Fgithub.com\u002FRohiRIK\u002FOpenLtm\u002Fblob\u002Fmain\u002Fpackages\u002Fopenltm-core\u002Fassets\u002Fopencode\u002Fskills\u002FAgentTrustBoundaries\u002FSKILL.md",[196],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[198,199,200,31,201,149,202],"trust","agent trust boundaries","output","instructions","content"]