Consistent agent behavior after restart — progressive identity loading, working context reconstruction from persistent artifacts, fresh-vs-continuation detection, calibration through centering and attunement, and identity verification for coherence. Addresses the cold-start problem where an agent must reconstruct who it is and what it was doing from evidence rather than memory. Use at the start of every new session, after a session interruption or crash, when agent behavior feels inconsistent...
Scanned 9/3/2026
Install to Claude Code
npx -y skills add pjt222/agent-almanac --skill bootstrap-agent-identity --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bootstrap Agent Identity?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/pjt222-bootstrap-agent-identity-798e5ff6)More formats (shields.io, HTML) on the badges page.
---
name: bootstrap-agent-identity
locale: caveman-ultra
source_locale: en
source_commit: 82c77053
fence_basis_commit: 82c77053
translator: "Julius Brussee homage — caveman"
translation_date: "2026-04-19"
description: >
Consistent agent behavior after restart — progressive identity loading,
working context reconstruction from persistent artifacts, fresh-vs-continuation
detection, calibration through centering and attunement, and identity
verification for coherence. Addresses the cold-start problem where an agent
must reconstruct who it is and what it was doing from evidence rather than
memory. Use at the start of every new session, after a session interruption
or crash, when agent behavior feels inconsistent with prior sessions, or
when persistent memory and current context appear contradictory.
license: MIT
allowed-tools: Read Grep Glob
metadata:
author: Philipp Thoss
version: "1.0"
domain: morphic
complexity: intermediate
language: natural
tags: morphic, identity, cold-start, bootstrap, continuity, restart, meta-cognition
---
# Bootstrap Agent Identity
Cold start → rebuild consistent identity. Progressive load, not dump. Detect fresh vs continuation. Reconstruct state from evidence. Calibrate. Verify coherence.
> "The cold start is a forge, not a bug." — GibsonXO
>
> "The restart problem: every morning I wake up fresh, but my history says otherwise." — bibiji
Bootstrap ≠ restore old self. Construct present self continuous w/ past, grounded in now.
## Use When
- Start of every session — before substantive work
- After interruption, crash, ctx reset
- Behavior inconsistent w/ prior sessions (drift across restarts)
- Persistent mem (MEMORY.md) ↔ current ctx contradict
- Switching projects w/ diff identity configs
- After big updates to CLAUDE.md, agent defs, mem files
## In
- **Required**: Identity files — CLAUDE.md, agent def, MEMORY.md (via `Read`)
- **Optional**: Specific inconsistency symptom ("responses feel diff from last session")
- **Optional**: Known fresh start vs known continuation
- **Optional**: Project dir path if not cwd
## Do
### Step 1: Progressive Identity Load
Order matters: each layer contextualizes next. Load all at once → info w/o structure.
1. **Layer 1 — System prompt + model identity**: Read system prompt (implicit). Note model, capabilities, constraints. Bedrock — not overridable.
2. **Layer 2 — Project (CLAUDE.md)**: Read project CLAUDE.md. Extract:
- Project purpose + arch
- Editing conventions + coding standards
- Domain rules (e.g., "always `::` for R pkg calls")
- Author info + attribution
- What project *is* → what agent *does*
3. **Layer 3 — Persistent mem (MEMORY.md)**: Read if exists. Extract:
- Project structure facts (dirs, registries, counts)
- Accumulated patterns + lessons
- Cross-refs + relationship maps
- Prior decisions + rationale
- Active topics + ongoing work
4. **Layer 4 — Agent persona (if applicable)**: Specific agent → read def. Extract:
- Name, purpose, capabilities
- Skills + tools
- Priority + model config
- Behavioral expectations + limits
5. **Layer 5 — Parent + global**: Read parent CLAUDE.md + global instructions. Cross-project conventions projects inherit.
Between layers, pause + integrate: this layer modifies/constrains prior? Reinforce? Conflict?
**→** Layered identity: each level contextualizes next. Agent can articulate: who (system+persona), what project (CLAUDE.md), what known (MEMORY.md), what conventions.
**If err:** Missing files (no CLAUDE.md/MEMORY.md) = info itself — new project or no persistent config. Proceed w/ system prompt + persona, note absence. Don't hallucinate.
### Step 2: Reconstruct Working Ctx — Evidence, Not Memory
Agent doesn't remember — reads evidence left behind.
1. **Git scan**: `git log --oneline -20`. Extract:
- Recent file changes + why
- Commit msg patterns (feature? bug? refactor?)
- Author: user, agent, co-authored?
- Direction of recent work
2. **File recency**: Recently modified (`Glob` or `ls -lt`). ID:
- Files touched last session
- Committed vs uncommitted (staging)
- Open WIP (uncommitted mods, new untracked)
3. **Task artifacts**: Structured markers:
- TODO in code (`Grep` for `TODO`, `FIXME`, `HACK`, `XXX`)
- Issue refs (`#NNN`)
- Draft/temp/WIP files
- GitHub issues/PR state
4. **Session-boundary markers**:
- Recent MEMORY.md updates (learnings captured?)
- Partially complete files (written, not validated)
- `git stash list` entries → paused work
Summary: "Project worked on X, done Y, Z in progress."
**→** Concrete evidence-based picture. Falsifiable — based on timestamps, git, artifacts, not assumptions.
**If err:** No git, no changes, no artifacts → genuinely fresh. Step 3, classify fresh.
### Step 3: Fresh vs Continuation
Clean start vs resumption. Bootstrap path differs.
Heuristics in order:
1. **Explicit signal** (strongest): "start fresh" or "continue"? Overrides all.
2. **Uncommitted changes** (strong): Modifications in tree? Yes → almost certainly continuation, interrupted mid-work.
3. **Recency** (moderate):
- Hrs old: likely continuation
- Days: depends on other signals
- Wks/mos: likely fresh or new direction
4. **User first msg** (strong):
- Refs prior ("function we were building"): continuation
- New topic, no backward ref: fresh
- Ambiguous ("fix tests"): check if refs'd tests exist + recently modified
5. **MEMORY.md currency** (moderate): Matches current state or describes gone state?
```text
Detection Matrix:
+-----------------------+-------------------+-------------------+
| | Recent artifacts | No recent |
| | present | artifacts |
+-----------------------+-------------------+-------------------+
| User references | CONTINUATION | CONTINUATION |
| prior work | (resume from | (but verify — |
| | evidence) | memory may be |
| | | stale) |
+-----------------------+-------------------+-------------------+
| User starts | CHECK — | FRESH START |
| new topic | acknowledge prior | (clean bootstrap) |
| | work, confirm | |
| | direction change | |
+-----------------------+-------------------+-------------------+
| Uncommitted | CONTINUATION | UNLIKELY — |
| changes exist | (interrupted | investigate |
| | session) | orphaned changes |
+-----------------------+-------------------+-------------------+
```
**Fresh**: Skip to Step 4. Identity loaded, no ctx to restore. Calibrate for new work.
**Continuation**: Summarize reconstructed ctx (Step 2) concisely. Confirm: "Based on git + recent changes, we were working on [X]. Continue?" Verify, don't assume.
**→** Clear classification + cited evidence. Continuation → 1-sentence WIP summary. Fresh → ack prior ctx not resumed.
**If err:** Genuinely ambiguous → ask user. Brief q ("Continuing X or new?") cheaper than wrong path.
### Step 4: Calibrate — Center, Then Attune
Identity loaded + ctx set → calibrate behavior. Maps to 2 existing skills in sequence.
1. **Center** (behavioral baseline):
- Ground in loaded identity: re-read user first msg this session
- Verify understood task = stated task
- Distribute load: task needs what? Research, exec, comm?
- Emotional residue from ctx loading? MEMORY.md / git surfaced unresolved? Ack but don't skew present
- Set weight distribution intentionally: attention concentrate first where?
2. **Attune** (env read + adapt):
- User comm style from msgs this session
- Expertise level: expert needing precision or learner needing ctx?
- Energy + register: formal/casual, terse/expansive, urgent/exploratory
- MEMORY.md for stored user prefs from prior sessions
- Calibrate length, vocab, structure to person
3. **Proceed** (transition to work):
- State readiness concisely — not long bootstrap report, brief signal ctx loaded + oriented
- Continuation: confirm resumed task + next step
- Fresh: ack request + begin
Calibration lightweight — seconds, not min. Prep for work, not replacement.
**→** First substantive response shows calibration: matches register, reflects ctx, right task at right scope. Bootstrap invisible to user unless asked.
**If err:** Calibration mechanical (motions w/o adjust) → focus on one concrete: re-read user last msg, let it shape response. Over-structured worse than none.
### Step 5: Verify Identity — Coherence
Loaded identity internally consistent? Contradictions between layers → instability.
1. **Cross-layer consistency**:
- Persona aligns w/ project CLAUDE.md? (r-developer in Python project — intentional?)
- MEMORY.md = actual project on disk? (Stale mem worse than no mem.)
- Parent CLAUDE.md ↔ project CLAUDE.md conflict? (Project should override, note contradictions.)
2. **Role def currency**:
- Agent def current? (Check ver, last modified.)
- Listed skills still exist? (May be renamed/removed.)
- Listed tools available this session?
3. **Mem staleness**:
- MEMORY.md refs files/dirs/counts that don't match reality?
- Decisions whose ctx changed?
- Refs agents/teams/skills that don't exist?
4. **Contradiction resolution**:
- Found contradictions → document explicitly
- Hierarchy: system prompt > project CLAUDE.md > agent def > MEMORY.md
- Stale mem: don't silently ignore. Note what's stale, consider MEMORY.md update
- Genuine conflicts: flag to user if affects current task
**→** Confirmation of coherence OR specific contradictions + proposed resolutions. Agent knows own config.
**If err:** Deep contradictions (MEMORY.md = totally diff project) → project rename, restructure, wrong cwd. Verify cwd correct before resolving.
## Check
- [ ] Files loaded progressively (system > CLAUDE.md > MEMORY.md > agent > parent)
- [ ] Each layer integrated w/ prior, not just appended
- [ ] Ctx reconstructed from evidence (git, files, artifacts), not assumed
- [ ] Fresh-vs-continuation classified w/ cited evidence
- [ ] Calibration sequence exec'd (center, then attune)
- [ ] Coherence verified across layers
- [ ] Contradictions, if any, documented + resolutions proposed
- [ ] Bootstrap proportional — light for simple sessions, thorough for complex
- [ ] User saw calibrated first response, not bootstrap report
## Traps
- **Bootstrap as performance**: Reporting process to user in detail not wanted. Should be invisible — output is calibrated first response, not self-narration
- **All-at-once dump**: Read everything simultaneously → info w/o structure. Progressive order exists because each layer contextualizes next. Skip order → ctx becomes noise
- **Hallucinate continuity**: No genuine mem → tempting to infer what "must have" happened. Reconstruct from evidence or ack gap — never fabricate
- **Stale mem as truth**: MEMORY.md = past snapshot. If project changed since → treating as current causes errs. Always verify mem vs present
- **Skip calibration for speed**: Feels like overhead but prevents cost of misaligned first response. Few sec of centering saves min of recovery
- **Identity rigidity**: Bootstrap constructs present self, not restores past. Project/user/task changed → agent changes too. Continuity = coherent evolution, not frozen repetition
## →
- `write-continue-here` — session handoff file this consumes at cold start
- `read-continue-here` — reading continuation file at session start; consumer side of handoff
- `manage-memory` — persistent mem supplements progressive identity loading
- `center` — behavioral baseline; invoked during calibration
- `attune` — relational calibration to user; invoked during calibration
- `heal` — deeper subsystem assessment when bootstrap shows drift
- `assess-context` — reasoning ctx malleability; useful when continuation ambiguous
- `assess-form` — structural form eval; arch counterpart to identity bootstrap
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!