Skip to content

anuragchk/iterstack

Repository files navigation

Iterstack

The iteration stack for AI-native Growth teams. Open-source platform for rapid experimentation — pluggable data sources, configurable workflows, and a multi-agent engine that compresses the loop from weeks to hours.

Status: Active Development License: MIT Python 3.10+


Why Iterstack exists

The bottleneck in experimentation isn't ideas. It's the loop.

Observe metric → form hypothesis → design experiment → get alignment → configure → monitor → synthesize results → repeat.

Every step has handoffs. Every handoff costs days. Most don't require human judgment — they require human attention because the infrastructure to automate them safely doesn't exist.

Iterstack is that infrastructure.


What you get

  • Pluggable data connectors — bring your own source (GA4, Mixpanel, Amplitude, custom warehouse)
  • Configurable workflows — define which steps run, what thresholds matter, where humans approve. All YAML, no forking
  • Run management + observability — every execution logged with full traces, token cost, and stakeholder summaries
  • Human-in-the-loop gates — approve experiments before anything touches production
  • REST API + dashboard — integrate with how your team already works

Under the hood, a multi-agent engine handles the reasoning: anomaly detection, hypothesis generation, experiment configuration, result evaluation, summary writing.

Data → 🔍 Analyst → 🧠 Planner → 👤 Human Gate → ⚡ Executor → 📊 Critic → 📝 Synthesizer
                                                                                ↓
                                                                          (next cycle)

Architecture

┌─────────────────────────────────────────────────────────────┐
│  Layer 3 — Interfaces                                       │
│  REST API · Dashboard · Slack/Webhook                       │
├─────────────────────────────────────────────────────────────┤
│  Layer 2 — Platform Primitives                              │
│  Connectors · Run Manager · Config · Observability          │
├─────────────────────────────────────────────────────────────┤
│  Layer 1 — Core Agent Engine                                │
│  Analyst → Planner → Executor → Critic → Synthesizer        │
│  Orchestrated with LangGraph · Powered by Claude API        │
└─────────────────────────────────────────────────────────────┘

See docs/architecture/overview.md for the full design.


Quickstart

# Clone the repo
git clone https://github.com/anuragchouksey/iterstack.git
cd iterstack

# Set up environment
python3 -m venv venv
source venv/bin/activate           # Windows: venv\Scripts\activate
pip install -r requirements.txt

# Add your Claude API key
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY

# Run with the mock connector (no external services needed)
python main.py

Get your Claude API key at console.anthropic.com.

You'll see the full agent loop run end-to-end — Analyst detects an anomaly, Planner generates ranked hypotheses, you approve at the human gate, Executor configures the experiment, and Critic evaluates the results:

🔍 Analyst Agent starting
   Data source: Mock
  → Tool: get_funnel_data
  → Tool: detect_anomalies
✅ Analyst Agent complete

🧠 Planner Agent starting
   Top anomaly: Mobile checkout drop requires investigation
  → Tool: get_historical_experiments
✅ Planner Agent complete

👤 Human Review Gate
   Top hypothesis: Reduce mobile checkout form fields
   Approve? [y/N]: y

⚡ Executor Agent starting
  → Tool: calculate_sample_size
  → Tool: create_feature_flag
✅ Experiment launched: exp_a3f7b9c2

📊 Critic Agent starting
  → Tool: get_experiment_results
  → Tool: calculate_significance
  → Tool: check_guardrails
✅ Verdict: SHIP_WINNER (lift +6.8%, p=0.003)

Want to skip the human gate for automated runs?

python main.py --skip-hitl

Just want to see the Analyst step (Phase 2 mode)?

python main.py --analyst-only

The Agents

Agent Role Status
🔍 Analyst Detects funnel anomalies and surfaces the most critical signals ✅ Built
🧠 Planner Generates and ranks experiment hypotheses from signals ✅ Built
👤 Human Gate Approves hypotheses before experiment configuration ✅ Built (console)
Executor Configures feature flags, audience segmentation, success metrics ✅ Built
📊 Critic Monitors live experiments, kills losers early, ships winners ✅ Built
📝 Synthesizer Writes stakeholder-ready summaries and learning documents 🚧 Phase 5

