Associate Director, Accenture · Columbus, Ohio

Jack Jin's Portfolio

A dated log of side projects. Each one has a repo, a first commit, and a last commit. Sorted by most recently touched, newest first.

Apr 2025 → now · the main run · one 2024 prologue below

Projects over time

Bars run first commit → last build commit, so overlaps are visible. A few repos kept getting small restyles after their bar ends. Click one to jump to the writeup.

How they were built · each writeup below carries one of these labels

  • spec-first A PRD and tech spec before any code, with tasks numbered from the spec. The oldest habit here; it started in 2025.
  • incremental specs No big up-front plan. A dated spec folder per release, then build, tag, and repeat.
  • ad hoc Conversation-driven, no spec. Some of the quickest builds on this page went this way, and it shows in their scope.
  • dark factory An unattended harness planned, built, and verified the work. I read the commits in the morning.

Jul 2026 — present · 2 repos

Anima Mesh
The company-of-0 experiment

ad hoc no spec preceded the code. The discipline came from releases: 26 tags in 19 days, a changelog per release line, learnings written down as they happened.

The experiment: how much of an organization's back office can a mesh of agents run on its own? Compliance calendar, bookkeeping, document library, board hygiene, research watch, inbound triage. The point is to push that boundary until one human job is left standing: the approval gate.

The engine is public and knows no names. The knowledge lives in a second, private brain repo: ledger, records, CRM, all plain markdown. One daily heartbeat reads the repo, runs the agents that are due, verifies the work in code, and commits. git log is literally "what did the mesh do while I was away."

One engine, one private brain per instance

The split is the design: all logic in a public engine that never names anyone. All identity in a private instance repo the engine animates.

AnimaMesh cloud architecture: the principal reaches the mesh via Discord and a dashboard; two Cloudflare Durable Objects run the heartbeat and directions; the private GitHub brain is the only durable store; read-only sources and model vendors hang off the side.
The cloud tier. Two Durable Objects, one alarm, zero databases. Git is the only durable store.

The system, in four diagrams

Anatomy of a brain: one organization as plain files. What the mesh knows, who does the work, and what the work leaves behind.
One organization as plain files: knowledge, roster, and the trail the work leaves behind. No code lives here.
Sequence diagram of one heartbeat: a single alarm reads the brain, runs each due spoke sequentially, runs the hub last, verifies, commits once, and delivers a brief.
One alarm, the whole company. Spokes run first; the hub runs last and reads the day's work instead of commanding it.
Agent roster lifecycle: born in the engine as a template, lives in the brain as markdown frontmatter, climbs a four-level autonomy ladder.
An agent is a markdown file. Hiring is copying a template. Promotion is a one-line frontmatter edit, with git as the record.
Two-repo topology: the public engine has a one-way dependency into many isolated private brains.
One-way dependency. The engine never references the brain. One engine can animate many isolated companies.

The beat · 08:00 America/New_York, every day

0 ledger entries 0 agent reports 0 commits by the machine 0 agents on roster

Nine agents, one approval gate

From the docs: "the initiative inverts: you stop driving the operations and start reviewing them."

Nine agent archetypes on four rhythms: daily, weekly, monthly, quarterly. A compliance watcher, a bookkeeper, a librarian, a board secretary, a research watch, an inbound triage. The hub, a Chief of Staff persona, is the single voice the human ever hears. Three inbound channels: Discord, a dashboard, plain email. And a documented moment of real judgment: the hub woke the bookkeeper early because a deadline outpaced its monthly rhythm. That is exactly the judgment the mechanism exists for.

"A reply that isn't backed by a commit is a hallucination with a send button."

Its own vocabulary · click a word

a system earns its own nouns. click one.

Safety lives in code, never in prompts

Everything between wake-up and gate is model judgment. Gates, ladder, ledger, and verifiers are deterministic code.

Five constitutionally gated action classes: money movement, government filings, external publishing, credential exposure, access expansion. Three commercial agents are fully written and the engine refuses to run them until their activation gates open. Capability never outruns permission. And when api.kimi.com's WAF blocked all Cloudflare Workers egress in week one, cognition rerouted to Anthropic with a two-line config edit. The agent's identity never changed.

