<< All versions

Skill v1.0.1

currentLLM-judged scan90/100
simhacker/moollm/data-flow

5 files

──Details
PublishedOctober 22, 2026 at 04:41 PM
Content Hashsha256:480d6a4ad5908d3f...
Git SHAf2af097f7922
Bump Typepatch
Compare with v1.0.0
──Files
Files (1 file, 3.1 KB)
SKILL.md3.1 KBactive
SKILL.md · 157 lines · 3.1 KB

version: "1.0.1" name: data-flow description: Rooms as pipeline nodes, exits as edges, objects as messages allowed-tools:

  • read_file
  • write_file
  • run_terminal_cmd

tier: 2 protocol: DATA-FLOW tags: [moollm, pipeline, processing, kilroy, messaging] related: [room, card, sister-script, coherence-engine]


Data Flow

"Rooms are nodes. Exits are edges. Thrown objects are messages."

MOOLLM's approach to building processing pipelines using rooms and objects. The filesystem IS the data flow network.

The Pattern

  • Rooms are processing stages (nodes)
  • Exits connect stages (edges)
  • Objects flow through as messages
  • THROW sends objects through exits
  • INBOX receives incoming objects
  • OUTBOX stages outgoing objects

Commands

CommandEffect
THROW obj exitSend object through exit to destination
INBOXList items waiting to be processed
NEXTGet next item from inbox (FIFO)
PEEKLook at next item without removing
STAGE obj exitAdd object to outbox for later throw
FLUSHThrow all staged objects
FLUSH exitThrow staged objects for specific exit

Room Structure

stage/
├── ROOM.yml # Config and processor definition
├── inbox/ # Incoming queue (FIFO)
├── outbox/ # Staged for batch throwing
└── door-next/ # Exit to next stage

Processor Types

Script (Deterministic)

yaml
processor:
type: script
command: "python parse.py ${input}"

LLM (Semantic)

yaml
processor:
type: llm
prompt: |
Analyze this document:
- Extract key entities
- Summarize in 3 sentences

Hybrid

yaml
processor:
type: hybrid
pre_process: "extract.py ${input}"
llm_prompt: "Analyze extracted data"
post_process: "format.py ${output}"

Mix and match. LLM for reasoning, scripts for transformation.

Example Pipeline

uploads/ # Raw files land here
├── inbox/
│ ├── doc-001.pdf
│ └── doc-002.pdf
└── door-parser/
parser/ # Extract text
├── script: parse.py
└── door-analyzer/
analyzer/ # LLM analyzes
├── prompt: "Summarize..."
├── door-output/
└── door-errors/
output/ # Final results
└── inbox/
├── doc-001-summary.yml
└── doc-002-summary.yml

Processing Loop

> ENTER parser
Inbox: 2 items waiting.
> NEXT
Processing doc-001.pdf...
Text extracted.
> STAGE doc-001.txt door-analyzer
Staged.
> FLUSH
Throwing 2 items through door-analyzer...

Fan-Out (one-to-many)

yaml
routing_rules:
- if: "priority == 'high'"
throw_to: door-fast-track
- if: "type == 'archive'"
throw_to: door-archive
- default: door-standard

Fan-In (many-to-one)

yaml
batch_size: 10
on_batch_complete: |
Combine all results
Generate summary report
THROW report.yml door-output

Kilroy Mapping

MOOLLMKilroy
RoomNode
ExitEdge
THROWMessage passing
inbox/Input queue
Script processorDeterministic module
LLM processorLLM node
← v1.0.0All versions