Meet the Code Koalas — a sprint team using Silverile to track their work and an AI assistant to move faster without losing visibility. This guide follows their team through a real sprint: creating stories, writing code, catching bugs, and shipping — all by talking to their AI in plain English.
Every prompt in this guide works the same way whether you're using Claude, Codex, or any compatible AI assistant connected to Silverile. If you haven't connected your AI yet, start here and come back once you're set up:
Todo Turtle opens Claude first thing on Monday. Before checking emails or opening a single dashboard, they say two words. The AI already knows who they are.
Hi Todo Turtle! Great to see you. Here's where things stand for you in the Code Koalas sprint:
Stories assigned to you:
Open defects assigned to you:
Heads up: Story 2143 hasn't been updated in 5 days. Story 2098 is still unassigned for QA. What would you like to work on today?
No dashboard to open. No filters to set. Monty — sometimes called Monty Milestone by the team — already knows Todo Turtle's name, their project, and what's in the sprint. The morning standup question "what are you working on?" is answered before anyone asks it. Open defects show up right alongside stories, so nothing falls through the cracks.
The first time you connect your AI to Silverile, run these three things. You won't need to repeat them unless you change your API key or switch projects.
If you ever need to rotate your API key or switch accounts, just tell Monty: "Update my Silverile credentials" — no need to leave your current session.
After the greeting, Todo Turtle wants to dig into story 2157 before writing a single line of code. They need the full picture — what to build, how it should behave, and who's expecting it on the other end.
Story 2157 — User login with OAuth
In Development · Assigned to: Todo Turtle · QA: Bug Bouncer · 5 points
Implement OAuth 2.0 login supporting Google and GitHub providers. Users should be able to sign in without creating a separate password.
Acceptance criteria:
Todo Turtle now has everything they need without opening a browser tab. They can see what Bug Bouncer will be checking later and build toward those exact criteria. Time to start.
Here's what I'll update:
Confirm? (yes / no)
Done. Story 2157 is now In Development. Starting implementation — OAuth login with Google and GitHub, Express + passport.js. Here's the Google strategy:
// src/auth/providers/google.ts
passport.use(new GoogleStrategy({
clientID: process.env.GOOGLE_CLIENT_ID!,
clientSecret: process.env.GOOGLE_CLIENT_SECRET!,
callbackURL: '/auth/google/callback',
}, async (_accessToken, _refreshToken, profile, done) => {
const user = await upsertUser({ provider: 'google', profile });
return done(null, user);
}));
router.get('/auth/google/callback',
passport.authenticate('google', { failureRedirect: '/login?error=oauth_failed' }),
(req, res) => {
const redirect = req.session.returnTo ?? '/dashboard'; // AC: post-login redirect
delete req.session.returnTo;
res.redirect(redirect);
}
);Covers AC 1, 4, and 5. Ready to continue with GitHub strategy and session persistence?
One confirm. Monty updates the board and starts writing — working through all five acceptance criteria. While the code takes shape, Todo Turtle checks in on the sprint.
Sprint 24 — Code Koalas · Jun 16 – Jun 30
A full sprint health picture in one reply. No board to load. No columns to scroll.
Story 2157 is ready for a senior review. Todo Turtle built the OAuth feature and raised the PR. Merge Masters — the team's senior developer — picks it up for a final validation before it moves to Testing. They want to be sure every acceptance criterion is met in the code, not just assumed.
They ask the AI to check.
On it — pulling story 2157 and checking your codebase against each criterion.
Results:
src/auth/providers/google.ts, callback handled at line 42src/auth/providers/github.ts, line 38localStorage, refresh logic in src/auth/session.tsAuthError is caught in src/auth/callback.ts but the message passed to the UI is the raw API error string, not user-friendly/dashboard after login3 of 5 criteria fully met. 2 need attention before this moves to Testing.
Two gaps. Merge Masters fixes the error message and adds the redirect logic. Twenty minutes later, they re-run the validation — all five criteria return green. Time to update the story.
Here's what I'll update:
Confirm? (yes / no)
The story moves to Testing. Bug Bouncer gets notified. Merge Masters raises the PR. The whole flow — validate, fix, confirm, move — happened without touching the Silverile UI once.
Build Breakers picks up story 2157 in Verification. There are test cases on this one — five of them, covering the OAuth flows. Build Breakers doesn't just want to check the code; they want to see how those test cases actually ran.
Story 2157 has 5 test cases. Do you want to:
a) Include all of them
b) Pick specific ones
c) Skip test cases and validate acceptance criteria only?
Checking codebase and fetching latest test runs...
Acceptance criteria — all met ✅
Test case results:
Two failures. The acceptance criteria said those items were fixed — but the test runs tell a different story. Build Breakers has exactly what they need: the specific test cases that failed, when they ran, and what was being tested. No need to switch tools — Monty has all the data right there.
Build Breakers has been through this before. Logging defects usually means copying test steps into a form, re-typing the actual result from the run log, and manually linking everything back to the story. It takes ten minutes per defect.
Not today. The validation report is already open. Monty has the test data.
I found 2 failed test runs. Let me create them one at a time. Here's the first:
Defect preview — TC-03
Create this defect? (yes / no)
Defect created and linked to story 2157. Now for the second failure:
Defect preview — TC-05
Create this defect? (yes / no)
Two defects. Fully documented. Linked to the story, the test cases, and the specific runs that surfaced them. Build Breakers typed two words: "Yes." Twice.
Merge Masters has picked up the two defects and started fixing them. Bug Bouncer wants to update the defect statuses and check what else is open across the sprint.
3 open defects:
Updating Defect 461 — Failed Google auth shows raw error:
Status: Open → In Development
Confirm? (yes / no)
Bug Bouncer updates both defects, assigns them to Merge Masters, and keeps the board clean — all without switching context out of their AI session.
If a defect comes in from a user report rather than a test run, creating it manually is just as fast:
I need a couple more details. What's the expected behavior, and how severe is this?
Monty asks for the missing required fields, then shows a preview before saving. No form to navigate. No story number to look up separately.
Sprint Pickle runs a Friday health check every week. It used to mean opening four different Silverile views, sorting by last updated, and manually counting blocked items. Now it's a conversation.
4 stalled stories found:
Story 2134 is explicitly blocked. Sprint Pickle makes a note to follow up with finance on Monday. The others just haven't moved — those go onto the standup agenda.
Sprint 24 — end of week 1
Sprint Pickle screenshots the summary and pastes it into the team Slack. The Friday update is sent in three minutes.
Story Sprout has a new feature to scope: users should be able to export their dashboard data as a CSV. They know roughly what they want. They don't know how to write a Silverile story. They don't need to.
Story draft:
Title: Dashboard CSV export
Allow users to download their current dashboard view as a CSV file, preserving applied filters and column order.
Acceptance criteria:
Create this story? You can also ask me to adjust the criteria or add test cases first. (yes / no)
A fully formed story with acceptance criteria and test cases — created in a two-minute conversation. Story Sprout adds it to the sprint planning queue and moves on.
Code Constructor built a dark mode toggle last week. It was a quick win during a prototyping session and nobody created a story for it at the time. Now it's in production and Silverile has no record of it. That needs to change.
Reading the code...
Story draft — from existing code:
Title: Dark mode toggle
A theme toggle component that switches the application between light and dark mode, persisting the user's preference across sessions via localStorage.
Acceptance criteria (derived from implementation):
Create this story? (yes / no)
The feature is documented. The acceptance criteria reflect what was actually built, not what was planned. Code Constructor continues without breaking their flow.
Sprint 25 planning is underway. Sprint Pickle is pulling stories into the sprint, adjusting scope, and moving things around — all in the AI without opening the Silverile board.
Adding to sprint 25:
Story 2172 — Dashboard CSV export · 3 points
Confirm? (yes / no)
Sprint Pickle adds six more stories the same way. When one story turns out to be too large for this sprint, removing it is just as simple:
Removing from sprint 24:
Story 2098 — Email notification templates · 5 points
Confirm? (yes / no)
Sprint planning done. No drag-and-drop. No reloading the board after every move.
The stories are in the sprint. Now Sprint Pickle needs to assign them. First, a quick look at who's on the team — because Monty needs exact names, not nicknames.
Code Koalas — 6 members:
Assigning story 2172 — Dashboard CSV export:
Confirm? (yes / no)
Sprint Pickle works through the remaining stories the same way. In ten minutes, the entire sprint is assigned. The team has their work. The sprint is ready to go.
Every prompt from the Code Koalas story in one place. Replace names and numbers with your own — the patterns work the same way.
| Workflow | What you say | What happens |
|---|---|---|
| First session | Hello Monty | Monty greets you by name, shows your assigned stories, and lists any open defects assigned to you |
| Setup | Check if my Silverile connection is working | Verifies credentials and connectivity |
| Setup | Show me my available projects | Lists all projects you have access to |
| Setup | Set project 12 as my default | Saves that project for all future requests |
| Setup | Update my Silverile credentials | Walks you through re-entering your API key |
| 1 — See your work | What am I working on? | Shows stories currently assigned to you |
| 1 — See your work | Show me story 2157 | Full details — description, acceptance criteria, status, assignees |
| 1 — See your work | List stories in my project | Retrieves the project story backlog |
| 1 — See your work | Start development on story 2157 | Moves story to In Development after preview + confirm, then immediately starts writing code |
| 1 — See your work | Show me the current sprint | Sprint summary with points and status breakdown |
| 2 — Validate & ship | Validate story 2157 | AI reads your codebase and checks each acceptance criterion |
| 2 — Validate & ship | Move story 2157 to Testing | Updates the Kanban column after preview + confirm |
| 2 — Validate & ship | Mark story 2157 as Accepted | Updates lifecycle status after preview + confirm |
| 3 — Validate | Validate story 2157 with test cases | Includes per-test pass/fail results alongside AC checks |
| 3 — Validate | Show me the test cases for story 2157 | Lists all test cases with their latest run result |
| 4 — File defects | Create defects for the failed test cases | AI pre-fills everything from run data — you only confirm |
| 5 — Defects | Show me defects for story 2157 | Lists all defects linked to that story |
| 5 — Defects | Show me defect 456 | Full defect detail including description and status |
| 5 — Defects | Create a defect for story 2157: login button unresponsive on mobile | Drafts defect, shows preview, waits for confirmation |
| 5 — Defects | Update defect 456 to In Development | Changes defect status after preview + confirm |
| 6 — Sprint health | Show me stalled stories | Stories with no update in several days, sorted by severity |
| 6 — Sprint health | Are there any blocked stories? | Highlights blocked items with their reasons |
| 6 — Sprint health | Give me a sprint summary | Points, status counts, unassigned and missing-QA counts |
| 7 — Create stories | Create a story for adding a dark mode toggle | AI drafts title, description, and acceptance criteria for review |
| 7 — Create stories | I already built the dark mode toggle — document it as a story | AI reads your code and generates the story from what was built |
| 7 — Create stories | Generate test cases for story 2157 | AI creates test cases from the story's acceptance criteria |
| 8 — Sprint planning | Show me all sprints | Lists every sprint with dates and status |
| 8 — Sprint planning | Add story 2157 to sprint 24 | Moves the story into that sprint after preview + confirm |
| 8 — Sprint planning | Remove story 2157 from the current sprint | Removes it from sprint scope after preview + confirm |
| 9 — Assign | Who is on the project team? | Lists all team members with their roles |
| 9 — Assign | Assign story 2157 to Merge Masters as developer | Sets the dev assignee after preview + confirm |
| 9 — Assign | Set Bug Bouncer as QA for story 2157 | Sets the QA assignee after preview + confirm |
On this page