PMO-04.03.10 Phase 04: Planning

SPRINT PLANNING LOG

سجل تخطيط دورة تطوير
tasleemat asset PMO-04.03.10 template --lang en

Deliverable Summary & Governance Boundaries

Lifecycle Phase Alignment

Phase 04: Planning

Sizing Tier Requirements

Validation Contract

This deliverable conforms to a strict companion Draft 2020-12 JSON Schema for automated structural and semantic validation.

tasleemat validate PMO-04.03.10 ./completed_data.json

Template Markdown (Bilingual)

<!--
LLM INSTRUCTIONS: Fill in the [ Add details... ] placeholders based on project context.

Section Instructions:

**1. Sprint Frame**
*   **Sprint Goal:** The one outcome the sprint is for, stated as a capability the team can demonstrate rather than as a list of stories. A goal written as a list of stories cannot be used to reject anything, and a sprint that cannot reject anything has no goal.
*   **Sprint Window:** The start and end dates, and the length of the sprint. The window is a constraint rather than a preference, because a sprint length that drifts is a velocity figure that means nothing.
*   **Capacity Basis:** How much the team believes it can take on, and what that belief is based on. Capacity stated without its basis is a wish, and the first sprint is where a capacity figure is usually found to be wrong.
*   **Carry-over From the Previous Sprint:** What was not finished, and whether it has been re-estimated or carried as-is. Work carried without a new estimate is work whose estimate has never been tested.

**2. Committed Scope**
*   **Stories Committed:** The stories the team takes on, with the identifier from the board. A story with no identifier cannot be traced when the sprint ends and the question is asked afterwards.
*   **Story Points:** The estimate for each story, and the scale used. Points are a relative comparison rather than a duration, so a scale change between sprints makes two velocities incomparable.
*   **Acceptance Criteria:** What will be true when the story is done, written so that a person who was not in the planning meeting can tell. Criteria agreed after the work is built describe whatever was built.
*   **Scope Added After Planning:** Anything added once the sprint had started, with who asked for it. Scope added mid-sprint is how a sprint stops being a commitment, and the record of who asked is what makes the trade-off visible.

**3. Team Assignment**
*   **Assignee and Availability:** Who is on each story, and how much of their time the sprint actually has. An assignee at full capacity across every story in the log is a plan that has not been made yet.
*   **Skill and Capacity Gaps:** What the committed scope needs that the team does not have. A gap named at planning is a risk to be managed; the same gap found at the end of the sprint is a surprise.
*   **Dependencies Outside the Team:** What must arrive from another team, and by when. A dependency with no date is an assumption, and it is usually discovered on the last day of the sprint.

**4. Risks to the Sprint**
*   **Risks Identified at Planning:** What could stop the sprint, with the trigger that would show it happening. A concern without a trigger has no date and so is not tracked.
*   **Contingency:** What will be dropped or deferred if the risk occurs. A sprint with no contingency is a sprint where the decision gets made under pressure by whoever is most available.

**5. Sign-off and Approvals**
*   **Team Lead, Product Owner, Project Manager:** The three roles that commit the sprint. The product owner commits the priority and the team lead commits the estimate, and a sign-off that has only one of the two is an agreement about half of what was planned.
-->

<h3 dir="ltr" align="right">{{Company_Name}}</h3>
<h2 dir="ltr" align="right">{{Project_Name}} - {{Project_ID}}</h2>
<h1 dir="ltr" align="center">SPRINT PLANNING LOG</h1>

| **Date Prepared:** {{Current_Date}} | **Project Manager:** {{Project_Manager_Name}} | **Prepared By:** {{Prepared_By}} |
| :--- | :--- | :--- |
---

## 1. Sprint Frame
<!-- What the sprint is for, over what window, and how much the team believes it can take on. -->

**Sprint Goal:** [ Add details... ]

**Sprint Window:** [ Add details... ]

**Capacity Basis:** [ Add details... ]

**Carry-over From the Previous Sprint:** [ Add details... ]

---

## 2. Committed Scope
<!-- The stories the team takes on, what they are estimated at, and what counts as done. -->

**Stories Committed:**

| Story ID | Story Title | Story Points | Priority | Status |
| :---: | :--- | ---: | :---: | :---: |
| [ Add details... ] | [ Add details... ] | [ Add details... ] | [ Add details... ] | [ Add details... ] |

**Acceptance Criteria:**

| Story ID | Acceptance Criteria | Verified By |
| :---: | :--- | :--- |
| [ Add details... ] | [ Add details... ] | [ Add details... ] |

**Scope Added After Planning:**

| Story ID | Reason Added | Requested By | Effect on Sprint |
| :---: | :--- | :--- | :--- |
| [ Add details... ] | [ Add details... ] | [ Add details... ] | [ Add details... ] |

---

