Closes 3/3 acceptance of [install-ps1]:
- (a) install.ps1 existed
- (b) --prune flag shipped in 6cf0e98
- (c) concept page now written
.wiki/concepts/install-cross-platform.md captures:
- why two scripts (PS for native-Win, sh for Linux/Mac)
- parity contract (shared invariants, flag-naming convention)
- --prune design choices and rejected alternatives
- scope boundary (install-side only; dist/.skill prune is separate)
Index + log updated per .wiki/CLAUDE.md schema.
STATUS.md: [install-ps1] ⚪ → 🟢, new ⚪ task
[install-ps1-build-prune-followup] filed for the analogous
flag on build.{sh,ps1}.
Capture the design decisions behind the session-handoff skill in a dedicated
`.wiki/concepts/session-handoff-skill-design.md` page, indexed and logged per
Karpathy LLM Wiki conventions. Covers the problem statement (cold-start fog
between CC sessions), the sliding-overwrite contract for `.tasks/NEXT_SESSION.md`,
the phrase whitelist + anti-pattern guards + ambiguity-asks-not-guesses rule,
the substantive-commit heuristic (prefix exclude AND (body>200 OR files>3) +
first-non-trivial-commit-always exception), the opt-in PostToolUse hook that
replaces agent-side memory with harness-side determinism, the orient+ask read
mode default, project scope guarantee, the five-section handoff content contract,
secret-detect abort, staleness-7d query, mid-task capture, precedent comparison
against using-tasks / MEMORY.md / log.md / Karpathy diary, and the closure
record of cluster 7/7 (install / hermes-mapping / bootstrap-template-extend /
posttooluse-hook / existing-projects-upgrade / test-trigger / review). Source
buffer: `~/projects/.workshop/.archive/2026-05-24-session-handoff-skill.md`
Round 1 design + Round 2 Q1–Q10 resolution.
Also serves as the live-hook e2e smoke artifact for the deferred follow-up from
`[session-handoff-posttooluse-hook]` — substantive commit (feat: prefix, body
well above 200 chars) should trigger the PostToolUse `commit-detector.ps1` hook
just enabled in `~/.claude/settings.json` and emit `hookSpecificOutput.additionalContext`
on the next agent turn.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Step 1 now ships agent meta-paths inversions (`!.claude/`, `!.tasks/`,
`!.wiki/`, `!.brainstorm/`, `!.archive/`, `!.mcp/`, `!.mcp.json`,
`!MEMORY.md`) so own greenfield/upgrade projects re-enable visibility
against the global `core.excludesFile` cutter (`~/.config/git/ignore`)
that hides obvyaska from forks of upstream open-source. Without it any
fresh bootstrap landed an empty first commit on machines with the global
configured: setup-wiki/setup-tasks/Step 5 created .wiki/.tasks/CLAUDE.md
but git ignored them.
Two cases handled in Step 1:
- no .gitignore → write template (block included unconditionally)
- existing .gitignore → marker-based (`# AI обвеска — слой 2:`)
append-if-missing; idempotent on re-run
Smoke-tested in %TEMP%\test-bootstrap-meta-iso: all 3 acceptance
criteria pass + negative control (strip block → global hides) +
idempotency (re-run with marker present skips). Source concept:
workshop wiki concepts/meta-out-of-repo.md. Closes board task
[meta-isolation-bootstrap-skill-update].
MINOR bump (1.10.1 → 1.11.0) — new feature, backward-compat.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Combined the two backlog tasks [active-platform-tuning] +
[active-platform-eval] into a single workstream. Eval IS the tuning
mechanism; "wait for 5 real signals" was a placeholder replaced by
a 20-query synthetic eval set balanced across Win/Lin/Mac.
Spec written at .wiki/concepts/active-platform-eval-design.md
(~150 lines): 20 queries (>=3 should-trigger per OS + near-miss
negatives), run_loop.py 5-iter autoloop in parallel with manual
body sweep (WSL clarity, BSD/macOS expansion, ambiguity policy).
Workspace at .tasks/active-platform-eval/ (eval-set.json committed,
iterations gitignored). Version bump 1.0.0 -> 1.1.0 planned (MINOR).
Pre-flight verified: claude CLI on PATH at C:\nvm4w\nodejs\claude.ps1
(Claude Code 2.1.128); run_loop.py present in skill-creator install.
Both autoloop deps satisfied -- no fallback to manual single-pass.
Per-task file at .tasks/active-platform-eval.md (Goal, Key files,
Decisions log, Open questions, Notes). STATUS.md collapsed the two
original blocks into one paused block; resume point is Q2
(write 20 queries solo vs run skill-creator HTML-review template).
Also fixed in same pause: [install-ps1] STATUS scope expanded to
paired install.sh + install.ps1, cross-platform parity, prune flag
(lesson from [compress-dedup]).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
skills/compress/ was a byte-identical dupe of skills/caveman-compress/
(SHA256 match across all 7 scripts/ files; SKILL.md diff was name: +
Process step 2 only; descriptions textually identical = arbitrary
harness tie-break + double-counted listing budget).
Kept caveman-compress canonical: it carries README.md (benchmarks +
caveman-toolkit branding) and SECURITY.md (Snyk false-positive writeup),
and matches the caveman-* prefix invariant.
Ported the better Process-step wording from compress
(`cd <directory_containing_this_SKILL.md>`) into caveman-compress;
the prior `cd caveman-compress` form assumed cwd was the parent dir
and broke when invoked from ~/.claude/skills/caveman-compress/.
Added version: 1.0.0 to caveman-compress frontmatter
(first versioned release; aligns with skill-versioning concept).
Removed: skills/compress/, dist/compress.skill,
~/.claude/skills/compress/ (manual prune; install.sh has no prune step
yet -- future [install-ps1] task should add --prune).
Slash-command impact: /compress gone; /caveman-compress and
/caveman:compress (toolkit-canonical) remain.
Wiki: .wiki/concepts/compress-dedup.md (rationale + rejected
alternatives), index.md + log.md updated.
Tasks: [compress-dedup] flipped active -> done in same commit
(per-task file .tasks/compress-dedup.md created with full decisions
log).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Collapse Step 5.6 from a single-skill detector (only the
superpowers@claude-plugins-official plugin) into a generic
`trigger -> fulfiller` table walker that scales to every canonical
CLAUDE.md trigger.
Inline 9-row map in SKILL.md covers: caveman, superpowers (kind: plugin),
using-wiki, using-tasks, using-projects-meta, pulling-before-work,
project-discipline, using-interns, active-platform. The `kind` flag
(skill | plugin) drives which install command is emitted in the chat-only
recommendation block. Detection paths: ~/.claude/skills/<name>/SKILL.md
for skills, plugins.<id> in ~/.claude/plugins/installed_plugins.json
for plugins.
Algorithm: read project's CLAUDE.md -> match each non-comment line vs
map (substring + tolower, mirrors Step 5 idempotent merge) -> for each
canonical match check disk -> print one chat block listing every missing
fulfiller with copy-pasteable install commands, OR a single
"all dependencies satisfied" line. User-custom lines and removed
canonical lines are silently skipped. Hard rule "never auto-install"
preserved verbatim.
version: 1.6.0 -> 1.7.0 (MINOR per project-discipline Rule 3 -- adds
capability, absorbs prior superpowers-only detector cleanly).
Closes [bootstrap-skill-deps-check] (.tasks/STATUS.md done).
Closes [bootstrap-recommend-projects-meta] by absorption -- the deferred
mirror task was the seed of this generalization; the generic walker now
handles using-projects-meta along with everything else, no per-skill
mirror needed.
Design rationale at .wiki/concepts/bootstrap-skill-deps-check.md:
- why generic over per-skill mirrors (5x mirror explosion)
- skill vs plugin kind distinction
- MCP-server-backed skills (only check using-X policy skill;
setup-X self-fires via Prerequisites pointer)
- source-of-truth invariant: SKILL map + assets/CLAUDE.md.template
must stay in sync (a future CI lint could enforce)
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>
Step 5 was binary on upgrade (append whole template / leave alone), so
projects bootstrapped before v1.2.0 silently missed new canonical triggers
(`check across all projects`, `we're on Windows`) on re-run. Now upgrade
reads existing CLAUDE.md, substring-diffs vs template, preserves a
deliberately-pinned platform line, and appends only missing lines after
explicit confirm. Re-runs are no-ops.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
projects-meta-skills.md "Bootstrap trigger" section + log decision entry
now show Step 5.7 (projects-meta-mcp dependency detector) as accepted
future work rather than a deliberate non-decision. Tracked as ⚪ Ready
task [bootstrap-recommend-projects-meta].
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CLAUDE.md template gains a fifth trigger line, `check across all projects`
(verbatim phrase from `using-projects-meta` description). Every new or
upgraded project now auto-loads cross-project task aggregation and shared
projects-wiki access without an explicit verbal trigger.
No Step 5.7 mirror of Step 5.6 (superpowers plugin recommendation):
`using-projects-meta` Prerequisites already self-corrects to
`setup-projects-meta` when MCP tools are missing.
Synced: assets/CLAUDE.md.template, inline copy in SKILL.md (Step 5),
README.md + README.ru.md trigger lists, this repo's local CLAUDE.md,
dist/project-bootstrap.skill, .wiki/concepts/projects-meta-skills.md
(Bootstrap trigger section), .wiki/log.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
project-bootstrap@1.1.0 re-run on this repo (upgrade mode):
setup-wiki noop, setup-tasks noop, CLAUDE.md unchanged.
Records live skill versions in bootstrap-manifest.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Cross-machine workflows broke silently when the agent reasoned on a stale
MCP cache, or hit sha-based optimistic-lock 422s on shared-wiki writes
because another host had pushed minutes earlier. Codify the missing
pre-flight as Step 0:
1. Always probe mcp__projects-meta__meta_status first.
2. If cache_age_minutes > 10 OR errors_count > 0 → run
`node ~/.local/projects-meta-mcp/dist/sync.js` before any read.
3. For shared-wiki WRITES (knowledge_ingest, knowledge_promote) →
unconditional `git -C ~/projects/projects-wiki pull --ff-only`
(sha-lock will reject the commit otherwise; failure is opaque).
4. Tasks-mutations: sync via dist/sync.js is enough (no local clone
of target tasks repo).
5. Sync 401/403 → STOP, send user to ~/.config/projects-mcp/auth.toml
to rotate gitea_token. No silent retry.
10-minute cache window chosen as the read threshold — balances
multi-machine drift detection against unnecessary Gitea round-trips.
Common mistakes + Red flags expanded to call out the new failure modes.
README mirrors the rule for human readers. Wiki concept page
projects-meta-skills.md gets a "Freshness gate (v1.1.0)" subsection.
Closes [using-projects-meta-freshness-gate].
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Wraps the local projects-meta-mcp stdio server with the validated split-pair
pattern (setup-X / using-X), 4th application after context7 / wiki / tasks.
setup-projects-meta — 8-phase install: clones server repo to
~/.local/projects-meta-mcp, builds, writes ~/.config/projects-mcp/auth.toml,
clones shared wiki to ~/projects/projects-wiki/ (canon path; legacy
~/projects/.wiki is detected and migrated — old path caused the
wiki-path-mismatch bug, fixed upstream in 621a69f), registers
mcpServers.projects-meta in ~/.claude.json. Confirmation gates between
discovery and writes.
using-projects-meta — runtime policy: read tools (tasks_aggregate,
knowledge_search, meta_status, ...) and mutation tools with mandatory
two-step preview→confirm. Carries the local-first rule inline: for the
current project read .tasks/ / .wiki/ from disk; MCP cache is for *other*
projects only.
Wiki concept page concepts/projects-meta-skills.md documents the design,
the path-canon fix, and the round-trip task lifecycle across machines.
Closes [projects-meta-skills] in claude-skills (created from
DESKTOP-NSEF0UK via projects-meta-mcp).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Both README.md and README.ru.md gain a new "Using skills in projects"
/ "Использование в проектах" subsection right after the install
quick-start. Briefly describes what `project-bootstrap` lays down
(git, .gitignore, README, .wiki/, .tasks/, CLAUDE.md, manifest,
superpowers-plugin check) and the init/upgrade dual mode.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CLAUDE.md template adds `use superpowers` as a trigger, but that line
is silently dead until the official plugin is installed. New Step 5.6
reads ~/.claude/plugins/installed_plugins.json and, when the
`superpowers@claude-plugins-official` key is absent, prints a chat-only
recommendation with the install command and the upstream link
(github.com/anthropics/claude-plugins-official).
Strict no-auto-install: slash commands aren't callable from a skill,
and silent plugin install would be overreach.
Bumps project-bootstrap 1.0.0 → 1.1.0. Rebuilt dist archive.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Stock macOS ships bash 3.2 (frozen 2007 due to GPLv3) and BSD find.
Both scripts used `mapfile` (bash 4+) and `find -printf` (GNU only),
so a fresh Mac user running `bash scripts/install.sh` died on line 11
before copying anything. Replace with a portable shell glob — same
sort order, no `find` dependency, works on bash 3.2 and 4+.
Verified on git-bash: 16 skills discovered, install dry-run copies all,
`build.sh` produces a valid archive.
See .wiki/concepts/install-portability.md for the full gotcha.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Verified the user's `Remove-Item -Recurse -Force ~/.claude/skills/...`
ran cleanly:
- 16 skills in ~/.claude/skills/, no duplicates
- Old `wiki-maintainer` and `task-status-wiki` gone
- New `using-wiki`, `using-tasks`, `setup-wiki`, `setup-tasks` present
- context7 plugin confirmed live (mcp__plugin_context7_context7__*
tools showed up after restart, legacy mcp__context7__* gone)
Removed the ⚪ block from .tasks/STATUS.md; logged in .wiki/log.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Apply setup-tasks pattern to this repo's own .tasks/. Old flat layout
(## Done / ## Backlog sections, no emoji, no per-task files) replaced
with the canonical board:
- 7 ⚪ Ready blocks for live backlog items, each with the canonical
fields (slug, status, where-stopped, next-action, branch)
- Historical Done entries dropped — git log is the history of what
we've done (looking at .tasks/STATUS.md from bd8c378 backwards
shows the same content, just less compactly)
- No per-task files at this point — none of the items are active or
paused; using-tasks creates them on demand when a task starts
Backup written to .tasks/STATUS.md.bak-20260428-132845 (local only —
.gitignore now ignores **/*.bak-* since they're redundant with git
history).
Two backlog items that were marked done in the old format are gone:
both refer to commits already in this branch's history (4382fd3,
bd8c378). The cleanup-stale-skill-installs item is preserved as a
⚪ block for the user.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Mirror the wiki split. Rename `task-status-wiki` → `using-tasks` (preserves
file history via `git mv`). Strip the "Initialization" section out — that
content moves to the new `setup-tasks` skill, which owns greenfield
creation and migration.
`setup-tasks` has 6 phases (sanity → discovery → plan + confirm → backup →
greenfield/migrate → verify → report) and two modes:
- greenfield: write `.tasks/STATUS.md` with the canonical board template
(emoji legend in a comment block; no per-task files at bootstrap — they
get created on demand by using-tasks when actual tasks are added)
- migrate: detect old flat STATUS.md (no emoji, plain `## Done`/`## In
Progress` sections), back it up, then walk the user *interactively*
through each task to extract slug / status / branch / where-stopped /
next-action. Never auto-parses the old format — too varied, real work
at stake.
`using-tasks` Prerequisites section delegates to `setup-tasks` when the
board is missing or non-canonical (no emoji, no per-task files).
`project-bootstrap` Step 4 now delegates to `setup-tasks`.
The user's manual follow-up after this commit:
rm -rf ~/.claude/skills/{wiki-maintainer,task-status-wiki}/
to clean up the stale installs of the old names. (install.sh creates the
new ones but doesn't remove the old.)
This completes the three-commit refactor (a/b/c) tracked in
.tasks/STATUS.md.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Rename `wiki-maintainer` to `using-wiki` (rename via git mv preserves
file history). Strip greenfield/bootstrap content out of it; add a
Prerequisites section that delegates to the new `setup-wiki` skill when
`.wiki/` is missing or non-canonical.
New `setup-wiki` skill: 6-phase procedure (sanity → discovery → plan +
confirm → backup → create/migrate → verify → report). Two modes —
greenfield (no `.wiki/`) and migrate (existing non-canon, e.g. SUMMARY.md
+ source/). Confirmation gate before any write. Templates for each canon
file (`CLAUDE.md` schema, `index.md`, `log.md`, `overview.md`,
`raw/README.md`) baked in.
`project-bootstrap` Step 3 now delegates to `setup-wiki` instead of
holding inline templates that drift from canon.
After this commit, `~/.claude/skills/wiki-maintainer/` still exists as a
stale install — the user will rm it manually after commit (c) lands the
tasks split.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Six infra skills carry `version: 1.0.0` in frontmatter:
project-bootstrap, setup-context7, task-status-wiki, using-context7,
using-markitdown, wiki-maintainer. Bumped manually on SKILL.md edits;
semver — MAJOR breaks contract, MINOR adds, PATCH wording.
project-bootstrap gets a new Step 5.5 that writes
.wiki/concepts/bootstrap-manifest.md per project — skill + version + role
table read live from each delegated skill's frontmatter, not hardcoded.
The file is overwritten on re-bootstrap; for history, git log.
Why: when canonical layout for .wiki/ or .tasks/ changes, projects
bootstrapped under the old version drift silently. The per-project
manifest makes that drift debuggable instead of guesswork. Communication
and discovery skills (caveman family, find-skills, active-platform)
aren't versioned — their content is "good copy-paste" and snapshot
mismatch isn't a layout problem.
Wiki: .wiki/concepts/skill-versioning.md documents the convention;
index.md and log.md updated. .tasks/STATUS.md tracks (a/b/c) progress.
Setup/using split for wiki and tasks (commits b and c) follows.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- .wiki/concepts/skill-vs-plugin.md: when a bare SKILL.md suffices vs when
a plugin is required (slash commands, hooks, sub-agents, MCP via
marketplace). Concrete breakdown of `superpowers` showing why each of
its non-skill artifacts needs the plugin format.
- .wiki/index.md, log.md: linked / logged.
Backlog: project-bootstrap Step 4 has the same defect as the wiki step
(now fixed in 1cae0a2) — it creates a single flat STATUS.md and never
mentions the per-task files that task-status-wiki actually expects. Added
to .tasks/STATUS.md backlog for a conscious follow-up.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
User confirmed: invoking using-context7 in a session that needed setup
correctly delegated to setup-context7 via the Prerequisites pointer, and
the setup flow ran end-to-end. Pattern validated.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Split context7 concerns into two skills:
- using-context7 (policy, every-time): when to call, how to query well
- setup-context7 (infrastructure, one-time): install plugin, inject API
key, clean manual MCP entries, with confirmation gates
setup-context7 reuses an existing CONTEXT7_API_KEY by searching, in order:
~/.claude/settings.json → ~/.claude.json (top-level + project-scoped) →
~/.claude/settings.local.json → env. Asks the user only if nothing found.
Cross-platform (paths identical on Win/Linux/macOS; only JSON validator
differs). Phase-2 confirmation gate before any write; per-edit JSON
validation; rollback procedure documented.
using-context7 gets a small Prerequisites section pointing at
setup-context7 when MCP tools are missing.
Bonus fix: scripts/build.sh PS multi-arg bug. Comma-joined -Names didn't
split into [string[]] when build.ps1 was invoked via -File. Now the bash
side loops one PS invocation per skill.
Wiki: extended .wiki/concepts/context7-setup.md with the design rationale
(why split policy from setup) — template for future "X plugin + how to
use X" pairs. index.md and log.md updated.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Context: user previously had context7 MCP server registered manually in
three places (~/.claude/settings.json + two in ~/.claude.json), with the
CONTEXT7_API_KEY in HTTP-header form. Replaced with the official
context7@claude-plugins-official plugin.
What changed (outside the repo):
- ~/.claude/plugins/cache/.../context7/unknown/.mcp.json — added
"--api-key" CLI flag to args (Upstash docs recommend this for stdio).
- ~/.claude/settings.json — removed top-level mcpServers.context7.
- ~/.claude.json — removed top-level mcpServers.context7 and a legacy
project-scoped entry under projects[snolla-admin-ui].
Backups saved with suffix .bak-20260428-114532.
What changed in the repo (this commit):
- .wiki/concepts/context7-setup.md — new page documenting where the key
lives, the /plugin update gotcha, and the rollback path.
- .wiki/index.md, log.md — linked / logged.
- .tasks/STATUS.md — task moved to Done.
Plugin takes effect after Claude Code restart; current session still uses
the legacy HTTP transport (verified via smoke test on resolve-library-id).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>