Roadmap

  • Phase 1 — Foundations & architecture
  • Phase 2 — Analyst Agent + Connector Interface
  • Phase 3 — Planner + Executor + Critic Agents (full agent loop)
  • Phase 4 — Run Manager + Config System (platform primitives)
  • Phase 5 — Synthesizer Agent + Observability + LangGraph orchestration
  • Phase 6 — REST API + Dashboard
  • Phase 7 — Production hardening + connector ecosystem

See ROADMAP.md for details.


Connectors

Iterstack supports pluggable data sources. Currently shipped:

Connector Status Notes
mock ✅ Available Local JSON file, ideal for development
ga4 🚧 Stub Interface defined, full implementation in Phase 3
mixpanel 🚧 Stub Interface defined, full implementation in Phase 3
amplitude 🚧 Stub Interface defined, full implementation in Phase 3
heap 📋 Planned Phase 7
snowflake 📋 Planned Phase 7 (direct warehouse adapter)

Want to add a connector? Implement the BaseConnector interface — about 30 lines. See docs/connectors/adding-a-connector.md.


Project Structure

iterstack/
├── core/                          # Layer 1 — Agent engine
│   ├── agents/                    # The agents themselves
│   │   ├── analyst.py             ✅ Built (Phase 2)
│   │   ├── planner.py             🚧 Phase 3
│   │   ├── executor.py            🚧 Phase 3
│   │   ├── critic.py              🚧 Phase 3
│   │   ├── synthesizer.py         🚧 Phase 5
│   │   └── tools/                 # Deterministic tools used by agents
│   ├── contracts/                 # Pydantic schemas — agent handoff contracts
│   └── orchestration/             # LangGraph workflow (Phase 5)
├── platform/                      # Layer 2 — Platform primitives
│   ├── connectors/                # Data source connectors
│   │   ├── base.py                ✅ Interface (Phase 2)
│   │   ├── mock.py                ✅ Built (Phase 2)
│   │   ├── ga4.py                 🚧 Stub
│   │   ├── mixpanel.py            🚧 Stub
│   │   └── amplitude.py           🚧 Stub
│   ├── run_manager/               # Run lifecycle (Phase 4)
│   └── observability/             # Logging, traces, costs (Phase 5)
├── api/                           # Layer 3 — REST API (Phase 6)
│   ├── server.py                  # FastAPI app
│   └── routes/                    # Endpoint definitions
├── dashboard/                     # Layer 3 — Web UI (Phase 6)
├── config/                        # Platform configuration
├── data/                          # Mock data for development
├── docs/                          # Architecture and guides
│   ├── architecture/              # System design docs
│   ├── connectors/                # Connector integration guides
│   └── phases/                    # Per-phase implementation plans
├── examples/                      # Runnable example workflows
├── tests/                         # Test suite
└── main.py                        # Entry point

Contributing

Contributions welcome — see CONTRIBUTING.md.

Good first issues:

  • Build the Mixpanel connector (implement BaseConnector)
  • Add example workflows in examples/
  • Improve test coverage
  • Documentation improvements

Why I built this

I spent three years running Member Growth engineering at Thrive Market — scaling from 900K to 1.6M+ members through experimentation. The bottleneck wasn't engineers or ideas. It was the time between "we noticed something" and "we shipped a test." Every handoff added days. The infrastructure to compress that loop didn't exist.

Iterstack is that infrastructure. Open-sourcing it so other Growth teams can adopt it, contribute, and build the future of AI-native experimentation together.

Anurag Chouksey


License

MIT — use it, fork it, ship it.


Stay updated

  • Star this repo to follow progress
  • Watch for releases
  • Follow on LinkedIn for build-in-public updates

About

The iteration stack for AI-native Growth teams. Open-source platform for rapid experimentation — pluggable data sources, configurable workflows, and a multi-agent engine that compresses the loop from weeks to hours

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages