From 81af7825b6bcd7b1593c92f909ddbc67469d54cf Mon Sep 17 00:00:00 2001 From: vitya Date: Wed, 6 May 2026 07:02:42 +0300 Subject: [PATCH] feat(interns): add repo_read routing to using-interns + Node/repomix checks to setup-interns [v0.2.0] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit using-interns: overview table 2→3 interns, routing hints for repo_read vs bulk_text_read, tool quick reference row. setup-interns: Phase 0 adds node --version check + optional repomix pre-warm. Co-Authored-By: Claude Opus 4.7 --- .tasks/STATUS.md | 10 ++++----- .tasks/interns-repo-read-skill-updates.md | 26 ++++++++++++++++++++++ dist/setup-interns.skill | Bin 7627 -> 7846 bytes dist/using-interns.skill | Bin 7007 -> 7314 bytes skills/setup-interns/SKILL.md | 4 +++- skills/using-interns/SKILL.md | 11 ++++++--- 6 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 .tasks/interns-repo-read-skill-updates.md diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 2a060ac..d239754 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,5 +1,5 @@ # Task Board -_Updated: 2026-05-05 (active-platform-eval paused — design done, awaiting eval-set authorship decision)_ +_Updated: 2026-05-05 (interns-repo-read-skill-updates done — both skills 0.2.0)_ diff --git a/.tasks/interns-repo-read-skill-updates.md b/.tasks/interns-repo-read-skill-updates.md new file mode 100644 index 0000000..4b2f8d6 --- /dev/null +++ b/.tasks/interns-repo-read-skill-updates.md @@ -0,0 +1,26 @@ +# interns-repo-read-skill-updates + +## Goal +Add `repo_read` intern routing to `using-interns/SKILL.md` and Node.js + repomix pre-warm checks to `setup-interns/SKILL.md`, per the design at `.wiki/concepts/interns-repo-read-design.md`. Both bumps are MINOR (0.1.0 → 0.2.0). + +## Key files +- `skills/using-interns/SKILL.md` — routing section, overview table, tool quick reference +- `skills/setup-interns/SKILL.md` — Phase 0 environment sanity (add Node check + repomix pre-warm) +- `.wiki/concepts/interns-repo-read-design.md` — design doc (reference only) + +## Decisions log +- 2026-05-05: Task created from STATUS.md ⚪ entry. Design approved in .meeting-room. Skill edits can ship in parallel with backend impl (`common#interns-repo-read-impl`); end-to-end test blocked until backend lands. + +## Open questions +- [ ] none — design is approved + +## Completed steps +- [x] Read design doc and both SKILL.md files +- [x] Edit `using-interns/SKILL.md`: added repo_read to Overview table, Routing hints, Tool quick reference; bumped 0.1.0→0.2.0 +- [x] Edit `setup-interns/SKILL.md`: added Node-in-PATH check + repomix pre-warm to Phase 0; bumped 0.1.0→0.2.0 +- [x] Build all .skill archives (`scripts/build.ps1`) +- [x] Install to `~/.claude/skills/` (`scripts/install.sh`) +- [x] Verify versions 0.2.0 and content on disk + +## Notes +- Backend impl (`interns_mcp/interns/repo_read.py`) is a separate task in `.common/lib/interns-mcp/`, not in this repo. Skill edits are parallel-safe. \ No newline at end of file diff --git a/dist/setup-interns.skill b/dist/setup-interns.skill index a5efedca33438b6dd0a6cfbe5feddcea7d385a1b..f036a273e9e405fa69971939cac4ef55df52ad48 100644 GIT binary patch delta 5759 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 x|GA2S`-ULF4|E9Eh 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 G0002%h`;Fo diff --git a/dist/using-interns.skill b/dist/using-interns.skill index eec6d165b086b73f1cc26ef4a7a963f15716d7cf..6576bd39dff28d03c931446d373b61c9e3c58250 100644 GIT binary patch delta 5254 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 M8#)H_8vpKJpcdz delta 4945 zcmV-X6Rzx%Io~$0q6ZGNjHO(dqy_u*5&!@vEt9YZ9)I0#BS&_==Tj8q07G%fmc||j zfo#k`^Oq>`cob*P_N)8$#+gwHJcPA4`M*$W_MNfsq^!l@0{wvV9+UKt`0Sy@za{2Z0o8=cY zgnwV%EEb7lWd?W=Sxl75n)zpeHc0P<$aX!Q-t74-n zi>sMh(Em2aJrR2BVr+om z5<9_5#CI?MQ9M?vJXLDe7k`rGXwP2E;T#rTinV1zQbCKPgN=Y=1Ajm-c_dyyJMbn(hVJL@zW2ZX z+Kc+)^Skf9kFgjxfTA)Qu>zr8(xKJ0iLu48(K%FgqLKvmgB&E<55zNUsLmk?1=gT0 zKY)s1sA!(f(ml9Ptjfync~uU8hUuh0v=4*qVqD|3?mlaR?#0lmDC&HKFn@|VofmT$ z@6V1y*dBB`m*R!inYa|6k|7~aqG3q-sT@+$UM@SA@Sx@olWvDX%s*l5{g}hTwlydD z&(0x`Aic-%)&y2imJPHT0XF>|ErisWPEz4rtE9%w=rJ{Iqb zd;9x>RG=WsdeygcCCYAE89+#ZW)dS02D<2Yep z!N?3NiEg6elqM1y=@JSK+ol@@1j0;J+Fjc0Lj}7kQJ0C!Zr%~_7B)I|3M@@(4)T>m z&M6nPvCcycRmQb3K#dGwRTt!xF5I9?T_;Fs38E2xHXEGZ8;mn)r+>&%pa0%|w7>r@ zfhDXDX%3Uby{1qB@*OBZkK=SQ&;{0yr?QwR7qf5Yxc~DXVrTi!$TVMx&rD6~=*u05p?o55U2Bv1nkwPD!a5H6qr z`x1JU=Q7O*JtA>5rhiab&~1YEt{cP&44dX?rBL!JW}GFxAl+aIpFT(vg>tr5lFsPmrW1j=is0kbrFC-P6vWzxb;eUN0hM(_6F^609nbpM* zTB`1l#SvZudKq~izzja_G{Bx>IK zpCEcb6kTUvT7NaUbx|^~%oKt$KzuNoOYhNYA2K%D(mnzL!B&I-z=@nPQ^1+k45Xl5 zZyQF@OoHIKW{#m)11h1Zz21v9(1cj`=)@|=?2!Wu@&OmD6o0HB((0lguz?*I`MLtx zG8IxD30EwTJ_xZwctc|~(G4h%+#$G>(|+(M|1(<19Dg9$J%0Q&AS}s8l=_)8GiCbN zd#RCD8o6w5Tg`f{Tzd?t%f;21bJ?PBiEg0jgE* zRfp>o5SPbCM|6Wz0Baj*Lh_C>MZZa=6Gc{oYCT1v5K{%bgjfhEas*e`qw`ePeoIfc zGt1)>(W<_1qs=gVGN%_3cOu5slpjb7fw3i`SAXfAkGM!YW;cgs2dg4vO4L6C>oyF` zZs#FjS$|_hpi`Jz2N6dLEC>Ht>6I7R`t#P!?AW87S|10;a^-rzxPG_r>x*#qw8Izo6{@ zdih)Y{TkW-B`5w@%ioHtzow**l>cV=T7L{bWPrUtTw?=QKNrJI^4Sd)hImSZhH<3L zdR7Ey`Q`GJSblN!3tZr(U^>fxS$_4P)9E^}7f*@_nA=nk&p4NvA|s4f8inB~R_X$l zW6*^<{FGfzYIBJ=8n^55;X+xePKVg@E54X$_xoFj@cQa6Y3Iu~FzTmBt3-0wGJh+X zB;n8@O?rDh+EONWIxh1DQ7vH*vL6!A0YTySmiUnA)-kWPj@V*IqH{a+#`TT?&2F_L zz_XOf7JPdGJe*RpWM&a2bUL(o7YWRI(#f=HN|fuaHuw4)*9ODQx*mJIP&I+nSCo}o z6tCB#WI3WZ<7~d!W*8}KgnBfyLVwRQl}wz^H$h72-A<8QIkSuI4ixcKe?vJ}Kfn6> z4UH~;hj762F9kcpZ}8*`e)eBH6>)I&ODyvhYxZ}D2~Y3_%Wtt7h01?>{ZS>?XO*@A zPF)Zc53_c5x4Vz)u6(cmEWg1UIc#q9o}YRW|4QKUTXGe05)N)BsMiR7(til-pZ&xM zu;wVX(xvMTuH7b+0Po~PLhFk0iMXkE6>O5yE%PzoS-QpO>-M~6MX#&V%?6G`bXU9G z2#v(IrAYu^mU|E;g&gcIsB2FNvVmNn*_=+luS*vE%!)}${j0DiU+FbTu*-HU0P-Vn zKI&)`>;+Bbv+HUB?2*_nrGG(^>E27CTxty``P@PNXKQ~Yv{wzVKTqxC0qVyuExx3?F7Xo~h*F;+PWu z;?L=6KXkqN-WmU5*zTK6G%40MUC7-K0VVEL(Ta+Frbh=rR+pbD3P$alrBt45X_vC+ zw7TvmoWH65-fW?|UVj$1Q7J;W#lq2ICS0btzTIZumZ|~J8qS*3hoFWNz1M4{&pAFU zi?9X6(GIa)2PWQOIlUK&(O(zk+!iD)M;=!tTZDXloDE&Ku zBq-7FLz)K?6b!qboLF2QLsuBqb+$afO?P#FNG#`H8LD3s2Y(4EdXrXBLTZeR>EV(H z*w+~KQ)D2d03@wbyd4KDZNlUx4}D-51@`H(Q3j(x=X?Nn>?} z2WQWQq08`=rGM`(!h^z3--P%Mvf*KsBET=wY9U6tE?gNFOIPqpDmM*05aLejiGsow znU<7kxKS8Ne5iAT!rymTPB4K&0aX$ltvmM(moklKz}7Sl3~HB}y{BnaJD9x`N6x!j z&0P$5y3v;KRio?1(3>x>6K8=T>^#5XReCqb)hZP0dB zEn3(8;AYXtNWw5}@^*X3tC2eYp0vxR6L9-0x=-6p5_Zkux+7eQ;99MUIk<2*9l3N3 z3RJCQFv(75I2?BFM&gL`#CYMy`fAiw)D+0c0Ic{Nd6V?mZy$kx%Do$jV=_6-^|;lv zE{%7Q%74|>??u$Ez}S{s9&`l#_ub2XTlw&JfAtTHN?uyFZAr~>JLJj0FK(P8f*7|Q9#F`%daLe~mkw`sNi<3v!_Zg9 z0{(;njJ{NHI!V3R5^&JOzOsNZymG0`)!GEYRS9WTpLMPlE%AsYpz#3$;jzcj% z4rBp)KAG4aXDOeYLIOfM;2pSR)k@%Q3w$!-GZv%aN|jD|CRl>>$zU3C7Zz{`Qnd2& z(O4{W9kOUM7WWLbF-mI8UpjIXU7qKYCK!( ztr7E~yE;n~WOHfPuxVoS+(x@>;wKj}FMl&SU7>_a+8gkh=8CO%I-kH#4p5=_Rylo^ zA=z0hm0Pu0YuE!{8zMETsnuDgrQ-T(r-8wc&8P%n zrsBHpA2>8@@DH~5{VfQ|q)mC`+fomPmb^+_DgrF2& z|A2k)(`yaKhIoT_?-jabzSg0VN3X_iv8Ph5qTJ4++_{AVA_$e+ke!b3Xn#UHJq>yWHY z<|FZ(Bd?9cfW29w=LL2L|M^pp$|h{6iSB)!597RE-1$ml2_mj2Fo^tDaz5*u zD#+L9POsf5=#f2ol;+8kTZE@gcHEs1XH1Q(Qq6FB*$cy8>NGusHXpjNnc!OpWHrpG zT3=s@OXu*d_JAXjvU2FPR{ysuf7@iNjdFk07v*Yoo+7lHI-j?2x_>&}aylda(>mfp z>|Z-;+j6u`_Q=t0w?w{(b9g!Ck3z107v*ZWu#1N4VB>b0mR{ZN+pv{S(eUOY zH2MJMrejeIu>@PLY*~F+)pSi(t2E4Ap5vztUtG+!;cqDBMzfYKoJ7a;{ikKyxkAOC zwtF*J*2+fjm3y*lm4A379xg(4*Bl;$^IY$-`W9>C%d->uR4bDc%kA!?JJ=1M2$El^ z+Zs|kjB0?|+kM>8^E(ufDlaQnK6_WE?!AB5eCd=aIpZ&V2>0o5bca8A@im-l;)Vup z%Ujo_SyL8&8^_Ia_poU!yVit9?#;fk`*Nav2Ijx1Yg)`K+<#H)2-W873y9J_rZ4El z51d@9C)S^96^e@x?}m}%?3@on;o^iP7{I%GBNa;s((@!1t2MnC%3dZxJeq3J)I}~B z{45G}3)0FGKUwb;rBu@ukeG&S~;x$lf-;W&_A%!kV7Dih&@Jc1?oBR!~# zvCPvfmBxwBuNVl$mlRX3&{Uf77oQ{{E#Q0xo-2_O{|}S%8&M9ljHO(dqy_u*5&!@v PEt66lItIWR000006xWLk diff --git a/skills/setup-interns/SKILL.md b/skills/setup-interns/SKILL.md index 8395564..413faad 100644 --- a/skills/setup-interns/SKILL.md +++ b/skills/setup-interns/SKILL.md @@ -1,6 +1,6 @@ --- name: setup-interns -version: 0.1.0 +version: 0.2.0 description: Installs and configures the local `interns` MCP server — a FastMCP stdio app at `/.common/lib/interns-mcp/` that delegates bulk reads, transcript distillation, and other predictable I/O to cheap intern LLMs (DeepSeek / Kimi / Ollama) so Claude saves Anthropic quota. Procedure: detect the server source, `pip install -e` it, write `.common/secrets/interns.env` with the endpoint API keys, register `mcpServers.interns` in `~/.claude.json`. Use this skill when the user says "install interns", "set up interns", "configure interns", "настрой интернов", "установи интернов", "interns не работает", "interns isn't working", or whenever the `mcp__interns__*` tools are missing in a session that needs delegation. Cross-platform — Windows / Linux / macOS. Mutates user-level config and writes secrets; pauses for confirmation before every write. --- @@ -35,6 +35,8 @@ The procedure runs `pip install`, writes `.common/secrets/interns.env` (carries - Confirm Claude Code is the current harness (need `mcpServers` registration in `~/.claude.json`). - Confirm `python` ≥ 3.11 and `pip` are on `PATH`. Report the resolved interpreter path (`python -c "import sys; print(sys.executable)"`); the skill will pin this exact path in the MCP registration so a later `python` shadowed by another env doesn't silently take over. +- Confirm `node` is on `PATH` (`node --version`). The `repo_read` intern runs `npx repomix@latest` as a subprocess. If `node` is absent, the user must install Node.js 20+ before proceeding — `repo_read` calls will fail at runtime with a clear "node not found" error. +- (Optional, recommended) Pre-warm the repomix binary: `npx --yes repomix@latest --version`. This caches the package so the first real `repo_read` call is instant (5–10s first-run penalty avoided). Skip silently on failure — the call will just be slower the first time. - Confirm network reachability to the configured endpoints (default: `https://ollama.com/v1`). On HTTP 401 / 403 later, the API key is dead — stop and ask for a new one. - Pick paths: `/.common/lib/interns-mcp/` (source), `/.common/config/interns/config.yaml` (catalog), `/.common/secrets/interns.env` (keys, gitignored), `~/.claude.json` (MCP registration). POSIX-style paths resolve correctly under git-bash on Windows. diff --git a/skills/using-interns/SKILL.md b/skills/using-interns/SKILL.md index 198aa80..c5afdfa 100644 --- a/skills/using-interns/SKILL.md +++ b/skills/using-interns/SKILL.md @@ -1,6 +1,6 @@ --- name: using-interns -version: 0.1.0 +version: 0.2.0 description: Use when delegating predictable bulk reads or summarization to cheap intern LLMs via the local `interns` MCP server (`mcp__interns__bulk_text_read`, `mcp__interns__transcript_distill`, etc.) so Claude saves Anthropic quota. Activated by `delegate to interns when allowed` in CLAUDE.md or explicit phrases like "use interns", "delegate to an intern", "разреши интернов", "allow interns". Per-session permission grant mirrors `project-discipline` Rule 4: ask-mode default, conversational grant / revoke, always-ask paths for `.env` / secrets / keys / SSH / credentials even with active grant, transitive rule (Claude can't bypass by reading the file itself and forwarding content), session-end reset. Skip for architecture, debugging, auth / payments, final commit messages, or final user-facing text. --- @@ -10,14 +10,15 @@ description: Use when delegating predictable bulk reads or summarization to chea `interns` is a local stdio MCP server that exposes a catalog of cheap-LLM "interns" — DeepSeek, Kimi, Ollama-hosted models, etc. — so Claude can delegate predictable bulk I/O and summarization tasks instead of paying Anthropic quota for them. The pattern (~23× cheaper end-to-end on summarization, ~125× per-call on bulk reads) is sourced from a Reddit thread + Medium follow-up; see `.wiki/concepts/interns-design.md` for the full design and the cost numbers. -Two MVP interns: +Three MVP interns: | Tool | What it does | When to call | |---|---|---| | `mcp__interns__bulk_text_read` | Reads N files end-to-end and answers a focused question with file:line citations. | Claude was about to read 3+ files or one file > 400 lines just to extract context. | | `mcp__interns__transcript_distill` | Compresses a session transcript / log into a structured action list (decisions / open questions / next steps). | Before updating `.wiki/log.md` or producing a session summary. | +| `mcp__interns__repo_read` | Packs a directory/repo via `repomix` and answers a focused question about the codebase. | Whole-repo or whole-directory questions — architecture, "where is X used", "what does module Y do". See Routing hints for `repo_read` vs `bulk_text_read`. | -Both currently run on Ollama Cloud (`deepseek-v4-flash`, ~$0.002 / call). Adding a new intern is a config-only change — see `.wiki/concepts/interns-design.md` § "Как добавить нового интерна". +All currently run on Ollama Cloud (`deepseek-v4-flash`, ~$0.002 / call). Adding a new intern is a config-only change — see `.wiki/concepts/interns-design.md` § "Как добавить нового интерна". ## Prerequisites @@ -103,6 +104,9 @@ Any call with estimated cost > $0.10 (per the `tokens × price_per_M` config in |---|---| | File > 400 lines, not editing it | `bulk_text_read` | | Need to read 3+ files for context | `bulk_text_read` | +| Whole-repo or whole-directory question (architecture, "where is X used", "what does module Y do") | `repo_read` | +| `bulk_text_read` vs `repo_read` | Use `bulk_text_read` when file paths are known and explicit. Use `repo_read` when you need a whole directory without cherry-picking files — repomix packs everything under the given paths. | +| Don't delegate editing or debugging a specific file to `repo_read` | Read the file yourself. `repo_read` is for comprehension, not modification. | | Updating `.wiki/log.md` or session-summary doc | `transcript_distill` | | Compressing a long brainstorm transcript before quoting in a design doc | `transcript_distill` | | (Future interns in `config.yaml`) | per the description in the catalog | @@ -127,6 +131,7 @@ Don't pass file *contents* as arguments — only paths. The MCP server reads and | Tool | Required args | Optional | Purpose | |---|---|---|---| | `mcp__interns__bulk_text_read` | `paths: list[str]`, `question: str` | `max_tokens: int` | Read N files end-to-end, answer the question with citations. | +| `mcp__interns__repo_read` | `paths: list[str]`, `question: str` | `compress: bool`, `max_tokens: int` | Pack directory/repo via repomix, answer the question. Use `compress=True` for large codebases (lossy: strips comments/whitespace). | | `mcp__interns__transcript_distill` | `paths: list[str]`, `question: str` | `max_tokens: int` | Distill transcript / log into structured action list. | (Future interns expose tools at `mcp__interns__` as the catalog grows.)