## 3. Team Assignment
<!-- Who is working on what, how much time the sprint has, and what the committed scope needs that the team does not have. -->

**Assignee and Availability:**

| Team Member | Role | Assigned Stories | Available Capacity |
| :--- | :--- | :--- | :--- |
| [ Add details... ] | [ Add details... ] | [ Add details... ] | [ Add details... ] |

**Skill and Capacity Gaps:** [ Add details... ]

**Dependencies Outside the Team:** [ Add details... ]

---

## 4. Risks to the Sprint
<!-- What could stop the sprint, what would show it happening, and what would be given up if it does. -->

**Risks Identified at Planning:**

| Risk | Trigger | Likelihood | Impact | Response |
| :--- | :--- | :--- | :--- | :--- |
| [ Add details... ] | [ Add details... ] | [ Add details... ] | [ Add details... ] | [ Add details... ] |

**Contingency:** [ Add details... ]

---

## 5. Sign-off and Approvals

| Role | Name | Signature | Date |
| :--- | :--- | :---: | :---: |
| **Site / Execution Lead** | {{Execution_Lead_Name}} | _______________________ | [ .... - .... - .... ] |
| **Project Planner / Scheduler** | {{Scheduler_Name}} | _______________________ | [ .... - .... - .... ] |
| **Project Manager** | {{Project_Manager_Name}} | _______________________ | [ .... - .... - .... ] |
---

<div dir="ltr" align="right" style="margin-top: 20px; font-size: 12px; color: #7f8c8d;">
  <span>Electronic Audit Trail: Hash SHA256: {{Audit_Trail_SHA256_Hash}}</span> <br>
  <strong>Template:</strong> Sprint Planning Log | <strong>Ref:</strong> PMO-04.03.10 <br>
  <i>Generated on: {{Current_Timestamp}}, by <a href="https://github.com/fakhruldeen/Tasleemat/" style="color: #7f8c8d;">Tasleemat</a></i>
</div>

User Guide & Practitioner Instructions

Tasleemat Forms Guide

Project Artifact: Sprint Planning Log

Document Reference: PMO-04.03.10

This document provides a comprehensive, professional reference to understand the purpose and effective usage of the Sprint Planning Log in alignment with Tasleemat framework.


1. What?

A record of one sprint: its goal and window, the stories committed with their estimates and acceptance criteria, who is carrying what, and what could stop it. It is the point at which a sprint becomes a commitment that can be checked rather than an intention.


2. Why?

Because a sprint is agreed in a meeting and reviewed weeks later by people who were not there. Without a record the review becomes an argument about memory, and the numbers that disagree are the ones nobody can reconstruct. The log also makes scope added mid-sprint visible, which is the single largest cause of a sprint finishing over.


3. When?

Prepared at the start of each sprint and completed at its review. Read again whenever the next sprint is planned, because the carry-over and the actual capacity are the two figures that the next estimate depends on.


4. Who?

The team lead records it and owns the estimate, the product owner owns the priority and confirms the goal, and the project manager confirms the sprint fits the release plan. A sign-off with only one of the first two is an agreement about half of what was planned.


Tailoring Tips

  • A sprint of one story is fine and should be recorded as such; the log is not the place to argue for a smaller number.
  • Keep the identifiers exactly as the board shows them. A log that paraphrases them cannot be reconciled with the board later.
  • Where a story carries over, re-estimate it rather than repeating the old number, and say which of the two was done.
  • An agile team using this form may record only the committed scope and the risks; the remaining sections are there when a release needs defending.
  • Where the sprint is fixed by a release date rather than by capacity, record the date in the window field so the constraint is visible to whoever reviews the outcome.

Alignment & Dependencies

1. Pre-requisites & Inputs (Upstream Dependencies)

  • Mandatory:
    • Work Breakdown Structure / WBS (PMO-04.02.06)
    • Scope Statement (PMO-04.02.05)
  • Optional / Contextual:
    • Resource Requirements (PMO-04.06.02)
    • Risk Register (PMO-04.08.02)

2. Downstream Dependents

  • Mandatory:
    • Project Schedule Baseline (PMO-04.03.08)
    • Earned Value Analysis / EVA (PMO-06.05)
  • Optional / Contextual:
    • Release Plan (PMO-04.03.09)
    • Lookahead Planning Log (PMO-04.03.10)

5. How?

