timeline · git:20261006.f0a700f · 2026-10-06 · sha256 70028b363f7ccfaa

timeline git:20261006.f0a700fB

Immutable. This exact content never changes and is served at /api/v1/blob/70028b363f7ccfaa.

---
description: "Group the current branch's commit history into semantic phases along a timeline, and generate two review documents: architecture evolution + code review."
---

Respond in the user's preferred language (detect from their recent messages, or fall back to the language setting in CLAUDE.md).

Arguments: $ARGUMENTS
- No arguments: compare against the default base branch (develop if it exists, else main, else master)
- `--base <branch>`: specify a custom base branch for comparison

## Execution Steps

### 1. Collect Commit History

```bash
git log <base>..HEAD --oneline --reverse --format="%h %ai %s"
```

### 2. Group Commits into Semantic Phases

Grouping criteria (in order of priority):
1. **Semantic affinity**: consecutive commits on the same feature/subsystem go in the same group
2. **Natural breakpoints**: merge commits, date gaps > 1 day, module switches
3. **Phase markers in commit messages**: if a commit self-annotates with a Phase, respect that first

Give each Phase a semantic name (e.g. "Player Health System", not "Phase 1"). Target 5–10 Phases (too few loses the timeline's value; too many becomes per-commit annotation); a Phase of more than 15 commits may be split into sub-phases. Grouping is the judgment the whole document rests on — settle it before writing.

### 3. Analyze Changes per Phase

For each Phase:
```bash
git diff <phase_first_commit>~1..<phase_last_commit> --stat
git diff <phase_first_commit>~1..<phase_last_commit> -- '*.cs'
```

Read the full content of key changed files to understand context — not just diff fragments.

### 4. Generate Document A: Architecture Evolution Timeline

Format:
```markdown
# Architecture Evolution Timeline

> X phases, Y commits, Z-day development span
> Branch: `<branch>`, base: `<base>`

---

## Phase 1: <Semantic Name> (<date range>, N commits)

> One-sentence summary

<details>
<summary>Commits</summary>

- `hash1` message1
- `hash2` message2
</details>

### Architecture Changes

#### [Tier 1] Change Title (if any)
**Scope**: ...
**Nature of change**: ...

\```mermaid
<diagram of this phase's changes>
\```

#### [Tier 2] Change Title (if any)
...

### Dependencies Introduced This Phase
- `ModuleA` → `ModuleB` (new reference)

### Cumulative State
> Overall progress to this point: X completed, next phase will Y

---

## Phase 2: <Semantic Name> ...
```

**Diagram requirements**:
- Each diagram shows only what this phase changed, not the accumulated state — a reviewer should see "what was added in this phase"
- Use green to highlight parts newly added in this phase, gray for existing context
- If this phase modifies a structure introduced in a previous phase, use orange to highlight it
- A Phase with no architecture changes (pure bug fix/UI) gets a one-line note instead of a diagram

### 5. Generate Document B: Code Review Timeline

Format:
```markdown
# Code Review Timeline

> X phases, Y commits
> Branch: `<branch>`, base: `<base>`

## Review Priority Quick Reference

| Phase | P0 | P1 | P2 | Files | Est. Time | Core Risk |
|-------|----|----|----|-------|-----------|-----------|
| 1. Name | 0 | 2 | 1 | 5 | 10 min | No major risk |
| 2. Name | 3 | 1 | 0 | 12 | 25 min | Global static state isolation |
| ... | | | | | | |

Time estimation rules:
- Each P0 item ~5 min (requires reading context + verification)
- Each P1 item ~2 min (quick check)
- Each P2 item ~0.5 min (quick scan)
- Round up to the nearest 5 minutes

**Recommended review order**: sort by P0 count descending — review the highest-risk phases when most focused

---

## Phase 1: <Semantic Name> (<date range>, N commits)

> One-sentence summary

<details>
<summary>Commits</summary>

- `hash1` message1
- `hash2` message2
</details>

### Files to Review

C# files touched in this phase, by priority:

| File | Priority | Change Summary |
|------|----------|---------------|
| `Assets/Scripts/.../GameManager.cs` | P0 | Core game loop changes |
| `Assets/Scripts/.../PlayerController.cs` | P0 | Input handling refactor |
| `Assets/Scripts/.../InventorySystem.cs` | P1 | Data model migration |
| ... | P2 | ... |

File list generation rules:
- Obtain from `git diff <phase_first_commit>~1..<phase_last_commit> --name-only -- '*.cs'`
- Exclude pure asset/config files, and test files under `Tests/` (unless the tests themselves have P0/P1 review items)
- Exclude pure Editor tool files (unless they have review items)
- Each file is annotated with its highest priority level from this Phase's review items
- Files with no review items are annotated `--` (no separate review needed)
- Sort by priority: P0 first, `--` last

### P0 — Must be human-reviewed
1. **Filename:line** — change description
   Risk: why this needs attention
   Suggestion: what to focus on during review

### P1 — Recommended attention
2. **Filename:line** — change description
   Suggestion: checkpoints

### P2 — Quick scan
3. **Filename:line** — description

---

## Phase 2: ...
```

**P0/P1/P2 Assessment Criteria** (consistent with /qq:brief):

- **P0**: Public interface changes, new cross-module dependencies, data format changes, state management/lifecycle changes, global static state isolation, anti-patterns (FindObjectOfType, etc.), resource cleanup/event unsubscription
- **P1**: Business logic branches, performance-sensitive paths (Update/FixedUpdate), O(N²) patterns, error handling/edge cases, new public methods or classes
- **P2**: Pure getters/setters/logging/comments, test code, config value tweaks

**Key rule**: Each review item appears only in **the phase that introduced it** — do not repeat it in later phases.
If a later phase modifies code from an earlier phase, annotate it in that later phase as "modifies Phase X's ...".

### 6. Generate Document C: Review Guide

Generate `REVIEW_GUIDE.md`, indexing whichever documents exist in `Docs/qq/<branch-name>/`.

Format:
```markdown
# Review Guide

> Branch: `<branch>`
> Generated: `<timestamp>`

## Document Index

| Document | Perspective | Purpose |
|----------|-------------|---------|
| `timeline-arch_<ts>.md` | Timeline × Architecture | Understand how the architecture evolved in development order |
| `timeline-review_<ts>.md` | Timeline × Review | Review code phase by phase, each with a file list |
| `arch-review_<ts>.md` | Final state × Architecture | Final architecture overview + module heatmap (if exists) |
| `pr-review_<ts>.md` | Final state × Review | Full final P0/P1/P2 list (if exists) |

If a document does not exist, annotate in the table "Not generated — run `/qq:brief` to generate".

## Reading Order

### Scenario A: First time looking at this branch

Use when: just picked it up, cross-team review, or returning after a long break

1. **timeline-arch** — follow the timeline to understand "how it got to this state", build a mental model
2. **arch-review** — view the final architecture overview and confirm the model is complete
3. **timeline-review** — review code phase by phase (use the quick reference to pick high-risk phases first)
4. **pr-review** — final scan from the final-state perspective to catch systemic risks across phases

### Scenario B: Already familiar with the branch, reviewing code directly

Use when: self-reviewing your own code, routine incremental review

1. **timeline-review** — quick reference → pick phases with most P0s → file list → review each item
2. **pr-review** — catch what was missed: the final-state perspective may reveal cross-phase combination risks

> Skip the two arch documents in Scenario B — you already know the architecture.

## Self-Review Workflow

```
Run /qq:timeline
  ↓
Open timeline-review, check the quick reference table
  ↓
Select phases in descending P0 count order (review highest-risk phases when most focused)
  ↓
For each Phase:
  1. Open the "Files to Review" table → open all P0 files
  2. Go through P0 items one by one → verify against the code
  3. Quickly scan P1 → only check items marked "Suggestion"
  4. Skip P2 (unless there's a question)
  5. Found an issue → fix it → commit
  ↓
All phases reviewed
  ↓
Make sure the project compiles, then run /qq:test to verify
  ↓
Optional: run /qq:brief to generate final-state docs for last-pass coverage
  ↓
Merge
```

## Time Budget

Summarize from the `timeline-review` quick reference table:

| Phase | Estimated Time |
|-------|---------------|
| (copied from quick reference) | |
| **Total** | **X min** |
```

### 7. Output

Write three files to `Docs/qq/<branch-name>/`:
- `timeline-arch_<timestamp>.md`
- `timeline-review_<timestamp>.md`
- `REVIEW_GUIDE.md` (no timestamp, overwritten each time)

Branch name rule: use the current branch name, replacing `/` with `_`.
Timestamp format: `YYYY-MM-DD-HHmm`.

## Notes

- Both timeline documents use identical Phase numbers and names
- A Phase with no points worth reviewing gets "No additional review needed for this phase" in the review document