Commit Graph

81 Commits

Author SHA1 Message Date
6e4f3f481b refactor(skills): dedup compress -> caveman-compress [v1.0.0]
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>
2026-05-05 21:49:44 +03:00
8c547d73af feat(project-bootstrap): generic Step 5.6 skill-deps check
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)
2026-05-05 21:21:19 +03:00
2f7943f06f fix(setup-projects-meta): canon path table -> .common/lib
SKILL.md Phase 5 platform-path table (lines 152-154) had stale
~/.local/projects-meta-mcp; replace with ~/projects/.common/lib/
projects-meta-mcp to match real install canon (body Phase 4 clone
target + ~/.claude.json mcpServers.projects-meta.args[0]).

version: 1.0.0 -> 1.0.1 (PATCH, doc consistency).

Closes [using-projects-meta-fix-paths] (.tasks/STATUS.md done).
Sibling task [migrate-to-common-lib] in projects-meta-mcp closed
the same day with matching path migration.
2026-05-05 21:14:06 +03:00
001f4c566b feat(skills): update setup-projects-meta paths for .common/lib/
- Replace ~/.local/projects-meta-mcp → ~/projects/.common/lib/projects-meta-mcp
- Update setup-projects-meta and using-projects-meta skills
- Rebuild dist/ with new paths

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 20:35:59 +03:00
0eb7dd1d7c feat(interns-skills-mvp): ship setup-interns + using-interns v0.1.0; project-bootstrap 1.5.0 -> 1.6.0
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>
2026-05-05 17:41:11 +03:00
96dd6d1cb6 refactor: update setup-projects-meta for simplified wiki pathing
- 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.
2026-05-03 17:55:06 +03:00
d0a450ce40 feat(project-bootstrap): v1.5.0 — add 'follow project discipline' canonical trigger [v1.5.0] 2026-05-01 11:33:46 +03:00
88d533b362 feat(project-bootstrap): template gains 'follow project discipline' trigger 2026-05-01 11:33:10 +03:00
ca75124324 docs(project-discipline): README 2026-05-01 11:32:59 +03:00
560f15571e feat(project-discipline): skill body — four rules + activation + out-of-scope [v0.1.0] 2026-05-01 11:32:38 +03:00
7c63c6080f feat(project-discipline): scaffold skill frontmatter [v0.1.0] 2026-05-01 11:31:22 +03:00
dcad95069f feat(project-bootstrap): v1.4.0 — add 'pull remote before work' canonical trigger 2026-05-01 10:29:12 +03:00
c8c6b04c6f feat(project-bootstrap): template gains 'pull remote before work' trigger 2026-05-01 10:28:49 +03:00
6a3c6c5203 docs(pulling-before-work): README 2026-05-01 10:23:50 +03:00
1aa1f35ca6 feat(pulling-before-work): skill body — pull cycle, recovery hints, rationale 2026-05-01 10:23:39 +03:00
7a834f2a9a feat(pulling-before-work): scaffold skill frontmatter 2026-05-01 10:22:54 +03:00
68fe9a8c1c feat(project-bootstrap): v1.3.0 — idempotent CLAUDE.md merge on upgrade
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>
2026-04-30 15:06:06 +03:00
b12039720d feat(project-bootstrap): v1.2.0 — auto-load using-projects-meta in bootstrapped projects
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>
2026-04-30 01:02:06 +03:00
6c83a35d6d feat(using-projects-meta): v1.1.0 — mandatory Step 0 freshness gate
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>
2026-04-30 00:33:05 +03:00
6c96682c60 feat(skills): add setup-projects-meta + using-projects-meta pair
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>
2026-04-30 00:25:43 +03:00
d3a83a7d41 feat(project-bootstrap): recommend superpowers plugin if missing
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>
2026-04-28 20:47:58 +03:00
002a6b6e35 docs: add English READMEs for setup-wiki, setup-tasks, using-wiki, using-tasks
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>
2026-04-28 20:31:28 +03:00
724897d7c6 docs: add English README for project-bootstrap; translate root README
- 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>
2026-04-28 20:27:51 +03:00
bd8c378f83 feat: split tasks — using-tasks (policy) + setup-tasks (one-time)
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>
2026-04-28 13:26:46 +03:00
36fe39e921 feat: split wiki — using-wiki (policy) + setup-wiki (one-time)
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>
2026-04-28 13:23:26 +03:00
e1e5bd1309 feat: version infra skills (1.0.0) + project-bootstrap manifest step
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>
2026-04-28 13:19:38 +03:00
9d7d25223c feat: setup-context7 skill + using-context7 prerequisites pointer
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>
2026-04-28 11:56:22 +03:00
1cae0a2cf3 fix(project-bootstrap): align wiki init with Karpathy canon
Bootstrap was creating .wiki/SUMMARY.md + WORKFLOW.md + source/ — none of
which match Karpathy's LLM Wiki pattern or what wiki-maintainer reads first.
The skill had to bend around an invented layout (no schema file, wrong
catalog name, missing log/overview/entities/concepts/packages).