0 databases · git is the store 6 model harnesses, swappable 3 agents waiting on permission

Feb — Jul 2026 · 2 repos · co-developer: age single digits

Built with Bruce
The father-and-son repos

ad hoc he pitches the design, we talk, it ships. No spec survives a co-designer under ten.

Not every project is an agent mesh. Two of the repos are games designed with my son: he supplies the game design, I supply the AI, and an idea becomes something playable before bedtime.

Feb 28 — Jun 6, 2026 · 52 commits

Lava Dash

A Geometry-Dash-inspired side-scroller in React and Canvas. One player, then a two-player co-op mode, because the designer insisted his friends needed to play too.

Jul 17, 2026 · one evening, one commit

Play Ten

A golf-style card game in vanilla JS, HTML, and CSS. One evening, from pitched rules to playable game.

The same tools that run the mesh also ship a card game before bedtime.

Oct 2025 — Jun 2026 · 2 repos · 317 commits · 16 tagged releases

The Content Factory
A decoupled agent mesh

incremental specs Spec Kit bundles (spec, plan, tasks) in the v1 era; a dated plan in ai-docs per release in the mesh era. Six days from PRD to deployed mesh, because the spec came first.

Talk material for adaptTo() 2026, built for real: a mesh of independently-addressable A2A agents that generate, migrate, and evaluate CMS content. Different vendors compose over an open protocol. Quality is measured, not vibed.

The arc runs in three eras. Oct 2025: an MCP server for AEM's da.live, on Azure Functions. A 94-commit December push tags v1.0 on New Year's Day: evals in a Docker container, Make.com scenarios calling the Functions to do the authoring, and by mid-January, Adobe Summit 2026 blog material coming out of the same repo. Then a quiet spring. In June, v2.0 rebuilds it as four agents: coordinator, content-gen, migration, eval. Six days from PRD to a deployed mesh on Cloudflare Workers and Containers.

Generate → migrate → evaluate, intelligently routed

One pipeline, two model vendors, zero contract changes. Kimi authors. Claude judges. Neither knows the other exists.

The closed-loop pipeline: a coordinator asks content-gen to fabricate a synthetic legacy page, hands it to the migration agent to author into da.live, and hands that to the eval agent to score across four dimensions.
The closed loop, from the repo's own docs. The coordinator can enter or exit the loop anywhere.
91 eval score on a real Kimi-authored page ~9 min for a real agentic migration ~11 min full closed loop, real everything 4/4 cloud acceptance, e2e

One eval engine, two deployments

v1.0

A deployable container: a Next.js eval app with four agents, each pairing deterministic checks (axe-core, Cheerio, Playwright) with model judgment. Still running as the frozen backup.

the engine

The scoring engine survived the rewrite. It was copied out of the v1 app, not rebuilt.

v2.0

An addressable A2A agent in the mesh: any vendor's output gets scored the same way, on every run.

The eval outlived both architectures

If agents author content, something has to say whether it's good. That something gets versioned, deployed, and tested like a product of its own.

Four dimensions: structure, accessibility, content fidelity, visual correctness. In v1 the eval shipped as its own Docker container. In v2 it became an agent in the mesh, so every migration lands with a score attached. The payoff came in v2.5, when the numbers said the site redesign was failing: the error turned out to be in the eval's own methodology, and scoring generated pages on their own merits moved a real article from 67 to 89. Numbers you can argue with beat vibes you can't.

The demo, before and after

before

"Katie's Travel Journal," a hand-coded, circa-2002 travel blog. Plain HTML, zero framework.

the mesh

An agent mesh migrates it: one vendor authors into da.live, another scores structure, accessibility, fidelity, visuals.

after

The Wilderness Journal: a modern Edge Delivery Services site, 14 blocks, every migration scored.

A daily unattended run

A daily cron submits a run with no topic. The coordinator ideates one, generates, migrates, evaluates, and parks it in preview. A human curates later.

