Skip to content
Agentmart
Submit a tool

lythoskill-deck

Declarative skill deck governance.

Skill by lythos-labs

IndexedMIT★ 3
Write a review

Chalk Labs

Need help deploying lythoskill-deck?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/lythos-labs-lythoskill-deck

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Declarative skill deck governance. `deck link` reconciles the working set to match skill-deck.toml — deny-by-default removes undeclared skills. DEFAULT patterns: PHASE SWITCH via separate deck files (deck link --deck phase<N>.toml), SEED bootstrap (minimal deck → agent self-expands via deck add + curator discovery). Always restores parent deck. Zero state pollution between phases. INNATE FIRST: after compaction, session reload, or skill refresh — read every innate skill's full SKILL.md before any tool skill. Innate = eagerly loaded, always full context. Tool = lazy, read only on trigger. CRITICAL when writing a deck for others: verify every locator path against the REAL repo structure before publishing.

Use cases: presentations, writing, agent-building

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Shell scripts

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/lythoskill-deck

What's inside

Skill name
lythoskill-deck
Description
Declarative skill deck governance. `deck link` reconciles the working set to match skill-deck.toml — deny-by-default removes undeclared skills. DEFAULT patterns: PHASE SWITCH via separate deck files (deck link --deck phase<N>.toml), SEED bootstrap (minimal deck → agent self-expands via deck add + curator discovery). Always restores parent deck. Zero state pollution between phases. INNATE FIRST: after compaction, session reload, or skill refresh — read every innate skill's full SKILL.md before any tool skill. Innate = eagerly loaded, always full context. Tool = lazy, read only on trigger. CRITICAL when writing a deck for others: verify every locator path against the REAL repo structure before publishing.
License
MIT
Instructions
251 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts

Agent Skills spec issues

  • name: "lythoskill-deck" does not match folder "skill"
  • allowed-tools: must be a space-separated string
  • files: referenced but missing: examples/decks/INDEX.md

Files (15)

  • SKILL.md
  • skill-deck.toml.template · assets/
  • architecture.md · references/
  • arena-integration.md · references/
  • cold-pool-setup.md · references/
  • custom-fields.md · references/
  • deck-building.md · references/
  • glossary.md · references/
  • intent-plan-execute.md · references/
  • skill-repo-states.md · references/
  • skill-types.md · references/
  • toml-format.md · references/
  • deck-migrate.sh · scripts/
  • deck-status.sh · scripts/
  • link.sh · scripts/

SKILL.md (first lines)

# lythoskill-deck: Declarative Skill Deck Governance
> What matters is not how many skills you have, but which ones the agent sees at the same time.

> **Invocation.** Body text uses the `deck <cmd>` shorthand. Run commands as
> `bunx @lythos/skill-deck@{{PACKAGE_VERSION}} <cmd>` (no install), or
> `lythoskill-deck <cmd>` if installed globally. The bare `deck` name is an
> in-repo alias convention in the lythoskill monorepo only — NOT a registered
> bin (the npm package registers `lythoskill-deck`). Same mapping: `arena` →
> `@lythos/skill-arena`, `curator` → `@lythos/skill-curator`, `cortex` →
> `@lythos/project-cortex`.
> Want the shorthand? Register it yourself — e.g.
> `alias deck='bunx @lythos/skill-deck@latest'` in your shell config.
> Optional, your machine, your choice.

## Core Model

`skill-deck.toml` declares desired state. `deck link` makes the working set (default `.claude/skills/`) match — creates symlinks for declared skills, removes everything else. Deny-by-default: undeclared skills do not exist in the agent's view.

```
Cold Pool (~/.agents/skill-repos/)  →  deck add  →  skill-deck.toml  →  deck link  →  .claude/skills/
     (all downloaded skills)              (declare)      (desired state)    (reconcile)    (working set — what agent sees)
```

## Multi-File Phase Decks (BEST PRACTICE)

When a task spans different skill sets, use **separate deck files per phase** instead of editing a single toml:

```bash
# Phase 1 — brand design (full form: bunx @lythos/skill-deck@<version> link …)
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} link --deck phase1-brand.toml --cold-pool ~/.agents/skill-repos

# Phase 2 — content creation (atomic switch, Phase 1 skills gone)
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} link --deck phase2-content.toml --cold-pool ~/.agents/skill-repos

# Done — restore parent deck
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} link --deck ./skill-deck.toml
```

