M
MarkAIt · marketing automation engine
Wk 1–10 vertical slice complete · FRD v3.0

An agent-of-agents that writes, produces, and ships DroneGenie's marketing.

Nine specialised agents — Strategy, Persona, Script, Visual, Video, Posting, Analytics, Provisioning, Builder — coordinated by a SHA-256-chained audit log, a budget ledger, and a sub-60 s kill switch. Locked Monika voice. Locked brand primary #1BAA6E. Two-stage classifier (n-gram + embedding), tone auto-tune, and bounded regeneration before any post goes live.

Throughput at FRD load

Driven through a representative DB write/read pattern. The FRD target is 600 briefs per quarter — MarkAIt clears that target in < 3 seconds.

600briefs
Driven · concurrency 8
2.59s
Wall-clock total
231/s
Throughput
~3M×headroom
Over FRD target rate
6 ms
min latency
11 ms
p50
81 ms
p95
227 ms
p99
0
errors

Source: dg-mae-load-report.json · stretch run on the same harness handled 2,400 briefs at concurrency 16 in 8.2 s with zero errors (~3.8M× headroom).

How a brief becomes a published post

Every step is an FRD-mapped agent. Every Anthropic / tool call rolls into the budget ledger. Every state change appends to the audit chain.

Strategy
Persona
Script
Visual
Video
Posting
Analytics

Side rails: Provisioning for new platform onboarding (FR-PRV-005 enforced), Builder for orchestration loop control, Kill switch halts dispatch in ≤ 60 s.

The nine FRD agents

All nine are real implementations against FRD v3.0 — not stubs. Live LLMs (Anthropic Opus 4.7 / Sonnet 4.6) and live media APIs (Veo 2/3, Kling 2.5 Turbo, HeyGen, Whisk, MusicGPT, ElevenLabs) with offline-deterministic fallbacks for every call site.

ST

Strategy

Plans 12 weekly briefs per campaign with pillar-mix and calendar-deviation gates (FR-STR-002, FR-STR-005).

opus 4.7 · 90-day perf prior
PE

Persona

Scores 57 personas across 11 verticals on channel-fit / recent-perf / role-fit. Confidence-gated escalation to HITL.

FRD App. H · sigmoid + margin
SC

Script

Variant generation with two-stage voice classifier (n-gram + embedding @ α=0.30), forbidden-vocab, fact-claim, depth, and diversification gates.

sonnet 4.6 · ≤2 retries
VI

Visual

Imagen / Nano Banana hero generation per Appendix C.4 policy. Pure-SVG brand template render with locked colors, Poppins, footer, wordmark. Face/logo detector.

imagen · nano-banana
VD

Video

Veo 2/3 long-running prediction polling, Kling async, HeyGen avatar, Whisk i2v, MusicGPT compose. ffmpeg assemble to LUFS −16, brand LUT, 16:9 / 9:16 / 1:1.

monika · sha-256 stamped
PO

Posting

YouTube resumable, Meta Graph IG/FB, LinkedIn UGC three-step + document carousel via PDF compositor, X v2 + multi-chunk video. Caption adapter per platform.

FR-POS-004 gate · 30-day calibration
AN

Analytics

Three modes — hourly_pull / daily_pull / weekly_brief. YouTube Analytics, Meta Insights, LinkedIn Marketing, X v2 + non_public_metrics, GA4, DroneGenie pipeline MCP.

composite score · CPA target ₹1,200
PR

Provisioning

Attended Playwright session with FR-PRV-005 enforcement: refuses ToS, OTP, KYC, payment, captcha. KD WhatsApp + email handoff.

OCI Vault · instance-principal
BD

Builder

Orchestration loop. Persona-before-Script/Video/Visual ordering. Audit-log append. Budget-ledger roll-up. Bounded regeneration.

framework/agent-base.ts

Critical invariants

Protected at multiple layers: Postgres CHECK constraints, application code, and test coverage. Any violation is a build failure.

Local Quickstart

No API key required. The vertical slice runs offline with deterministic stubs that exercise every code path of the live pipeline.

# Postgres 16 + Redis 7 in docker
npm run docker:up

# Workspace deps + schema + seed
npm install
npm run db:migrate
npm run db:seed

# Plan, run vertical slice, produce assets
npm run plan
npm run slice
npm run produce

# Schedule + publish + comment poll
npm run publish
npm run publish -- --poll

# Analytics — 3 modes, all cron-driven in prod
npm run analytics -- --hourly
npm run analytics -- --daily
npm run analytics -- --weekly
# Production deploy (multi-stage Dockerfile)
docker compose --profile cron up -d
docker compose run --rm orchestrator \
  npm --prefix apps/orchestrator run produce

# OCI deploy: instance-principal auth
export OCI_AUTH_STRATEGY=instance_principal
export OCI_VAULT_OCID=...
export OCI_COMPARTMENT_OCID=...
export OCI_VAULT_MASTER_KEY_OCID=...
export OCI_OBJECT_STORAGE_PAR_BASE_URL=...

# Real LLMs
export ANTHROPIC_API_KEY=sk-ant-...
export TAVILY_API_KEY=tvly-...
npm run plan && npm run slice

Sample artifacts & source

A representative weekly brief and LinkedIn document carousel rendered by the brand-locked PDF compositor, the FRD load-test report, and the full Wk 10 source tree.