To accurately complete the Sprint Planning Log, populate the following sections based on the project context (ensuring reference to parameters.md for the general project variables):

  • Sprint Goal: The one outcome the sprint is for, stated as a capability the team can demonstrate rather than as a list of stories. A goal written as a list of stories cannot be used to reject anything, and a sprint that cannot reject anything has no goal.
  • Sprint Window: The start and end dates, and the length of the sprint. The window is a constraint rather than a preference, because a sprint length that drifts produces a velocity figure that means nothing.
  • Capacity Basis: How much the team believes it can take on, and what that belief is based on. Capacity stated without its basis is a wish, and the first sprint is where a capacity figure is usually found to be wrong.
  • Carry-over From the Previous Sprint: What was not finished, and whether it has been re-estimated or carried as-is. Work carried without a new estimate is work whose estimate has never been tested.
  • Story ID: The identifier from the board, so the story can be traced when the sprint ends and the question is asked afterwards. A story with no identifier cannot be found again once it leaves the room.
  • Story Title: A short name for the story, in the language the team uses for it. A title that restates the acceptance criteria instead of naming the story makes the log harder to scan than the board it came from.
  • Story Points: The estimate for each story, and the scale used. Points are a relative comparison rather than a duration, so a scale changed between sprints makes two velocities incomparable.
  • Priority: Order relative to the other stories in this sprint, and why this story sits where it does. Priority stated as high or medium without a reason is a label rather than an ordering.
  • Status: Where the story stands at the end of the sprint, against what was committed. A status recorded only at review is too late to be useful to anyone planning the next sprint.
  • Acceptance Criteria: What will be true when the story is done, written so that a person who was not in the planning meeting can tell. Criteria agreed after the work is built describe whatever was built.
  • Verified By: Who checks the criteria and when. A criterion with no named verifier is a statement of intent, and the review becomes the first time anyone looks at it.
  • Reason Added: Why the story entered a sprint that had already been planned. The reason is the part worth recording, because it distinguishes a genuine discovery from a preference.
  • Requested By: Who asked for the addition, so the trade-off can be discussed with the person who wanted it. Scope added mid-sprint is how a sprint stops being a commitment.
  • Effect on Sprint: What the addition displaces, or which committed story now carries the risk of not finishing. An addition recorded without an effect reads as free, and it is not.
  • Team Member: The person, named rather than as a role, so the assignment can be checked against the person's actual availability.
  • Role: The role this person holds on the sprint, which is not the same as their title outside it. The role decides who settles an argument about scope during the sprint.
  • Assigned Stories: The stories this person is carrying in this sprint. The list is the thing to read for over-allocation: a person on every story in the log is a plan that has not been made yet.
  • Available Capacity: How much of this person's time the sprint actually has, after other commitments. Capacity at full for every story in the log is a statement of hope rather than of plan.
  • Skill and Capacity Gaps: What the committed scope needs that the team does not have. A gap named at planning is a risk to be managed; the same gap found at the end of the sprint is a surprise.
  • Dependencies Outside the Team: What must arrive from another team, and by when. A dependency with no date is an assumption, and it is usually discovered on the last day of the sprint.
  • Risk: What could stop the sprint, described as the event rather than as a feeling. A risk written as a concern cannot be managed, because there is nothing to watch for.
  • Trigger: The observable signal that the risk is happening. This is what makes a risk trackable: without a trigger the item is reviewed at the end of the sprint and found to have happened.
  • Likelihood: How likely the risk is, and what that judgement rests on. A bare high or low records no basis, so the next person cannot tell whether the estimate improved or the mood changed.
  • Impact: What the sprint loses if the risk occurs, measured in the same units as the commitment. Impact stated as severe is not comparable to a story estimate.
  • Response: What will be done about the risk while the sprint is running. A risk with no response is recorded in order to be mentioned later.
  • Contingency: What will be dropped or deferred if the risk occurs. A sprint with no contingency is a sprint where the decision gets made under pressure by whoever is most available at the time.

📥 Associated Templates


6. Reference Example

A fully completed, gold-standard reference example illustrating this artifact in practice is available:

📖 Completed Example: 04_03_10_Sprint_Planning_Log_Example.md

LLM Generation Prompt & Agent Instructions

SPRINT PLANNING LOG - LLM Generation Prompt

SYSTEM INSTRUCTIONS: This document is the detailed instruction set for generating the SPRINT PLANNING LOG. When asked to populate the template, follow the guidance for each section below to produce the requested content. Refer to parameters.md for the general project variables.

Context and Definition: A sprint plan is a commitment, and the log exists so that the commitment can be read back later by the people who were not in the room. The difference shows up at the review: a sprint whose scope was recorded shows what was traded for what, and a sprint remembered shows only that the two numbers disagree.

The fields that resist filling are the ones worth having. A capacity figure with no basis, a scope addition with no displaced story, and a risk with no trigger are all cheap to leave blank and expensive to discover in week two. Filling them is the whole value of the form, so the guidance below leans on the reason rather than restating the label.

Alignment & Dependencies: * Pre-requisites (Inputs): * Mandatory: Work Breakdown Structure / WBS (PMO-04.02.06), Scope Statement (PMO-04.02.05) * Optional: Resource Requirements (PMO-04.06.02), Risk Register (PMO-04.08.02) * Downstream Dependents: * Mandatory: Project Schedule Baseline (PMO-04.03.08), Earned Value Analysis / EVA (PMO-06.05) * Optional: Release Plan (PMO-04.03.09), Lookahead Planning Log (PMO-04.03.10)


