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>
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>
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>
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>
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>
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>