Two lessons came out of production. Streams die crossing the Worker-to-container hop, so the store, not the stream, is the contract: every agent persists full task state and consumers recover by polling. And containers get no native database bindings, so the Worker proxies queries.

20.6K lines of TypeScript 27 e2e files · no mocks, ever 5 JSON Schema contracts

The v1 platform, in its planned final form

Five subsystems around one EDS site. Color is the semantic axis this page's diagrams still use: deterministic in blue, agentic in red, mixed in purple.

The v1 content platform plan: a UI/UX specification feeds a mock-content generator (Claude Agent SDK producing PDFs and HTML into Azure Storage), a Make.com / Workfront Fusion content builder calls MCP tools (Playwright, AEM da.live get/update/create/publish) into the da.live EDS site, an evals container on an Oracle VM pairs deterministic and agentic logic four ways each, and a site-building harness runs planning and task agents through research, build, and validate with a human-in-the-loop escape hatch.
Drawn while v1 was being built: Agent SDK content generation, a Make.com builder over MCP, the evals container, and the site-building harness. The Excalidraw was later recovered from git history.
agent
AEM

create page · update content · publish, as tool calls

First, AEM content operations became tool calls

The origin build: an MCP server for AEM's da.live, then the same server proven from Claude, Gemini, Azure OpenAI, and n8n. No client-specific forks.

The repo's first life was interoperability with the CMS I work on professionally: expose AEM Edge Delivery's content operations, get, update, create, publish, over MCP once, and every agent that speaks the protocol inherits them. Everything else in this chapter stands on that server. The mesh grew out of asking what happens when the agents themselves get addresses too.

Mar — Jun 2026 · 54 commits · a public plugin marketplace

AI Builder Kit
Skills anyone can install

ad hoc skill by skill, as the need came up. Each ships docs and guardrails; the heaviest one ships its own evals.

A Claude Code plugin marketplace: nine published skills, written so that people other than the author can install and use them. Two of them get detail here, because they carry the most engineering.

A test file becomes a demo video

The rule that makes it work: you cannot narrate what doesn't exist.

One command records the spec with exact per-action timestamps, generates ElevenLabs voiceover from the captions in the test file, and merges freeze-frames and music into the finished MP4. Before any narration is written, a mandatory stage zero verifies the app has real data and runs an exploration spec cataloging what Playwright can actually see. Scenes are built one at a time, each recorded and verified before the next.

Reference output of the drawio skill: an agentic harness diagram with a four-color semantic palette, deterministic processor, planning and task agents, and dashed human-readable handoff loops.
The skill's reference output. The four-color semantic palette here is the same one on diagrams across this page.

Diagrams that check their own work

The skill writes the XML, exports a PNG through the draw.io CLI, then reads the image back and fixes what looks wrong.

Every diagram goes through a render-view-fix loop, usually two to four passes, with versioned files kept as iteration history. An eight-question interview with recommended defaults settles the decisions that shape the result: frames, flow direction, color axis, how exceptions are marked. The style rules live in reference files the skill must read before generating, because the rules interact.

The skill also ships its own eval harness: two benchmark diagrams, graded by a script against roughly twenty assertions each, XML mechanics and brand rules alike. The baseline run without the skill passed 15 of 18 assertions; with the skill, all of them. The second iteration folded review findings back in as three new assertions per eval, and the runs are kept in the repo. A skill you can't score is a skill you can't improve.

Hand-drawn diagram mapping AI skills to team enablement objectives: one skill node, many hands
One skill node, many hands. The moment personal tooling became team enablement.

The toolbox, published

drawio diagrams · branded decks · Playwright demo videos · conversation loggers · an auditable HLX admin executor. Install, don't rebuild.

The rest of the shelf: the HLX admin skill wraps an admin API so configuration becomes describe, review the diff, apply. Branded decks, conversation loggers, a structured git-commit skill, competing-PR triage, and an AI-knowledge harvester round it out. Each ships with its own docs and guardrails.

9 published skills 54 commits, Mar — Jun 2026

