Scrum Standards
These are the team's codified practices. The agent enforces all of these when generating and validating Scrum artifacts.
Project Intake Questionnaire
Before generating any Scrum artifacts, the agent runs a structured discovery phase — asking the user questions one at a time in a conversational flow. This is the "flipped prompt" technique: the agent gathers what it needs before it acts.
Questionnaire Flow
The agent asks these questions sequentially. Each question is asked individually, the user responds, and the agent moves to the next. The agent adapts follow-up questions based on previous answers.
Phase 1 — Project Context
| # | Question | Why the Agent Needs This |
|---|---|---|
| 1 | What is the project? Describe it in a few sentences, or point me to a repo/doc. | Establishes the core scope and domain |
| 2 | Is this a greenfield project or are you building on an existing codebase? | Determines whether the agent should scan existing code, and whether there's legacy complexity |
| 3 | What problem does this project solve? Who are the end users? | Grounds epic/story generation in real user needs rather than abstract features |
| 4 | What does "done" look like? What's the end-state you're targeting? | Defines the finish line — prevents scope creep and gives the agent a clear goal to decompose toward |
| 5 | Are there any hard deadlines or milestones? | Constrains the sprint plan; the agent needs to know if time is fixed |
Phase 2 — Team & Capacity
| # | Question | Why the Agent Needs This |
|---|---|---|
| 6 | How many engineers are working on this? | Directly affects sprint capacity and parallelism of work |
| 7 | What are the roles on the team? (e.g., 2 backend, 1 frontend, 1 fullstack) | Lets the agent tag stories by discipline and balance sprint workload across skillsets |
| 8 | How long are your sprints? (e.g., 1 week, 2 weeks) | Required for sprint planning — determines how many points fit per sprint |
| 9 | Do you have a known velocity from previous sprints? If yes, what is it? | If available, the agent uses real velocity; otherwise it defaults to 5 points per engineer per sprint |
| 10 | How many sprints are you targeting to complete this project? | Bounds the total effort and forces prioritization if scope exceeds capacity |
Phase 3 — Technical Context
| # | Question | Why the Agent Needs This |
|---|---|---|
| 11 | What is the tech stack? (languages, frameworks, databases, infra) | Stories and tasks need to be written in terms the team actually works with |
| 12 | Are there any existing APIs, services, or third-party integrations involved? | Identifies external dependencies that create stories of their own (auth, payments, etc.) |
| 13 | Are there any architectural constraints or decisions already made? (e.g., must use microservices, must deploy to AWS) | Prevents the agent from suggesting work that contradicts fixed decisions |
| 14 | Is there any existing documentation, PRDs, or design docs I should reference? | The agent can ingest these for grounded story generation |
Phase 3a — Codebase Context
| # | Question | Why the Agent Needs This |
|---|---|---|
| 15 | Does the project have an existing codebase, or is this a new build? | Determines whether the agent needs to account for existing code, migrations, and legacy constraints |
| 16 | Where is the code hosted? (GitHub, Azure DevOps, GitLab, Bitbucket, local only) | Tells the agent which source control tool to use for repo scanning |
| 17 | Can you share the repo URL(s)? (the agent can connect and scan the repo for context) | Enables the agent to read repo structure, key files, and README to ground its output |
| 18 | How is the repo structured? (monorepo, multi-repo, microservices, monolith) | Affects how the agent decomposes work |
| 19 | Is there an existing CI/CD pipeline or deployment setup? | Identifies whether DevOps stories are needed |
| 20 | Is there any known technical debt? (legacy code, outdated dependencies, areas needing refactoring) | Surfaces refactoring stories and constraints |
Phase 4 — Risks & Unknowns
| # | Question | Why the Agent Needs This |
|---|---|---|
| 21 | Are there any areas of the project you're uncertain or worried about? | The agent flags these as spike stories or high-risk items |
| 22 | Are there any known blockers or dependencies on external teams/systems? | Creates blocked/dependency stories and affects sprint ordering |
| 23 | Is there anything that's explicitly out of scope? | Prevents generating stories for work the team won't do |
Phase 5 — Preferences & Process
| # | Question | Why the Agent Needs This |
|---|---|---|
| 24 | How do you want stories estimated? (Fibonacci story points, T-shirt sizes, or no estimates) | Configures the output format |
| 25 | Do you have a Definition of Done the team follows? | Incorporated into acceptance criteria validation |
| 26 | Do you want the output pushed to Jira, exported as Markdown, or both? | Determines the final step of the pipeline |
Phase 6 — Capacity Planning
| # | Question | Why the Agent Needs This |
|---|---|---|
| 27 | Which sprint are you planning for? | Anchors the planning window. Auto-detected from Jira active sprint if configured; otherwise presented as a choice question |
| 28 | How many bank holidays fall within your planning window? | Deducts from gross capacity. Auto-detected via detect_bank_holidays tool (100+ countries, 3-layer locale fallback: Jira timezone → shell locale → GB default). User can override |
| 29 | What percentage of capacity is typically lost to unplanned absences? (default: 10%) | Real feature capacity is ~24% of gross after all deductions (based on analysis of capacity planning templates) |
| 30 | Are any engineers currently onboarding or ramping up? | Reduces individual capacity during ramp-up sprints |
After Q28 (bank holidays), the agent asks about planned leave (PTO):
- Per-person entry with name, start date, and end date (DD/MM/YYYY format with validation)
- Dates outside the planning window are rejected
- Working-day calculation excludes weekends
- Summary shown after each entry with option to add more
- Quick mode skips PTO (defaults to 0)
Adaptive Behavior
The questionnaire is not rigid — the agent adapts:
- Skips questions the user already answered. If your initial description included "we're a team of 4 using React and Node", the agent won't re-ask team size or tech stack.
- Extracts answers from descriptions. Keyword matching detects project type (greenfield/existing), integrations (Stripe, Auth0), and infrastructure constraints (Kubernetes, microservices).
- Uses conditional essentials. Q7 (team roles) only appears if Q6 (team size) was answered. Q12 (integrations) only if Q11 (tech stack) was answered.
- Asks targeted follow-ups. Instead of generic "tell me more", the agent uses question-specific probing templates.
- Validates across questions. Catches contradictions — e.g., team size of 1 but multiple roles listed.
- Adapts question text. "You said 5 engineers — what are their roles?" instead of static text.
- Allows "skip" and "I don't know". Proceeds with reasonable defaults and flags assumptions.
- Summarizes before proceeding. After all questions, presents a structured summary for confirmation.
Intake Summary Output
After the questionnaire, the agent produces a structured summary:
Here's what I understand about your project:
Project: E-commerce platform redesign
Type: Existing codebase (monolith → microservices migration)
End Users: Online shoppers, internal warehouse staff
Target State: Fully migrated to microservices with new checkout flow
Team: 5 engineers (2 backend, 2 frontend, 1 devops)
Sprint Length: 2 weeks
Velocity: 25 pts/sprint (default: 5 × 5 engineers, no historical data)
Target Sprints: 6 sprints (12 weeks)
Tech Stack: Python/FastAPI, React, PostgreSQL, AWS ECS
Integrations: Stripe (payments), SendGrid (email), existing REST API
Constraints: Must maintain backward compat with mobile app v2.x
Risks:
- Payment flow migration (high complexity, Stripe webhook changes)
- No clear spec for warehouse dashboard requirements
Out of Scope: Mobile app redesign, analytics pipeline
Output: Jira + Markdown export
Does this look right? [Confirm / Edit]
Only after the user confirms does the agent proceed to feature generation.
Issue Hierarchy
| Level | What It Represents | Scope | Example |
|---|---|---|---|
| Epic | A large body of work representing the big picture. Can span months or multiple sprints. | The Why of the project | "Customer Self-Service Portal" |
| Feature | A significant piece of functionality that contributes to the big picture. Can span multiple sprints. | The What we're building | "Subscription Management" |
| User Story | A smaller, well-defined unit of work. Must be completable within a single sprint. | The How of the project | "As a customer, I want to upgrade my plan" |
| Sub-Task | A breakdown of a story into manageable, assignable parts. | Implementation detail | "Add upgrade endpoint to billing API" |
| Spike | A time-boxed research task to reduce uncertainty before delivery work begins. | Learning & discovery | "Investigate Stripe webhook reliability" |
User Stories
Format
User stories follow this structure:
"As a [persona], I want to [goal], so that [benefit]."
Breaking It Down
| Part | What It Means | Guidance |
|---|---|---|
| As a [persona] | Who are we building this for? Not a job title — a real persona the team understands with empathy. | The team should have a shared understanding of this person — how they work, think, and feel. |
| I want to [goal] | What is the user actually trying to achieve? Describes intent, not features. | Must be implementation-free. If you're describing UI elements instead of the user's goal, you're missing the point. |
| So that [benefit] | How does this fit into their bigger picture? What problem does it solve? | Ties the story back to real value and helps define when the story is truly done. |
Examples
- As Max, I want to invite my friends, so we can enjoy this service together.
- As Sascha, I want to organise my work, so I can feel more in control.
- As a manager, I want to understand my colleagues' progress, so I can better report our successes and failures.
Story Point Rules
| Rule | Detail |
|---|---|
| Scale | Fibonacci: 1, 2, 3, 5, 8 |
| Maximum | 8 points per story. If estimated above 8, the story must be split. |
| What points measure | Relative complexity and effort, not hours. |
| Default velocity | When no historical data exists: 5 points per engineer per sprint. |
| Sprint capacity | Stories are allocated to sprints without exceeding capacity (engineers x 5 or known velocity). |
Velocity Calculation Examples:
| Scenario | Calculation | Sprint Capacity |
|---|---|---|
| 3 engineers, no known velocity | 3 × 5 | 15 pts/sprint |
| 5 engineers, no known velocity | 5 × 5 | 25 pts/sprint |
| 4 engineers, known velocity of 30 | Use 30 directly | 30 pts/sprint |
Auto-Split Example:
If the agent estimates "Build the full payment integration" at 13 points:
This story exceeds the 8-point maximum. Splitting:
Original: Build the full payment integration (13 pts)
Split into:
US-010: Set up Stripe SDK and payment intent flow (5 pts)
US-011: Build webhook handler for payment events (5 pts)
US-012: Add payment error handling and retry logic (3 pts)
Total: 13 pts across 3 stories (all ≤ 8)
[Accept split / Edit / Reject]?
Discipline Tagging
Every story is tagged with the primary discipline needed:
| Discipline | Description |
|---|---|
frontend | UI/UX implementation |
backend | API, business logic, data |
fullstack | Spans both (default fallback) |
infrastructure | DevOps, CI/CD, deployment |
design | UX research, visual design |
testing | QA, test automation |
Story Checklist
Before a story is considered ready for sprint planning, it must have:
- Clear persona identified
- Goal is implementation-free and user-focused
- Benefit ties to real business or user value
- Acceptance criteria written (see Acceptance Criteria)
- Story points estimated (1–8 range)
- Dependencies identified and linked
- Fits within a single sprint
Acceptance Criteria
What They Are
Acceptance criteria are clear, concise, and testable statements that define the conditions a user story must meet to be accepted by stakeholders and considered "Done." They are the source of truth for developers, testers, and product stakeholders.
Purpose
- Clarify the scope of a user story
- Ensure shared understanding between product, platform, and stakeholders
- Provide a basis for test cases
- Define the boundaries of success
Acceptance criteria describe what should happen, not how it's implemented. They avoid technical specifics and focus on the desired outcome.
Key Characteristics
| Characteristic | Description |
|---|---|
| Clear | Easy to understand, no ambiguity |
| Concise | No unnecessary details or fluff |
| Testable | Verifiable through manual or automated testing |
| Outcome-Oriented | Focused on the end result, not the implementation approach |
| Consistent | Written in a standardised format (Given/When/Then) |
Format: Given / When / Then
All acceptance criteria use the Given / When / Then format:
Given [precondition]
When [action]
Then [expected outcome]
Examples
Reset Password
User Story: As a user, I want to reset my password so that I can regain access to my account.
Given I am on the password reset page
When I enter my registered email and click "Send Reset Link"
Then I should see a confirmation message saying "Reset link sent to your email"
Form Validation
User Story: As a user, I want to be informed when I submit an invalid phone number.
Given I enter an invalid phone number
When I try to submit the form
Then I should see an error message saying "Please enter a valid phone number"
Negative / Edge Case
User Story: As a user, I want to be prevented from registering with an already-used email.
Given I am on the registration page
When I enter an email that is already registered and click "Sign Up"
Then I should see an error message saying "An account with this email already exists"
And no duplicate account should be created
Coverage Requirements
Every story must have acceptance criteria covering:
| Scenario Type | What It Covers | Required? |
|---|---|---|
| Happy path | The expected, successful flow | Yes |
| Negative path | Invalid input, denied access, failures | Yes |
| Edge cases | Boundary conditions, empty states, max limits | Where applicable |
| Error states | What the user sees when something goes wrong | Yes |
Common Pitfalls
| Pitfall | Why It's a Problem |
|---|---|
| Writing implementation details (e.g., "Use React component X") | Criteria should be tech-agnostic and outcome-focused |
| Vague language (e.g., "It should work properly") | Not testable — what does "properly" mean? |
| Skipping negative scenarios and edge cases | Leaves gaps that surface as bugs in production |
| Using criteria as a task checklist | Criteria define outcomes, not implementation steps |
| Only covering the happy path | Real users hit errors, edge cases, and unexpected states |
Definition of Done — User Story
A story is not "Done" until every applicable item is satisfied. The agent evaluates which DoD items apply to each story and marks the rest as N/A.
Acceptance Criteria Fully Met
- Acceptance criteria are written before work begins
- Reviewed and approved by the team during backlog refinement
- All criteria are fully met and tested
- Given/When/Then format used consistently
Documentation
- Relevant documentation created or updated
- Added to the appropriate shared space / folder
- Outdated documentation updated if affected by the change
- Documentation completed within the sprint (unless explicitly agreed otherwise)
Testing
- Testing conducted across all environments where changes are deployed
- Test cases clearly identified and documented
- End-to-end (E2E) tests included for business-critical services where applicable
- Testing deemed sufficient before marking as Done
Code Merged
- Branch merged into
main/mastervia Pull Request - PR reviewed by at least two engineers
- All review comments and questions fully addressed before merge
Released via SDLC
- Release conducted through the standard SDLC process (e.g., Jenkins pipeline)
- Release channel notified with relevant details (e.g.,
#developer-releaseson Slack) - Story not marked Done until successfully released
Stakeholder Sign-Off (if required)
- Sign-off received from relevant stakeholders for features impacting external teams
- Approval logged (Slack message, Jira comment, or verbal approval noted in ticket)
Knowledge Sharing
- If the change introduces new functionality, architectural decisions, or process changes — a knowledge-sharing activity is conducted
- This can be a Slack update, team demo, short write-up, or Confluence page
- Ensures team-wide understanding and reduces knowledge silos
Definition of Done — Spike
Spikes are time-boxed research tasks used to reduce uncertainty, explore solutions, or gain clarity before delivery work begins.
When to Use a Spike
- Investigating an unknown technical or product area
- Evaluating possible solutions or approaches
- Identifying potential blockers or risks
- Prototyping or validating ideas before full implementation
Checklist
| Criteria | Description |
|---|---|
| Objective clearly stated | The goal or research question is documented in the ticket or a linked page |
| Time-box respected | Completed within the agreed timeframe (typically 1–3 days or a single sprint). Extensions discussed with the team. |
| Findings documented | All research outcomes, technical analysis, and code snippets are documented in a shared location |
| Recommendation made | A clear path forward is proposed — including implementation guidance, trade-offs, or alternatives |
| Next steps outlined | New stories, tickets, or action items are created and linked for follow-up work |
| Shared with team | Results communicated via stand-up, short demo, Slack summary, or write-up |
| Resources linked | All relevant links (API docs, diagrams, repos, articles) attached for future reference |
The goal of a spike is learning and knowledge sharing — not production-ready code.
Sprint Ceremonies
| Ceremony | Purpose | Cadence |
|---|---|---|
| Sprint Planning | Select stories from the backlog, confirm capacity, commit to sprint goal | Start of sprint |
| Daily Stand-up | Surface blockers, sync on progress, keep momentum | Daily (15 min max) |
| Backlog Refinement | Review upcoming stories, write/validate acceptance criteria, estimate points, split oversized stories | Mid-sprint |
| Sprint Review / Demo | Show completed work to stakeholders, gather feedback | End of sprint |
| Sprint Retrospective | Reflect on what went well, what didn't, and what to improve | End of sprint |
Backlog Health
Priority Levels
| Priority | Meaning | Sprint Scheduling |
|---|---|---|
| Critical | Blocks other work or has an imminent deadline | Must be in the current or next sprint |
| High | Core functionality, high user/business impact | Scheduled within the next 1–2 sprints |
| Medium | Important but not urgent | Scheduled when capacity allows |
| Low | Nice to have, minor improvements | Backlog — pulled in when higher priorities are clear |
Backlog Hygiene Rules
- Stories older than 3 sprints without movement should be reviewed — re-prioritise or remove
- Every story in the backlog must have a clear persona, goal, and benefit
- Stories without acceptance criteria are not ready for sprint planning
- Blocked stories must have the blocker documented and linked
Story Splitting Guidelines
When a story is too large (estimated above 8 points), split it using one of these strategies:
| Strategy | How It Works | Example |
|---|---|---|
| By workflow step | Split along the steps a user takes | "Register" → "Register with email" + "Register with OAuth" |
| By business rule | Separate different rules or conditions | "Apply discount" → "Percentage discount" + "Fixed amount discount" |
| By data type | Split by the different data being handled | "Import data" → "Import CSV" + "Import JSON" |
| By happy/unhappy path | Separate the success flow from error handling | "Process payment" → "Successful payment" + "Payment failure handling" |
| By platform | Split by target platform or environment | "Push notifications" → "iOS notifications" + "Android notifications" |
| Spike + delivery | Research first, build second | "Integrate Stripe" → "Spike: Stripe webhook approach" + "Implement Stripe webhooks" |
The goal is to produce stories that are each independently valuable, testable, and completable within a sprint.