Skip to content

Commit f156c36

Browse files
📖 [Docs]: Issue planning and relationships are defined (#94)
Issue guidance now explains how bodies, types, readiness, and native relationships evolve from capture through operation while keeping the Workflow page authoritative for phase definitions. ## New: Issue lifecycle, planning, and relationships The Process section now maps issue evolution onto the shared workflow, explains progressive Why/How/What decomposition, and establishes GitHub sub-issues and dependency edges as the authoritative containment and execution-order model. Ready siblings without dependency edges can proceed in parallel. ## New: Native issue type guidance Dedicated Epic, PBI, Task, and Bug pages now define the body detail, readiness, planning altitude, and completion rules for each native type. The shared hierarchy page focuses on taxonomy, routing, containment, and promotion or demotion. ## Changed: Universal issue format Issue Format now contains only rules shared by every native type and routes readers to the type-specific guidance. Manual relationship fields, copied child lists, and list-order sequencing are explicitly rejected. --- <details> <summary>Technical details</summary> - Added Lifecycle, Planning, and Relationships pages under `Issues/Process/`. - Reduced Format to universal title, body, metadata, audit, and Markdown rules. - Integrated the complete final Types guidance from PR #93 and preserved both Process and Types navigation subsections. - Consolidated Tasks #87 and #88 into this combined pull request after verifying the Types trees are identical. </details> <details> <summary>Relevant issues (or links)</summary> - Fixes #87 - Fixes #88 </details> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent f3aede8 commit f156c36

13 files changed

Lines changed: 419 additions & 487 deletions

File tree

‎src/docs/Ways-of-Working/Issues/Process/Format.md‎

Lines changed: 31 additions & 384 deletions
Large diffs are not rendered by default.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: Issue Lifecycle
3+
description: How issue bodies, types, readiness, and relationships evolve through the workflow.
4+
---
5+
6+
# Issue Lifecycle
7+
8+
[Workflow](../../Workflow.md) is the sole definition of the Capture, Refine, Plan, Build, Review, Ship, and Operate phases. This page maps only how an issue's body, native type, readiness, and relationships evolve while work passes through those phases.
9+
10+
| Workflow phase | Issue evolution |
11+
| --- | --- |
12+
| **Capture** | Create the issue with the known need, affected user or operator, and desired outcome. Assign the best provisional native type. The item is not ready merely because it exists; add native relationships only when they are already known. |
13+
| **Refine** | Correct the body until the problem, local purpose, scope, and observable acceptance criteria are clear. Correct the type when the planning altitude becomes known. Discover containment and dependencies and record them as [native relationships](Relationships.md). |
14+
| **Plan** | Add the decisions and decomposition appropriate to the type's [planning altitude](Planning.md). Promote, demote, or split the issue when its scope requires a different type. Establish sub-issues and dependency edges, then mark the item ready only when it meets the [Definition of Ready](../../Definition-of-Ready-and-Done.md#definition-of-ready). |
15+
| **Build** | Pull a ready Task or Bug whose blockers are clear. Keep its body and checklist current as implementation changes the plan. Parent progress comes from native sub-issue completion, while blocked-by edges continue to gate execution. |
16+
| **Review** | Verify the delivered change against the issue's current acceptance criteria and decisions. Keep the pull request draft until it meets the separate [Definition of Ready for Review](../../Definition-of-Ready-and-Done.md#definition-of-ready-for-review). Record plan or scope corrections in the issue body and audit them in comments. |
17+
| **Ship** | Merge the reviewed delivery pull request and close its Task or Bug through the pull request's closing link. Native completion updates parent progress. Close a PBI or Epic only when its native children and aggregate acceptance criteria are complete. |
18+
| **Operate** | Feed production signals and learning back into the issue model. Reopen the issue when its accepted outcome is no longer true, or capture a new issue and relate it natively when the signal describes distinct work. |
19+
20+
Readiness is a gate, not a phase label. A captured or refined issue remains unready until its intent, acceptance criteria, scope, dependencies, and open questions satisfy the shared readiness contract. Relationship and type changes follow the same [audit-trail rule](Format.md#audit-trail) as body changes.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
title: Issue Planning
3+
description: Progressive Why, How, and What decomposition across issue altitudes.
4+
---
5+
6+
# Issue Planning
7+
8+
Issue planning adds detail progressively. Work starts with **Why**, gains an outcome-level **What**, and introduces only the **How** needed to decompose and deliver it. Detail increases toward ready delivery leaves; it is not copied upward before it is useful.
9+
10+
## Planning altitudes
11+
12+
| Native type | Why | How | What |
13+
| --- | --- | --- | --- |
14+
| [Epic](../Types/Epic.md) | States the strategic purpose and the outcome that advances an Initiative or objective. | Describes the outcome-level approach only far enough to identify coherent PBIs. | Defines the measurable aggregate result and its scope. |
15+
| [PBI](../Types/PBI.md) | Explains why this bounded body of work contributes to its parent outcome. | Defines the delivery-level approach, interfaces, and decomposition into independently deliverable children. | Defines the bounded result and aggregate acceptance criteria. |
16+
| [Task](../Types/Task.md) or [Bug](../Types/Bug.md) | Restates the local purpose so the delivery leaf is understandable on its own. | Records implementation decisions and the test-first execution plan. | Defines one concrete, verifiable deliverable sized for one pull request or one audited operational completion. |
17+
18+
Every child retains enough local Why and acceptance criteria to be picked up independently. It references its parent's outcome instead of copying the parent's full body.
19+
20+
## Ownership boundaries
21+
22+
Issue planning connects canonical artifacts; it does not replace them:
23+
24+
- [Goal Setting](../../Goal-Setting.md) owns Mission, OKR, and Initiative strategy. An Epic links delivery to that strategy.
25+
- [Specifications](../../Spec-Driven-Development.md) own the durable Why and What of a capability.
26+
- Designs own the durable technical How.
27+
- Issues own the current decomposition, delivery decisions, readiness, and tracked work needed to close the gap between those artifacts and reality.
28+
29+
Reference the owning artifact and capture only the local rationale required to understand the issue. When intent or design changes, update the canonical artifact first, then update affected issues and record the issue-body change in the audit trail.
30+
31+
## Progressive decomposition
32+
33+
1. Start at the highest issue that can state the outcome honestly.
34+
2. Add just enough Why and What to establish scope and acceptance.
35+
3. Introduce How when it is needed to choose boundaries, interfaces, or delivery slices.
36+
4. Create native sub-issues for work that has independent outcomes or completion.
37+
5. Continue until each leaf is a ready Task or Bug with one concrete deliverable.
38+
39+
Decomposition does not create execution order by itself. Use [native dependency relationships](Relationships.md#execution-order) only where one item must finish before another can proceed; otherwise ready siblings remain eligible for parallel work.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
title: Issue Relationships
3+
description: Native containment, progress, dependency order, and parallel execution rules.
4+
---
5+
6+
# Issue Relationships
7+
8+
GitHub's native relationships are the authoritative issue graph. Prose may explain why a relationship exists, but it never recreates that graph.
9+
10+
## Containment and progress
11+
12+
Use native **sub-issues** to express that work is contained by an Epic, PBI, or nested PBI:
13+
14+
- The parent owns the aggregate outcome.
15+
- Each child owns a distinct slice with local purpose and acceptance criteria.
16+
- The parent's progress is derived from the completion state of its native sub-issues.
17+
- Containment does not imply execution order.
18+
19+
Do not maintain a second child-link list in the parent body. The native sub-issue list is the current inventory and progress source.
20+
21+
## Execution order
22+
23+
Use native **blocked-by / blocking** relationships only when one issue must finish before another can proceed:
24+
25+
- The waiting issue is blocked by the prerequisite.
26+
- The prerequisite is blocking the waiting issue.
27+
- Removing or changing the dependency updates the native edge.
28+
- List position, numbering, creation time, and sub-issue order do not create a dependency.
29+
30+
The native dependency graph is the source of truth for execution order. A checklist may describe work inside one delivery issue, but it does not order separate issues.
31+
32+
## Parallel execution
33+
34+
Ready siblings without dependency edges are eligible for parallel execution. Sharing a parent means they contribute to the same aggregate outcome; it does not make them sequential.
35+
36+
Add a dependency edge only for a real prerequisite. Coordination, shared context, or a preferred review order may be explained in prose, but those preferences do not block otherwise ready work.
37+
38+
## No duplicate relationship fields
39+
40+
Do not add any of the following as relationship sources of truth:
41+
42+
- Manual `Parent: #N` fields.
43+
- Manual `Blocked by: #N` or `Blocking: #N` fields.
44+
- Duplicated lists of child issue links.
45+
- Statements that list position or numbering defines execution order.
46+
47+
When a relationship changes, update the native relationship first. Then add a brief audit comment when the reason is not self-evident. Links in prose are appropriate for rationale or supporting context, not for maintaining a parallel containment or dependency model.
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
---
22
title: Issue Process
3-
description: How issue bodies are structured and formatted.
3+
description: How issue bodies, planning, lifecycle, and native relationships support delivery.
44
---
55

66
# Issue Process
77

8-
The universal rules for structuring and formatting issue bodies.
8+
How issue bodies, planning, lifecycle, and native relationships support delivery.
99

1010
<!-- INDEX:START -->
1111

1212
| Page | Description |
1313
| --- | --- |
14-
| [Issue Format](Format.md) | The three-section issue structure, formatting, and labels. |
14+
| [Issue Format](Format.md) | Universal title, body, audit, and formatting rules for every issue. |
15+
| [Issue Lifecycle](Lifecycle.md) | How issue bodies, types, readiness, and relationships evolve through the workflow. |
16+
| [Issue Planning](Planning.md) | Progressive Why, How, and What decomposition across issue altitudes. |
17+
| [Issue Relationships](Relationships.md) | Native containment, progress, dependency order, and parallel execution rules. |
1518

1619
<!-- INDEX:END -->
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
---
2+
title: Bug
3+
description: One implementation-ready correction for unexpected behavior, delivered at Task level.
4+
---
5+
6+
# Bug
7+
8+
A Bug is a native delivery type at the same altitude as a [Task](Task.md). It owns one independently correctable instance of unexpected behavior and one reviewable pull request.
9+
10+
Use Bug for a correction, not as a label or hierarchy level. A defect that needs multiple pull requests becomes a [PBI](PBI.md) with Bug and Task children.
11+
12+
## Issue body
13+
14+
Follow the universal [Issue Format](../Process/Format.md), with these Bug-specific contents.
15+
16+
### Context and request
17+
18+
- **Observed behavior:** what happens, including exact errors, outputs, or impact.
19+
- **Expected behavior:** the observable result that should occur instead.
20+
- **Reproduction:** the smallest repeatable steps, inputs, and commands.
21+
- **Environment:** relevant versions, runtime, operating system, host, and configuration.
22+
- **Regression:** whether this worked before and the last known working version, or an explicit unknown.
23+
- **Workaround:** the current mitigation, or an explicit statement that none is known.
24+
- **Acceptance criteria:** the corrected behavior and the regressions that must remain prevented.
25+
26+
### Technical decisions
27+
28+
- Bound the root cause to the affected behavior, component, contract, or change based on available evidence.
29+
- Distinguish verified cause from hypotheses; do not use the correction to absorb unrelated refactoring.
30+
- Record compatibility, failure-handling, and rollout decisions needed for the fix.
31+
- Define the failing regression test that will demonstrate the problem before implementation.
32+
33+
### Implementation plan
34+
35+
Start by reproducing the failure in an automated regression test. Then implement the smallest root-cause correction, run the affected and broader test surfaces, and update relevant documentation. If automation is genuinely impossible, record the reason and an equivalent repeatable verification before implementation.
36+
37+
## Ready
38+
39+
A Bug is implementation-ready when:
40+
41+
- observed and expected behavior, reproduction, environment, regression status, workaround, and acceptance criteria are explicit;
42+
- the correction is bounded to one pull request;
43+
- the root-cause boundary and unresolved hypotheses are clear enough to prevent scope drift;
44+
- dependencies and blockers are known; and
45+
- the regression-test-first plan can be executed.
46+
47+
## Closure
48+
49+
Close a Bug only after its pull request is reviewed and merged, the regression test or recorded equivalent fails before the correction and passes after it, and the acceptance criteria are verified. Record any intentionally deferred cleanup as linked Task children of the relevant PBI or as separate follow-up Tasks.
50+
51+
See the [Issue Hierarchy](Hierarchy.md) for routing and promotion when investigation reveals more than one deliverable.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: Epic
3+
description: A strategic repository aggregate that turns one Initiative into measurable outcomes and PBIs.
4+
---
5+
6+
# Epic
7+
8+
An Epic is the native issue type for a strategic outcome that needs multiple PBIs in one repository. It is an aggregate: progress comes from its native sub-issues, not from an implementation branch or closing pull request.
9+
10+
Use an Epic when the work connects strategy to several bounded bodies of work. Use a [PBI](PBI.md) when one bounded outcome is enough.
11+
12+
## Strategy boundary
13+
14+
An Initiative is an organization-level bet under an OKR; an Epic is that Initiative's repository-level delivery aggregate. Link the Initiative and relevant OKR rather than copying their full bodies. When an Initiative spans repositories, each repository owns the Epic for its part of the outcome.
15+
16+
The Epic states the repository contribution through the Golden Circle:
17+
18+
- **Why:** the problem, strategic objective, and Key Result this work is expected to move.
19+
- **How:** the capability-level approach and boundaries, without implementation detail.
20+
- **What:** the observable repository outcomes the child PBIs collectively deliver.
21+
22+
## Issue body
23+
24+
Follow the universal [Issue Format](../Process/Format.md), with these Epic-specific contents.
25+
26+
### Context and request
27+
28+
- Link the parent Initiative and relevant OKR.
29+
- State the strategic outcome through Why, How, and What.
30+
- Define success measures with a baseline or current state, a target, and how the result will be observed.
31+
- Bound the in-scope and out-of-scope outcomes.
32+
- Write aggregate acceptance criteria that prove the PBIs combine into the intended outcome.
33+
34+
### Technical decisions
35+
36+
- Record the chosen scope boundaries and significant trade-offs.
37+
- Explain the decomposition into PBIs and why each boundary is independently meaningful.
38+
- Identify interfaces, ownership boundaries, dependencies, and sequencing between PBIs.
39+
- Keep implementation decisions in the child PBI, Task, or Bug where they can be made at the right altitude.
40+
41+
### Implementation plan
42+
43+
Use native sub-issues for the child PBIs. The plan may summarize those links and their intended outcomes, but it does not contain an inline implementation checklist.
44+
45+
## Ready
46+
47+
An Epic is ready for decomposition when:
48+
49+
- the Initiative and OKR relationship is linked and the repository boundary is clear;
50+
- Why, How, What, success measures, scope, and aggregate acceptance criteria are explicit;
51+
- the initial PBI boundaries, interfaces, dependencies, and ownership are understood; and
52+
- no open decision prevents the first PBIs from becoming ready.
53+
54+
## Aggregate closure
55+
56+
Close an Epic only when every required child PBI is complete, the aggregate acceptance criteria are verified, and the success measures have current evidence. Move any intentionally deferred outcome to a linked follow-up before closure. Record the final evidence in the Epic; do not close it through a direct implementation pull request.
57+
58+
See the [Goal-Setting Framework](../../Goal-Setting.md) for the Mission, OKR, and Initiative model and the [Issue Hierarchy](Hierarchy.md) for containment and routing.

0 commit comments

Comments
 (0)