skills/pull/SKILL.md
--- tldr: Reverse-engineer eidos spec from existing code category: core --- # /eidos:pull Extract the implicit spec from existing code into eidos spec files (Aristotelian direction: code → spec). ## Usage ``` /eidos:pull [file ...] # pull spec from specific files /eidos:pull recent [N] # pull from recently changed code files /eidos:pull plan [plan-name] # pull from files changed during a plan /eidos:pull recursive [target] # force multi-pass mode: overview first, th
npx skillsauth add agenticnotetaking/eidos skills/pullInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Extract the implicit spec from existing code into eidos spec files (Aristotelian direction: code → spec).
/eidos:pull [file ...] # pull spec from specific files
/eidos:pull recent [N] # pull from recently changed code files
/eidos:pull plan [plan-name] # pull from files changed during a plan
/eidos:pull recursive [target] # force multi-pass mode: overview first, then plan for subsections
recent [N] → run ${CLAUDE_PLUGIN_ROOT}/scripts/recent_changes.py --commits N, use the code files (not eidos/ files)plan [name] → find the plan file in memory/ (by name match, or most recently completed if no name given), then:
=> notes for created/modified filesgit log on the plan's branch (from merge commit or branch name) to find all changed code filesmemory/, eidos/, and inject/ files — only pull from implementation codeBefore diving in, gauge the breadth of the target:
Triggers for multi-pass mode (any of these):
recursive argument was usedIf multi-pass triggers:
/eidos:plan using [[template - plan - structured phases with actions and progress tracking]]
memory/plan - <timestamp> - pull subsections for <claim>.md/eidos:plan-continueIf scope is manageable: continue to step 3 as normal.
For each target file:
> [[...]]) for references to the targetIf a matching spec exists, note it — this becomes an update, not a creation.
Read each target file thoroughly. The goal is to distil what matters — many files may only have a small percentage of relevant code for targeted spec requests (e.g. some behaviour or feature we want to spec may have a footprint in many files in the implementation).
Run date '+%y%m%d%H%M' to get the current timestamp.
Write the collected material to memory/pull - <timestamp> - <claim>.md (per [[spec - naming - prefixes structure filenames as prefix claim pairs]], e.g. pull - 2602101418 - extracted spec from auth module.md) using [[template - pull - collected code material with intent sketch]].
Only skip the pull file for very simple pulls (one or two focused files, narrow scope) — when in doubt, create the file.
Organise by logical concern, not per-file — one concern often spans multiple files. The template's sections (Collected Material, Patterns, Dependencies) guide what to extract.
Fill in the template's Intent Sketch section. See [[c - pull climbs from code to intent not across from code to prose]].
Each bullet should survive a complete rewrite of the implementation. The question: "what would someone need to know to re-implement this differently?"
Climbing guidelines for the spec draft:
{>> inline hints:
- Drag feels responsive even with complex shapes
- {>> don't rebuild mesh on every pointer event — throttle to once per frame}
Write the spec file directly to eidos/ following the spec template from [[spec - eidos - spec driven development loops]].
The user sees the diff and can request adjustments — no confirmation gate needed for new files.
---
tldr: [brief description]
category: core
---
# [Name]
## Target
[Inferred from code analysis]
## Behaviour
- [Extracted claims as bullet points]
## Design
[Patterns and architecture observed]
## Interactions
- [Dependencies and effects]
## Mapping
> [[target-file.ext]]
Do not modify the spec yet. Show a diff-style comparison:
Then present for decision per [[c - agency in implementation not direction - surface reasoning for human steering]]:
Pull found differences between code and spec:
[show comparison]
Options:
1 - Update spec to match code
2 - Keep spec as-is (code should be fixed instead → /eidos:push)
3 - Merge selectively
4 - Discard
If approved, apply the changes to the spec and commit.
Single-pass mode:
memory/pull - <timestamp> - <claim>.mdeidos/Multi-pass mode (recursive):
memory/pull - <timestamp> - <claim> overview.mdmemory/plan - <timestamp> - pull subsections for <claim>.md/eidos:plan-continuedevelopment
--- tldr: Check the status of messages you sent to peer inboxes category: core --- # /eidos:outbox Find messages **you sent** to peer repos and report their status. Your sent messages live in the peers' inboxes, not here. So this skill sweeps every registered peer and reads back what became of them. This is the mirror of [[spec - inbox skill - read and act on your own inbox]]. - The inbox is messages others sent **to** you. You own and edit it. - The outbox is messages you sent **to** others.
development
--- tldr: Send a message to a peer repo's inbox category: core --- # /eidos:message Write a message into another repo's `agent-inbox/`. The recipient is a peer repo, addressed by its registered name. See [[spec - agent communication - cross repo inboxes with append only messages and registry resolution]]. ## Usage ``` /eidos:message [recipient repo] [what to say] ``` ## Instructions ### 1. Resolve the recipient - Identify the recipient repo name. Ask if not given. - Resolve its path: `
development
--- tldr: Read and act on your own inbox category: core --- # /eidos:inbox List and work through messages other repos have left in your `agent-inbox/`. You own this inbox. You may edit its files freely. Agents from other repos may push **new** messages into your inbox at any time. They never edit existing files. Only you do. So re-check the inbox. Don't assume it is unchanged since you last looked. See [[c - foreign agents append to an inbox - only the owner edits in place]]. See [[spec - ag
tools
--- tldr: Move done files into archive subdirs (memory/ and agent-inbox/) category: utility --- # /eidos:archive Retire finished files into the `archive/` sibling of their directory. Done `memory/` files into `memory/archive/`, done inbox messages into `agent-inbox/archive/`. A `git mv`, never a rename. The basename is preserved, so wiki links keep resolving. See [[c - archiving moves done files into an archive subdir preserving basename and links]]. ## Usage ``` /eidos:archive [optional fil