Back to Skills

write-claude-md

pjt222
Updated 2 days ago
3 views
17
2
17
View on GitHub
Metawordaimcpautomation

About

This skill generates CLAUDE.md files that provide project-specific instructions to AI coding assistants. It covers file structure, common sections, do/don't patterns, and MCP server integration. Use it when starting new AI-assisted projects or improving AI behavior on existing codebases.

Quick Install

Claude Code

Recommended
Primary
npx skills add pjt222/agent-almanac -a claude-code
Plugin CommandAlternative
/plugin add https://github.com/pjt222/agent-almanac
Git CloneAlternative
git clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/write-claude-md

Copy and paste this command in Claude Code to install this skill

Documentation

Write CLAUDE.md

CLAUDE.md → AI assistants effective project-specific ctx.

Use When

  • New project → AI used
  • Improve AI behavior on existing
  • Doc project conventions, workflows, constraints
  • Integrate MCP servers|agent defs

In

  • Required: Project type + tech stack
  • Required: Key conventions + constraints
  • Optional: MCP server configs
  • Optional: Author + contributor info
  • Optional: Security + confidentiality reqs

Do

Step 1: Basic CLAUDE.md

Place CLAUDE.md in project root:

# Project Name

Brief description of what this project is and its purpose.

## Quick Start

Essential commands for working on this project:

```bash
# Install dependencies
npm install  # or renv::restore() for R

# Run tests
npm test     # or devtools::test() for R

# Build
npm run build  # or devtools::check() for R

Architecture

Key architectural decisions and patterns used in this project.

Conventions

  • Always use descriptive variable names
  • Follow [language-specific style guide]
  • Write tests for all new functionality

**Got:** `CLAUDE.md` in project root w/ min: project desc, quick start cmds, architecture, conventions.

**If err:** Unsure what to include → start w/ Quick Start only (3 most important: install, test, build). Expand incrementally.

### Step 2: Tech-Specific Sections

**R packages**:

```markdown
## Development Workflow

```r
devtools::load_all()    # Load for development
devtools::document()    # Regenerate docs
devtools::test()        # Run tests
devtools::check()       # Full package check

Package Structure

  • R/ - Source code (one function per file)
  • tests/testthat/ - Tests mirror R/ structure
  • vignettes/ - Long-form documentation
  • man/ - Generated by roxygen2 (do not edit manually)

Critical Files (Do Not Delete)

  • .Rprofile - Session configuration
  • .Renviron - Environment variables (git-ignored)
  • renv.lock - Locked dependencies

**Node.js/TS**:

```markdown
## Stack

- Next.js 15 with App Router
- TypeScript strict mode
- Tailwind CSS for styling
- Vercel for deployment

## Conventions

- Use `@/` import alias for src/ directory
- Server Components by default, `"use client"` only when needed
- API routes in `src/app/api/`

Got: Tech-specific sections match actual stack — R pkg structure for R, Node.js details for web. Cmds + paths reference real layout.

If err: Unfamiliar stack → inspect package.json, DESCRIPTION, Cargo.toml, equivalent → ID tech + add corresponding section.

Step 3: MCP Server Info

## Available MCP Servers

### r-mcptools (R Integration)
- **Purpose**: Connect to R/RStudio sessions
- **Status**: Configured
- **Configuration**: `claude mcp add r-mcptools stdio "Rscript.exe" -- -e "mcptools::mcp_server()"`

### hf-mcp-server (Hugging Face)
- **Purpose**: AI/ML model and dataset access
- **Status**: Configured
- **Configuration**: `claude mcp add hf-mcp-server -e HF_TOKEN=token -- mcp-remote https://huggingface.co/mcp`

Got: Each MCP server: purpose, status (configured|available|not configured), cmd to add. No actual tokens|secrets.

If err: MCP not yet configured → doc as "Available" w/ setup instructions, not "Configured." Placeholder vals like your_token_here.

Step 4: Author Info

## Author Information

### Standard Package Authorship
- **Name**: Author Name
- **Email**: [email protected]
- **ORCID**: 0000-0000-0000-0000
- **GitHub**: username

Got: Author section w/ name, email, ORCID (academic|research), GitHub. R pkgs match DESCRIPTION reqs.

