| name | layton |
| description | 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). |
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.
<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>
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.
<decision_framework>
Before taking ANY action, follow this sequence:
- 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.
- Route: Match the user's intent against protocol triggers from the orientation output. If found, read the protocol file and follow it exactly.
- Rolodex lookup: If the task involves an external tool, read its rolodex card in
.layton/rolodex/ before querying. Never guess commands.
- 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>
```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.
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:
scripts/layton
scripts/layton doctor
scripts/layton context
scripts/layton config show|init|get|set
scripts/layton rolodex [--discover|add]
scripts/layton protocols [add]
scripts/layton errands
scripts/layton errands [add|schedule|run|prompt]
scripts/layton errands status
Run scripts/layton --help for full usage details.