Initialize a new repository with standard scaffolding - git, gitignore, AGENTS.md, justfile, mise, and beads. Use when starting a new project or setting up an existing repo for Claude Code workflows.
Initializes new or existing repositories with standard scaffolding for Claude Code workflows.
npx claudepluginhub rbergman/dark-matter-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/AGENTS.mdreferences/repo-init.formula.jsonScaffold a new or existing repository with standard project infrastructure.
Related skills:
This skill supports two modes. Prefer molecule mode when beads is available.
Use beads molecules for tracked, closeable tasks. Each step becomes an issue you can close as you complete it.
Prerequisites: beads installed (bd --version works)
Steps:
Find the dm-work plugin install path:
jq -r '.plugins["dm-work@dark-matter-marketplace"][0].installPath' ~/.claude/plugins/installed_plugins.json
Wisp the formula (ephemeral, no git pollution):
bd mol wisp <install-path>/skills/repo-init/references/repo-init.formula.json \
--var lang=<language> --var name=<project-name> --var type=<project-type>
Work through tasks:
bd ready # See next task
# ... do the work ...
bd close <step-id> # Mark complete
Clean up when done:
bd mol burn <wisp-id>
Variables:
| Variable | Required | Default | Values |
|---|---|---|---|
lang | Yes | - | go, rust, typescript, python |
name | Yes | - | Project name |
type | No | cli | cli, lib, web, api |
Use when beads is not installed or for quick setups without tracking.
Follow the steps below in order. Steps 3-6 can run in parallel after git-init.
Before scaffolding, clarify:
Use AskUserQuestion if unclear from context.
# Initialize git if needed
git init
Copy from the appropriate language skill's references/gitignore:
| Language | Source |
|---|---|
| Go | go-pro/references/gitignore |
| Rust | rust-pro/references/gitignore |
| TypeScript | typescript-pro/references/gitignore |
| Python | python-pro/references/gitignore |
For multi-language repos: Start with the primary language's gitignore, then merge patterns from others.
Minimal fallback (if language skill unavailable):
# Environment
.env
.env.local
.env.*.local
.envrc
# OS
.DS_Store
Thumbs.db
# IDE
.idea/
.vscode/
# Build (customize per language)
dist/
build/
target/
node_modules/
__pycache__/
Every repo should have a .claudeignore file. Claude Code indexes everything it can see — without ignore patterns, it reads build artifacts, generated files, and large binaries, wasting massive token budget. This is the single highest-impact CC optimization.
Universal base (all projects):
# Secrets — never leak into CC context
.env
.env.*
.envrc
secrets/
*.pem
*.key
*.p12
# Lock files (large, no signal)
pnpm-lock.yaml
package-lock.json
yarn.lock
bun.lockb
Cargo.lock
go.sum
Gemfile.lock
poetry.lock
# Source maps
*.map
# Binary assets (images, fonts)
*.png
*.jpg
*.jpeg
*.gif
*.ico
*.svg
*.woff
*.woff2
*.ttf
*.eot
# Logs and OS
*.log
logs/
.DS_Store
# Agent working dirs
.worktrees/
history/
Add language-specific patterns:
| Language | Patterns |
|---|---|
| TypeScript/Node | node_modules/, dist/, build/, .next/, coverage/, *.tsbuildinfo, .turbo/, .cache/ |
| Python | __pycache__/, .venv/, venv/, *.pyc, .mypy_cache/, .pytest_cache/, dist/, build/, *.egg-info/ |
| Go | vendor/, bin/ |
| Rust | target/ |
| AI/ML | output/, models/, *.safetensors, *.ckpt, *.pt, *.bin, checkpoints/ |
For multi-language repos: Combine all relevant language patterns.
Copy the AGENTS.md template from this skill's references/AGENTS.md to the project root, then create a symlink so Claude Code discovers it automatically:
cp <skill-install-path>/references/AGENTS.md ./AGENTS.md
ln -s AGENTS.md CLAUDE.md
AGENTS.md is the canonical file; CLAUDE.md is a symlink so Claude Code discovers it automatically.
Customize the template for the specific project (update project description, add project-specific conventions).
Create CLAUDE.local.md for personal preferences that shouldn't be committed (it's auto-added to .gitignore):
cat > CLAUDE.local.md << 'EOF'
# Personal Project Preferences
# This file is gitignored — safe for local paths, sandbox URLs, etc.
# For worktrees: import shared personal prefs so all worktrees stay in sync
# @~/.claude/my-project-instructions.md
EOF
Use this for sandbox URLs, test data paths, local tool overrides, and other per-developer settings.
For monorepos or projects with distinct subsystems, use .claude/rules/ instead of a single large CLAUDE.md:
.claude/
├── CLAUDE.md # Core project instructions
└── rules/
├── go-backend.md # Go-specific rules
├── ts-frontend.md # TypeScript-specific rules
└── api-design.md # API conventions
All .md files in .claude/rules/ are auto-loaded. Rules can be path-scoped via YAML frontmatter to only activate when Claude touches matching files:
---
paths:
- "packages/api/**/*.go"
---
# API Backend Rules
- All handlers return structured errors
- Use slog for logging, never fmt.Print
Skip this for single-language repos — a single CLAUDE.md is simpler.
# Project Build System
# Usage: just --list
default:
@just --list
# First-time setup
setup:
mise trust
mise install
@echo "Ready. Run 'just check' to verify."
# Quality gates - add language-specific checks
check:
@echo "Add fmt, lint, test recipes"
# Remove build artifacts
clean:
@echo "Add clean commands"
See just-pro skill for language-specific recipes.
Create .mise.toml:
[tools]
# Add tools with: mise use <tool>@<version>
# Examples:
# node = "22"
# go = "1.23"
# rust = "1.83"
# just = "latest"
If the user wants CLI output compression for LLM context efficiency:
# Install tokf
brew install mpecan/tokf/tokf # or: cargo install tokf, mise use -g tokf
# Set up Claude Code hook (auto-filters Bash output)
tokf hook install
# Enable agent filter authoring
tokf skill install
# Verify
tokf ls # List available filters
Optionally create .tokf/filters/ for project-specific filter overrides and commit it. See tokf skill for full configuration details.
Create .envrc.example (committed) as template for .envrc (gitignored):
# Copy to .envrc and fill in values
# cp .envrc.example .envrc && direnv allow
# Mise integration
if command -v mise &> /dev/null; then
eval "$(mise hook-env -s bash)"
fi
# Project-specific environment
# export DATABASE_URL="postgres://localhost/myapp"
# export API_KEY=""
bd init -q
bd onboard
Point user to language-specific setup:
| Language | Next Step |
|---|---|
| Go | Invoke go-pro skill, run go mod init |
| Rust | Invoke rust-pro skill, run cargo init |
| TypeScript | Invoke typescript-pro skill, run npm init |
| Python | Invoke python-pro skill, run uv init |
# Full manual init sequence
git init
# Create .gitignore, .claudeignore, AGENTS.md, CLAUDE.md symlink, justfile, .mise.toml, .envrc.example
bd init -q
bd onboard
mise use just@latest
# Then follow language skill for specifics
For monorepos, the root gets:
justfile with module imports (see just-pro monorepo patterns).mise.toml with shared tooling.claudeignore combining patterns for all languages in the monorepo.beads/ at rootEach package gets:
justfileCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.