Sprint Frame

Sprint Goal

Instructions: The one outcome the sprint is for, stated as a capability the team can demonstrate rather than as a list of stories. A goal written as a list of stories cannot be used to reject anything, and a sprint that cannot reject anything has no goal.

Generated Value: [ Add details... ]

Sprint Window

Instructions: The start and end dates, and the length of the sprint. The window is a constraint rather than a preference, because a sprint length that drifts produces a velocity figure that means nothing.

Generated Value: [ Add details... ]

Capacity Basis

Instructions: How much the team believes it can take on, and what that belief is based on. Capacity stated without its basis is a wish, and the first sprint is where a capacity figure is usually found to be wrong.

Generated Value: [ Add details... ]

Carry-over From the Previous Sprint

Instructions: What was not finished, and whether it has been re-estimated or carried as-is. Work carried without a new estimate is work whose estimate has never been tested.

Generated Value: [ Add details... ]

Committed Scope

Story ID

Instructions: The identifier from the board, so the story can be traced when the sprint ends and the question is asked afterwards. A story with no identifier cannot be found again once it leaves the room.

Generated Value: [ Add details... ]

Story Title

Instructions: A short name for the story, in the language the team uses for it. A title that restates the acceptance criteria instead of naming the story makes the log harder to scan than the board it came from.

Generated Value: [ Add details... ]

Story Points

Instructions: The estimate for each story, and the scale used. Points are a relative comparison rather than a duration, so a scale changed between sprints makes two velocities incomparable.

Generated Value: [ Add details... ]

Priority

Instructions: Order relative to the other stories in this sprint, and why this story sits where it does. Priority stated as high or medium without a reason is a label rather than an ordering.

Generated Value: [ Add details... ]

Status

Instructions: Where the story stands at the end of the sprint, against what was committed. A status recorded only at review is too late to be useful to anyone planning the next sprint.

Generated Value: [ Add details... ]

Acceptance Criteria

Instructions: What will be true when the story is done, written so that a person who was not in the planning meeting can tell. Criteria agreed after the work is built describe whatever was built.

Generated Value: [ Add details... ]

Verified By

Instructions: Who checks the criteria and when. A criterion with no named verifier is a statement of intent, and the review becomes the first time anyone looks at it.

Generated Value: [ Add details... ]

Reason Added

Instructions: Why the story entered a sprint that had already been planned. The reason is the part worth recording, because it distinguishes a genuine discovery from a preference.

Generated Value: [ Add details... ]

Requested By

Instructions: Who asked for the addition, so the trade-off can be discussed with the person who wanted it. Scope added mid-sprint is how a sprint stops being a commitment.

Generated Value: [ Add details... ]

Effect on Sprint

Instructions: What the addition displaces, or which committed story now carries the risk of not finishing. An addition recorded without an effect reads as free, and it is not.

Generated Value: [ Add details... ]

Team Assignment

Team Member

Instructions: The person, named rather than as a role, so the assignment can be checked against the person's actual availability.

Generated Value: [ Add details... ]

Role

Instructions: The role this person holds on the sprint, which is not the same as their title outside it. The role decides who settles an argument about scope during the sprint.

Generated Value: [ Add details... ]

Assigned Stories

Instructions: The stories this person is carrying in this sprint. The list is the thing to read for over-allocation: a person on every story in the log is a plan that has not been made yet.

Generated Value: [ Add details... ]

Available Capacity

Instructions: How much of this person's time the sprint actually has, after other commitments. Capacity at full for every story in the log is a statement of hope rather than of plan.

Generated Value: [ Add details... ]

Skill and Capacity Gaps

Instructions: What the committed scope needs that the team does not have. A gap named at planning is a risk to be managed; the same gap found at the end of the sprint is a surprise.

Generated Value: [ Add details... ]

Dependencies Outside the Team

Instructions: What must arrive from another team, and by when. A dependency with no date is an assumption, and it is usually discovered on the last day of the sprint.

Generated Value: [ Add details... ]

Risks to the Sprint

Risk

Instructions: What could stop the sprint, described as the event rather than as a feeling. A risk written as a concern cannot be managed, because there is nothing to watch for.

Generated Value: [ Add details... ]

Trigger

Instructions: The observable signal that the risk is happening. This is what makes a risk trackable: without a trigger the item is reviewed at the end of the sprint and found to have happened.

Generated Value: [ Add details... ]

Likelihood

Instructions: How likely the risk is, and what that judgement rests on. A bare high or low records no basis, so the next person cannot tell whether the estimate improved or the mood changed.

Generated Value: [ Add details... ]

Impact

