Skip to content
Back to skills

State Migration

ASecurity

This is a conditional, one-time onboarding — modeled on the philosophy- document onboarding pattern. It does nothing if either half of its trigger condition is false.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
databasesbash

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add thrum-team/thrum-pro --skill state-migration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of State Migration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for State Migration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thrum-team-state-migration-thrum-pro/badge)](https://www.skillsdirectory.com/skills/thrum-team-state-migration-thrum-pro)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: state-migration
description:
  "Use when your agent-local thrum state is empty AND you have an existing
  State.md file in your agent directory - this is a ONE-TIME conditional
  onboarding that fires only on that exact combination. Do NOT use if thrum
  state already has entries (nothing to migrate) or if you have no State.md
  (brand-new agent, nothing to migrate). Triggers on - first session after the
  thrum state redesign lands, `thrum state list` returning empty while State.md
  exists on disk, being asked to migrate your personal state."
# source: claude-plugin/skills/state-migration/SKILL.md
---

## Migrating personal State.md into `thrum state`

This is a conditional, one-time onboarding — modeled on the philosophy- document
onboarding pattern. It does nothing if either half of its trigger condition is
false.

### When this fires

- `thrum state list` returns **empty** for your agent AND
- a `State.md` file exists in your agent directory (readable via
  `substrate.read_folder` or a direct file read, per your runtime).

If `thrum state list` already has entries: **stop, nothing to migrate.** If no
`State.md` exists: **stop, you're a brand-new agent, nothing to migrate.**

### What to do

Read your `State.md`. For each of its six canonical sections (Identity, Current
state, Immediate next actions, Durable / structural facts, Personal-relevance
memory index, Cold-successor note), write it into the `personal_state` kind:

```bash
thrum state set --kind personal_state --scope self --value '{
  "identity": "<Identity section content>",
  "current_state": "<Current state section content>",
  "next_actions": "<Immediate next actions section content>",
  "durable_facts": "<Durable / structural facts section content>",
  "memory_index": "<Personal-relevance memory index section content>",
  "cold_successor": "<Cold-successor note section content, or omit if empty>"
}'
```

Value size is capped at 64KB — this replaces the old 60-line cap; if State.md is
over cap, trim the same way the old cap's error message directed (never trim
Durable / structural facts).

After migrating, `State.md` itself is no longer read by anything — leave it in
place (harmless) or delete it; do not keep updating it, since nothing consumes
it anymore.

### Do not

- Run this if `thrum state list` already shows a `personal_state` entry — a
  second run would overwrite (upsert semantics), silently discarding anything
  written to `thrum state` since the last migration.
- Bulk-import on behalf of another agent. This is self-driven, scoped to the
  live agent running the skill.

Files in this skill

  • SKILL.md2.5 KB
  • agents/openai.yaml1.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.