~/bpabatao
← back to index
~/case/ai-sdlc

AI-Augmented SDLC

Four AI tools built for a small team running a large fleet - one kept, one shelved on evidence, one designed and not yet run live, one shipped into its own case study - with humans keeping every approval gate.

Role
Sole author
Period
2026 - present
Ownership
Sole author
Stack
AWS Bedrock (Claude) · GitHub · Jira · Claude Code plugins · Python · S3/JSONL
AUTO-REMEDIATIONTICKET → MERGEalertbedrock triagefix prhuman reviewticketplangatedraft prgatemergelabel-driven state machine · every step reversible · humans own every gate

Problem

Five engineers, one fleet: triage, code review, and backlog grooming eat the week if you let them. The interesting question wasn't whether AI could draft a fix - it was how to wire it in so speed goes up while accountability stays exactly where it was.

Approach

Every pipeline is built around human gates. Agents propose; people approve. State lives in labels on the ticket and PR, so any step is inspectable and reversible, and nothing merges without a named human owning the decision. The same rule applies to the tools themselves: each one is measured, and one that does not earn its keep is shelved rather than invested in further.

Architecture

Kept - review: a Claude-based PR reviewer runs in CI on the core API and backend repositories, ahead of the human pass. It was pulled from the five portal pipelines when it crashed on their builds; keeping it only where it worked was the decision.

Shelved - auto-remediation: an AWS Bedrock service (Claude via bedrock-runtime) built to triage production alerts, correlate them with recent changes, and open fix PRs. Never wired to a live alarm, it had zero invocations in the 30 days measured and 12 of its 13 remediation runs had failed; it was shelved in August 2026 on that evidence.

Designed - delivery: an agentic pipeline from the ticket queue to GitHub - plan, branch, implement in an isolated worktree, open a draft PR - with three human approval gates between intent and merge. Dry-run on one ticket, not yet run live.

Shipped - knowledge: the Bedrock knowledge-base agent over Oracle CCS documentation and data, curated-first with a flagged SQL fallback; it has its own case study.

When it went wrong

In August 2026 I found that three of the tooling's public Lambda Function URLs - the auto-fix, the ECS rollback, and the Bitbucket bridge - fell back to a bearer token hardcoded in the source and never overridden live, so the URL plus a value anyone with repository access could read was enough to invoke them.

The fix was the boring one: per-function secrets, the fallback removed, credentials rotated, the change written up. It is the reason the auto-fix's shelving a few days later was an easy call - a tool that is not earning its keep should not also be an attack surface.

Outcome

← all projects