# @shaykec/modules

[![npm version](https://img.shields.io/npm/v/@shaykec/modules)](https://www.npmjs.com/package/@shaykec/modules)

Built-in learning modules that ship with Socrates. These are always available and serve as reference implementations for the module format.

```bash
npm install @shaykec/modules
```

## Built-in Modules

| Module | Slug | Difficulty | Capabilities |
|--------|------|-----------|-------------|
| Git - Version Control Fundamentals | `git` | Beginner | content, walkthrough, exercises, quiz |
| Claude Code Hooks | `hooks` | Intermediate | content |
| A Day with Claude Code | `daily-workflow` | Beginner | content (narrative) |

## Module Format

Every module is a directory containing:

| File | Required | Purpose |
|------|----------|---------|
| `module.yaml` | Yes | Metadata, XP values, triggers, visuals config |
| `content.md` | Yes | Reference content (the "textbook") |
| `walkthrough.md` | No | Step-by-step Socratic guided lesson |
| `exercises.md` | No | Hands-on exercises with validation |
| `quiz.md` | No | Multiple choice with explanations |
| `quick-ref.md` | No | Cheat sheet / command reference |

## Module Sources

The registry scans three locations and merges them:

| Source | Location | Purpose |
|--------|----------|---------|
| Built-in | `packages/modules/` | Ships with Socrates |
| Installed packs | `~/.socrates/modules/<pack>/` | Git repos installed by the user |
| Local custom | `~/.socrates/modules/local/` | User-authored modules |

## Authoring New Modules

Use `/teach:author <topic>` in Claude Code for guided creation, or scaffold manually:

```bash
socrates author init my-pack
socrates author add my-pack/my-module
socrates author validate my-pack
```

See the [root README](../../README.md) for the full module.yaml schema and authoring guide.