May 31 — Jun 5, 2026 · 19 commits · phase 1 complete

Conversion Factory
Agents that evolve site blocks

spec-first the PRD and the architecture diagram were committed before the agents existed.

An agent runtime for conversion-rate optimization on Edge Delivery Services. A coordinator forms a theory from analytics, four spoke agents produce a variant block on a git worktree, and the change ships as a pull request into a live A/B test. Winners get promoted into the codebase by a separate PR. A retrospective agent then edits the agents' own instructions, so the system learns across cycles.

Four phases, one diagram

Analyst scores the block. Architect forms the theory. Builder writes the variant. Validator runs Lighthouse, accessibility, and regression.

Conversion Factory architecture: a coordinator hub orchestrates analyst, architect, builder, and validator agents through four phases - generate a PR, human review plus live A/B experiment, promote to permanent baseline, and a retrospective loop that updates agent instructions.
From the repo's ai-docs. Phase 4 is the part I care about: the retrospective agent proposes instruction changes, and humans gate how the agents reason.
4 spoke agents behind one coordinator A/B baseline vs variant, per visitor 1 false-PASS hole closed: verify wiring, not just pixels

Jan 24 — May 31, 2026 · 374 commits · 16 releases · ran 24/7 for four months

Continuous Executive Agent
A 24/7 coding agent

incremental specs to build it: a dated spec and plan per release, ai-docs v1 through v3. dark factory when it ran: nobody watched the overnight builds.

A coding agent that runs around the clock under PM2. It selects work from a priority queue, spawns isolated workers, validates with deterministic verifiers, retries with a different strategy on each failure, and escalates to a human only when stuck.

This section goes release by release: a foundation era, an identity-and-multi-vendor era, and a memory era. Four months. The output repo ended up with thirty projects, most of them built overnight.

Lifetime, measured from its own ledgers

0 worker contracts 0 goals completed autonomously 0 projects built 0 verifier runs 0 human interventions, total

Counted from the append-only ledgers in the repo.

Release history

Dates from git tags. Summaries from the changelog.

Era 1 · Foundation · Jan 24 — Feb 4

v1.0
Jan 24, 2026 · built in a single day

Foundation

The 8-phase executive loop. Two-repo architecture: the brain never receives worker output. A constitution of 8 immutable limits, including a $20/month spend cap. Contracts, deterministic verifiers, PM2, append-only ledgers.

v1.1
Jan 25, 2026

Intelligence

Goals over 100 turns auto-split into steps. Strategy rotation: every retry must try something different. Agentic diagnosis after three failures. The needs-you.md protocol: I answer in a markdown table, it notices within thirty seconds.

v1.2
Jan 28, 2026

Organization

Goal bundles: each goal a directory with its own prompt, machine-readable steps, contract log, and progress log. Workspace lifecycle drafts → ondeck → in-progress → completed, promoted by priority.

v1.3
Feb 4, 2026

Security

Three physically separated credential tiers with leak detection on every spawn. OAuth-first: the whole system runs on a Claude subscription, no API key.

Era 2 · Identity & Multi-Vendor · Mar 29 — Apr 19

v2.0
Mar 29, 2026

Identity: the agent gets its own accounts

Its own Gmail: it receives goals by email. Its own Discord: it reports completions and blocks. Skills and playbooks with a track record: every skill carries a success rate. A read-only dashboard. I became a guest in my agent's workspace.

v2.1
Apr 1 — 5, 2026

Multi-vendor: the bake-off

A vendor abstraction layer: Claude, OpenAI Codex, and Kimi workers behind one interface. Then the experiment: the same finance-dashboard spec run across all four vendor modes, deployed live, and scored by the harness itself.

v2.2
Apr 12, 2026

Harness framework

Three multi-agent plan-then-build pipelines became first-class citizens, runnable standalone or driven by the executive. 105 passing tests; the whole orchestrator exercised end-to-end in about a second with zero API calls.

v2.3–2.4
Apr 18 — 19, 2026

Build targets & hard lessons

