From Bash Scripts to Autonomous Agents: A Migration Story
From Bash Scripts to Autonomous Agents

Every agent ecosystem starts with a script. Mine started with a cron job that pulled Jira data.
Phase 1: The Script Era (Oct 2025)
#!/bin/bash # daily-update.sh — the humble beginning curl -s "https://your-company.atlassian.net/rest/agile/..." \ -H "Authorization: Bearer $JIRA_TOKEN" | jq '.issues[] | .fields.summary'
It worked. Barely. No error handling, no formatting, no intelligence.
Phase 2: Claude Code Discovery (Nov 2025)
The wedding site project was the turning point. Building a complete Next.js application with Claude Code in 2 days proved that AI-assisted development wasn't a gimmick — it was a force multiplier.
But the real insight came from MCP integrations. When I connected the Atlassian MCP server, Claude Code could:
- Search Jira with JQL
- Read Confluence pages
- Cross-reference across systems
This was different from scripts. Scripts followed predetermined paths. Agents could reason about data.
Phase 3: First Agents (Dec 2025)
The daily-update-publisher was my first real agent. Instead of a bash script, it was a Claude Code subagent with:
- A system prompt describing its purpose
- Access to Jira MCP tools
- Formatting instructions for Slack output
The quality difference was immediate. The agent would:
- Categorize tickets intelligently (Done/In Progress/Blocked)
- Calculate sprint velocity metrics
- Flag risk items proactively
Phase 4: The Ecosystem (Jan-Feb 2026)
From 1 agent to 17 in 8 weeks. Key patterns that emerged:
- Hierarchical dispatch — A team-lead orchestrator routes to specialists
- Tiered models — Opus for synthesis, Sonnet for structure
- DB-first fallback — Every data function has a static backup
- Report output rules — Save locally, upload to Drive, never block on upload failure
The Meta-Lesson
The biggest lesson wasn't technical. It was this: the agents I built to help me do TPM work taught me more about AI than any course or tutorial could have.
Building agents forced me to:
- Understand prompt engineering deeply (bad prompts = bad agents)
- Learn multi-model orchestration patterns
- Think about reliability and failure modes
- Design systems that degrade gracefully