Phoenix is a Elixir workable choice for data platform. GreatCTO auto-detects both β adds the data-platform archetype overlay, wires data-platform-specific gates, and runs 83 specialist agents around your existing Phoenix workflow.
GreatCTO reads your mix.exs and detects phoenix + data-platform archetype from signals: imports, file structure, env vars, README hints.
Attaches the data-platform archetype overlay: archetype-specific reviewer + compliance gates. Override if your specifics differ; the defaults are sensible for Phoenix-style projects.
qa-engineer runs mix test --cover / credo --strict; security-officer audits Ecto query injection + Phoenix CSRF; performance-engineer profiles BEAM scheduler + Ecto pool.
Bugs you've hit before in other Phoenix projects (connection-pool exhaustion, ORM N+1 queries, retry storms) β the agent's Step 0 includes the prior detection order. MTTR drops 94 % on second occurrence (methodology).
$ cd my-phoenix-app && npx great-cto init β scanning manifestsβ¦ found manifest β stack: phoenix (Elixir) β archetype: data-platform β archetype + stack combo is unusual β review overlay manually β 83 agents ready $ /start "add data-platform feature" βΈ architect drafting ARCH-data-platform.mdβ¦ βΈ pm decomposing into beads tasksβ¦ β gate:plan β your approval needed
Approve β 3 senior-devs run in parallel worktrees β 5 reviewers fan out in parallel β gate:ship β deploy. One real run walked stage-by-stage: /proof.
This is the shape of what senior-dev drafts for "data-platform feature" β auth first, schema validation, and the audit line the data-platform reviewer requires before gate:ship opens.
# lib/app_web/controllers/data_platform_controller.ex β reviewed by 5 agents
defmodule AppWeb.DataPlatformController do
use AppWeb, :controller
plug :require_authenticated_user # security-officer: auth before handler
def create(conn, params) do
with {:ok, attrs} <- validate(params), # qa-engineer: changeset enforced
{:ok, result} <- DataPlatform.handle(attrs, conn.assigns.current_user) do
AuditLog.record(conn.assigns.current_user.id, "data-platform feature", result.confidence) # gate:data-platform
json(conn, result)
end
end
end
data-platform overlay.dbt warehouses with model contracts and lineage.
Airflow / Spark pipelines with PII detection in logs.
BI layers with GDPR retention enforcement.
Phoenix (Elixir) is not a typical fit for data platform. The archetype overlay still attaches, but you may want to override defaults more aggressively. Check the data-platform archetype page for the typical stack list and decide if your case is the right tool / right archetype.
No black-box "AI does it all" loop. GreatCTO is a deterministic state machine β 8 stages, 22 nodes, 2 human gates. Every node maps to a real agent on GitHub. Inspect the state machine β
$ npx great-cto init
Free, MIT, runs locally. Built as a Claude Code plugin β install with one command.
Eight stages, two human gates, four memory layers. Why this exact shape, and what I tried that didn't work.
One run, one feature, from prompt to merged PR. Time, cost, and gate-by-gate breakdown β no marketing math.
Regex vs LLM-based archetype detection, the false-positive count, and why I keep rejecting the obvious fix.
The bottleneck in agentic SDLC isn't model quality β it's process governance. Here's the state machine that closes the gap.