structured agent workflow · for any project
conductor
conductor
conductor
Every session does three things: read, execute, hand off.
No state lives in the agent's memory. Everything the next session needs is in the files — the intent, the queue, the active slice, and the last handoff.
conductor
# conductor/slice-04-promotions-view.md objective: Add fct_promotions view and a 9th explore to the gold_marts model. out_of_scope: - field enrichment (slice-05) - backfill logic - join configuration acceptance: - [ ] view file generated - [ ] dimensions match schema 1:1 - [ ] count measure present - [ ] explore added to model - [ ] python3 scripts/validate.py passes gate: python3 scripts/validate.py status: active
One commit or PR. Completable in a single agent session.
Scope drift is the default failure mode. Every slice names what it isn't.
Not "looks good" — measurable. The agent ticks them off as it goes.
No handoff is written until validate.py passes. The validator is non-optional.
conductor
The entire workflow runs from the filesystem. No hosted backend, no database, no API. Lives in your repo, ships with your commits.
Everything below conductor/ is identical regardless of domain — LookML, REST API, dbt pipeline, frontend app. The format doesn't change.
"Read AGENTS.md and execute the active slice."
conductor
conductor/ as filesystem context storespec.md, plan.md, metadata.json
conductor
Three repos. Three stacks. One Conductor scaffold governing all of them — same slice format, same handoff loop, same validator. Different codebases, same workflow.
conductor
Agent reads project/AGENTS.md → intent.md → conductor/index.md → active slice spec. That's it.
Cuts feat/slice-01-lookml-bootstrap from main. Every commit lands on this branch.
Reads 8 table schemas from demo/schema/gold_marts.md. Writes 8 .view.lkml files — one commit per view.
Generates models/gold_marts.model.lkml with 8 explores. No joins — facts are independently aggregated.
Runs python3 scripts/validate.py — required gate. Marks slice stable, advances the queue, writes handoff with Exact Next Steps.
$ git checkout main $ # Prompt: "Read DEMO.md and execute it." ── agent session ────────────────────── reading conductor/index.md reading slice-01-initial-bootstrap.md reading demo/schema/gold_marts.md # 8 tables ✓ generated fct_finance_revenue.view.lkml ✓ generated fct_sales_operations.view.lkml ✓ generated fct_customer_segments.view.lkml ✓ generated fct_product_profitability.view.lkml ✓ generated fct_marketing_attribution.view.lkml ✓ generated fct_shipping_analysis.view.lkml ✓ generated fct_cart_abandonment.view.lkml ✓ generated fct_daily_dashboard.view.lkml ✓ generated models/gold_marts.model.lkml $ python3 scripts/validate.py All checks passed. handoff slice-01 → stable next Exact Next Steps written
conductor
A new business requirement arrives. The data team has provisioned fct_promotions. Two phases — one autonomous, one collaborative — both governed by the same spine.
## Slice 04 — Promotions View Date: 2026-05-24 Commit: a3f9c21 Status: stable Files Changed + project/views/fct_promotions.view.lkml ~ project/models/gold_marts.model.lkml # 9 explores Validation scripts/validate.py: 12 passed | 0 warnings | 0 failed Exact Next Steps # ← scheduling mechanism 1. Enrich fct_promotions — typed measures (sum for revenue_attributed, cost; average for roas, discount_value) 2. Add dimension_group for start_date, end_date 3. Add value_format_name for financial measures 4. Add group_label for field picker organization 5. Consider hidden: yes on promotion_id Blockers None
conductor
0 6 * * 1 · Monday 06:00 · no human present
Zero session context. Agent reads intent.md, conductor/index.md, latest handoff, and the maintenance slice.
Runs validate.py. Checks the queue. Reads blockers from the last handoff. Does not auto-fix.
Records pass/warn/fail counts, queue state, and open blockers. Commits with chore(maintenance):. Exits.
## Maintenance Check — 2026-05-25 Date: 2026-05-25 Commit: 8b2e44a Type: automated-maintenance Status ● clean Validation scripts/validate.py: 12 passed | 0 warnings | 0 failed Queue State Slices: 5 total — 5 STABLE, 0 ACTIVE, 0 QUEUED Open Blockers None Next Run Cron-driven — operator sets schedule. No action required.
conductor
Every handoff passes through scripts/validate.py. Stdlib only · zero deps · CI-safe.
index.md, handoff-log.md)Commit: and Exact Next Steps sectionsgit cat-file -e)$ python3 scripts/validate.py ── conductor spine ────────────────── ✓ conductor/index.md present ✓ conductor/handoff-log.md present ✓ handoff has Commit: ✓ handoff has Exact Next Steps ✓ active slice: none — all slices stable ✓ CI workflow stub ✓ Git branch: feat/slice-04-promotions ── lookml extension ───────────────── ✓ manifest.lkml + project_name ✓ 9 view files · all baseline-valid ✓ gold_marts.model.lkml · 9 explores ───────────────────────────────────── All checks passed. 12 passed | 0 warnings | 0 failed
conductor
Clone the repo, check out a branch, paste one sentence into your agent. Fifteen minutes to see the loop end to end — on your machine, with your CLI of choice.