agent
Dark Factories Website

Attractor

Open-source coding agent from StrongDM that contains zero lines of code. The entire system is three markdown specification files. Any modern coding agent (Claude Code, Codex, Cursor) can implement it by reading the spec. The only publicly documented Level 5 factory agent with proven production usage.

Attractor is an open-source coding agent from StrongDM. It occupies an unusual position in the AI tools landscape: it is a coding agent implemented as three markdown specification files. No code. 678 stars. 100 forks. 14 commits. Three files.

What It Actually Is

The Attractor GitHub repository contains zero lines of code. It is three markdown files totaling approximately 6,000–7,000 lines — the complete NLSpec (Natural Language Specification) for the agent. To use Attractor, you supply this prompt to any modern coding agent:

“Implement Attractor as described by https://github.com/strongdm/attractor

The agent reads the spec and implements the system. The specification is the product.

This reflects StrongDM’s core thesis: specifications are the artifact that matters. Code is ephemeral.

Community implementations have already appeared in TypeScript (brynary/attractor), Go, Rust, Python, Ruby, Scala, F#, and C.

Architecture: DOT-Based Graph Pipeline

Attractor orchestrates AI workflows as directed graphs defined in Graphviz DOT syntax. Each node is a development phase governed by a core LLM prompt. Edges are expressed in natural language and evaluated by the LLM to determine traversal.

Node Types

ShapeHandlerPurpose
mdiamondstartEntry point
msquareexitTerminal
boxcodergenLLM coding work
hexagonwait.humanHuman approval gate
diamondconditionalBranching
componentparallelConcurrent execution
tripleoctagonparallel.fan_inConvergence
parallelogramtoolExternal commands/APIs
housestack.manager_loopSupervisor patterns

Key Properties

  1. Deterministic — Same inputs produce the same execution path
  2. Observable — Every node transition is logged
  3. Resumable — Fault-tolerant checkpoint and resume from any node
  4. Composable — Graphs can reference and nest other graphs

Goal Gates

Nodes marked goal_gate=true must reach SUCCESS before the pipeline can exit. If the terminal is reached with unsatisfied goal gates, execution jumps back to a retry_target node and continues — the convergence mechanism for the feedback loop.

Model Stylesheet

A CSS-like layer that maps nodes to LLM configurations via selectors (ID, shape, class). Allows dynamic model switching — use Claude Opus for complex reasoning nodes, Haiku for cheap routing decisions — without touching the graph definition.

The Three Spec Files

  1. attractor-spec.md — Core system design and DOT DSL schema
  2. coding-agent-loop-spec.md — Agent execution patterns
  3. unified-llm-spec.md — LLM integration interface

The Lesson

StrongDM doesn’t claim Attractor is smarter than other agents. Their advantage is the system: specification discipline, external test methodology, simulation environment. Attractor could be replaced by another agent; the methodology is the differentiator.

What Attractor demonstrates is a different thesis: the spec is the software. If you can write a precise enough specification, the implementation becomes substitutable across models, languages, and time.

License

Apache-2.0