Rewrote Step 3 to create the canonical layout verbatim:
  .wiki/CLAUDE.md          schema (project-specific conventions)
  .wiki/index.md           catalog
  .wiki/log.md             append-only op log
  .wiki/overview.md        project overview
  .wiki/raw/README.md      immutability note
  .wiki/{entities,concepts,packages,sources}/.gitkeep

Pinned the gist URL inside the schema:
  https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f

Bumped dist/project-bootstrap.skill, recorded the why in
.wiki/source/wiki-realignment.md, and queued migration of *this* repo's own
.wiki/ (still on the old layout) as a backlog task — to be done deliberately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:17:36 +03:00
af94830fd5 feat(project-bootstrap): add we're on Windows to default CLAUDE.md template
Pin every newly-bootstrapped project to Windows / PowerShell out of the box
by adding a fifth trigger line to the CLAUDE.md template. The line activates
the active-platform skill, which then governs all command/example output.

- skills/project-bootstrap/assets/CLAUDE.md.template: append `we're on Windows`
- skills/project-bootstrap/SKILL.md: sync the embedded preview in Step 5 and
  document the Linux/macOS substitution
- CLAUDE.md (this repo): backfill the line — was created from old template
- dist/project-bootstrap.skill: rebuilt
- .wiki/source/active-platform-decision.md: append "Wired into project-bootstrap"

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:05:57 +03:00
125007a35e feat: add active-platform skill (Win/Linux/macOS switcher)
- skills/active-platform/SKILL.md: default = Windows/PowerShell; trigger
  phrases in RU+EN switch the active platform for the session; per-platform
  conventions (chaining, paths, env vars, install scripts) documented
- dist/active-platform.skill: built archive
- .wiki/source/active-platform-decision.md: rationale (skill chosen over
  global CLAUDE.md / project memory; user wanted a discoverable, iterable
  artifact)
- scripts/build.sh: fix PS arg-passing — single-quotes were leaking into
  -Names value, so multi-arg builds on Windows were rejected with
  "not found in skills/"

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:00:23 +03:00
9f54068de0 feat: migrate 12 personal skills + add build/install scripts
- skills/: editable sources for all 12 personal skills (caveman family,
  find-skills, project-bootstrap, task-status-wiki, using-context7,
  using-markitdown, wiki-maintainer, compress)
- dist/: built .skill archives, committed (cross-machine deploy without
  needing zip on the target)
- scripts/build.sh + build.ps1: zip skills/<name>/ into dist/<name>.skill;
  Windows fallback uses .NET ZipArchive (PS 5.1 Compress-Archive writes
  backslashes that break extraction on *nix)
- scripts/install.sh: copy skills/<name>/ into ~/.claude/skills/<name>/
  ($CLAUDE_SKILLS_DIR overrides target)
- .wiki/source/repo-layout.md, build-notes.md: design + gotchas
- .gitignore: keep dist/ tracked

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 10:42:33 +03:00