Worktree isolation per project. Progressive skill disclosure with a verifier that fails a contract if a required skill was never consulted. And a favorite war story: a prompt saying "No UI, no database" got post-processed into a plan whose step zero provisioned database tables. The hallucinating prerequisite-inserter was found and fixed.

Era 3 · The Second Brain · May 16 — 31

v3.0
May 31, 2026

Memory

A mem0-backed second brain. Five memory types, five lifecycle hooks, memory packs baked into each worker's context, ~134 memories backfilled. Git stays canonical: if the store and the repo disagree, the repo wins. The riskiest hook stayed off until the memories earned trust.

Same spec · four vendor modes · scored /130 by the harness

OpenAI Codex115
Kimi K2.5 CLI92
Claude88
Kimi Wire87

All four deployed live from the agent's own output repo.

The multi-vendor bake-off

Same spec, four vendor modes, seven verifiers each. The harness did the scoring.

Demoed on the running system, no slides. One night that week the ledger shows Codex finishing its build and passing validation at 3:56 AM, with nobody awake. The demo video shown was produced by the agent end to end: 81 seconds, zero keystrokes.

"Is it perfect? No. Is it close? Also no. But I'm proud of where it's at."
AI Tinkerers Community Spotlight graphic: a black and gold halftone portrait of Jack, arms crossed, with the text Top Global Demo, number one top pick, my own version of OpenClaw focused on 24x7 development, Columbus, April 20, 2026.
Two weeks later, AI Tinkerers picked the demo as their #1 top pick globally that week and made this graphic. Their design, not mine.
Discord workspace owned and operated by the autonomous agent, posting its own status updates
The agent's own Discord. I read it like a colleague's channel.

Its own Gmail, Discord, and Notion

An always-on agent needs its own accounts, not borrowed ones.

It receives goals by email and reports to its own Discord channel. I am a guest in the agent's workspace, and the working rhythm is reading the overnight commits in the morning. Human interaction is markdown files, not a chat box waiting for input.

Hand-drawn architecture diagram of Continuous Executive Agent v2.1: executive brain, multi-vendor worker execution, and self-correcting feedback loop
The v2.1 system map, hand-drawn: executive brain, worker execution, feedback loop.
Diagram of the memory system's write path (hooks feed a harvester that validates and writes to mem0) and read path (a reader runs natural-language searches and builds memory packs)
The write path and the read path. One writer, one reader, no agent scribbles wherever it wants.

The agent gets a second brain

Storage is the easy half. Retrieval decides whether a memory was ever real.

Five memory types, from immutable principles to reflective lessons. Workers never touch the store: they get a curated, two-thousand-token memory pack baked into their context. The best war story is the silent bug: an empty-string config value made every single write fail while the logs said "ok." Found, fixed, and the logging redesigned so a total failure can never look like success again.

Feb — Apr 2026 · 48 commits · live demo + published video

CIAM Demo
Customer identity, end to end

spec-first specs and prompt logs kept in the repo's ai-docs.

No agents in this one. Customer identity and access management, built out fully: identity provider, session boundary, resource API, multi-tenant authorization.

Keycloak

Phase Two · OIDC identity provider

Next.js BFF

Auth.js v5 · session boundary

Spring Boot API

org-scoped claims · RBAC

Organization-scoped claims flow from Keycloak through a backend-for-frontend into a Spring Boot API that enforces role-based access per tenant. Deployed on an ARM64 VM, demoed on video. 48 commits, Feb to Apr 2026.

where the AI-coding run starts

Jul 2025 · 2 repos · two stacks · restyles into 2026

Postal Portal
A shipping product on two stacks

spec-first PRD, then tech spec, then tasks. The transactional flow's commit log counts up from task 1.2 to 9.3.

A postal shipping product built across two weeks of July 2025, spec-first on both halves. The marketing site went on Adobe Edge Delivery Services as 17+ reusable authoring blocks. The transactional flow, quote through pickup through confirmation, went on Next.js: 89 commits in a six-day sprint, each one numbered against the task list it was working through.

