Systems and AI

Documentation systems

Pipelines, AI agents, and developer tooling I built to keep enterprise documentation accurate without adding headcount. Each starts from a real problem on the MHK documentation team.

Multi-agent documentation pipeline

AI automation

Problem

After a headcount reduction, one writer was responsible for the full team's output across a 1,900+ article knowledge base.

What I built

AI agents that review, score, and publish articles against a custom quality rubric, with structured output schemas, adversarial verification, and the Document360 REST API.

Result

779 new articles in 2026; annual edits up from 88 to nearly 1,000.

Multi-agent documentation pipeline Five stages from left to right: article draft or update, review agents, rubric scoring, adversarial verification, and publishing through the Document360 API. Articles that fail scoring or verification loop back to revision. Article draftor update Review agentsstructured output Rubric score100-point rubric Adversarial checksecond agent verifies PublishDocument360 API Fails score or verification: back to revision
How an article moves through the pipeline.
  • Python
  • Claude API
  • Document360 API

Jira-to-HTML release notes engine

Release automation

Problem

Biweekly release notes took a skilled writer a full workday every cycle.

What I built

An end-to-end pipeline: Jira JQL extraction, schema enforcement, HTML generation grouped by module, and publishing.

Result

1 day down to 2 hours, across 10+ consecutive on-time releases.

  • Python
  • Jira API
  • HTML
  • Confluence

Support ticket deflection classifier

Analytics

Problem

Support handled avoidable contacts, but no one knew which missing or unclear articles caused them.

What I built

AI classification and topic clustering over 17,500 support tickets, traced back to specific documentation gaps.

Result

An estimated 875+ support hours saved per year.

  • Python
  • Jira API
  • Topic clustering

Documentation agent toolkit

Developer tooling

Problem

Recurring documentation checks were manual and depended on someone remembering to run them.

What I built

61 Claude Code agent skills and 3 MCP servers for coverage audits, release note scoring, credential leak scans, and live system variable linting.

Result

Checks that used to be skipped now run on demand, the same way every time.

  • MCP
  • Claude API
  • Node.js
  • Python

Cross-platform migration engine

Data migration

Problem

Documentation lived in Jira, Confluence, and Document360 at once, and the copies drifted apart.

What I built

Asynchronous Python pipelines that reconcile and synchronize content across all three platforms with automated schema transforms.

Result

One reconciled set of documentation across three systems.

  • Python asyncio
  • REST APIs
  • Confluence

OCR screenshot metadata library

Computer vision

Problem

Thousands of screenshots were locked inside legacy training PDFs and couldn't be searched or reused.

What I built

An extraction pipeline that pulled every screenshot and tagged it by UI element, field name, and solution area.

Result

7,541 screenshots made searchable through 34,414 tags.

  • Python
  • Tesseract OCR
  • PDF extraction
Open source

Public tools from the same work

Sanitized and documented. Each README says what the tool does, what it doesn't claim, and why it exists.

All repositories on GitHub

21 Claude Code skills for auditing a 1,900-article documentation corpus and reviewing drafts before they reach customers. Most exist because something went wrong once.

Markdown

Playwright screenshot capture for documentation, with redaction that fails closed so real patient or customer data never ships in an image.

JavaScript

Sorts documentation into thirteen types from HTML structure alone and explains each decision. No model, no network, microseconds per page.

Python

Drives the real interactive Claude Code CLI from Node through a pseudo-terminal and a headless terminal emulator.

JavaScript

Times a folder of screenshots to a recorded narration by detecting pauses, for fast training videos. ffmpeg only.

JavaScript

Measures real weekly meeting hours from an Outlook calendar and prints them in a timesheet-ready shape. Includes tests and a privacy section.

Python