[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DEXWYWJ27K8S6RYXSP0MFC":3,"skill-same:01M6DEXWYWJ27K8S6RYXSP0MFC":51},{"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":18,"publishedAt":22,"linkOnly":23,"markdownContent":24,"markdownBody":25,"frontMatter":26,"refName":27,"commitSha":28,"skillDirectory":29,"forksCount":30,"repositoryHtmlUrl":31,"repositoryHomepageUrl":32,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M6DEXWYWJ27K8S6RYXSP0MFC","brepl",null,"Evaluate Clojure code and use the REPL via brepl. Load this skill before using brepl.","editor-code-assistant\u002Feca-plugins","editor-code-assistant","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F216573231?v=4","01M6DEWNSMC8XPM87YA0E27NHB","ECA (Editor Code Assistant)","01M6DEWP1022GPJP34KA6N11E5",5,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fbrepl\u002Fskills\u002Fbrepl\u002FSKILL.md",[],[5,19,20,21],"code","use","clojure","2026-11-10 10:12:30",false,"---\nname: brepl\ndescription: \"Evaluate Clojure code and use the REPL via brepl. Load this skill before using brepl.\"\n---\n\n## Requirements\n\nUse an installed `brepl` binary on `PATH`. Evaluation requires a running nREPL\nserver; manual bracket repair does not.\n\n## Command Reference\n\n- `brepl -e EXPR` or `brepl EXPR`: evaluate one expression argument.\n- `brepl` with stdin: evaluate code from a pipe or heredoc.\n- `brepl -f FILE`: load and execute a file.\n- `brepl -m MESSAGE`: send a raw nREPL message in EDN format.\n- `-p PORT`, `-h HOST`: select the nREPL server. `-h` is not help.\n- `--verbose`: show raw protocol messages instead of normal result output.\n- `--help` or `-?`: show help. `--version`: show the installed version.\n- `brepl balance FILE [--dry-run]`: repair brackets, or preview the repair.\n\n## Evaluating Code\n\nPrefer a quoted heredoc in a Bash-compatible shell. Use `\u003C\u003C'EOF'`, not\n`\u003C\u003CEOF`, to prevent shell expansion. Put the closing `EOF` on its own line.\nWrite normal Clojure inside it without extra shell escaping; Clojure string\nescaping still applies. If the shell tool cannot pass multiline input, use a\npositional argument only for simple code that can be quoted safely.\n\n```bash\nbrepl \u003C\u003C'EOF'\n(require '[clojure.string :as str])\n(str\u002Fjoin \", \" [\"a\" \"b\" \"c\"])\nEOF\n```\n\nA Clojure quote such as `'foo` breaks single-quoted shell arguments; use a\nheredoc for code containing `'`. For simple expressions without it, this works:\n\n```bash\nbrepl '(+ 1 2 3)'\n```\n\n`-e` is optional for positional expressions and stdin. Choose one input method:\n`-e EXPR`, positional code, stdin, `-f`, or `-m`. An explicit or positional\nexpression causes stdin to be ignored. Do not use bare `-e` with a heredoc;\nit can evaluate `true` instead of the supplied code. Put multiple forms in one\nexpression argument or heredoc, not separate positional arguments.\n\n## Selecting the Server\n\nPort priority is `-p`, then `.nrepl-port`, then `BREPL_PORT`, then process discovery.\nExpression and raw-message modes check only the current directory's port file.\nFile mode searches upward from the file's directory, stopping at the current\nworking directory if it reaches it. Use explicit `-p` when working outside the\nproject root or when discovery fails. A stale port file overrides `BREPL_PORT`.\nSelect a host with `-h HOST`; the default is `localhost`. Do not rely on\n`BREPL_HOST` in brepl 2.7.1: the CLI default overrides it.\n\nFlags also work with stdin, without `-e`:\n\n```bash\nbrepl -p 7888 \u003C\u003C'EOF'\n(+ 1 2 3)\nEOF\n```\n\n## Loading Files\n\n```bash\nbrepl -f src\u002Fmyapp\u002Fcore.clj\n```\n\n`-f` sends a `load-file` expression, not file contents. The file must exist locally\nand be accessible at that path on the server. Relative paths use the server's\nworking directory; prefer an absolute path accessible to both.\n\n## Raw nREPL Operations\n\nUse EDN (Clojure data notation) with string keys. Discover supported operations first:\n\n```bash\nbrepl -m '{\"op\" \"describe\"}'\n```\n\nOnly use operations advertised by that server. For example, if it supports `info`:\n\n```bash\nbrepl -m '{\"op\" \"info\" \"symbol\" \"map\" \"ns\" \"clojure.core\"}'\n```\n\nOther useful operations include `lookup`, `complete`, and `ls-sessions`.\nAdd `--verbose` to inspect sent and received messages. Read response `status`\nand error fields: raw-message mode can exit `0` even for `eval-error` or `unknown-op`.\n\n## Checking Results\n\nNormal evaluation and file loading return exit `2` for evaluation errors;\nargument or connection failures return `1`. Inspect stderr as well as stdout.\nNeither plain evaluation nor `-f` automatically repairs brackets. An evaluation\ncan change server state before failing; do not blindly repeat code with side effects.\n\n## Manual Balance Recovery\n\nUse `brepl balance` only when an error or file inspection shows unbalanced\ndelimiters (parentheses, brackets, or braces). Do not run it as a routine step\nafter a successful hook or without delimiter evidence. If a hook reports a\nrepair, respect that repair; inspect the current file before further changes.\n\nPreview a repair without changing the file:\n\n```bash\nbrepl balance src\u002Fmyapp\u002Fcore.clj --dry-run\n```\n\nOmit `--dry-run` to change the file in place. Review the resulting diff.\nDo not treat silence as proof that hooks are installed or that evaluation\nsucceeded; check hook status and evaluation results separately.\n\n## Resources\n\nhttps:\u002F\u002Fgithub.com\u002Flicht1stein\u002Fbrepl (installation instructions if brepl is unavailable).\n","## Requirements\n\nUse an installed `brepl` binary on `PATH`. Evaluation requires a running nREPL\nserver; manual bracket repair does not.\n\n## Command Reference\n\n- `brepl -e EXPR` or `brepl EXPR`: evaluate one expression argument.\n- `brepl` with stdin: evaluate code from a pipe or heredoc.\n- `brepl -f FILE`: load and execute a file.\n- `brepl -m MESSAGE`: send a raw nREPL message in EDN format.\n- `-p PORT`, `-h HOST`: select the nREPL server. `-h` is not help.\n- `--verbose`: show raw protocol messages instead of normal result output.\n- `--help` or `-?`: show help. `--version`: show the installed version.\n- `brepl balance FILE [--dry-run]`: repair brackets, or preview the repair.\n\n## Evaluating Code\n\nPrefer a quoted heredoc in a Bash-compatible shell. Use `\u003C\u003C'EOF'`, not\n`\u003C\u003CEOF`, to prevent shell expansion. Put the closing `EOF` on its own line.\nWrite normal Clojure inside it without extra shell escaping; Clojure string\nescaping still applies. If the shell tool cannot pass multiline input, use a\npositional argument only for simple code that can be quoted safely.\n\n```bash\nbrepl \u003C\u003C'EOF'\n(require '[clojure.string :as str])\n(str\u002Fjoin \", \" [\"a\" \"b\" \"c\"])\nEOF\n```\n\nA Clojure quote such as `'foo` breaks single-quoted shell arguments; use a\nheredoc for code containing `'`. For simple expressions without it, this works:\n\n```bash\nbrepl '(+ 1 2 3)'\n```\n\n`-e` is optional for positional expressions and stdin. Choose one input method:\n`-e EXPR`, positional code, stdin, `-f`, or `-m`. An explicit or positional\nexpression causes stdin to be ignored. Do not use bare `-e` with a heredoc;\nit can evaluate `true` instead of the supplied code. Put multiple forms in one\nexpression argument or heredoc, not separate positional arguments.\n\n## Selecting the Server\n\nPort priority is `-p`, then `.nrepl-port`, then `BREPL_PORT`, then process discovery.\nExpression and raw-message modes check only the current directory's port file.\nFile mode searches upward from the file's directory, stopping at the current\nworking directory if it reaches it. Use explicit `-p` when working outside the\nproject root or when discovery fails. A stale port file overrides `BREPL_PORT`.\nSelect a host with `-h HOST`; the default is `localhost`. Do not rely on\n`BREPL_HOST` in brepl 2.7.1: the CLI default overrides it.\n\nFlags also work with stdin, without `-e`:\n\n```bash\nbrepl -p 7888 \u003C\u003C'EOF'\n(+ 1 2 3)\nEOF\n```\n\n## Loading Files\n\n```bash\nbrepl -f src\u002Fmyapp\u002Fcore.clj\n```\n\n`-f` sends a `load-file` expression, not file contents. The file must exist locally\nand be accessible at that path on the server. Relative paths use the server's\nworking directory; prefer an absolute path accessible to both.\n\n## Raw nREPL Operations\n\nUse EDN (Clojure data notation) with string keys. Discover supported operations first:\n\n```bash\nbrepl -m '{\"op\" \"describe\"}'\n```\n\nOnly use operations advertised by that server. For example, if it supports `info`:\n\n```bash\nbrepl -m '{\"op\" \"info\" \"symbol\" \"map\" \"ns\" \"clojure.core\"}'\n```\n\nOther useful operations include `lookup`, `complete`, and `ls-sessions`.\nAdd `--verbose` to inspect sent and received messages. Read response `status`\nand error fields: raw-message mode can exit `0` even for `eval-error` or `unknown-op`.\n\n## Checking Results\n\nNormal evaluation and file loading return exit `2` for evaluation errors;\nargument or connection failures return `1`. Inspect stderr as well as stdout.\nNeither plain evaluation nor `-f` automatically repairs brackets. An evaluation\ncan change server state before failing; do not blindly repeat code with side effects.\n\n## Manual Balance Recovery\n\nUse `brepl balance` only when an error or file inspection shows unbalanced\ndelimiters (parentheses, brackets, or braces). Do not run it as a routine step\nafter a successful hook or without delimiter evidence. If a hook reports a\nrepair, respect that repair; inspect the current file before further changes.\n\nPreview a repair without changing the file:\n\n```bash\nbrepl balance src\u002Fmyapp\u002Fcore.clj --dry-run\n```\n\nOmit `--dry-run` to change the file in place. Review the resulting diff.\nDo not treat silence as proof that hooks are installed or that evaluation\nsucceeded; check hook status and evaluation results separately.\n\n## Resources\n\nhttps:\u002F\u002Fgithub.com\u002Flicht1stein\u002Fbrepl (installation instructions if brepl is unavailable).\n",{"name":5,"description":7},"master","f55e66f0fb34e8005ce5458ca6bb378591307012","plugins\u002Fbrepl\u002Fskills\u002Fbrepl",7,"https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins","https:\u002F\u002Fplugins.eca.dev\u002F","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant","https:\u002F\u002Feca.dev","AI pair programming in any editor","2026-09-21 14:35:43",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add editor-code-assistant\u002Feca-plugins --skill brepl",{"tool":43,"command":44},"bunx","bunx skills add editor-code-assistant\u002Feca-plugins --skill brepl",{"tool":46,"command":47},"pnpm","pnpm dlx skills add editor-code-assistant\u002Feca-plugins --skill brepl","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fbrepl\u002Fskills\u002Fbrepl\u002FSKILL.md",true,[],[52,74,93,104,120,147],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":63,"publishedAt":22},"01M6DEYHA3YJ7BSSBND3EE9HQD","tdd","Test-Driven Development workflow: write a failing test first, implement minimum code to pass, then refactor. Language-agnostic.","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Ftdd\u002Fskills\u002Ftdd\u002FSKILL.md",[58],{"categoryNo":59,"categoryName":60,"taxonomyType":61,"taxonomyTypeDesc":62},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[54,64,65,66,67,68,69,70,19,71,72,73],"workflow","driven","language","development workflow","write","first","refactor","development","test","implement",{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":22},"01M6DEYD0YMBHG9Z9ZBAZGTJV0","superpowers","Agentic development methodology: spec-driven brainstorming, structured planning, subagent-driven development, TDD, systematic debugging, and verification-before-completion.","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fsuperpowers\u002Fskills\u002Fsuperpowers\u002FSKILL.md",[],[76,71,81,82,83,84,54,85,86,87,65,88,89,90,91,92],"verification","debugging","systematic debugging","brainstorming","agentic","spec","planning","systematic","agentic development","structured","subagent","methodology",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":22},"01M6DEYA6VCSSFTTZF4JYR28K2","nucleus-clojure","A clojure specific AI prompt. Use when there are clojure REPL tools available.","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fnucleus-clojure\u002Fskills\u002Fnucleus-clojure\u002FSKILL.md",[],[21,100,101,20,102,103],"nucleus clojure","AI Prompt","prompt","Tools",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":22},"01M6DEY6YVY87Q4N0ZWRAR00Z4","fp-idiomatic-style","Coding style policy for generated code: prefer idiomatic language conventions with a functional-leaning approach (pure-ish functions, composability), and prefer lightweight data structures over heavy schema\u002Fclass abstractions unless clearly justified.","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Ffp-style\u002Fskills\u002Ffp-idiomatic-style\u002FSKILL.md",[],[111,112,113,114,115,116,117,118,19,119,66],"fp idiomatic style","data structures","conventions","functions","schema","generated","coding","data","policy",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":22},"01M6DEY39CA95E91VP0PQR4CJA","context-mode","Use context-mode tools (context-mode__ctx_execute, context-mode__ctx_execute_file) instead of\neca__shell_command\u002Feca__read_file when processing large outputs. Triggers: \"analyze logs\",\n\"summarize output\", \"process data\", \"parse JSON\", \"filter results\", \"extract errors\",\n\"check build output\", \"analyze dependencies\", \"process API response\", \"large file analysis\",\n\"run tests\", \"test output\", \"coverage report\", \"git log\", \"recent commits\",\n\"diff between branches\", \"fetch docs\", \"API reference\", \"index documentation\",\n\"call API\", \"check response\", \"query results\", \"find TODOs\", \"count lines\",\n\"codebase statistics\", \"security audit\", \"outdated packages\", \"dependency tree\".\nAlso triggers on ANY tool output that may exceed 20 lines.","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fcontext-mode\u002Fskills\u002Fcontext-mode\u002FSKILL.md",[],[127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146],"context","context mode","analysis","logs","audit","run","packages","documentation","security audit","query","statistics","branches","extract errors","log","dependency","fetch","coverage","command","analyze","api",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":22},"01M6DEXZS3TPT0FBMXB63BXBPP","caveman","Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says \"caveman mode\", \"talk like caveman\", \"use caveman\", \"less tokens\", \"be brief\", or invokes \u002Fcaveman. Also auto-triggers when token efficiency is requested.","https:\u002F\u002Fgithub.com\u002Feditor-code-assistant\u002Feca-plugins\u002Fblob\u002Fmaster\u002Fplugins\u002Fcaveman\u002Fskills\u002Fcaveman\u002FSKILL.md",[],[149,154,155,156,157,158,159,160,20,161,162,163,164],"full","triggers","tokens","token","efficiency","default","auto","user","technical","brief","communication"]