setup-interns (v0.1.0) — 8-phase install of the local `interns` MCP server:
detect `.common/lib/interns-mcp/` source, `pip install -e`, write
`.common/secrets/interns.env` with endpoint API keys (gitignored), register
`mcpServers.interns` in `~/.claude.json` with absolute Python interpreter
path + `cwd` so the runtime resolves config relative to project root.
Mirrors setup-projects-meta / setup-context7 confirmation-gate shape.
Description 899 chars (under the 900 budget per
feedback_skill_description_length_limit).
using-interns (v0.1.0) — runtime policy for `mcp__interns__*`. Per-session
permission grant mirrors project-discipline Rule 4: ask-mode default,
conversational grant ("разреши интернов" / "allow interns"), conversational
revoke, always-ask paths for `**/.env`, `**/secrets/**`, `**/*.key`,
`**/.ssh/**`, `**/.aws/credentials` etc with transitive rule (Claude can't
bypass by reading the file with the local Read tool and forwarding content),
cost-cap >$0.10 always asks, session-end automatic reset. Routing hints for
`bulk_text_read` (3+ files or one file >400 lines) and `transcript_distill`
(before .wiki/log.md updates / session summaries). Description 814 chars.
project-bootstrap (1.5.0 -> 1.6.0, MINOR — capability added):
* assets/CLAUDE.md.template: insert `delegate to interns when allowed`
between `follow project discipline` and `we're on Windows`.
* SKILL.md Step 5: same insertion in inline template + new commentary
paragraph explaining the trigger, no-op semantics, install pointer.
* SKILL.md Step 5.5: bootstrap-manifest table extended with
`setup-interns`, `using-interns`, `project-discipline` rows.
* README.md: Workflow Step 5.5 description + See also section both pick up
the new skills.
Root CLAUDE.md dogfood: `delegate to interns when allowed` line added.
.wiki/log.md decision entry. .tasks/STATUS.md task moved to 🟢 done.
.tasks/interns-skills-mvp.md per-task file with goal / key-files /
decisions log / open questions.
Build + install verified: `dist/{setup-interns,using-interns,
project-bootstrap}.skill` rebuilt; `bash scripts/install.sh ...` succeeded;
harness skill listing shows full descriptions for all three (no H1
fallback) — confirms the description budget held.
Versioning per project-discipline Rule 3:
* setup-interns: 0.1.0 (first edit of unversioned artifact, MAJOR=0).
* using-interns: 0.1.0 (first edit of unversioned artifact, MAJOR=0).
* project-bootstrap: 1.5.0 -> 1.6.0 (MINOR — adds capability without
breaking existing CLAUDE.md merge or manifest consumers).
Server runtime itself (`.common/lib/interns-mcp/`) is out of scope for this
task — the skills land lifecycle, policy, and bootstrap integration so any
machine where the MCP server is later installed already has Claude's
policy in place.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.6 KiB
interns-skills-mvp
Goal
Ship the first version of the setup-interns + using-interns skill pair (v0.1.0 each) and roll the canonical delegate to interns when allowed CLAUDE.md trigger into project-bootstrap (1.5.0 → 1.6.0). The pair exposes the local interns MCP server (Layer 2 of .wiki/concepts/interns-design.md) to Claude Code under a per-session permission grant that mirrors project-discipline Rule 4 — ask-mode by default, conversational grant/revoke, always-ask paths for secrets even with an active grant, session-end reset. The runtime server itself is out of scope for this task; the skills land their full lifecycle (install procedure, runtime policy, bootstrap integration) so that on every machine where the MCP server is later installed, Claude already knows the policy.
Key files
.wiki/concepts/interns-design.md— Layer 3 Skills section is the primary specskills/setup-interns/SKILL.md— to be created (mirrorskills/setup-projects-meta/SKILL.md8-phase shape)skills/setup-interns/README.md— to be created (mirrorskills/setup-projects-meta/README.md)skills/using-interns/SKILL.md— to be created (mirrorskills/using-projects-meta/SKILL.mdtwo-class shape; grant mechanism mirrorsskills/project-discipline/SKILL.mdRule 4)skills/using-interns/README.md— to be createdskills/project-bootstrap/SKILL.md— Step 5 commentary + Step 5.5 manifest table; bumpversion:1.5.0 → 1.6.0skills/project-bootstrap/assets/CLAUDE.md.template— appenddelegate to interns when allowedbetweenfollow project disciplineandwe're on WindowsCLAUDE.md(root, dogfood) — same line addition.wiki/log.md—## [2026-05-05] decision | interns-skills-mvp shippedentrydist/setup-interns.skill,dist/using-interns.skill,dist/project-bootstrap.skill— rebuilt archives
Decisions log
- 2026-05-05: ship as a pair (setup-X + using-X) following the validated prior-art pattern — same shape as setup-context7/using-context7 and setup-projects-meta/using-projects-meta. Rationale: clean separation of one-time install (mutates user-level config; needs confirmation gates) from runtime policy (read every session; no mutations). Cross-reference between the two via the
Prerequisitessection. - 2026-05-05: setup-interns assumes inline
.common/lib/interns-mcp/layout per design's "current склонение". Open question (Gitea repo + subtree) deferred — v0.1.0 documents the inline path; if a separate repo lands later, a 0.2.0 minor adds the alternate clone branch. - 2026-05-05: grant mechanism mirrors project-discipline Rule 4 verbatim — ask-mode default per session, conversational grant ("разреши интернов" / "allow interns"), conversational revoke, always-ask paths even under an active grant, session-end automatic reset. Rationale: same security posture, same UX vocabulary the user already trained on.
- 2026-05-05: always-ask path list copied from design Layer 3 verbatim plus the transitive rule (Claude reading a matched file and forwarding content also triggers the gate). Plus cost-based ask: any call with estimated cost > $0.10 (sanity bound).
- 2026-05-05:
description:budget — keep ≤ 900 chars perfeedback_skill_description_length_limitmemory. Verify char count before shipping; if over, trim trigger phrases first, never the policy summary.
Open questions
- How does the user's actual
.common/layout look on disk? Setup skill currently assumes<project-root>/.common/lib/interns-mcp/and<project-root>/.common/secrets/interns.env. If the convention is~/projects/.common/, the discovery phase needs to widen. - Should
setup-internsship a scaffolding sub-step that writes a placeholder.common/lib/interns-mcp/from a template if the source isn't there? Probably not — kicks the can to a separate "build the runtime" task.
Completed steps
- Read design
.wiki/concepts/interns-design.mdLayer 3 section - Survey prior art: setup-context7, setup-projects-meta, using-context7, using-projects-meta, project-bootstrap@1.5.0, project-discipline (Rule 4 grant mechanism)
- Mark 🔴 active in
.tasks/STATUS.md, create this file
Notes
- Char-count check after writing each
description:— paste into a quickwc -cPowerShell snippet (or count manually). 1024 is the hard ceiling, 900 is the safety margin. - Restart-Claude-Code caveat goes in setup-interns Phase 8, identical to setup-projects-meta and setup-context7.
using-internsdoes NOT mention restart — it's a policy skill, no MCP install side.- Bootstrap-manifest table gets
setup-internsandusing-internsrows.