115 lines
3.6 KiB
Markdown
115 lines
3.6 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Overview
|
|
|
|
This is a personal Claude Code skills repository. Each skill is a self-contained directory that can be installed to `~/.claude/skills/` to extend Claude Code's capabilities.
|
|
|
|
## Repository Structure
|
|
|
|
```
|
|
ljg-skills/
|
|
├── ljg-*/ # Each skill is a directory with "ljg-" prefix
|
|
│ ├── SKILL.md # Skill definition with YAML frontmatter
|
|
│ ├── references/ # Reference docs for complex skills
|
|
│ ├── assets/ # Templates, images, scripts
|
|
│ └── scripts/ # Helper scripts (bash, node)
|
|
├── README.md
|
|
└── .gitignore # Ignores everything except ljg-*/ and specific files
|
|
```
|
|
|
|
## Skill Format
|
|
|
|
Each `SKILL.md` follows this structure:
|
|
|
|
```yaml
|
|
---
|
|
name: skill-name
|
|
description: "What this skill does. Use when user says..."
|
|
user_invocable: true|false
|
|
version: "x.x.x"
|
|
---
|
|
|
|
# Skill content in markdown...
|
|
```
|
|
|
|
## Skill Inventory
|
|
|
|
| Skill | Purpose | External Dependencies |
|
|
|-------|---------|----------------------|
|
|
| `ljg-card` | Content → PNG visuals (long cards, infographs, posters) | Node.js + Playwright |
|
|
| `ljg-paper` | Academic paper analysis pipeline | None |
|
|
| `ljg-plain` | Plain language rewriter | None |
|
|
| `ljg-word` | English word deep-dive | None |
|
|
| `ljg-writes` | Writing engine for thinking through ideas | None |
|
|
| `ljg-mcn` | Short video editor thinking tool; practical-domain constraint layer for ljg-is/think/rank/structure | None |
|
|
|
|
## Commands
|
|
|
|
### Install ljg-card Dependencies
|
|
|
|
`ljg-card` requires Playwright for screenshot capture:
|
|
|
|
```bash
|
|
cd ljg-card && npm install && npx playwright install chromium
|
|
```
|
|
|
|
### Install Skills (for users)
|
|
|
|
```bash
|
|
# Copy all skills to Claude Code
|
|
mkdir -p ~/.claude/skills
|
|
cp -r ljg-* ~/.claude/skills/
|
|
```
|
|
|
|
## Architecture Notes
|
|
|
|
### Skill Invocation
|
|
|
|
- Skills with `user_invocable: true` can be triggered via `/skill-name` or natural language
|
|
- Trigger phrases are defined in each skill's `description` field
|
|
- Skills can call other skills via the Skill tool
|
|
|
|
### Content Processing Pipeline
|
|
|
|
Several skills share a common pattern for content ingestion:
|
|
- **URL** → WebFetch
|
|
- **File path** → Read tool
|
|
- **Raw text** → Direct use
|
|
|
|
### ljg-card Architecture
|
|
|
|
The most complex skill with multiple rendering modes:
|
|
|
|
1. **HTML Templates**: Stored in `assets/` (long_template.html, infograph_template.html, poster_template.html)
|
|
2. **Capture Script**: `assets/capture.js` uses Playwright to screenshot HTML → PNG
|
|
3. **Reference Docs**: `references/taste.md` (design guidelines), `references/mode-*.md` (mode-specific instructions)
|
|
4. **Output**: PNG files written to `~/Downloads/`
|
|
|
|
### Shared Conventions
|
|
|
|
**Org-mode output** (ljg-paper, ljg-plain, ljg-writes):
|
|
- Bold: `*text*` (single asterisk, not `**`)
|
|
- Filenames: `{timestamp}--{title}__{type}.org`
|
|
- Output directory: `~/Documents/notes/`
|
|
- Timestamps: `date +%Y%m%dT%H%M%S`
|
|
|
|
**ASCII Art**:
|
|
- Allowed: `+ - | / \ > < v ^ * = ~ . : # [ ] ( ) _ , ; ! ' "`
|
|
- Forbidden: Unicode box-drawing characters
|
|
|
|
## Development Guidelines
|
|
|
|
- Skills are atomic units—each skill directory is self-contained
|
|
- Version numbers are manually maintained in SKILL.md frontmatter
|
|
- The `.gitignore` ignores all files by default; explicitly unignore with `!pattern`
|
|
- When modifying skill logic, update both the SKILL.md and any referenced files in `references/`
|
|
|
|
## Testing Changes
|
|
|
|
After modifying a skill:
|
|
1. Copy to `~/.claude/skills/`
|
|
2. Restart Claude Code to reload skills
|
|
3. Test via natural language trigger or `/skill-name`
|