[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M73FC3FD716TH5CCRDVW217B":3,"skill-same:01M73FC3FD716TH5CCRDVW217B":47},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":23,"commitSha":24,"skillDirectory":25,"forksCount":26,"repositoryHtmlUrl":27,"repositoryHomepageUrl":28,"ownerHtmlUrl":29,"ownerBlogUrl":30,"ownerDescription":31,"updatedAt":32,"install":33,"resources":46},"01M73FC3FD716TH5CCRDVW217B","ramdisk-tmpfs-patterns",null,"Horonomos-laps\u002FYana-AI","Horonomos-laps","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F355299122?v=4","01M76B3QPXE88ET2SQPDPVATZT"," Horonomos-laps","01M72ZQRJPCYPSSWT4D00VJR2A",13,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Framdisk-tmpfs-patterns\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: ramdisk-tmpfs-patterns\ndescription: RAM-backed virtual disk patterns for zero-latency sandbox scratch space. Linux tmpfs mounts, Node.js ramdisk creation, size-capped temp volumes, auto-cleanup on process exit, and race-condition-free temp directory isolation. Sources: mafintosh\u002Framdisk, Linux tmpfs docs.\norigin: yana-ai — synthesized from mafintosh\u002Framdisk (MIT), Linux kernel tmpfs documentation\nlicense: Apache-2.0\nversion: 1.0.0\ncompatibility: yana-ai >= 1.3.48\n---\n\n# \u002Framdisk-tmpfs-patterns\n\n## When to Use\n\n- Sandbox needs a fast scratch area that auto-destructs when session ends\n- Multiple agents writing temporary files simultaneously (avoid disk I\u002FO bottleneck)\n- Creating ephemeral workspace for untrusted code execution\n- Log staging before flush to persistent append-only store\n\n## Do NOT use for\n\n- Storing data that must survive process restart\n- Large data (> available RAM) — falls back to swap, defeating the purpose\n\n---\n\n## Linux tmpfs mount (bash)\n\n```bash\ncreate_ramdisk() {\n  local mount_point=\"$1\"\n  local size=\"${2:-64m}\"   # default 64MB\n\n  mkdir -p \"$mount_point\"\n  mount -t tmpfs -o \"size=${size},mode=1777,nosuid,nodev,noexec\" \\\n    tmpfs \"$mount_point\"\n\n  echo \"[ramdisk] mounted ${size} at ${mount_point}\"\n  trap \"umount -l '$mount_point' && rm -rf '$mount_point'\" EXIT\n}\n\n# Usage\ncreate_ramdisk \u002Ftmp\u002Fagent-scratch 128m\n# → writes here never touch disk, auto-unmounted on script exit\n```\n\n---\n\n## Per-session ramdisk (no root via user namespace + tmpfs)\n\n```bash\n# Rootless: bwrap already puts a tmpfs at \u002Ftmp — just use it\n# Or bind a tmpfs into an existing user namespace:\nunshare --mount bash -c \"\n  mount -t tmpfs -o size=64m,nosuid,nodev tmpfs \u002Ftmp\u002Fagent-\\$\\$\n  export AGENT_TMP=\u002Ftmp\u002Fagent-\\$\\$\n  exec '$@'\n\"\n```\n\n---\n\n## Node.js ramdisk (mafintosh\u002Framdisk pattern)\n\n```javascript\nimport { execSync } from 'child_process'\nimport { mkdtempSync, rmdirSync, rmSync, existsSync } from 'fs'\nimport { tmpdir }   from 'os'\nimport { join }     from 'path'\n\n\u002F**\n * Creates a tmpfs-backed directory (Linux only).\n * Falls back to OS tmpdir on other platforms.\n *\u002F\nexport function createRamdisk(sizeMb = 64): { path: string; cleanup: () => void } {\n  const base   = join(tmpdir(), 'ramdisk-')\n  const dir    = mkdtempSync(base)\n\n  if (process.platform === 'linux') {\n    execSync(`mount -t tmpfs -o size=${sizeMb}m,nosuid,nodev,mode=700 tmpfs \"${dir}\"`)\n  }\n\n  const cleanup = () => {\n    if (process.platform === 'linux') {\n      try { execSync(`umount -l \"${dir}\"`) } catch { \u002F* already unmounted *\u002F }\n    }\n    try { rmSync(dir, { recursive: true, force: true }) } catch { \u002F* already removed *\u002F }\n  }\n\n  process.on('exit',    cleanup)\n  process.on('SIGTERM', cleanup)\n  process.on('SIGINT',  cleanup)\n\n  return { path: dir, cleanup }\n}\n```\n\n---\n\n## Race-condition-free temp directory\n\n```bash\n# Use mktemp -d for unique per-agent directories\nAGENT_TMP=\"$(mktemp -d \u002Ftmp\u002Fagent-XXXXXXXX)\"\ntrap 'rm -rf \"$AGENT_TMP\"' EXIT\n\n# Verify it's on tmpfs (optional — still safe if not)\ndf -T \"$AGENT_TMP\" | grep -q tmpfs && echo \"[ramdisk] on tmpfs\" || echo \"[ramdisk] on disk\"\n```\n\n---\n\n## Size enforcement\n\n```bash\n# Periodically check usage and abort if over 80%\ncheck_ramdisk_usage() {\n  local mount=\"$1\"\n  local used_pct; used_pct=$(df \"$mount\" | awk 'NR==2{print $5}' | tr -d '%')\n  if [[ \"$used_pct\" -gt 80 ]]; then\n    echo \"[ramdisk] WARNING: ${used_pct}% used at ${mount}\" >&2\n    return 1\n  fi\n}\n```\n\n---\n\n## Anti-Fake-Pass Checklist\n\n```\n❌ tmpfs without size limit → sandbox fills all available RAM\n❌ nosuid\u002Fnodev\u002Fnoexec not set → sandbox can run SUID binaries from tmpfs\n❌ No cleanup trap → tmpfs mounts accumulate across sessions\n❌ mktemp not used for unique dirs → concurrent agents collide on same path\n❌ Ramdisk created as root on multi-user system → other users can read scratch\n❌ mode not set → tmpfs world-writable, any process can read agent scratch\n❌ swap not disabled → tmpfs data can land on swap → defeats ephemeral goal\n```\n","# \u002Framdisk-tmpfs-patterns\n\n## When to Use\n\n- Sandbox needs a fast scratch area that auto-destructs when session ends\n- Multiple agents writing temporary files simultaneously (avoid disk I\u002FO bottleneck)\n- Creating ephemeral workspace for untrusted code execution\n- Log staging before flush to persistent append-only store\n\n## Do NOT use for\n\n- Storing data that must survive process restart\n- Large data (> available RAM) — falls back to swap, defeating the purpose\n\n---\n\n## Linux tmpfs mount (bash)\n\n```bash\ncreate_ramdisk() {\n  local mount_point=\"$1\"\n  local size=\"${2:-64m}\"   # default 64MB\n\n  mkdir -p \"$mount_point\"\n  mount -t tmpfs -o \"size=${size},mode=1777,nosuid,nodev,noexec\" \\\n    tmpfs \"$mount_point\"\n\n  echo \"[ramdisk] mounted ${size} at ${mount_point}\"\n  trap \"umount -l '$mount_point' && rm -rf '$mount_point'\" EXIT\n}\n\n# Usage\ncreate_ramdisk \u002Ftmp\u002Fagent-scratch 128m\n# → writes here never touch disk, auto-unmounted on script exit\n```\n\n---\n\n## Per-session ramdisk (no root via user namespace + tmpfs)\n\n```bash\n# Rootless: bwrap already puts a tmpfs at \u002Ftmp — just use it\n# Or bind a tmpfs into an existing user namespace:\nunshare --mount bash -c \"\n  mount -t tmpfs -o size=64m,nosuid,nodev tmpfs \u002Ftmp\u002Fagent-\\$\\$\n  export AGENT_TMP=\u002Ftmp\u002Fagent-\\$\\$\n  exec '$@'\n\"\n```\n\n---\n\n## Node.js ramdisk (mafintosh\u002Framdisk pattern)\n\n```javascript\nimport { execSync } from 'child_process'\nimport { mkdtempSync, rmdirSync, rmSync, existsSync } from 'fs'\nimport { tmpdir }   from 'os'\nimport { join }     from 'path'\n\n\u002F**\n * Creates a tmpfs-backed directory (Linux only).\n * Falls back to OS tmpdir on other platforms.\n *\u002F\nexport function createRamdisk(sizeMb = 64): { path: string; cleanup: () => void } {\n  const base   = join(tmpdir(), 'ramdisk-')\n  const dir    = mkdtempSync(base)\n\n  if (process.platform === 'linux') {\n    execSync(`mount -t tmpfs -o size=${sizeMb}m,nosuid,nodev,mode=700 tmpfs \"${dir}\"`)\n  }\n\n  const cleanup = () => {\n    if (process.platform === 'linux') {\n      try { execSync(`umount -l \"${dir}\"`) } catch { \u002F* already unmounted *\u002F }\n    }\n    try { rmSync(dir, { recursive: true, force: true }) } catch { \u002F* already removed *\u002F }\n  }\n\n  process.on('exit',    cleanup)\n  process.on('SIGTERM', cleanup)\n  process.on('SIGINT',  cleanup)\n\n  return { path: dir, cleanup }\n}\n```\n\n---\n\n## Race-condition-free temp directory\n\n```bash\n# Use mktemp -d for unique per-agent directories\nAGENT_TMP=\"$(mktemp -d \u002Ftmp\u002Fagent-XXXXXXXX)\"\ntrap 'rm -rf \"$AGENT_TMP\"' EXIT\n\n# Verify it's on tmpfs (optional — still safe if not)\ndf -T \"$AGENT_TMP\" | grep -q tmpfs && echo \"[ramdisk] on tmpfs\" || echo \"[ramdisk] on disk\"\n```\n\n---\n\n## Size enforcement\n\n```bash\n# Periodically check usage and abort if over 80%\ncheck_ramdisk_usage() {\n  local mount=\"$1\"\n  local used_pct; used_pct=$(df \"$mount\" | awk 'NR==2{print $5}' | tr -d '%')\n  if [[ \"$used_pct\" -gt 80 ]]; then\n    echo \"[ramdisk] WARNING: ${used_pct}% used at ${mount}\" >&2\n    return 1\n  fi\n}\n```\n\n---\n\n## Anti-Fake-Pass Checklist\n\n```\n❌ tmpfs without size limit → sandbox fills all available RAM\n❌ nosuid\u002Fnodev\u002Fnoexec not set → sandbox can run SUID binaries from tmpfs\n❌ No cleanup trap → tmpfs mounts accumulate across sessions\n❌ mktemp not used for unique dirs → concurrent agents collide on same path\n❌ Ramdisk created as root on multi-user system → other users can read scratch\n❌ mode not set → tmpfs world-writable, any process can read agent scratch\n❌ swap not disabled → tmpfs data can land on swap → defeats ephemeral goal\n```\n",{},"main","481dcd7dd2e288b9d627a2bd017db70e64e6c6fa","core\u002Fskills\u002Framdisk-tmpfs-patterns",1,"https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI","https:\u002F\u002Fyana.vutam.link\u002F","https:\u002F\u002Fgithub.com\u002FHoronomos-laps","https:\u002F\u002Fyana.vutam.link","An open-source governed runtime & execution environment for multi-agent AI systems.","2026-11-11 23:56:26",{"source":7,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add Horonomos-laps\u002FYana-AI --skill ramdisk-tmpfs-patterns",{"tool":39,"command":40},"bunx","bunx skills add Horonomos-laps\u002FYana-AI --skill ramdisk-tmpfs-patterns",{"tool":42,"command":43},"pnpm","pnpm dlx skills add Horonomos-laps\u002FYana-AI --skill ramdisk-tmpfs-patterns","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Framdisk-tmpfs-patterns\u002FSKILL.md",true,[],[48,56,63,71,79,87],{"skillNo":49,"name":50,"nameZh":6,"description":51,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":52,"licenseFileUrl":6,"sourceHtmlUrl":53,"categories":54,"keywords":55,"publishedAt":18},"01M735GKET5YVYKAY62W2P5YXB","openai--sentry--sentry","Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry API; perform read-only queries with the bundled script and require `SENTRY_AUTH_TOKEN`.","MIT","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fopenai--sentry--sentry\u002FSKILL.md",[],[],{"skillNo":57,"name":58,"nameZh":6,"description":59,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":60,"categories":61,"keywords":62,"publishedAt":18},"01M73DCAP83T17HY7SMGK7MGFE","ito-basket-compare","Compare Itô prediction-market baskets against a user's knowledge base, portfolio notes, financial context, watchlist, or research thesis. Use for read-only basket comparison and gap analysis without investment advice or live trading.","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fito-basket-compare\u002FSKILL.md",[],[],{"skillNo":64,"name":65,"nameZh":6,"description":66,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":67,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":18},"01M734CYEMZFDR3KH6SW0JP8TD","implementing-network-traffic-baselining","Build network traffic baselines from NetFlow\u002FIPFIX data using Python pandas for statistical analysis, z-score anomaly detection, and hourly\u002Fdaily traffic pattern profiling","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-network-traffic-baselining\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":75,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":18},"01M73ASZ6NJRJM44Z2P84NGQ3Q","detecting-evasion-techniques-in-endpoint-logs","Detects defense evasion techniques used by adversaries in endpoint logs including log tampering, timestomping, process injection, and security tool disabling. Use when investigating suspicious endpoint behavior, building detection rules for evasion tactics, or conducting threat hunting for stealthy adversary activity. Activates for requests involving evasion detection, defense evasion analysis, log tampering detection, or MITRE ATT&CK TA0005.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002Fcore\u002Fskills\u002Fdetecting-evasion-techniques-in-endpoint-logs\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":83,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":18},"01M734AFNXD06Z78QRK0VKGT7Q","implementing-microsegmentation-with-guardicore","Implementing microsegmentation using Akamai Guardicore Segmentation to map application dependencies, create granular network policies, visualize east-west traffic flows, and enforce least-privilege communication between workloads across data centers and cloud.","https:\u002F\u002Fgithub.com\u002Fyanacuti1121\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fimplementing-microsegmentation-with-guardicore\u002FSKILL.md",[],[],{"skillNo":88,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":18},"01M736TK27QMCXK0DVCH25SJN5","https:\u002F\u002Fgithub.com\u002FHoronomos-laps\u002FYana-AI\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Framdisk-tmpfs-patterns\u002FSKILL.md",[],[]]