Skip to content
v0.1.0Apache-2.0

Autonomous SDLC orchestrator implementing OpenAI Symphony on top of Farm Table task graphs and Scion container execution.

🌾 Graft

License Spec Agent Plugins

"Put your tasks on the table, graft the shoot, and let the work take root."

Graft is an autonomous Software Development Life Cycle (SDLC) orchestrator. It implements the OpenAI Symphony specification, combining the graph-native task engine of Farm Table with the isolated container runtime and git worktree management of Scion.


πŸ’‘ Why "Graft"?

  1. Botanical: In horticulture, a scion (a young shoot) is grafted onto rootstock at the farm table / potting bench to cultivate fruit.
  2. Hard Graft: British/Irish slang for roll-up-your-sleeves, day-to-night relentless hard work that gets the job done. Graft is the tireless worker clearing the chore list off the table while you sleep.
  3. Symphonic Harmony: Graft translates declarative WORKFLOW.md contracts and directed task DAGs into synchronized agent executions.

πŸ—οΈ Architecture & Core Mechanics

                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                               β”‚                        WORKFLOW.MD                          β”‚
                               β”‚   (Repository-owned prompt template + runtime settings)     β”‚
                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                              β”‚
                                                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             FARM TABLE               β”‚          β”‚                   GRAFT                  β”‚
β”‚          (Task Substrate)            β”‚          β”‚             (Symphony Engine)            β”‚
β”‚                                      β”‚  Ready   β”‚                                          β”‚
β”‚ β€’ Directed Task DAG (blocked_by)     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Ίβ”‚ 1. Evaluates DAG readiness               β”‚
β”‚ β€’ Critical path & bottleneck queries β”‚  Tasks   β”‚ 2. Enforces global & per-state limits    β”‚
β”‚ β€’ Atomic CAS claims (task_claim)     │◄────────── 3. Renders Liquid prompt per task        β”‚
β”‚ β€’ Live event stream (ft watch)       β”‚  Claim   β”‚ 4. Dispatches isolated agent run         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                       β”‚
                                                                       β”‚ Dispatches Worker
                                                                       β–Ό
                                                  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                  β”‚                 SCION                    β”‚
                                                  β”‚          (Execution Engine)              β”‚
                                                  β”‚                                          β”‚
                                                  β”‚ β€’ Dedicated Git Worktree per task        β”‚
                                                  β”‚ β€’ Multi-harness (Claude, Gemini, Codex)  β”‚
                                                  β”‚ β€’ Farm Table MCP injected into container β”‚
                                                  β”‚ β€’ Detached execution + scion attach      β”‚
                                                  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✨ Key Superpowers

  • πŸ•ΈοΈ Graph-Aware Autonomous Dispatching: Standard Symphony with Linear or GitHub can only poll flat lists of issues. Graft uses Farm Table's graph engine (GetReadyTasks). When Agent A closes Task 1, downstream Tasks 2 & 3 automatically unlock and dispatch in parallel.
  • πŸ›‘οΈ Total Workspace & Git Worktree Isolation: Workers don't clobber files or collide on HEAD. Scion provisions a clean, ephemeral Git worktree and container sandbox for every task attempt.
  • πŸ“œ In-Repo WORKFLOW.md Policy: Teams version their agent prompt, concurrency limits, retry backoffs, and lifecycle hooks alongside their code.
  • πŸ”Œ Agent Plugins Spec (v1.0.0) Ready: Ships as both a standalone CLI (graft) and a portable Agent Plugin with ready-to-use skills for coordinators and workers.
  • ⚑ Dual Triggering: Supports both periodic polling ticks (cron / Scion scheduler) and reactive event streaming (ft watch gRPC stream).

πŸ“¦ Agent Plugin & Skills Layout

Conforming to the Agent Plugins Specification v1.0.0:

graft/
β”œβ”€β”€ plugin.json                 # Standard portable plugin manifest
β”œβ”€β”€ mcp.json                    # Bundled Farm Table MCP server declaration
β”œβ”€β”€ WORKFLOW.md                 # Default Symphony SDLC contract
β”œβ”€β”€ bin/
β”‚   └── graft                   # Standalone orchestrator CLI binary
└── skills/
    β”œβ”€β”€ graft-coordinator/      # Manager skill: audits DAGs, monitors runs, handles escalations
    β”‚   └── SKILL.md
    └── graft-worker/           # Worker skill: in-container task claim, execution, and handoff
        └── SKILL.md

πŸš€ CLI Quick Start

1. Initialize Graft in your repository

graft init

Generates a starter WORKFLOW.md with Liquid prompt templates and runtime settings.

2. Run a One-Shot Dispatch

graft dispatch

Scans Farm Table for ready tasks, claims matching items, and spawns Scion workers.

3. Run the Continuous Loop (Daemon Mode)

# Polling loop with a 15-second cadence and dynamic file reloading
graft loop --workflow WORKFLOW.md --watch-reload

# Custom interval and concurrency
graft loop --verbose

4. Check Status & Active Worktrees

graft status

πŸ§ͺ Testing & Validation Matrix

# Run unit and real-world E2E integration test suite
make test

# Run real-world dependency graph resolution E2E suite
make e2e

πŸ“„ License

Licensed under the Apache License, Version 2.0.