Each phase deck is independently auditable. Never add/remove entries in-place when switching contexts — a wrong edit silently breaks the previous phase's composition. The reconciler handles the transition: old symlinks removed, new ones created, no state leaks.

## Seed Bootstrap

Start with a minimal deck (only lythoskill-deck as innate). The agent reads deck SKILL.md → learns schema → uses curator `name LIKE '%keyword%'` to discover skills → `deck add` + `deck link` → self-expands. Governance skill is the only irreducible dependency.

```toml
[deck]
max_cards = 8
cold_pool = "~/.agents/skill-repos"
working_set = ".claude/skills"

[innate.skills.lythoskill-deck]
path = "github.com/lythos-labs/lythoskill/skills/lythoskill-deck"
```

## Commands

```bash
# ── Core (use these every time) ──

# Reconcile working set to match declaration
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} link
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} link --deck ./phase1-brand.toml

# Add skill from cold pool or download URL
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} add github.com/owner/repo/skill-name
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} add github.com/owner/repo/skill-name --alias my-skill --type tool

# ── Maintenance ──

bunx @lythos/skill-deck@{{PACKAGE_VERSION}} refresh              # plan-only scan for updates
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} refresh --exec       # actually git pull (self-heals dirty cold pool; non-zero exit + trailing ⚠️ on failure)
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} remove <alias>       # remove from deck + working set
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} validate                   # check current deck
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} validate --deck <path>     # check specific deck
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} validate --remote          # probe locators against GitHub
# Cold-pool-missing skills warn (not error) — they may exist on GitHub.
# HATEOAS output: each warning suggests curator add <locator> as next step.

# ── Advanced ──

bunx @lythos/skill-deck@{{PACKAGE_VERSION}} to-symlink <alias>   # snapshot → symlink
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} to-snapshot <alias>  # symlink → snapshot (pin HEAD)
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} per-run kimi          # render per-run CLI call from deck state (zero side effects)
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} reconcile            # drift report vs cold pool
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} reconcile --apply    # converge
bunx @lythos/skill-deck@{{PACKAGE_VERSION}} migrate-schema       # old string-array → alias-as-key
```

`link` is a reconciler: undeclared symlinks → removed; broken symlinks → recreated; non-symlink entities → backed up then removed; missing declared skills → linked from cold pool. It also prints best-effort ⚠️ warnings when a cold-pool repo is behind origin, dirty, or on a non-default branch — drift is surfaced at the step every boot already runs. The health probe never blocks and swallows its own errors by design; set `LYTHOS_DEBUG=1` to print a caught probe error (🔍 whisper) when you suspect the probe itself is broken.

`refresh` defaults to **plan-only** (no git pull). Use `--exec` to apply, or let an agent read the plan and execute per target — the agent can probe remotes, switch mirrors, handle divergence.

> `deck update` is deprecated. Use `refresh`.

## Format Detection (agent duty)

Before running any `deck` command, check the toml format. If you see `skills = [...]` (string array), it's the deprecated format. Ask before migrating:

```
⚠️  This deck uses the deprecated string-array format. Run migrate?
   bunx @lythos/skill-deck@{{PACKAGE_VERSION}} migrate-schema
   bunx @lythos/skill-deck@{{PACKAGE_VERSION}} migrate-schema --dry-run  # preview first
```

Do NOT silently migrate.

## Key Concepts

| Concept | One-liner |
|---------|-----------|
| Cold Pool | All downloaded skills (`~/.agents/skill-repos/`). Agent cannot see here. |
| skill-deck.toml | Declares desired state. Alias-as-key dict format. |
| deck link | Reconciler. Makes the working set match the declaration. |
| Working Set | Symlinks only. What the agent actually scans. Default: `.claude/skills/` (configurable per platform). |
| skill-deck.lock | Machine-generated snapshot: resolved paths, hashes, constraints. |

## lock vs state — what to commit and why
The deck writes two machine files with opposite git policies
(ADR-20260616000939948 — born from a real incident: a ZK agent saw the old

From lythos-labs/lythoskill, MIT.

More from lythos-labs/lythoskill

Signals

Stars
3
Forks
0
Open issues
0
Last commit (this folder)
Oct 23, 2026 (7 days ago)
Last release
Oct 14, 2026 (16 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from lythos-labs

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get lythoskill-deck running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying lythoskill-deck?

CallGet help
Cite this page

lythoskill-deck. Agent Mart. https://agentmart.dev/skills/lythos-labs-lythoskill-deck (last updated 2026-10-24)