Spec-first multi-agent orchestration for serious AI-assisted development.
Dark Factory transforms rough feature ideas into structured implementation artifacts, review workflows, and reproducible engineering outputs — the way infrastructure should.
AI-assisted development is fast.
Without structure, it isn't trustworthy.
Most teams have already wired a chat model into their IDE. What they haven't built is the orchestration layer above it. Without one, the same problems compound across every feature.
Specification drift
Decisions live in chat threads. Two weeks later, no one remembers which version of "the plan" actually shipped.
Context loss
Every prompt re-explains the problem. Architectural constraints, ADRs, and prior trade-offs are continually re-discovered.
Weak reproducibility
The same request, an hour later, returns a different design. There is no run ID, no seed, no trace of what produced what.
Reviewability gap
Reviewers see code, not reasoning. There is no diff at the spec layer, no verdict beyond LGTM, no way to compare alternatives.
A factory floor for engineering artifacts.
Dark Factory treats every feature as a pipeline run. Inputs are structured. Outputs are versioned. Agents are specialised. Reviewers get a first-class surface, not a comment thread.
- A.
Structured specs by construction
Every run produces SPEC.md, ARCH.md, QA.md, TASKS.md, tasks.json, RUN_REPORT.md. The set is fixed; deviations are flagged as quality failures, not silent skips.
- B.
Specialised agents, not one generalist
PM, ARCH, BE, FE, QA, SEC, UXW. Each has explicit responsibilities, non-goals, and synthesis variants. Configurable per template.
- C.
Cycles, not single shots
Iterative quality modes critique their own output and revise. Each cycle is preserved with its feedback, score, and verdict.
- D.
Reviewable, not just runnable
Human review is a first-class state, with ACCEPTED / NEEDS_CHANGES verdicts that feed back into the next revise loop.
One pipeline. Seven deterministic stages.
Every run is a state machine. State transitions are recorded, scored, and replayable. Failed gates surface as actionable diffs, not free-form error text.
Built for operators, not demos.
The surface is designed around the same primitives an SRE expects: runs, traces, quality gates, replay, audit, budget.
Multi-agent orchestration
14 configurable agent roles with explicit responsibilities and synthesis variants.
Quality modes
Fast, balanced, or thorough. Thorough adds critique rounds with explicit cycle limits.
Human review loop
First-class ACCEPTED / NEEDS_CHANGES states that feed the next revise cycle.
Provider abstraction
Swap providers per agent. LM Studio, Ollama, OpenAI, Anthropic, or deterministic mock.
Local model support
Run the full pipeline against a local LLM. Air-gapped reproducibility on a workstation.
GitHub publishing
Run artifacts become PRs with linked issues. Rate-limit aware, branch-anchored.
Slack integration
Dispatch run completions, request reviews, monitor inbound events from a visibility panel.
Run comparison
Two-up diff at the artifact level. Deltas in score, tokens, calls, and verdicts.
Insights dashboard
Quality and efficiency over time. Template performance. Top failing checks.
Reproducible execution
Seeded runs, deterministic mock mode, full provider-call trace per stage.
Six artifacts. One run. Replayable forever.
A real run from the console. Every cell — score, verdict, agents, cost — is anchored to a run ID and can be diffed, replayed, or published.
## Overview
A small internal visibility surface for Slack events handled by the
run workflow. Inspect recent inbound events, their handling result,
and retry failed processing without touching core orchestration.
## Constraints
- No new external dependencies
- Respect existing RLS policies
- No secrets in UI
## Data Model
// slack_events
id: uuid pk
channel: text
user_id: text
type: text
payload: jsonb
processed_at: timestamptz
status: text // received | processed | failed
error: text?
## State machine
received → processing → (processed | failed)
## API contract
GET /api/slack/events?limit=50&cursor=…
POST /api/slack/events/:id/retry
## Acceptance criteria
- A user can see recent Slack events with timestamp,
channel, user, and processing status.
- Failed events are visibly marked and retryable.
- No secrets are surfaced.
- Existing Slack commands and events continue to work.
— @reviewer · 12m ago
AI generates. Humans govern. The system revises.
Reviewer feedback is a typed input that drives the next cycle. Every cycle is preserved with its score, verdict, and the feedback that produced the change — not just the change itself.
+ Tightened acceptance criteria to 4 testable bullets
+ Added explicit non-goals (no UI changes to existing endpoints)
Dark Factory is applied AI systems engineering — not a chatbot productivity app, not a prompt library, not a copilot wrapper.
It is the orchestration layer for teams who treat AI like infrastructure.