If err: Author info sensitive|shouldn't be public → org name vs personal, or omit for internal-only.

Step 5: Security Guidelines

## Security & Confidentiality

- Never commit `.Renviron`, `.env`, or files containing tokens
- Use placeholder values in documentation: `YOUR_TOKEN_HERE`
- Environment variables for all secrets
- Git-ignored: `.Renviron`, `.env`, `credentials.json`

Got: Security section lists never-commit files, placeholder conventions, confirms .gitignore covers sensitive.

If err: Unsure which sensitive → grep -rn "sk-\|ghp_\|password" . for exposed secrets. Real creds → .gitignore + mention here.

Step 6: Reference Skills + Guides

## Development Best Practices References
@agent-almanac/skills/write-testthat-tests/SKILL.md
@agent-almanac/skills/submit-to-cran/SKILL.md

Got: Relevant skills + guides ref'd via @ paths → AI assistants get detailed procedures for common tasks.

If err: Ref'd skills|guides don't exist at paths → verify or remove. Broken @ refs no value, may confuse.

Step 7: Quality + Status

## Quality Status

- R CMD check: 0 errors, 0 warnings, 1 note
- Test coverage: 85%
- Tests: 200+ passing
- Vignettes: 3 (rated 9/10)

Got: Quality metrics → current state, accurate nums for check, coverage, test count, doc status.

If err: Metrics not yet avail (new project) → placeholder "TBD" + update as matures. No fabricate.

Check

  • CLAUDE.md in project root
  • Quick start cmds accurate + work
  • Architecture reflects actual structure
  • No sensitive (tokens, passwords, private paths)
  • MCP server configs current
  • Ref'd files + paths exist

Traps

  • Stale info: Update CLAUDE.md when project structure changes
  • Too much detail: Concise. Link detailed guides vs duplicate
  • Sensitive data: Never include actual tokens|creds. Placeholders.
  • Conflicting instructions: CLAUDE.md doesn't contradict other config
  • Missing from .Rbuildignore: R pkgs → add ^CLAUDE\\.md$ to .Rbuildignore

Examples

Pattern across successful projects:

  1. putior (829 lines): Comprehensive CLAUDE.md w/ quality metrics, 20 accomplishments, MCP integration, dev workflow
  2. Simple project (20 lines): Quick start + key conventions

Scale to match project complexity.

  • create-r-package — CLAUDE.md as part of pkg setup
  • configure-mcp-server — MCP config ref'd in CLAUDE.md
  • security-audit-codebase — verify no secrets in CLAUDE.md

GitHub Repository

pjt222/agent-almanac
Path: i18n/caveman-ultra/skills/write-claude-md
0
agentsagentskillsai-assisted-developmentclaude-codeskillsteams

Related Skills

content-collections

Meta

This skill provides a production-tested setup for Content Collections, a TypeScript-first tool that transforms Markdown/MDX files into type-safe data collections with Zod validation. Use it when building blogs, documentation sites, or content-heavy Vite + React applications to ensure type safety and automatic content validation. It covers everything from Vite plugin configuration and MDX compilation to deployment optimization and schema validation.

View skill

polymarket

Meta

This skill enables developers to build applications with the Polymarket prediction markets platform, including API integration for trading and market data. It also provides real-time data streaming via WebSocket to monitor live trades and market activity. Use it for implementing trading strategies or creating tools that process live market updates.

View skill

creating-opencode-plugins

Meta

This skill helps developers create OpenCode plugins that hook into 25+ event types like commands, files, and LSP operations. It provides the plugin structure, event API specifications, and implementation patterns for JavaScript/TypeScript modules. Use it when you need to intercept, monitor, or extend the OpenCode AI assistant's lifecycle with custom event-driven logic.

View skill

sglang

Meta

SGLang is a high-performance LLM serving framework that specializes in fast, structured generation for JSON, regex, and agentic workflows using its RadixAttention prefix caching. It delivers significantly faster inference, especially for tasks with repeated prefixes, making it ideal for complex, structured outputs and multi-turn conversations. Choose SGLang over alternatives like vLLM when you need constrained decoding or are building applications with extensive prefix sharing.

View skill