What I built11
- Built MCP-based workflow automation integrating GitHub webhooks, LLM reasoning, and automated pull-request analysis pipelines.
- Designed context-routing logic letting agents retrieve repository state, ticket metadata, and CI/CD execution context before generating review decisions.
- Automated engineering workflows across GitHub Actions and Asana - status updates, ticket linking, review summaries without manual coordination.
- Surfaced structured review verdicts to PR comments, gating merges on automated reasoning checks.
- Assembled context in a fixed order before any reasoning: the diff, the touched files' neighbours, the linked ticket's acceptance criteria, then the CI result, so a review cannot comment on intent it was never given.
- Budgeted the diff rather than truncating it: large PRs are reviewed file by file with a per-file verdict, because one 8,000-line diff in a single prompt produces a summary, not a review.
- Returned findings as a schema (file, line, category, severity, rationale) so a verdict renders as inline comments and can be counted, instead of a paragraph a human has to re-read.
- Gated the merge on category rather than on volume: a correctness finding blocks, a style note does not, so the bot cannot hold a release over formatting.
- Made the bot idempotent on re-runs, updating its existing review comment instead of stacking a new one on every push, after the first version left eleven comments on one branch.
- Wired Asana both ways: a PR opening moves the ticket to review and a merge closes it, with the ticket id parsed from the branch name so nobody has to remember to link it.
- Kept a manual override that is logged, since a review gate with no escape hatch gets disabled entirely the first time it is wrong.
Tools
- TypeScript
- MCP
- GitHub Actions
- Asana API
- LLM