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>
This commit is contained in:
2026-04-28 10:42:33 +03:00
parent 782a00d6b8
commit 9f54068de0
51 changed files with 3243 additions and 6 deletions

View File

@@ -0,0 +1,212 @@
---
name: project-bootstrap
description: >
Initializes or upgrades a project in the current folder: git, .gitignore, README.md,
.wiki/ using Karpathy's method, .tasks/ for task tracking, CLAUDE.md with skill triggers.
Use this skill when the user says "initialize project", "bootstrap", "setup project",
"upgrade project", "add wiki", "add tasks", "start project", "set everything up",
or launches the agent in a new or existing folder and wants to configure the workspace.
Trigger even if the user just says "let's start a project" or "set it all up".
---
# Project Bootstrap
Sets up a complete working environment for a monorepo project in one pass.
Operates in two modes: **init** (new project) and **upgrade** (existing project).
---
## Step 0 — Detect mode
Check what already exists in the current directory:
```bash
ls -la
git rev-parse --git-dir 2>/dev/null && echo "git:yes" || echo "git:no"
[ -d .wiki ] && echo "wiki:yes" || echo "wiki:no"
[ -d .tasks ] && echo "tasks:yes" || echo "tasks:no"
[ -f CLAUDE.md ] && echo "claude:yes" || echo "claude:no"
[ -f README.md ] && echo "readme:yes" || echo "readme:no"
```
Show the user a summary in one block — what was found, what will be created:
```
Found: ✅ git ❌ .wiki ✅ .tasks ❌ CLAUDE.md ✅ README.md
Create: .wiki CLAUDE.md
Skip: git (exists) .tasks (exists) README.md (exists)
```
Ask one question: "Looks right? Shall we proceed?" — and wait for confirmation.
**Create nothing before confirmation.**
---
## Step 1 — Git
If git is not initialized:
```bash
git init
```
If `.gitignore` does not exist — create from template `assets/.gitignore.template`.
If it exists — leave it untouched.
---
## Step 2 — README.md
If it does not exist — create a minimal one:
```markdown
# <project folder name>
## About
<!-- Describe the project here -->
## Quick start
<!-- Instructions for running the project -->
```
If it exists — leave it untouched.
---
## Step 3 — .wiki/
If `.wiki/` already exists — skip it, notify the user.
If it does not exist — create the structure:
```
.wiki/
raw/ ← raw inputs: transcripts, docs, links — anything not yet processed
source/ ← compiled knowledge: wiki pages maintained by the agent
SUMMARY.md ← table of contents: all source/ pages with one-line descriptions
WORKFLOW.md ← how to work with the wiki: when to read, when to update
```
Contents of `WORKFLOW.md`:
```markdown
# Wiki Workflow
This wiki follows Karpathy's method: knowledge accumulates rather than being re-derived.
## Rules for the agent
- **Before starting work** — read relevant pages from source/
- **After an important decision** — update or create a page in source/
- **New raw materials** (links, docs, transcripts) — put in raw/
- **Processed knowledge** — write as markdown pages in source/
- **SUMMARY.md** — update whenever a page is added to source/
## Trigger
Skill is activated by the phrase: **use project wiki**
```
Contents of `SUMMARY.md`:
```markdown
# Wiki Summary
List of all pages in source/ with one-line descriptions.
The agent updates this file whenever source/ changes.
## Pages
<!-- Empty for now. Pages will appear as the project progresses. -->
```
---
## Step 4 — .tasks/
If `.tasks/` already exists — skip it, notify the user.
If it does not exist — create the structure:
```
.tasks/
STATUS.md ← task board
```
Contents of `STATUS.md`:
```markdown
# Task Board
_Updated: <today's date>_
<!-- Tasks will appear here as work progresses.
Skill is activated by the phrase: use task management system -->
```
---
## Step 5 — CLAUDE.md
If `CLAUDE.md` already exists — show its contents and ask:
"CLAUDE.md already exists. Append skill triggers to the end, or leave as is?"
If it does not exist — create from template `assets/CLAUDE.md.template`.
Template contents:
```markdown
# CLAUDE.md
# Agent instructions. Each line is a trigger for an installed skill.
talk like a caveman
use superpowers
use project wiki
use task management system
```
---
## Step 6 — Commit
```bash
git add .
git commit -m "chore: bootstrap project structure"
```
If the repo already had commits — commit only the files just created:
```bash
git add .wiki/ .tasks/ CLAUDE.md .gitignore README.md
git commit -m "chore: upgrade project structure"
```
---
## Step 7 — Summary
Print a final report:
```
✅ Done! Created:
.wiki/ — project wiki (Karpathy method)
.tasks/ — task tracking system
CLAUDE.md — skill triggers
.gitignore — standard template
README.md — starter file
Skipped (already existed):
git — left untouched
Next step: describe the project in README.md and start your first task —
say "use task management system".
```
---
## Rules
- **Never overwrite** existing files without explicit user confirmation
- **Always show the plan first** — one question, one confirmation
- **Never invent details** — if the project already exists, read what's there
- **Commit only what was just created** — do not touch the rest of the file tree
- **Commit automatically** after each successful step, no extra questions
- **Push only after explicit user confirmation** — ask "Push to remote?" and wait for "yes"

View File

@@ -0,0 +1,29 @@
# Dependencies
node_modules/
.venv/
__pycache__/
*.pyc
# Build outputs
dist/
build/
*.egg-info/
# Environment
.env
.env.local
.env.*.local
# IDE
.idea/
.vscode/
*.swp
*.swo
# OS
.DS_Store
Thumbs.db
# Logs
*.log
logs/

View File

@@ -0,0 +1,7 @@
# CLAUDE.md
# Agent instructions. Each line is a trigger for an installed skill.
talk like a caveman
use superpowers
use project wiki
use task management system