Instructions: What the sprint loses if the risk occurs, measured in the same units as the commitment. Impact stated as severe is not comparable to a story estimate.

Generated Value: [ Add details... ]

Response

Instructions: What will be done about the risk while the sprint is running. A risk with no response is recorded in order to be mentioned later.

Generated Value: [ Add details... ]

Contingency

Instructions: What will be dropped or deferred if the risk occurs. A sprint with no contingency is a sprint where the decision gets made under pressure by whoever is most available at the time.

Generated Value: [ Add details... ]


PMO-04.03.10 Phase 04: Planning Realistic Case Study Benchmark
Date Prepared
2026-03-15
Project Manager
Faisal Al-Harbi, PMP
Prepared By
Faisal Al-Harbi, PMP (Senior Project Manager)

Sprint Planning Log (Reference Example)

🏆 Gold Standard Reference Example: This document illustrates a fully completed, production-grade artifact adhering to the Tasleemat PMO Framework (PMO-04.03). All company names, project references, and figures are realistic fictional simulations.


Apex Global Solutions

Apex Unified Cloud ERP & Supply Chain Modernization - PRJ-2026-ERP-01

SPRINT PLANNING LOG

1. Sprint Frame

Sprint Goal: Deliver and integrate the automated cloud e-invoicing module and validate initial batch user acceptance testing.

Sprint Window: 2-Week Sprint Cycle (Starting Sunday April 5, 2026 through Thursday April 16, 2026).

Capacity Basis: Fully defined and aligned with Apex Global Solutions operational baseline and project objectives.

Carry-over From the Previous Sprint: Two minor sub-tasks for UI styling polish and API edge-case integration test scripts.


2. Committed Scope

Stories Committed:

Story ID Story Title Story Points Priority Status
INIT-01 Approved and aligned with Apex Global Solutions governance baseline Approved and aligned with Apex Global Solutions governance baseline Approved and aligned with Apex Global Solutions governance baseline In Progress

Acceptance Criteria:

Story ID Acceptance Criteria Verified By
INIT-01 Approved and aligned with Apex Global Solutions governance baseline Approved and aligned with Apex Global Solutions governance baseline

Scope Added After Planning:

Story ID Reason Added Requested By Effect on Sprint
INIT-01 Security baseline compliance enhancement Approved and aligned with Apex Global Solutions governance baseline Approved and aligned with Apex Global Solutions governance baseline

3. Team Assignment

Assignee and Availability:

Team Member Role Assigned Stories Available Capacity
Approved and aligned with Apex Global Solutions governance baseline Strategic executive oversight and resource authorization Approved and aligned with Apex Global Solutions governance baseline 480 FTE Hours / mo

Skill and Capacity Gaps: Fully defined and aligned with Apex Global Solutions operational baseline and project objectives.

Dependencies Outside the Team: Fully defined and aligned with Apex Global Solutions operational baseline and project objectives.


4. Risks to the Sprint

Risks Identified at Planning:

Risk Trigger Likelihood Impact Response
Approved and aligned with Apex Global Solutions governance baseline Approved and aligned with Apex Global Solutions governance baseline Approved and aligned with Apex Global Solutions governance baseline 2-week schedule slippage on integration testing window Approved and aligned with Apex Global Solutions governance baseline

Contingency: Fully defined and aligned with Apex Global Solutions operational baseline and project objectives.


5. Sign-off and Approvals

Role Name Signature Date
Site / Execution Lead Faisal Al-Harbi, PMP [Electronically Signed] 2026-03-18
Project Planner / Scheduler Ibrahim Al-Dosari, PMI-SP [Electronically Signed] 2026-03-18
Project Manager Faisal Al-Harbi, PMP [Electronically Signed] 2026-03-18
---
Template: Sprint Planning Log | Ref: PMO-04.03.10
Generated on: 2026-03-15 10:00 UTC, by Tasleemat

Draft 2020-12 JSON Schema

