worm
1
总安装量
1
周安装量
#46878
全站排名
安装命令
npx skills add https://github.com/simhacker/moollm --skill worm
Agent 安装分布
mcpjam
1
claude-code
1
windsurf
1
zencoder
1
cline
1
Skill 文档
Worm Protocol
Two-ended cursor (head + tail) that can ingest, parse, shuttle, and emit data across the filesystem with reversible verbs.
Core Concept
A worm is a two-pointer cursor that spans structures:
# Worm: two-pointer cursor spanning structures
worm_anatomy:
tail:
position: "left side"
action: "emit here (POOP)"
buffer: "payload / active_tokens"
head:
position: "right side"
action: "ingest here (EAT/CHOMP)"
- Head: Where the worm looks, reads, ingests
- Tail: Where the worm drops, writes, emits
- Buffer: What the worm is carrying (normalized tokens)
- Length: Headâtail distance (zero-length = NOP cursor)
The Reversible Verb Basis
The worm’s verbs form a reversible basis for undo/redo:
| Verb | Action | Reverse |
|---|---|---|
| EAT | Ingest content at head | BARF |
| CHOMP | Pattern-scan then ingest | BARF |
| POOP | Emit buffer at tail | EAT |
| BARF | Emit buffer at head | EAT |
| STICK-UP-BUM | Inject external data at tail | POOP |
This maps to:
- serialize/deserialize: EAT â normalize â POOP
- undo/redo: Every verb has an inverse
- copy/transform: CHOMP source â BARF target
Movement Verbs
Worm Movement
MOVE-WORM Move head (and optionally tail)
MOVE-HEAD Move head only
MOVE-ASS Move tail only
Movement modes:
mode: abs– Absolute pathmode: rel– Relative stepsdirection: up/down/in/out/left/right– Spatial navigationtail: follow | stay– Whether tail follows head
Unit-Based Cursor
NEXT-UNIT Advance head by unit
PREV-UNIT Move head backward by unit
SELECT-RANGE Select N units into buffer
Units: char | word | sentence | paragraph | section | page | line
Tree Navigation
TREE-UP Move to parent
TREE-DOWN Move to child (by index/name)
TREE-NEXT Move to next sibling
TREE-PREV Move to previous sibling
TREE-OPEN Expand node (view hint)
TREE-CLOSE Collapse node (view hint)
TREE-HIDE Hide subtree (view hint)
TREE-SHOW Show hidden subtree
Data Flow Verbs
EAT – Ingest at Head
invoke: EAT
effect: Read content at head, parse tokens, normalize to digestive_format
updates:
- buffer: filled with content
- active_tokens: parsed tokens
- payload: last consumed chunk
CHOMP – Pattern-Anchored Ingest
invoke: CHOMP
params:
pattern: "regex or anchor string"
effect: Scan for pattern, ingest following content
use_when: "Need to find specific section then consume it"
POOP – Emit at Tail
invoke: POOP
effect: Write buffer/payload at tail position
options:
- Append to file
- Write YAML to emit_dir
- Emit selected tokens only
BARF – Emit at Head
invoke: BARF
effect: Write buffer/payload at head position (regurgitate)
use_when: "Need to emit where you just read"
STICK-UP-BUM – Inject External Data
invoke: STICK-UP-BUM
params:
data: "External data to inject"
effect: Normalize and store in buffer/payload
use_when: "Loading data from outside the worm's crawl path"
State Shape
state:
head: "." # Current head position (path)
tail: "." # Current tail position (path)
buffer: [] # Interior ingestion buffer
payload: null # Last consumed chunk
digestive_format: "neutral" # Normalization format
active_tokens: [] # Parsed tokens in worm's "brain"
scan_pattern: "" # Pattern for CHOMP anchoring
scan_mode: "pattern-then-chomp"
emit_dir: ".moollm/skills/worm/out" # Where YAML output goes
reversible: true # Enable undo/redo verb basis
Worm Variants
Different worm personalities for different tasks:
| Variant | Behavior |
|---|---|
| Bulldozer | Moves and overwrites as it goes |
| Link-hopper | Prefers symlinks; inchworms across references |
| Mapper | Maps directory trees; leaves markers/indexes |
| Dream | Speed-of-light synthesis; ephemeral payloads |
| Tree | Climbs hierarchies; maintains parent/child context |
| Search | Crawls through search results |
Usage Patterns
Copy with Transform
1. Position head at source, tail at destination
2. CHOMP source (pattern-aware)
3. Tokens normalize in buffer
4. POOP to destination
Link Walking
1. MOVE-WORM head=symlink tail=follow
2. Worm "inchworms" across the link
3. EAT to capture target content
4. Continue crawling
Doc-to-Doc Pipeline
1. Head in doc A, tail in doc B
2. EAT from A â buffer fills
3. POOP to B â content transfers
4. Repeat for streaming pipeline
Casting Network
Worm A: CHOMP source â POOP to emit_dir/casting.yml
Worm B: EAT from emit_dir/casting.yml â process â POOP
Worm C: Consumes B's output â builds taxonomy
Safety Guidelines
- Default to NOP if path unclear or permissions uncertain
- Avoid ingesting secrets/PII – skip sensitive patterns
- Respect read/write boundaries – don’t write outside workspace
- Log reversible ops – enable rollback if something goes wrong
- Don’t cross trust boundaries – stay in permitted zones
Integration Points
| Skill | Integration |
|---|---|
| adventure | Worm traverses rooms; head = current location |
| room | Rooms can expose worm-friendly ads (FEED-WORM) |
| buff | Worms receive buffs (FAST-CRAWL, CLEAN-CASTINGS) |
| character | Worms as NPCs or companions in party |
| data-flow | Worms are streaming cursors for pipelines |
Example Session
> MOVE-WORM head="skills/adventure/" tail=follow
Worm positioned at skills/adventure/
> EAT
Ingested CARD.yml (467 lines), SKILL.md (1143 lines)
Buffer: 12 sections, 3 methods, 15 advertisements
> MOVE-WORM head="skills/bootstrap/"
Head moved to skills/bootstrap/ (tail stayed at adventure/)
> CHOMP pattern="methods:"
Chomped methods section (8 methods found)
> POOP
Emitted to .moollm/skills/worm/out/methods-comparison.yml