- Changed from ~/projects/projects-wiki/.wiki to ~/projects/.wiki/
- Removed legacy migration logic (no longer needed)
- Updated all script references and documentation
- Simplified Phase 4 detection (single canon path)
This aligns with projects-wiki repo changes where nested .wiki/
was removed and content now lives in root.
Spec: .wiki/concepts/project-discipline-design.md — four cross-project
rules (conventions-over-defaults, master-only, semver-bumping with
first-edit-unversioned clause, session-scoped ask-before-push with
grant/revoke and force/delete/non-ff exceptions); architecture: single
policy skill activated by 'follow project discipline' line in CLAUDE.md
template (added by project-bootstrap v1.5.0); 12-task implementation
plan tracked in .tasks/project-discipline-skill.md.
Per final code review: Done block claimed scenarios 1/2/4/8 verified
manually, but controller actually ran 1/2/3/4/5/8/9 + the inline
bootstrap-merge check. Scenarios 6 (diverged remote) and 7 (re-sync
trigger via fresh session) were not live-tested. Now stated honestly.
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>
Follow-up to [bootstrap-projects-meta-trigger] (commit b120397). Mirrors
Step 5.6 (superpowers recommendation) for projects-meta-mcp. Deferred
until we see a real fresh-machine bootstrap silently miss the dep.
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>
User paused the task. Logged the pause point in the decisions log;
STATUS.md block already 🟡 with the resume hint.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Marked READMEs for project-bootstrap, setup-wiki, setup-tasks,
using-wiki, using-tasks as completed. Next-action points at the
caveman cluster (or other groups) for the next batch.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Each README mirrors the structure of the project-bootstrap one (title,
when-it-triggers, behavior, hard rules, install, see-also). The four
skills cross-link as setup ↔ using companion pairs and back to
project-bootstrap.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Per using-tasks: opened a 🟡 paused block for the multi-skill README
work, with a per-task file capturing the goal, log, and next-step
ordering for the remaining 15 skills.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- skills/project-bootstrap/README.md: new English README (modes,
triggers, prerequisites, layout, install, see-also).
- README.md: translated to English; both root READMEs cross-link.
- README.ru.md: original Russian preserved (renamed from README.md);
fixed broken `.wiki/source/repo-layout.md` link to point at the real
path under `.wiki/concepts/`.
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>