Skip to content

cducote/documentation-demon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Documentation Demon

Stop forgetting those API gotchas. A Claude Code skill that quizzes you on the real documentation for your project's tech stack.

Why?

You've read the React docs. You've used useEffect a thousand times. But do you remember what happens when you return a cleanup function that captures stale state? Or that Object.is comparison means {} !== {}?

Documentation Demon finds the technologies in your project and generates trivia from their actual documentation - gotchas, edge cases, and lesser-known features you'll actually encounter.

Installation

Option 1: Fork or Clone (Recommended)

Fork or clone this repo to get your own copy, then work from inside the directory:

# Fork on GitHub first, then:
git clone https://github.com/YOUR_USERNAME/documentation-demon.git
cd documentation-demon

# Or clone directly:
git clone https://github.com/cducote/documentation-demon.git
cd documentation-demon

The skill is already configured in .claude/ — just start using the commands.

Option 2: Install as Plugin

Prerequisites: The repo must be public on GitHub.

# Add as a marketplace source
/plugin marketplace add cducote/documentation-demon

# Then install
/plugin install documentation-demon

Option 3: Manual Installation

Copy the .claude/ folder into your project:

cp -r path/to/documentation-demon/.claude your-project/.claude

Quick Start

First, restart Claude with permissions to avoid prompt fatigue:

claude --dangerously-skip-permissions

Then run:

# Scan your project and generate challenges
/scan

# Answer a challenge
/demon smash react-001 "bails out"

# Set up Discord (enables passive firing)
/demon discord

# Manually fire a challenge to Discord
/demon fire

Commands

/scan

Scan your project and generate a bank of 20-40 challenges. Run once for finished projects, or periodically as your project evolves.

/scan                    # Generate challenge bank
/scan --fresh            # Rescan and regenerate all
/scan --theme security   # Focus on security gotchas
/scan --depth 6          # Deeper scan for monorepos

/demon

Manage challenges, Discord, and settings.

/demon smash [id] [answer]

Answer a challenge and mark it as "smashed" - it won't appear in Discord notifications anymore.

/demon smash                              # Interactive mode - pick from list
/demon smash react-001 "bails out"        # Direct answer
/demon smash aws-lambda-003 "3 seconds"   # Partial answers work if correct

Claude uses reasoning to check your answer - it's not strict exact matching. Show you understand the concept and you're good.

/demon fire

Manually fire a random challenge to Discord.

/demon fire

One command, one random unanswered challenge sent to your Discord channel.

/demon discord

Set up Discord integration.

/demon discord

You'll be prompted for your webhook URL. Once configured, challenges fire automatically:

  • 50% chance on session start
  • 50% chance on each prompt
  • Manual: /demon fire

Challenge Multiplier

Control how many challenges are generated per technology:

/demon triple   # 3x challenges per tech (next /scan)
/demon double   # 2x challenges per tech (next /scan)
/demon reset    # Back to 1x (default)

Set before running /scan to generate larger challenge banks.

What It Scans

Documentation Demon looks at multiple sources to understand your stack:

Source What it finds
CLAUDE.md Explicit tech mentions
README.md Stack descriptions
package.json npm dependencies
*.yaml, *.tf AWS services (Lambda, DynamoDB, S3, IAM, etc.)
.env.example Service hints (Stripe, Redis, etc.)
.env.*.example Environment-specific services

It prioritizes technologies with interesting APIs and common gotchas - frameworks, popular libraries, and cloud services. Major technologies get 3-5 challenges each.

Note: The skill NEVER reads .env files - only .env.example and .env.*.example.

Discord Integration

Want challenges without asking? Set up Discord and receive them passively as you work.

Setup:

  1. Run /demon discord
  2. Paste your webhook URL (Channel Settings → Integrations → Webhooks)
  3. Choose whether to include answers (spoiler tags)

That's it. Random challenges appear in your Discord channel while you work. Smashed challenges won't repeat.

Example Output

# Documentation Demon Challenge Bank

Generated: 2026-01-24
Total challenges: 35
Smashed: 5
Stack: React, Next.js, AWS Lambda, DynamoDB, Zod, TanStack Query...

---

## react-001
**Tech:** React
**Q:** What happens when you call `useState` setter with the same value?

<details>
<summary>Reveal Answer</summary>

React bails out - no re-render. Uses `Object.is` comparison.

**Why this matters:** Explains why mutating objects doesn't trigger updates.

</details>

[Source](https://react.dev/reference/react/useState)

**Status:** smashed ✓

---

## aws-lambda-001
**Tech:** AWS Lambda
**Q:** What's the default timeout and what's the maximum?

<details>
<summary>Reveal Answer</summary>

Default: 3 seconds. Maximum: 15 minutes (900 seconds).

**Why this matters:** Many developers hit the default without realizing it.

</details>

[Source](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html)

**Status:** unanswered

---

Configuration

Optional config at .claude/skills/documentation-demon/config.json:

{
  "scanDepth": 4,
  "lastScan": "2026-01-24",
  "totalChallenges": 35,
  "answeredChallenges": ["react-001", "zod-002"],
  "discord": {
    "webhookUrl": "https://discord.com/api/webhooks/...",
    "includeAnswer": false
  }
}
Option Default Description
scanDepth 4 How deep to scan for package.json
discord.webhookUrl - Your Discord webhook (set via /demon discord)
discord.includeAnswer false Include answers in Discord (spoiler tags)

URL Verification

Every link in the output was fetched and verified. No hallucinated documentation URLs - if a URL doesn't load, that technology is skipped.

Non-JavaScript Projects

Works with any stack. Create a CLAUDE.md listing your technologies:

# Stack

- Python 3.11
- FastAPI
- SQLAlchemy
- Redis
- AWS Lambda
- DynamoDB

Or just have infrastructure files - the skill reads CloudFormation, Terraform, and Serverless configs to detect AWS services.

Contributing

Found a bug? Have an idea? Open an issue or PR.

License

MIT

About

A Claude Code skill that quizzes you on the real documentation for your project's tech stack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages