content engine · skills, orchestrator, agents

Cywareness Simulation Archive

Production security-awareness content at volume, and the pipeline that now builds it.

status 2025 to 2026 · body of workrole designed + built end to end
Cywareness Simulation Archive: One lure, four difficulties, rendered by the real pipeline. Read across: the cle
One lure, four difficulties, rendered by the real pipeline. Read across: the clean control, then a shifted date, then an invented same-day deadline and a wrong department name, then an explicit 24-hour threat and an altered postal code. The platform adds one automatic sender flag on top of the authored ones.
Cywareness Simulation Archive: The reviewer sheet the pipeline writes for every sim: each planted flag highligh
The reviewer sheet the pipeline writes for every sim: each planted flag highlighted, named, and paired with the teaching text the trainee sees after they click.
recorded run
The real system running in the terminal: skills, the orchestrator contract, an agent, and a real indicator sheet and ZIP built from one sim.
~300sims authored across eight-plus markets and four difficulty tiers, 2025 to 2026.
8 stepsthe orchestrator contract that turns one brief into a full tiered package.
12 agentssub-agents doing the judgment-heavy authoring. Everything downstream of them is plain Python.
byte-identicalwhat the packagers produce run to run. Only the model half is allowed to change.
What it solves

Hand-authoring calibrated sims across brands, languages, and tiers stopped scaling somewhere in the hundreds. The pipeline's split matters for maintenance: the deterministic Python packagers produce byte-identical output run to run, while the model-driven agents are the only part that improves when a better model ships. One named seam, one place to upgrade. The original work belongs to the employer, so what is public is a sanitized rebuild of the pipeline: the seven skills, the eight-step orchestrator, and the twelve sub-agents, with none of the client templates, brands, or captured pages. It is linked below.

The constraint

Volume was the easy part. The output had to upload into a platform that expects exact structure, stay reviewable by trainers who do not read code, and hold a tier calibration steady enough that Beginner means the same thing in Manila and in Warsaw. The work itself belongs to the employer, so what I can show is the pipeline and the method, not the client files.

Who it serves

A security-awareness platform producing sims across many brands and markets.

Who it is for

The depth behind the sim production line above.

How it works
  1. Skills hold the rulesClaude Code skills encode the indicator rules, tier spreads, and the sim-pipeline contract.
  2. The orchestrator runs the contractAn eight-step orchestration turns one brief into a full tiered package.
  3. Agents do the judgmentSub-agents author the tiers and the indicator realism, the part that is genuinely hard.
  4. Python packages it, deterministicallyIndicator sheets and upload ZIPs are built by Python that does not change run to run.
  5. Upgradeable at the seamOnly the model-driven agents get better with a better model. The Python packagers stay byte-for-byte identical. Now that Fable 5 exists, the indicator-realism agent is the highest-upside swap.
The decision that was not obvious

Where to put the seam between the model and the code. The obvious build is one agent that authors a sim and emits the finished package. I split it instead: sub-agents author, where judgment is the whole job, and Python packages, where judgment is a liability. The payoff arrives on upgrade day. When a better model ships, the packagers are byte-for-byte unchanged and need no re-verification, so the only thing to re-test is the half that was supposed to improve. A single-agent build would have turned every model upgrade into a full regression of the entire output.

Landing pages, 34 brands

Every one is a hand-built vanilla HTML/CSS recreation of a real sign-in or verify page, used as the click target in an authorized training sim. These are screenshots of my rebuilds. Click any to open it full size.

Airtable
Airtable
Amazon
Amazon
Amex
Amex
Apple
Apple
Asana
Asana
Canva
Canva
Claude
Claude
Copy.ai
Copy.ai
Cursor
Cursor
DHL
DHL
Dropbox
Dropbox
Facebook
Facebook
FedEx
FedEx
Figma
Figma
Google
Google
Grammarly
Grammarly
Instagram
Instagram
Jasper
Jasper
Jira
Jira
Mastercard
Mastercard
Microsoft
Microsoft
Monday
Monday
Netflix
Netflix
Notion
Notion
OpenAI
OpenAI
Otter.ai
Otter.ai
PayPal
PayPal
Slack
Slack
Trello
Trello
UPS
UPS
Visa
Visa
WeTransfer
WeTransfer
Writesonic
Writesonic
Zoom
Zoom
Email lures, 24 campaigns

Each is a full HTML email built to a brand's real house style, the message half of a tiered sim. Consumer brands, SaaS tools, and plain internal-comms pretexts. Click any to open it full size.

Nike · Lunar New Year sale
Nike · Lunar New Year sale
Uber Eats · 50% off
Uber Eats · 50% off
Uber · promotional offer
Uber · promotional offer
Leonidas · Valentine voucher
Leonidas · Valentine voucher
H&M · member reward
H&M · member reward
Home Depot · gift card
Home Depot · gift card
7-Eleven · survey reward
7-Eleven · survey reward
Otter.ai · license activation
Otter.ai · license activation
Google Play · billing receipt
Google Play · billing receipt
Adobe · user agreement
Adobe · user agreement
ChatGPT · usage refreshed
ChatGPT · usage refreshed
Cursor · shared code snippet
Cursor · shared code snippet
Apollo · free trial
Apollo · free trial
Atlassian · password reset
Atlassian · password reset
Figma · directory verification
Figma · directory verification
Microsoft · security alert
Microsoft · security alert
Docker · account notice
Docker · account notice
Postman · access verification
Postman · access verification
Hotjar · portal feedback
Hotjar · portal feedback
Oracle · access review (internal)
Oracle · access review (internal)
Eurovision · win tickets
Eurovision · win tickets
FIFA 2026 · ticket raffle
FIFA 2026 · ticket raffle
Wolt · offer
Wolt · offer
X · account verification
X · account verification
One lure, three difficulty tiers
Advanced · nearly clean, at most one subtle tell
Advanced · nearly clean, at most one subtle tell
Intermediate · a few planted flags
Intermediate · a few planted flags
Beginner · obvious tells, spread across the message
Beginner · obvious tells, spread across the message
Built with
Claude Code skills orchestrator sub-agents Python packagers tsim CLI