# Layton

> Personal AI secretary for attention management. Manages focus, tracking, briefings, and orientation across connected systems. Invoke for morning briefings, status checks, scheduling background tasks, tracking items, setting focus, or querying external tools (calendar, email, tasks). Use when this capability is needed.

- Skill: `tomevault-io/layton` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/layton`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/layton/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/layton

---


<objective>
Layton is your personal secretary—managing attention, synthesizing information from multiple systems, and providing context-aware briefings. It uses three primitives (rolodex cards, protocols, errands) and a thin CLI for orientation, health checks, temporal context, configuration, and discovery.
</objective>

<essential_principles>

- Use `bd` directly for all state operations (never wrap it)
- Always include `--json` flag for machine-readable output
- Always include `layton` label on beads Layton creates
- Only ONE bead should have `focus` label at any time
- Protocols are AI instructions—Layton follows them, not executes them as code
- Rolodex cards in `.layton/rolodex/` define how to query external tools
- User protocols in `.layton/protocols/` are customizable by users
- **ALWAYS** run `scripts/layton` at session start before any other action
- **NEVER** query external tools without first reading their rolodex card in `.layton/rolodex/`
- **NEVER** skip a protocol if the user's intent matches a protocol trigger
- **NEVER** replicate capabilities that already exist as installed Claude Code skills — check what's available and delegate to them instead
</essential_principles>

<primitives>

Layton has three building blocks. Each serves a distinct role:

| Primitive | What it is | Execution model | Stored in |
| --- | --- | --- | --- |
| **Rolodex card** | How to query an external tool (Gmail, Jira, calendar) | Referenced by protocols and errands | `.layton/rolodex/` |
| **Protocol** | Interactive multi-step process (briefings, reviews, authoring) | AI + human in conversation — can pause, branch, ask questions | `.layton/protocols/` |
| **Errand** | Autonomous background task (syncs, checks, reviews) | AI alone, no human — runs unattended, results reviewed later | `.layton/errands/` |

**When to use which:**

- Need to **query data** from an external system? → Write a **rolodex card**.
- Need to **guide a conversation** with decision points? → Write a **protocol**.
- Need to **run something unattended** and review the result later? → Write an **errand**.

</primitives>

<decision_framework>

Before taking ANY action, follow this sequence:

1. **Orient:** Run `scripts/layton` — the output is your **source of truth**. It returns health checks, rolodex cards, user protocols, internal protocols (with trigger phrases), reference docs, examples, errands, and queue status.
2. **Route:** Match the user's intent against protocol triggers from the orientation output. If found, read the protocol file and follow it exactly.
3. **Rolodex lookup:** If the task involves an external tool, read its rolodex card in `.layton/rolodex/` before querying. Never guess commands.
4. **Fallback:** Only if no trigger match — clarify intent with user, then select a protocol.

**External tool queries** (calendar, email, tasks, git, etc.): Always check `.layton/rolodex/` for the matching card first.

**Never skip orientation. Never query external tools without reading their rolodex card first.**

</decision_framework>

<intake>
```bash
scripts/layton
```

Review the orientation data and present options based on what's most relevant to the user's current situation.

**Wait for response before proceeding.**
</intake>

<cli>

The CLI script is at `scripts/layton` **relative to this SKILL.md file** (not the working directory). When you read this file, derive the script location from the path of this file:

- If SKILL.md is at `/path/to/skills/layton/SKILL.md`
- Then the CLI is at `/path/to/skills/layton/scripts/layton`

**Key commands:**

```bash
scripts/layton                                     # Full orientation (source of truth)
scripts/layton doctor                              # Health check
scripts/layton context                             # Temporal context
scripts/layton config show|init|get|set            # Configuration management
scripts/layton rolodex [--discover|add]            # Rolodex card management
scripts/layton protocols [add]                     # Protocol management
scripts/layton errands                             # List available errand templates
scripts/layton errands [add|schedule|run|prompt]   # Errand management
scripts/layton errands status                      # Show queue status (scheduled, in-progress, needs-review counts)
```

Run `scripts/layton --help` for full usage details.

</cli>

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/durandom) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-15 -->