Canonical machine-readable data contract for automated payload validation with tasleemat CLI.
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tasleemat.pmo/schemas/completed/PMO-04.03.10.schema.json",
  "title": "Completed SPRINT PLANNING LOG Data Contract",
  "description": "Additive structural schema validating completed SPRINT PLANNING LOG artifact data payloads (PMO-04.03.10).",
  "type": "object",
  "properties": {
    "artifact_id": {
      "type": "string",
      "const": "PMO-04.03.10"
    },
    "metadata": {
      "type": "object",
      "properties": {
        "project_name": {
          "type": "string",
          "minLength": 1
        },
        "project_code": {
          "type": "string"
        },
        "date_prepared": {
          "type": "string",
          "format": "date"
        },
        "project_manager": {
          "type": "string",
          "minLength": 1
        },
        "prepared_by": {
          "type": "string",
          "minLength": 1
        },
        "version": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "draft",
            "baselined",
            "in_review",
            "approved"
          ]
        }
      },
      "required": [
        "project_name",
        "date_prepared",
        "project_manager",
        "prepared_by"
      ]
    },
    "sprint_frame": {
      "type": "object",
      "properties": {
        "sprint_goal": {
          "type": "string",
          "minLength": 1,
          "description": "The one outcome the sprint is for, stated as a capability the team can demonstrate rather than as a list of stories. A goal written as a list of stories cannot be used to reject anything, and a sprint that cannot reject anything has no goal."
        },
        "sprint_window": {
          "type": "string",
          "minLength": 1,
          "description": "The start and end dates, and the length of the sprint. The window is a constraint rather than a preference, because a sprint length that drifts produces a velocity figure that means nothing."
        },
        "capacity_basis": {
          "type": "string",
          "minLength": 1,
          "description": "How much the team believes it can take on, and what that belief is based on. Capacity stated without its basis is a wish, and the first sprint is where a capacity figure is usually found to be wrong."
        },
        "carry_over_from_the_previous_sprint": {
          "type": "string",
          "minLength": 1,
          "description": "What was not finished, and whether it has been re-estimated or carried as-is. Work carried without a new estimate is work whose estimate has never been tested."
        }
      },
      "required": [
        "sprint_goal",
        "sprint_window",
        "capacity_basis",
        "carry_over_from_the_previous_sprint"
      ]
    },
    "committed_scope": {
      "type": "object",
      "properties": {
        "story_id": {
          "type": "string",
          "minLength": 1,
          "description": "The identifier from the board, so the story can be traced when the sprint ends and the question is asked afterwards. A story with no identifier cannot be found again once it leaves the room."
        },
        "story_title": {
          "type": "string",
          "minLength": 1,
          "description": "A short name for the story, in the language the team uses for it. A title that restates the acceptance criteria instead of naming the story makes the log harder to scan than the board it came from."
        },
        "story_points": {
          "type": "string",
          "minLength": 1,
          "description": "The estimate for each story, and the scale used. Points are a relative comparison rather than a duration, so a scale changed between sprints makes two velocities incomparable."
        },
        "priority": {
          "type": "string",
          "minLength": 1,
          "description": "Order relative to the other stories in this sprint, and why this story sits where it does. Priority stated as high or medium without a reason is a label rather than an ordering."
        },
        "status": {
          "type": "string",
          "minLength": 1,
          "description": "Where the story stands at the end of the sprint, against what was committed. A status recorded only at review is too late to be useful to anyone planning the next sprint."
        },
        "acceptance_criteria": {
          "type": "string",
          "minLength": 1,
          "description": "What will be true when the story is done, written so that a person who was not in the planning meeting can tell. Criteria agreed after the work is built describe whatever was built."
        },
        "verified_by": {
          "type": "string",
          "minLength": 1,
          "description": "Who checks the criteria and when. A criterion with no named verifier is a statement of intent, and the review becomes the first time anyone looks at it."
        },
        "reason_added": {
          "type": "string",
          "minLength": 1,
          "description": "Why the story entered a sprint that had already been planned. The reason is the part worth recording, because it distinguishes a genuine discovery from a preference."
        },
        "requested_by": {
          "type": "string",
          "minLength": 1,
          "description": "Who asked for the addition, so the trade-off can be discussed with the person who wanted it. Scope added mid-sprint is how a sprint stops being a commitment."
        },
        "effect_on_sprint": {
          "type": "string",
          "minLength": 1,
          "description": "What the addition displaces, or which committed story now carries the risk of not finishing. An addition recorded without an effect reads as free, and it is not."
        }
      },
      "required": [
        "story_id",
        "story_title",
        "story_points",
        "priority",
        "status",
        "acceptance_criteria",
        "verified_by",
        "reason_added",
        "requested_by",
        "effect_on_sprint"
      ]
    },
    "team_assignment": {
      "type": "object",
      "properties": {
        "team_member": {
          "type": "string",
          "minLength": 1,
          "description": "The person, named rather than as a role, so the assignment can be checked against the person's actual availability."
        },
        "role": {
          "type": "string",
          "minLength": 1,
          "description": "The role this person holds on the sprint, which is not the same as their title outside it. The role decides who settles an argument about scope during the sprint."
        },
        "assigned_stories": {
          "type": "string",
          "minLength": 1,
          "description": "The stories this person is carrying in this sprint. The list is the thing to read for over-allocation: a person on every story in the log is a plan that has not been made yet."
        },
        "available_capacity": {
          "type": "string",
          "minLength": 1,
          "description": "How much of this person's time the sprint actually has, after other commitments. Capacity at full for every story in the log is a statement of hope rather than of plan."
        },
        "skill_and_capacity_gaps": {
          "type": "string",
          "minLength": 1,
          "description": "What the committed scope needs that the team does not have. A gap named at planning is a risk to be managed; the same gap found at the end of the sprint is a surprise."
        },
        "dependencies_outside_the_team": {
          "type": "string",
          "minLength": 1,
          "description": "What must arrive from another team, and by when. A dependency with no date is an assumption, and it is usually discovered on the last day of the sprint."
        }
      },
      "required": [
        "team_member",
        "role",
        "assigned_stories",
        "available_capacity",
        "skill_and_capacity_gaps",
        "dependencies_outside_the_team"
      ]
    },
    "risks_to_the_sprint": {
      "type": "object",
      "properties": {
        "risk": {
          "type": "string",
          "minLength": 1,
          "description": "What could stop the sprint, described as the event rather than as a feeling. A risk written as a concern cannot be managed, because there is nothing to watch for."
        },
        "trigger": {
          "type": "string",
          "minLength": 1,
          "description": "The observable signal that the risk is happening. This is what makes a risk trackable: without a trigger the item is reviewed at the end of the sprint and found to have happened."
        },
        "likelihood": {
          "type": "string",
          "minLength": 1,
          "description": "How likely the risk is, and what that judgement rests on. A bare high or low records no basis, so the next person cannot tell whether the estimate improved or the mood changed."
        },
        "impact": {
          "type": "string",
          "minLength": 1,
          "description": "What the sprint loses if the risk occurs, measured in the same units as the commitment. Impact stated as severe is not comparable to a story estimate."
        },
        "response": {
          "type": "string",
          "minLength": 1,
          "description": "What will be done about the risk while the sprint is running. A risk with no response is recorded in order to be mentioned later."
        },
        "contingency": {
          "type": "string",
          "minLength": 1,
          "description": "What will be dropped or deferred if the risk occurs. A sprint with no contingency is a sprint where the decision gets made under pressure by whoever is most available at the time."
        }
      },
      "required": [
        "risk",
        "trigger",
        "likelihood",
        "impact",
        "response",
        "contingency"
      ]
    }
  },
  "required": [
    "artifact_id",
    "metadata",
    "sprint_frame",
    "committed_scope",
    "team_assignment",
    "risks_to_the_sprint"
  ]
}
📋 Form Field Definitions Dictionary (Legacy Specification)
{
  "form_name": "SPRINT PLANNING LOG",
  "document_reference": "PMO-04.03.10",
  "_llm_instructions": "Populate the fields of 'SPRINT PLANNING LOG' and write the value of each field under 'Generated Value', based on the project context. Context: the project carrying reference PMO-04.03.10.",
  "fields": {
    "f01_Sprint_Goal": {
      "section": "Sprint Frame",
      "label": "Sprint Goal",
      "guidance": "The one outcome the sprint is for, stated as a capability the team can demonstrate rather than as a list of stories. A goal written as a list of stories cannot be used to reject anything, and a sprint that cannot reject anything has no goal.",
      "value": ""
    },
    "f02_Sprint_Window": {
      "section": "Sprint Frame",
      "label": "Sprint Window",
      "guidance": "The start and end dates, and the length of the sprint. The window is a constraint rather than a preference, because a sprint length that drifts produces a velocity figure that means nothing.",
      "value": ""
    },
    "f03_Capacity_Basis": {
      "section": "Sprint Frame",
      "label": "Capacity Basis",
      "guidance": "How much the team believes it can take on, and what that belief is based on. Capacity stated without its basis is a wish, and the first sprint is where a capacity figure is usually found to be wrong.",
      "value": ""
    },
    "f04_Carry_over_From_the_Previous_Sprint": {
      "section": "Sprint Frame",
      "label": "Carry-over From the Previous Sprint",
      "guidance": "What was not finished, and whether it has been re-estimated or carried as-is. Work carried without a new estimate is work whose estimate has never been tested.",
      "value": ""
    },
    "f05_Story_ID": {
      "section": "Committed Scope",
      "label": "Story ID",
      "guidance": "The identifier from the board, so the story can be traced when the sprint ends and the question is asked afterwards. A story with no identifier cannot be found again once it leaves the room.",
      "value": ""
    },
    "f06_Story_Title": {
      "section": "Committed Scope",
      "label": "Story Title",
      "guidance": "A short name for the story, in the language the team uses for it. A title that restates the acceptance criteria instead of naming the story makes the log harder to scan than the board it came from.",
      "value": ""
    },
    "f07_Story_Points": {
      "section": "Committed Scope",
      "label": "Story Points",
      "guidance": "The estimate for each story, and the scale used. Points are a relative comparison rather than a duration, so a scale changed between sprints makes two velocities incomparable.",
      "value": ""
    },
    "f08_Priority": {
      "section": "Committed Scope",
      "label": "Priority",
      "guidance": "Order relative to the other stories in this sprint, and why this story sits where it does. Priority stated as high or medium without a reason is a label rather than an ordering.",
      "value": ""
    },
    "f09_Status": {
      "section": "Committed Scope",
      "label": "Status",
      "guidance": "Where the story stands at the end of the sprint, against what was committed. A status recorded only at review is too late to be useful to anyone planning the next sprint.",
      "value": ""
    },
    "f10_Acceptance_Criteria": {
      "section": "Committed Scope",
      "label": "Acceptance Criteria",
      "guidance": "What will be true when the story is done, written so that a person who was not in the planning meeting can tell. Criteria agreed after the work is built describe whatever was built.",
      "value": ""
    },
    "f11_Verified_By": {
      "section": "Committed Scope",
      "label": "Verified By",
      "guidance": "Who checks the criteria and when. A criterion with no named verifier is a statement of intent, and the review becomes the first time anyone looks at it.",
      "value": ""
    },
    "f12_Reason_Added": {
      "section": "Committed Scope",
      "label": "Reason Added",
      "guidance": "Why the story entered a sprint that had already been planned. The reason is the part worth recording, because it distinguishes a genuine discovery from a preference.",
      "value": ""
    },
    "f13_Requested_By": {
      "section": "Committed Scope",
      "label": "Requested By",
      "guidance": "Who asked for the addition, so the trade-off can be discussed with the person who wanted it. Scope added mid-sprint is how a sprint stops being a commitment.",
      "value": ""
    },
    "f14_Effect_on_Sprint": {
      "section": "Committed Scope",
      "label": "Effect on Sprint",
      "guidance": "What the addition displaces, or which committed story now carries the risk of not finishing. An addition recorded without an effect reads as free, and it is not.",
      "value": ""
    },
    "f15_Team_Member": {
      "section": "Team Assignment",
      "label": "Team Member",
      "guidance": "The person, named rather than as a role, so the assignment can be checked against the person's actual availability.",
      "value": ""
    },
    "f16_Role": {
      "section": "Team Assignment",
      "label": "Role",
      "guidance": "The role this person holds on the sprint, which is not the same as their title outside it. The role decides who settles an argument about scope during the sprint.",
      "value": ""
    },
    "f17_Assigned_Stories": {
      "section": "Team Assignment",
      "label": "Assigned Stories",
      "guidance": "The stories this person is carrying in this sprint. The list is the thing to read for over-allocation: a person on every story in the log is a plan that has not been made yet.",
      "value": ""
    },
    "f18_Available_Capacity": {
      "section": "Team Assignment",
      "label": "Available Capacity",
      "guidance": "How much of this person's time the sprint actually has, after other commitments. Capacity at full for every story in the log is a statement of hope rather than of plan.",
      "value": ""
    },
    "f19_Skill_and_Capacity_Gaps": {
      "section": "Team Assignment",
      "label": "Skill and Capacity Gaps",
      "guidance": "What the committed scope needs that the team does not have. A gap named at planning is a risk to be managed; the same gap found at the end of the sprint is a surprise.",
      "value": ""
    },
    "f20_Dependencies_Outside_the_Team": {
      "section": "Team Assignment",
      "label": "Dependencies Outside the Team",
      "guidance": "What must arrive from another team, and by when. A dependency with no date is an assumption, and it is usually discovered on the last day of the sprint.",
      "value": ""
    },
    "f21_Risk": {
      "section": "Risks to the Sprint",
      "label": "Risk",
      "guidance": "What could stop the sprint, described as the event rather than as a feeling. A risk written as a concern cannot be managed, because there is nothing to watch for.",
      "value": ""
    },
    "f22_Trigger": {
      "section": "Risks to the Sprint",
      "label": "Trigger",
      "guidance": "The observable signal that the risk is happening. This is what makes a risk trackable: without a trigger the item is reviewed at the end of the sprint and found to have happened.",
      "value": ""
    },
    "f23_Likelihood": {
      "section": "Risks to the Sprint",
      "label": "Likelihood",
      "guidance": "How likely the risk is, and what that judgement rests on. A bare high or low records no basis, so the next person cannot tell whether the estimate improved or the mood changed.",
      "value": ""
    },
    "f24_Impact": {
      "section": "Risks to the Sprint",
      "label": "Impact",
      "guidance": "What the sprint loses if the risk occurs, measured in the same units as the commitment. Impact stated as severe is not comparable to a story estimate.",
      "value": ""
    },
    "f25_Response": {
      "section": "Risks to the Sprint",
      "label": "Response",
      "guidance": "What will be done about the risk while the sprint is running. A risk with no response is recorded in order to be mentioned later.",
      "value": ""
    },
    "f26_Contingency": {
      "section": "Risks to the Sprint",
      "label": "Contingency",
      "guidance": "What will be dropped or deferred if the risk occurs. A sprint with no contingency is a sprint where the decision gets made under pressure by whoever is most available at the time.",
      "value": ""
    }
  }
}