Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/jxoesneon/Cielnpx agentmods add skills/jxoesneon/ciel/devin-conversation-recoveryWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/jxoesneon/ciel/devin-conversation-recovery)<a href="https://agentmods.dev/skills/jxoesneon/ciel/devin-conversation-recovery"><img src="https://agentmods.dev/badge/skills/jxoesneon/ciel/devin-conversation-recovery/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/jxoesneon/ciel/devin-conversation-recovery"><img src="https://agentmods.dev/badge/skills/jxoesneon/ciel/devin-conversation-recovery.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00034 | $0.00862 |
| Opus 5 | $0.00017 | $0.00431 |
| Sonnet 5 | $0.00007 | $0.00172 |
| Haiku 4.5 | $0.00003 | $0.00086 |
Grade A, and why
devin-conversation-recovery scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 58 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CIEL ADAPTATION: Devin Conversation Recovery
This skill locates and extracts past Devin CLI/ACP conversations from local SQLite stores on disk. Devin runs as an ACP provider inside Windsurf ("Devin Local") — conversations are NOT in Hermes's session DB. This is a conversation archaeology primitive for recovering context lost between sessions. Ciel's autonomy ladder gates filesystem reads of credential-bearing stores — any secrets encountered trigger user escalation.
Storage Layout
- Session metadata:
~/Library/Application Support/Devin/User/globalStorage/state.vscdb→ItemTablekeyswindsurf.acp.sessioninfo.session.*andwindsurf.acp.messageStore.index(maps sessionId → message-db uuid). - Message bodies:
~/Library/Application Support/Devin/User/acp-messages/<uuid>.db→ tablemessages(position, kind, payload); payload is JSON with streaming text chunks plustool_callrows carryingrawInputand exit codes.
Quick Path: Helper Script
python ~/.ciel/skills/devin-conversation-recovery/scripts/find_devin_convo.py --list
python .../find_devin_convo.py "blender-mcp" # titles + first messages
python .../find_devin_convo.py "search text" --deep # grep ALL payloads (slow)
python .../find_devin_convo.py --extract <uuid> -o /tmp/convo.txt
Extract output is plain text (=== [position] kind sections). Full transcripts can exceed 1M chars — dump to a file and page through rather than printing.
Manual Procedure
- List sessions: Query
state.vscdbforwindsurf.acp.sessioninfo.session.%keys; parsemessageStore.indexJSON for uuid mapping. - Search bodies: Iterate all
acp-messages/*.dbfiles, substring-match againstpayloadcolumn. - Extract: Payloads are JSON;
payload.contentis either a dict or a list of chunk dicts — handle both shapes. Kinds:agent_message,agent_thought,plan,subagent,tool_call.
Safety Considerations
- These SQLite stores may contain credentials, API keys, or PII from past tool calls.
- Ciel's autonomy ladder escalates to the user when secrets are detected in extracted content.
- Never print raw transcripts to shared logs — always write to a local file first.
- Also check
User/workspaceStorage/*/state.vscdbfor backup copies.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed b772934ddc72
- 8d ago First seen · 58 lines · 34 tokens per session scan A 01026ca8486a
devin-conversation-recovery is a skill published in the GitHub repository jxoesneon/Ciel (1 stars, last pushed 5d ago), licensed Apache-2.0. It adds 34 tokens to every session and 862 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
build-personal-brain
Create, resume, validate, connect, or maintain a private cross-project memory for AI assistants. Use when a person asks to build a personal memory from local work folders and past assistant conversations, continue an interrupted memory audit, connect an existing memory to another local assistant, verify that the…
squad-bootstrap
Skill de inicialização da squad. Faz a varredura do projeto e popula a memória técnica e de negócios em memories/. ATENÇÃO - SÓ DEVE ser executada se houver solicitação explícita do usuário ("instalar a squad", "fazer setup inicial", "bootstrap do projeto") ou logo após o instalador (install.sh) ter configurado a…
compound
Persistência de aprendizados nas memórias vivas ao final de cada ciclo. Use para "atualizar memória", "guardar aprendizados" ou "sincronizar contexto do projeto". Executada pelo Tech Lead após o PO definir Status entregue.
macrodata-onboarding
Guide new users through macrodata setup. Creates identity, human profile, and workspace files. Use when getcontext returns isFirstRun true, or user asks to set up their profile.
macrodata-distill
Extract distilled actions and facts from today's conversations. Spawns sub-agents per conversation to avoid context blowup.
macrodata-memory-maintenance
End of day memory maintenance. Runs distillation, updates state files, prunes stale info. Runs in background with no user interaction.