[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EHH3WCWPHZX79RD91X23C7":3,"skill-same:01M6EHH3WCWPHZX79RD91X23C7":72},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6EHH3WCWPHZX79RD91X23C7","memory-review",null,"Use when an agent memory directory has grown large enough that nobody remembers what is in it, when memories look stale or contradictory, when the same fact seems to live in both memory and a CLAUDE.md, or when the user asks to review, prune, audit or clean up their memories. Also use before retiring a project whose memories should move somewhere else.","isachivka\u002Fbeware-of-skills","isachivka","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1263650?v=4","01M6EHFZP3P6R9WDKZ0B6ZEQ79","Igor Sachivka","01M6EHFZTC56CFH0DA5AENAM8Y",0,"MIT","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fmemory-review\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"review","memory","memory review","trigger","directory","project","memories","clean","stale","up","use","edit","write","read","prune","Bash","audit","agent memory","code","go","2026-11-10 10:12:30",false,"---\nname: memory-review\ndescription: >\n  Use when an agent memory directory has grown large enough that nobody remembers what\n  is in it, when memories look stale or contradictory, when the same fact seems to live\n  in both memory and a CLAUDE.md, or when the user asks to review, prune, audit or clean\n  up their memories. Also use before retiring a project whose memories should move\n  somewhere else.\nwhen_to_use: >\n  Trigger on: memory review, review my memories, prune memory, clean up memory, audit\n  memory, memory got stale, too many memories, \"what is in my memory\", \"clean up my memory\",\n  \"let's go through the memories\", memories out of date, memory says X but the code says Y.\nallowed-tools: Bash, Read, Write, Edit\n---\n\n# Reviewing agent memory\n\nMemory rots quietly. A fact is written once, stays true for a month, and then keeps being\nread for a year. Nobody notices, because nothing fails — the agent just acts on something\nthat stopped being true.\n\nThis skill turns a memory directory into one reviewable document, gets a verdict on every\nentry from the person who owns it, and applies those verdicts safely.\n\n## Overview\n\nFive phases. Do not skip 1 or 4.\n\n1. **Locate and snapshot** — find the real directory, put it under version control first\n2. **Assemble** — one document, one heading per file, so verdicts map back\n3. **Review** — the owner annotates; you never guess a verdict\n4. **Verify** — check the claims you are about to act on\n5. **Apply** — delete, keep, tag, move; then repair what deletion broke\n\n## 1. Locate and snapshot\n\nMemory rarely lives where the project dir suggests. Find the real path:\n\n```bash\nls -la ~\u002F.claude\u002Fprojects\u002F\u003Cproject-dir>\u002Fmemory      # often a symlink\nreadlink ~\u002F.claude\u002Fprojects\u002F\u003Cproject-dir>\u002Fmemory\n```\n\nA symlink means several project dirs share one memory — the same files seen N times, not\nN copies. Count files at the target, not per project dir.\n\n**Then make deletion reversible before you delete anything.** Confirm with a command, not\nan assumption:\n\n```bash\ngit -C \u003Crepo> ls-files \u003Cmemory-path> | wc -l    # 0 means NOT tracked\n```\n\n\"My home is a git repo so nothing is lost\" is the assumption that bites. A blanket\n`*` in `.gitignore`, or a **nested repo** between the memory and the tracking repo, both\nproduce a silent zero here — `git add -f` will stage nothing and print nothing. If the\ncount is zero, copy the memory somewhere the tracking repo can actually reach and commit\nthat, before touching a single file.\n\n## 2. Assemble one document\n\nThe owner will not open 77 files. Build one, with a `## \u003Cfilename>` heading per memory —\nthose headings are how you map their line-numbered notes back to files.\n\n```bash\nfor f in \"$M\"\u002F*.md; do\n  echo; echo \"## $(basename \"$f\")\"; echo; cat \"$f\"\ndone > \u002Ftmp\u002Fmemory-review.md\n```\n\nGroup by prefix (`user_`, `project_`, `feedback_`, `reference_`) so related entries read\ntogether. Put the index (`MEMORY.md`) first, quoted, as a map.\n\n**Translation:** if the owner reviews faster in another language, translate the assembled\ncopy — never the memory itself. Memory is read by agents and usually shares the repo's\ndocumentation language. Keep every `## \u003Cfilename>` heading byte-identical, keep code,\npaths, identifiers, branch names, ticket keys and error strings verbatim, and verify with\n`diff \u003C(grep '^## ' a) \u003C(grep '^## ' b)` before showing it to anyone. A long translation\nbelongs in its own session, not the one running the review.\n\n## 3. Review\n\nOpen the assembled file for annotation. With the `revdiff` skill:\n\n```\nrevdiff --only=\u002Ftmp\u002Fmemory-review.md\n```\n\nThen map each annotation's line number to the heading above it — a small script beats\ncounting by hand. Sort verdicts into: **delete**, **keep**, **move elsewhere**, **tag**,\n**verify first**.\n\nExpect \"move elsewhere\" to be common and to be the most valuable output. A fact that every\ndeveloper on the repo needs is not memory — it belongs in `CLAUDE.md`, in the repo docs, or\nin the skill that performs the action. Collect those into a handoff list rather than acting\non them inside the memory directory.\n\n## 4. Verify before deleting\n\nSome verdicts are conditional: *\"this is obsolete — but check, maybe I just never finished\nit.\"* Those are the most valuable annotations in the batch, and the only ones where you can\nstill be wrong. Check them:\n\n- \"already in CLAUDE.md\" → grep it; if true, delete rather than move\n- \"this work is done\" → grep the code for the thing it claims shipped\n- \"this no longer applies\" → run the command the memory describes\n\nReport what you found even when it confirms the verdict. The owner asked because they were\nnot sure.\n\n## 5. Apply, then repair\n\nDeleting memories breaks things inside the memories that survive:\n\n- **Index** — prune `MEMORY.md` of entries whose file is gone, and verify zero broken links\n- **Wiki-links** — `[[some-name]]` resolves against the `name:` frontmatter field, **not**\n  the filename. Resolve against `name:` or you will report live links as dead and miss real\n  ones. Then remove links whose target you just deleted.\n- **Cross-references in prose** — a trailing `Related: [[a]], [[b]]` line can be dropped\n  whole; a mid-sentence reference needs the sentence rewritten.\n\n**Tagging instead of deleting.** Memories scoped to a finite effort (a migration, a\nrefactor, a launch) should not be re-read one by one when it ends. Add a scope marker to\ntheir frontmatter so they can be found and dropped as a set:\n\n```yaml\nmetadata:\n  scope: ts-migration-pdf-9268\n```\n\n## Standing rules worth enforcing during review\n\n- **No \"it was X, now it is Y\" memories.** They read as current state and mislead the next\n  agent. Record what is true now, or nothing.\n- **No evidence-collection memories.** \"Verified on 2026-08-14 that…\" is a receipt, not a\n  fact worth carrying.\n- **A memory that is really a process belongs in a skill.** If an entry reads like\n  instructions for performing a task, it is skill material.\n- **Situational memories die.** A note about one incident, one flaky run, one broken tag is\n  not a durable fact.\n\n## Hard-won gotchas\n\n- `git add -f` staging nothing, with no error, means a **nested repo** sits between the\n  path and the tracking repo. Check with `git rev-parse --show-toplevel` at the target.\n- **zsh does not word-split an unquoted variable** the way bash does. A `for f in $LIST`\n  loop over a space-separated string silently iterates once, over the whole string, and\n  reports zero matches. Run batch deletions under `bash -c`.\n- A **TUI review can outlive the process that launched it.** If the launcher times out, the\n  annotations are not lost — they are written to disk on quit and flushable mid-session.\n  Read the output file rather than relaunching, which would discard them.\n- Counting memory files through several project dirs **multiplies a symlink**. 77 files seen\n  from 8 project dirs is 77 files, not 616.\n- When a memory names a path that no longer exists (a retired clone, a moved directory),\n  the fact inside it may still be true elsewhere. Re-check it in the current setup before\n  deciding — the fix is often a rewrite, not a deletion.\n","# Reviewing agent memory\n\nMemory rots quietly. A fact is written once, stays true for a month, and then keeps being\nread for a year. Nobody notices, because nothing fails — the agent just acts on something\nthat stopped being true.\n\nThis skill turns a memory directory into one reviewable document, gets a verdict on every\nentry from the person who owns it, and applies those verdicts safely.\n\n## Overview\n\nFive phases. Do not skip 1 or 4.\n\n1. **Locate and snapshot** — find the real directory, put it under version control first\n2. **Assemble** — one document, one heading per file, so verdicts map back\n3. **Review** — the owner annotates; you never guess a verdict\n4. **Verify** — check the claims you are about to act on\n5. **Apply** — delete, keep, tag, move; then repair what deletion broke\n\n## 1. Locate and snapshot\n\nMemory rarely lives where the project dir suggests. Find the real path:\n\n```bash\nls -la ~\u002F.claude\u002Fprojects\u002F\u003Cproject-dir>\u002Fmemory      # often a symlink\nreadlink ~\u002F.claude\u002Fprojects\u002F\u003Cproject-dir>\u002Fmemory\n```\n\nA symlink means several project dirs share one memory — the same files seen N times, not\nN copies. Count files at the target, not per project dir.\n\n**Then make deletion reversible before you delete anything.** Confirm with a command, not\nan assumption:\n\n```bash\ngit -C \u003Crepo> ls-files \u003Cmemory-path> | wc -l    # 0 means NOT tracked\n```\n\n\"My home is a git repo so nothing is lost\" is the assumption that bites. A blanket\n`*` in `.gitignore`, or a **nested repo** between the memory and the tracking repo, both\nproduce a silent zero here — `git add -f` will stage nothing and print nothing. If the\ncount is zero, copy the memory somewhere the tracking repo can actually reach and commit\nthat, before touching a single file.\n\n## 2. Assemble one document\n\nThe owner will not open 77 files. Build one, with a `## \u003Cfilename>` heading per memory —\nthose headings are how you map their line-numbered notes back to files.\n\n```bash\nfor f in \"$M\"\u002F*.md; do\n  echo; echo \"## $(basename \"$f\")\"; echo; cat \"$f\"\ndone > \u002Ftmp\u002Fmemory-review.md\n```\n\nGroup by prefix (`user_`, `project_`, `feedback_`, `reference_`) so related entries read\ntogether. Put the index (`MEMORY.md`) first, quoted, as a map.\n\n**Translation:** if the owner reviews faster in another language, translate the assembled\ncopy — never the memory itself. Memory is read by agents and usually shares the repo's\ndocumentation language. Keep every `## \u003Cfilename>` heading byte-identical, keep code,\npaths, identifiers, branch names, ticket keys and error strings verbatim, and verify with\n`diff \u003C(grep '^## ' a) \u003C(grep '^## ' b)` before showing it to anyone. A long translation\nbelongs in its own session, not the one running the review.\n\n## 3. Review\n\nOpen the assembled file for annotation. With the `revdiff` skill:\n\n```\nrevdiff --only=\u002Ftmp\u002Fmemory-review.md\n```\n\nThen map each annotation's line number to the heading above it — a small script beats\ncounting by hand. Sort verdicts into: **delete**, **keep**, **move elsewhere**, **tag**,\n**verify first**.\n\nExpect \"move elsewhere\" to be common and to be the most valuable output. A fact that every\ndeveloper on the repo needs is not memory — it belongs in `CLAUDE.md`, in the repo docs, or\nin the skill that performs the action. Collect those into a handoff list rather than acting\non them inside the memory directory.\n\n## 4. Verify before deleting\n\nSome verdicts are conditional: *\"this is obsolete — but check, maybe I just never finished\nit.\"* Those are the most valuable annotations in the batch, and the only ones where you can\nstill be wrong. Check them:\n\n- \"already in CLAUDE.md\" → grep it; if true, delete rather than move\n- \"this work is done\" → grep the code for the thing it claims shipped\n- \"this no longer applies\" → run the command the memory describes\n\nReport what you found even when it confirms the verdict. The owner asked because they were\nnot sure.\n\n## 5. Apply, then repair\n\nDeleting memories breaks things inside the memories that survive:\n\n- **Index** — prune `MEMORY.md` of entries whose file is gone, and verify zero broken links\n- **Wiki-links** — `[[some-name]]` resolves against the `name:` frontmatter field, **not**\n  the filename. Resolve against `name:` or you will report live links as dead and miss real\n  ones. Then remove links whose target you just deleted.\n- **Cross-references in prose** — a trailing `Related: [[a]], [[b]]` line can be dropped\n  whole; a mid-sentence reference needs the sentence rewritten.\n\n**Tagging instead of deleting.** Memories scoped to a finite effort (a migration, a\nrefactor, a launch) should not be re-read one by one when it ends. Add a scope marker to\ntheir frontmatter so they can be found and dropped as a set:\n\n```yaml\nmetadata:\n  scope: ts-migration-pdf-9268\n```\n\n## Standing rules worth enforcing during review\n\n- **No \"it was X, now it is Y\" memories.** They read as current state and mislead the next\n  agent. Record what is true now, or nothing.\n- **No evidence-collection memories.** \"Verified on 2026-08-14 that…\" is a receipt, not a\n  fact worth carrying.\n- **A memory that is really a process belongs in a skill.** If an entry reads like\n  instructions for performing a task, it is skill material.\n- **Situational memories die.** A note about one incident, one flaky run, one broken tag is\n  not a durable fact.\n\n## Hard-won gotchas\n\n- `git add -f` staging nothing, with no error, means a **nested repo** sits between the\n  path and the tracking repo. Check with `git rev-parse --show-toplevel` at the target.\n- **zsh does not word-split an unquoted variable** the way bash does. A `for f in $LIST`\n  loop over a space-separated string silently iterates once, over the whole string, and\n  reports zero matches. Run batch deletions under `bash -c`.\n- A **TUI review can outlive the process that launched it.** If the launcher times out, the\n  annotations are not lost — they are written to disk on quit and flushable mid-session.\n  Read the output file rather than relaunching, which would discard them.\n- Counting memory files through several project dirs **multiplies a symlink**. 77 files seen\n  from 8 project dirs is 77 files, not 616.\n- When a memory names a path that no longer exists (a retired clone, a moved directory),\n  the fact inside it may still be true elsewhere. Re-check it in the current setup before\n  deciding — the fix is often a rewrite, not a deletion.\n",{"name":5,"description":49,"when_to_use":50,"allowed-tools":51},"Use when an agent memory directory has grown large enough that nobody remembers what is in it, when memories look stale or contradictory, when the same fact seems to live in both memory and a CLAUDE.md, or when the user asks to review, prune, audit or clean up their memories. Also use before retiring a project whose memories should move somewhere else.\n","Trigger on: memory review, review my memories, prune memory, clean up memory, audit memory, memory got stale, too many memories, \"what is in my memory\", \"clean up my memory\", \"let's go through the memories\", memories out of date, memory says X but the code says Y.\n","Bash, Read, Write, Edit","main","3f76050fe565c91c27d85e648128fdbe5005106e","plugins\u002Fbos\u002Fskills\u002Fmemory-review","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills","https:\u002F\u002Fgithub.com\u002Fisachivka","2026-11-11 04:25:51",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add isachivka\u002Fbeware-of-skills --skill memory-review",{"tool":64,"command":65},"bunx","bunx skills add isachivka\u002Fbeware-of-skills --skill memory-review",{"tool":67,"command":68},"pnpm","pnpm dlx skills add isachivka\u002Fbeware-of-skills --skill memory-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fmemory-review\u002FSKILL.md",true,[],[73,99,126,145,168,187],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":44},"01M6EHHMD6V299GTDRCB7XVPKH","yt-dub","Give a YouTube video Yandex's Russian voice-over (the Yandex Browser \u002F voice-over-translation one) at any length — including past Yandex's 4-hour limit — and mux it into the best video YouTube serves, with the original sound kept as a second track; optionally drop the result into Plex on SugarDaddy. Also when only the translated audio is wanted.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbosp\u002Fskills\u002Fyt-dub\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",[85,39,86,87,27,88,89,90,91,92,93,94,95,96,97,98],"yt dub","it","link","as","drop","plex","russian","translation","youtube","only","voice","Audio","Video","browser",{"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":109,"publishedAt":44},"01M6EHHFFGVRCR4MCZTE96HYN7","codex-proxy","Run an OpenAI-compatible Chat Completions endpoint on localhost that spends the user's ChatGPT\u002FCodex subscription instead of an API key — for apps that take a Base URL, API key and model id (dictation post-processing, editors, scripts). Install it as an always-on LaunchAgent, check its status, print the key, try a request, or debug a failing app.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbosp\u002Fskills\u002Fcodex-proxy\u002FSKILL.md",[105,108],{"categoryNo":106,"categoryName":107,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[110,111,112,113,34,39,114,115,116,117,118,119,120,121,122,27,123,124,88,125],"proxy","codex proxy","codex","api","run","model","debug","check","uninstall","provider","processing","post","apps","id","app","chat",{"skillNo":127,"name":128,"nameZh":6,"description":129,"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":133,"publishedAt":44},"01M6EHHBJ8GXVFT5DN6526H54J","revdiff-ru","Review a diff in revdiff with everything except the code translated into Russian, line numbering preserved 1:1 so annotations map back to the real files. One command does the translation; then \u002Frevdiff:revdiff opens the result.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Frevdiff-ru\u002FSKILL.md",[132],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[134,135,136,27,137,138,91,92,139,140,141,39,142,42,143,24,144],"revdiff ru","command","line","map","back","files","diff","file","open","translate","annotations",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":154,"publishedAt":44},"01M6EHH7CR99Y6TPN9DW24DGXE","peer-chat","A prompt starting with \"Chat from Codex:\" is a peer message: answer it only through peer-chat.py, never in your own output. Also use when the user says \"chat with codex\", \"talk to codex\", \"work with codex\", \"do this with codex\", \"build this with codex\", \"discuss this with codex\" (the agent in the other pane of this agterm split). Not for a one-shot task handed off, and not for a read-only second opinion.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fpeer-chat\u002FSKILL.md",[151],{"categoryNo":152,"categoryName":153,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000023","Skill与智能体开发",[155,125,156,94,157,86,158,159,160,161,162,34,163,37,164,165,166,39,167,112],"peer","peer chat","agterm","message","task","do","build","never","user","prompt","work","grep","second opinion",{"skillNo":169,"name":170,"nameZh":6,"description":171,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":172,"categories":173,"keywords":176,"publishedAt":44},"01M6EHGZJTNE9TR6099FRECB42","decomment","Strip the noise comments an AI agent left behind on a branch — the ones that restate the code line by line or narrate the change as a story (\"was X, now Y\", \"added a guard here\"). Git holds the history and the code holds the present; only genuinely non-obvious comments survive.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fdecomment\u002FSKILL.md",[174,175],{"categoryNo":152,"categoryName":153,"taxonomyType":82,"taxonomyTypeDesc":83},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[170,177,178,179,180,27,88,89,31,33,94,140,181,182,183,184,39,185,42,186],"branch","narrative","now","scope","remove","restate","history","sweep","guard","ai agent",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":193,"publishedAt":44},"01M6EHGWVGP9JA0SB4M65GESG8","cleanup","Tidy up after yourself and close your own agterm session.","https:\u002F\u002Fgithub.com\u002Fisachivka\u002Fbeware-of-skills\u002Fblob\u002Fmain\u002Fplugins\u002Fbos\u002Fskills\u002Fcleanup\u002FSKILL.md",[],[189,157,194,33,195,196],"close","session","tidy"]