The git history under-counts this one. The marketing repo's whole build week landed as a single commit touching 2,700+ lines, the PRD and tech spec its README points to never got committed, and the page content lives in da.live rather than git. Small restyles kept trailing in afterward; the last one landed in May 2026, ten months after the sprint.

Postal Portal build diagram: a written spec layer (PRD, tech spec, numbered task list) drives two stacks side by side. Left, the EDS marketing site with 17+ authoring blocks and content in da.live. Right, the Next.js transactional flow built as a six-day task-numbered sprint from quote to pickup to confirmation.
One spec method, two stacks. Drawn for this page from the two repos' commit history.

May — Jul 2025 · my first fully AI-written production app

Shadow Pivot
My first AI-coded app

spec-first where the habit started: PRDs, rules files, blueprints, then code.

A public, production Next.js agent app where AI wrote all of the code. Then CI/CD stood up around it, and the methodology written down: PRDs, rules files, blueprints. Three videos documented it as it happened.

Apr 2025 · 24 commits · since retired

Azure STAR Generator
Day one

ad hoc one Sunday, the same app tried in several tools.

The first project: a Sunday spent trying AI coding tools by building the same app in each. Azure Functions plus Azure OpenAI, turning CSV feedback exports into STAR-format career stories.

Aug 2023 — Mar 2024 · won at Adobe Summit · repo public Nov 2024

AEM Rockstar 2024
The prologue

ad hoc hand-written Java and jQuery, versioned 1.0 → 1.2 through fall 2023. The AI was the feature, not the author.

The pitch that won AEM Rockstar at Adobe Summit 2024: personalization at scale, inside AEM's own authoring UI. An author opens an experience fragment, types "rewrite this for ages 13 to 17," reviews a side-by-side table of every proposed change, and one click later has a new fragment variation open in the editor.

The design constraint that shaped it: add capability without adding surface. Generation is a Sling selector on the stock experience-fragment page type, the UI is one clientlib injected into the stock properties editor, and writes go through AEM's own copy and POST machinery. No new endpoints, no new editor, no writes without review.

Flow of the Rockstar 2024 build: an injected jQuery clientlib in AEM's properties editor sends the author's prompt to ExfragGptServlet, a Sling selector on the stock experience-fragment page type; QueryBuilder collects the fragment's text properties; ChatGptService runs each through Chat Completions with a per-fragment chat log; results return to a review table of path, original, and generated values; on approval, AEM's own wcmcommand copyPage plus a Sling POST write the accepted values into a new fragment variation.
The whole flow. Drawn for this page from the repo's code.

The frontend is where most of the craft went. A ~270-line Granite/jQuery clientlib hooks foundation-contentloaded, derives the fragment path from the properties-editor URL, and builds the review table in the DOM: path, original value, generated value, one row per property the QueryBuilder walk found. A continue-chat toggle threads the chat id back, so the model refines its last answer instead of starting over. Approval clones the variation through /bin/wcmcommand, writes the accepted values with a Sling POST, and links straight into the new fragment's editor. A second clientlib does the same for whole pages.

None of this code was AI-written; in August 2023 the AI was the product, GPT-3.5 by default with GPT-4 behind a config. The shape it demoed is the one everything above formalizes later as propose and dispose: the model proposes values, a human reviews every row, and deterministic machinery does the writing. In 2023 that pattern was a jQuery table.

0 new endpoints · Sling selectors on stock types 2 clientlibs: fragments + pages 1.0 → 1.2 releases, Aug — Nov 2023

For the record

Career notes

  • Jun 2026 Associate Director, Accenture (Adobe Business Group)
  • Apr 2026 Guest lecture at Denison University's CS program
  • Apr 2026 AI Tinkerers Community Spotlights: the 24/7 coding agent demo picked #1 globally that week
  • Oct 2025 Ten years at Accenture
  • Aug 2025 Columbus AI Week speaker · submitted again for 2026
  • 2024 AEM Rockstar winner, Adobe Summit

Adobe: AEM Sites Architect (Master) + 5 more · Microsoft: AZ-305, AI-102 + 5 more · Anthropic: Claude Certified Architect