
Before any setup begins, get the full picture of what you're building. This lecture walks the complete roster — seven purpose-built agents, the one mechanical script they all share, and the three skills that hand them real execution authority — and shows exactly how the course divides judgment from scripts from capability, part by part, so every section that follows already has a place to land.
Everything that has to be on your machine before a single agent, skill, or hook can run.
Before you can match a model to a job, you actually have to know what each one is good at — and that's not something you can shortcut. Reading a benchmark isn't the same as knowing which model is right for your task. Both steps matter, and neither one alone is enough.
Not a formality, and not a one-time check — dogfooding is part of the development lifecycle itself. Embracing it raises the quality of both the agentic framework and the tests it generates. It also means stepping away from just the role of an automation developer and looking at these new challenges from a genuine engineering perspective instead.
Before the agents, the config, and the tickets — a quick look at the one thing everything else in this course actually points at.
Using setting.json on a project and using settings.local.json for local work. I have also add a guide for Telegram push messages.
Before the mechanics of base_url, one fact underlies all of it: the ticket isn't just where work is tracked — it's what every agent actually trusts.
Where everything lives, and how to set up your own worktree so you can move between branches without a single checkout.
You will find in each section a link to a youtube clip that is a song that was in the background when I was working on each section and thinking in an agentic way :) Enjoy
In this section you learn to create your own Claude Code subagents and orchestrate them into a real engineering loop: one agent builds a production-grade Jira API client, another reviews it, and the review findings feed back into improving the agents themselves. You practice this against a live Jira instance and under enforced git guardrails.
Create the first agent of the framework as part of the building blocks,
A bash and Python automation engineer with Bash, Edit, Read, and Write — the agent that actually produces and fixes code.
The real work is building jira_client.py — one deliverable that dogfoods both agents, in sequence.
For more detail, check the SECTION.md file.
In this section you turn the agents from the previous section into a self-driving delivery pipeline. You package repeatable actions as Claude Code skills — committing, opening pull requests, driving a browser — and wire them into the agents so that one agent builds and commits its own work, another reviews it, and the reviewer itself opens the pull request once the change is approved. You practice this under the same enforced git guardrails, and you learn the hard way why a title is best written by whoever just read the diff.
At its core, a skill is a folder containing a SKILL.md file — instructions, metadata, and optionally a script or two — that Claude loads automatically the moment a task matches its description.
How the Magic Works ? One Agent, Two Playwright Stacks
A skill that stages, writes a conventional-commit message, and pushes — through an allow-listed script, within the git guardrails.
Opens a GitHub PR for the current branch — branch protection, base detection, push & duplicate checks, and an auto-generated summary body.
Creating a jira client script will be our dogfooding test for this section.
Turning the “only the reviewer opens the PR” convention into something the harness actually enforces — and proving it's safe before the whole team gets it.
For more detail, check the SECTION.md file.
Why plan mode is the smarter default: thinking before touching code is far cheaper than fixing wrong turns after the fact. A plan is a few thousand tokens you can read, correct, and approve before anything changes; skipping it means paying for mistakes in the expensive currency — failed edits, extra review rounds, churned commits, and rework. Plan mode makes the cheap step (deciding what and how) happen first, and keeps it strictly read-only so the repo can't be mutated until the approach is agreed.
You could reach for a built-in general-purpose or Explore agent to plan — neither is a planner agent, seeing why is the whole argument for a purpose-built one.
Create the new plan-mode agent
Running the new plan-mode agent for the first time and checking the diff with the same plan that was made by the main agent.
This is the last video of dogfooding the Jira skill plan after filtering all the issues from all 3 plans
This is the creation of the Jira skill and running the code reviewer on the new skill
Using the ticket AG-1 we will check that both agents: the builder and the code reviewer can update the ticket status by using the new Jira skill.
For more detail, check the SECTION.md file.
Why a dedicated automation agent: "write some tests" is deceptively open-ended. Done well it means parsing every discrete assertion out of a user story, discovering real locators on a live page, avoiding flaky patterns, matching the existing suite's conventions, and actually running the result. Baking that expertise into a single, reusable agent — with the right skills wired in — means every future "turn this AC into tests" request follows the same disciplined path instead of being improvised in the main loop.
Automation: A Purpose-Built Test-Writing Agent
For more detail, check the SECTION.md file.
Why a planning step before authoring: "write the tests for this story" hides two different jobs — deciding what suites to build and how to split them for parallel work, then actually writing each one. Fusing them produces duplicated coverage, suites that collide on the same files, and no visible plan to correct before the expensive authoring starts. Splitting planning from authoring makes the cheap step (strategy) happen first, as reviewable Jira work items, so the fan-out is dispatch-ready and the board shows exactly where every story sits.
Grounds a plan in the live app, applies a graduated build ability gate per acceptance criterion, and hands back a dispatch-ready set of Jira sub-tasks.
Dogfooding: AG-3, Guest Shopping
For more detail, check the SECTION.md file.
This section adds the last agent and, with it, draws the line the whole framework rests on: where agentic work ends and mechanical work begins. The agent is the test-runner — a run-and-report specialist that executes each reviewed suite and reports the verdict. Its mechanical counterpart is prepare_worktree.sh, a deterministic script that gives each suite its own isolated, venv-warm worktree — kept deliberately out of an agent's hands, because provisioning is rote, repeatable work a model would only run slower and at the cost of its own context
The Problem: Running multiple Claude instances in a single directory leads to "context pollution" where agents overwrite each other's uncommitted changes
Build the mechanical foundation once and the entire agent roster stands on it — every specialist the framework adds inherits the same clean, warmed environment for free.
Checks the env, runs once, interprets the result correctly, and reports a sanitized verdict — nothing more.
Dogfooding: The Full Six-Step Run : Not just three new files — the whole parallel pipeline, run end to end against AG-3 with its two suites.
Provisioning & Report Routing: Same worktree, same test file, two agents — and nothing collided. That's what AGENT_TYPE routing actually buys you, not just in theory.Each agent runs a different scope of the same suite, so the reports genuinely differ, not just their filenames.
For more detail, check the SECTION.md file.
This section handles what happens when it doesn't. A test can fail for two very different reasons — the test is wrong (a bad selector, a missing wait, stale data) or the app is wrong (a genuine product defect the test correctly caught) — and those demand opposite responses
A disciplined diagnose → fix → re-run loop, autonomous within a hard ceiling — the fix attempt itself is the classifier.
Every automation-writer was dispatched blind — no hint which suites were defect-bait. Clean-vs-surfaced had to emerge from each writer's own protocol.
Every section added one piece — authoring subagents, sanctioned skills, planning before doing, writing and fanning out tests, drawing the line between agentic and mechanical work — and this part closed the loop: telling a real defect from a flaky test, automatically. The agentic framework is complete.
For more detail, check the SECTION.md file.
Agentic Automation Course
Build a test-automation framework where the work is done by AI agents, not scripts you run by hand.
Most automation courses teach you to write scripts. This one teaches you to build a team — a roster of purpose-built Claude Code subagents that plan, write, review, run, and debug tests by reasoning about the work, using their own tools, and handing off to each other in a real engineering loop.
You'll author each specialist from scratch and wire it into a working pipeline:
- plan-architect researches a task and returns a reviewable plan before a line of code is written
- automation-writer turns user stories and acceptance criteria into non-flaky Pytest + Playwright tests
- senior-code-reviewer reviews the diff read-only and opens the PR on approval
- test-suite-planner decomposes a story into prioritised, independent suites as Jira sub-tasks
- test-runner executes each reviewed suite and posts a sanitized verdict
- qa-failure-investigator tells a test bug from a product bug — by attempting the fix — and files evidence-backed defects
A lean orchestrator routes work between them and carries context across the hand-offs. Because the heavy lifting stays inside each agent's isolated context window, the orchestrator runs a long, multi-stage workflow without exhausting its own — in one measured build it held at ~5%
context used while ~250K tokens of work happened inside the subagents.
What makes it different
- "Agentic" is literal. Each agent is an autonomous LLM worker with a narrow mandate, its own context, and exactly the tools it needs — tools are the capability boundary, so a read-only reviewer physically can't mutate the repo.
- Dogfooded throughout. Every agent is exercised on real work in the course's own repo, driving a live Jira board and a real browser against a running app. Whatever breaks gets fed back into that agent's prompt — so you learn to improve agents the way you'll actually improve them.
- Guardrails you work with. Destructive, staging, commit, push, and PR-create commands are denied outright; sanctioned actions are wrapped in allow-listed skills. You learn to build inside enforceable policy, not around it.
The pipeline
plan → build → review → test, with a defect fork when a suite catches a real product bug. Progress is visible on the Jira board through a single parent-story status, one owner per transition:
To Do → In Planning → Ready for Dev → In Progress → In Review → In Testing → Done
You'll practice
Matching tools to intent · planning before doing · delegating execution to keep an orchestrator's context lean · separating "it compiles" from verified and "review" from security audit · and feeding real findings back into agents so each dogfood failure pre-empts its whole class
of bug next time.
Stack: Python · Pytest · Playwright · pipenv · pytest-html + Allure · custom Claude Code subagents and skills · live Jira Cloud.
Educational course material — designed to be worked through interactively with Claude Code against a sandbox Jira project and a disposable app-under-test.