Also includes: wiki star system pages (north/south/east/deep frontier), GTTR entries, content fixes from prior planning work
Tickets
#676: Assign team and sprint for v0.2 story tickets (#614–#626) — done
Test plan
Decision IDs D-146, D-147 are unique and cross-references resolve
Sprint 28 candidates list matches DB state (ticket teams, blockers)
No broken anchor links in decision files
## Summary
- Assign teams to all 12 v0.2 story tickets (#614–#626)
- Resolve Q-WTF-039: tile-scale sprite with heavy zoom for character creation (D-146)
- Resolve Q-WTF-040: aesthetic taste as personality trait, not cosmetic→apartment pipeline (D-147)
- Split #617 (apartment) into #681 (server generator) + #682 (client rendering + first moment)
- Split #620 (culture) into #679 (server resolution) + #680 (client location picker)
- Sprint 28 candidate list: 7 unblocked tickets ready for sprint planning
- Also includes: wiki star system pages (north/south/east/deep frontier), GTTR entries, content fixes from prior planning work
## Tickets
- #676: Assign team and sprint for v0.2 story tickets (#614–#626) — done
## Test plan
- [ ] Decision IDs D-146, D-147 are unique and cross-references resolve
- [ ] Sprint 28 candidates list matches DB state (ticket teams, blockers)
- [ ] No broken anchor links in decision files
Resolve Q-WTF-039 (tile-scale heavy zoom, not portrait — D-146) and
Q-WTF-040 (aesthetic taste trait as shared root — D-147). Split #617
into server generator + client rendering, split #620 into server
culture resolution + client location picker. Sprint 28 candidate list
with 7 unblocked tickets.
Ticket: #676
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sprint 27 planning session exposed that discussion agents (Ozzie) can
unilaterally write decisions and modify the DB before consensus is
reached. Add step 8d-planning to /sprint-start that classifies agents
as proposers (analyze only) or executors (SI, Qatux — wait for
consensus). Also add planning to valid team branches.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Well-structured PR with thorough decision content, but has concrete reference errors.
#
File
Severity
Issue
1
decisions/content.md:571
warning
Footer says 45 decisions but actual count is 44. Verify and fix.
2
decisions/scope.md:298, decisions/content.md:566
warning
D-146 and D-147 both link D-134 as content.md#d-134-... but D-134 lives in architecture.md. Broken cross-reference.
3
decisions/content.md:560
warning
D-147 body references #620 which was split/deleted — should reference #679 instead.
4
decisions/content.md, decisions/scope.md
suggestion
Mixed British/American "customisation" vs "customization" within the PR. Not blocking per project convention, but worth aligning with ticket #619's title.
5
docs/sprints/sprint-28/sprint-28-candidates.md:31
suggestion
Totals line counts #679 separately as "+1 server unblocking ticket" — confusing when it's already a server ticket. Reword to "server (4), client (1), planning (2)".
Tyre (Architecture): REQUEST_CHANGES
D-147 (taste trait) is architecturally elegant. Planning team proposer/executor split is well-designed. Three issues need fixing.
#
File
Severity
Issue
1
decisions/README.md
warning
D-145, D-146, D-147 missing from the index. Agents navigating via README won't find these decisions.
2
docs/sprints/sprint-28/sprint-28-candidates.md:45
warning
Q-WTF-041 referenced as a blocker for #626 but has no entry in any questions file. Untracked open question.
Decision counts may be stale — verify both footers match actual ### D- header counts.
4
decisions/content.md D-147
suggestion
aesthetic_taste needs a downstream note about information boundary classification per D-010 (public? NPC-visible? server-only?). Not blocking, but prevents future confusion.
5
.claude/skills/sprint-start/SKILL.md 8d-planning
suggestion
Proposer rules lack a "your first message should be..." instruction — asymmetric with executor rules.
Verdict: CHANGES REQUESTED
4 warnings across both reviewers need fixing before merge:
D-134 cross-reference points to wrong file (content.md → architecture.md)
Stale ticket #620 reference in D-147 body (should be #679)
README.md index missing D-145/D-146/D-147
Q-WTF-041 untracked — referenced as blocker but has no questions file entry
## Review: planning -> main (type: code)
### Hoshe (Code Quality): REQUEST_CHANGES
Well-structured PR with thorough decision content, but has concrete reference errors.
| # | File | Severity | Issue |
|---|------|----------|-------|
| 1 | `decisions/content.md`:571 | warning | Footer says *45 decisions* but actual count is 44. Verify and fix. |
| 2 | `decisions/scope.md`:298, `decisions/content.md`:566 | warning | D-146 and D-147 both link D-134 as `content.md#d-134-...` but D-134 lives in `architecture.md`. Broken cross-reference. |
| 3 | `decisions/content.md`:560 | warning | D-147 body references #620 which was split/deleted — should reference #679 instead. |
| 4 | `decisions/content.md`, `decisions/scope.md` | suggestion | Mixed British/American "customisation" vs "customization" within the PR. Not blocking per project convention, but worth aligning with ticket #619's title. |
| 5 | `docs/sprints/sprint-28/sprint-28-candidates.md`:31 | suggestion | Totals line counts #679 separately as "+1 server unblocking ticket" — confusing when it's already a server ticket. Reword to "server (4), client (1), planning (2)". |
### Tyre (Architecture): REQUEST_CHANGES
D-147 (taste trait) is architecturally elegant. Planning team proposer/executor split is well-designed. Three issues need fixing.
| # | File | Severity | Issue |
|---|------|----------|-------|
| 1 | `decisions/README.md` | warning | D-145, D-146, D-147 missing from the index. Agents navigating via README won't find these decisions. |
| 2 | `docs/sprints/sprint-28/sprint-28-candidates.md`:45 | warning | Q-WTF-041 referenced as a blocker for #626 but has no entry in any questions file. Untracked open question. |
| 3 | `decisions/content.md` footer, `decisions/scope.md` footer | suggestion | Decision counts may be stale — verify both footers match actual `### D-` header counts. |
| 4 | `decisions/content.md` D-147 | suggestion | `aesthetic_taste` needs a downstream note about information boundary classification per D-010 (public? NPC-visible? server-only?). Not blocking, but prevents future confusion. |
| 5 | `.claude/skills/sprint-start/SKILL.md` 8d-planning | suggestion | Proposer rules lack a "your first message should be..." instruction — asymmetric with executor rules. |
### Verdict: CHANGES REQUESTED
**4 warnings** across both reviewers need fixing before merge:
1. **D-134 cross-reference** points to wrong file (content.md → architecture.md)
2. **Stale ticket #620 reference** in D-147 body (should be #679)
3. **README.md index** missing D-145/D-146/D-147
4. **Q-WTF-041 untracked** — referenced as blocker but has no questions file entry
- Fix D-134 cross-references to point to architecture.md (not content.md)
- Fix stale #620 reference in D-147 body (now #679)
- Fix content.md footer count (44, not 45)
- Add D-145, D-146, D-147 to decisions/README.md index
- Add Q-WTF-041 entry to questions-content.md (was referenced but untracked)
- Fix sprint-28-candidates.md totals line
- Align spelling to British "customisation" throughout new decisions
- Add information boundary classification to D-147 (public trait, per D-010)
- Add "first message" instruction to proposer rules in sprint-start skill
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Previous round requested 4 fixes. Re-review after commit a69c75d.
Hoshe (Code Quality): REQUEST_CHANGES
All 5 previous warnings confirmed fixed. Two new index issues found.
#
File
Severity
Issue
1
decisions/README.md:21
warning
questions-content.md row doesn't list Q-WTF-039, Q-WTF-040, Q-WTF-041 — ends at Q-052.
2
decisions/questions.md
warning
Master questions index not updated — footer says "54 questions, 2026-02-28", summary table shows "Content: 21". Three new Q-WTF entries missing. The file's own "Adding a Question" instructions require this (step 5).
#623 silently absent from #614–#626 inventory. A one-line note ("#623 cancelled — superseded by #638") would prevent confusion.
Tyre (Architecture): APPROVE
All 5 previous items properly resolved. README index updated with D-145/D-146/D-147. Q-WTF-041 well-formed with blockers and stakeholders. D-010 boundary note on aesthetic_taste is architecturally sound. Proposer/executor first-message instructions are symmetric. No new architectural issues.
#
File
Severity
Issue
1
docs/sprints/sprint-28/sprint-28-candidates.md
suggestion
Q-WTF-041 design pass recommended as Sprint 28 planning ticket but not added to the candidate list. Acknowledged in the doc — not a merge blocker.
Verdict: CHANGES REQUESTED
2 warnings from Hoshe — Q-WTF question entries need adding to index files:
decisions/README.md — add Q-WTF-039/040/041 to the questions-content.md row
decisions/questions.md — update master index table, footer count, and README range
## Review Round 2: planning -> main (type: code)
Previous round requested 4 fixes. Re-review after commit `a69c75d`.
### Hoshe (Code Quality): REQUEST_CHANGES
All 5 previous warnings confirmed fixed. Two new index issues found.
| # | File | Severity | Issue |
|---|------|----------|-------|
| 1 | `decisions/README.md`:21 | warning | `questions-content.md` row doesn't list Q-WTF-039, Q-WTF-040, Q-WTF-041 — ends at Q-052. |
| 2 | `decisions/questions.md` | warning | Master questions index not updated — footer says "54 questions, 2026-02-28", summary table shows "Content: 21". Three new Q-WTF entries missing. The file's own "Adding a Question" instructions require this (step 5). |
| 3 | `docs/discussions/round-21-v02-ticket-assignments.md` | suggestion | #623 silently absent from #614–#626 inventory. A one-line note ("#623 cancelled — superseded by #638") would prevent confusion. |
### Tyre (Architecture): APPROVE
All 5 previous items properly resolved. README index updated with D-145/D-146/D-147. Q-WTF-041 well-formed with blockers and stakeholders. D-010 boundary note on `aesthetic_taste` is architecturally sound. Proposer/executor first-message instructions are symmetric. No new architectural issues.
| # | File | Severity | Issue |
|---|------|----------|-------|
| 1 | `docs/sprints/sprint-28/sprint-28-candidates.md` | suggestion | Q-WTF-041 design pass recommended as Sprint 28 planning ticket but not added to the candidate list. Acknowledged in the doc — not a merge blocker. |
### Verdict: CHANGES REQUESTED
**2 warnings** from Hoshe — Q-WTF question entries need adding to index files:
1. **`decisions/README.md`** — add Q-WTF-039/040/041 to the `questions-content.md` row
2. **`decisions/questions.md`** — update master index table, footer count, and README range
Round 2 fixes (Q-WTF index entries, #623 note) all landed correctly.
Hoshe (Code Quality): REQUEST_CHANGES
#
File
Severity
Issue
1
decisions/questions.md summary table
warning
Content row says Resolved=7, Open=15. questions-content.md footer says 9/2/13. Manual recount gives 10/2/12. Both files disagree with each other and with reality.
2
decisions/questions.md summary table
warning
Scope Total=14 but 15 IDs in the row (Q-058 missing from count). Grand Total should be 61, not 60.
3
decisions/README.md
suggestion
Pre-existing: Q-012–Q-015 range implies Q-014 is in content, but Q-014 is in perception. Not a regression from this PR.
Tyre (Architecture): APPROVE
Q-WTF-041 design pass now in candidate list. Proposer/executor split confirmed. No architectural issues.
#
File
Severity
Issue
1
decisions/README.md
suggestion
Questions index rows stale — Q-059 missing from architecture, Q-056/057 from content range, Q-058 from scope range. Not blocking.
Verdict: CHANGES REQUESTED
2 warnings — questions.md summary table counts disagree with the domain files. Need a recount pass on Content (resolved/open split) and Scope (total).
## Review Round 3: planning -> main (type: code)
Round 2 fixes (Q-WTF index entries, #623 note) all landed correctly.
### Hoshe (Code Quality): REQUEST_CHANGES
| # | File | Severity | Issue |
|---|------|----------|-------|
| 1 | `decisions/questions.md` summary table | warning | Content row says Resolved=7, Open=15. `questions-content.md` footer says 9/2/13. Manual recount gives 10/2/12. Both files disagree with each other and with reality. |
| 2 | `decisions/questions.md` summary table | warning | Scope Total=14 but 15 IDs in the row (Q-058 missing from count). Grand Total should be 61, not 60. |
| 3 | `decisions/README.md` | suggestion | Pre-existing: `Q-012–Q-015` range implies Q-014 is in content, but Q-014 is in perception. Not a regression from this PR. |
### Tyre (Architecture): APPROVE
Q-WTF-041 design pass now in candidate list. Proposer/executor split confirmed. No architectural issues.
| # | File | Severity | Issue |
|---|------|----------|-------|
| 1 | `decisions/README.md` | suggestion | Questions index rows stale — Q-059 missing from architecture, Q-056/057 from content range, Q-058 from scope range. Not blocking. |
### Verdict: CHANGES REQUESTED
**2 warnings** — `questions.md` summary table counts disagree with the domain files. Need a recount pass on Content (resolved/open split) and Scope (total).
Full recount across all 4 question domain files. Content: 10 resolved
(not 9), 12 open (not 13). Scope: 15 total (not 14, Q-058 was missing
from count). Grand total: 61 questions. Both questions.md summary table
and questions-content.md footer now match actual header counts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Manual recount verified. Content: 24 (10 resolved, 2 partial, 12 open). Scope: 15 (2/3/10). Grand Total: 61 (24/7/30). All match between questions.md summary table, domain file footers, and actual header counts. No regressions from earlier rounds.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Tickets
Test plan
Review: planning -> main (type: code)
Hoshe (Code Quality): REQUEST_CHANGES
Well-structured PR with thorough decision content, but has concrete reference errors.
decisions/content.md:571decisions/scope.md:298,decisions/content.md:566content.md#d-134-...but D-134 lives inarchitecture.md. Broken cross-reference.decisions/content.md:560decisions/content.md,decisions/scope.mddocs/sprints/sprint-28/sprint-28-candidates.md:31Tyre (Architecture): REQUEST_CHANGES
D-147 (taste trait) is architecturally elegant. Planning team proposer/executor split is well-designed. Three issues need fixing.
decisions/README.mddocs/sprints/sprint-28/sprint-28-candidates.md:45decisions/content.mdfooter,decisions/scope.mdfooter### D-header counts.decisions/content.mdD-147aesthetic_tasteneeds a downstream note about information boundary classification per D-010 (public? NPC-visible? server-only?). Not blocking, but prevents future confusion..claude/skills/sprint-start/SKILL.md8d-planningVerdict: CHANGES REQUESTED
4 warnings across both reviewers need fixing before merge:
Review Round 2: planning -> main (type: code)
Previous round requested 4 fixes. Re-review after commit
a69c75d.Hoshe (Code Quality): REQUEST_CHANGES
All 5 previous warnings confirmed fixed. Two new index issues found.
decisions/README.md:21questions-content.mdrow doesn't list Q-WTF-039, Q-WTF-040, Q-WTF-041 — ends at Q-052.decisions/questions.mddocs/discussions/round-21-v02-ticket-assignments.mdTyre (Architecture): APPROVE
All 5 previous items properly resolved. README index updated with D-145/D-146/D-147. Q-WTF-041 well-formed with blockers and stakeholders. D-010 boundary note on
aesthetic_tasteis architecturally sound. Proposer/executor first-message instructions are symmetric. No new architectural issues.docs/sprints/sprint-28/sprint-28-candidates.mdVerdict: CHANGES REQUESTED
2 warnings from Hoshe — Q-WTF question entries need adding to index files:
decisions/README.md— add Q-WTF-039/040/041 to thequestions-content.mdrowdecisions/questions.md— update master index table, footer count, and README rangeReview Round 3: planning -> main (type: code)
Round 2 fixes (Q-WTF index entries, #623 note) all landed correctly.
Hoshe (Code Quality): REQUEST_CHANGES
decisions/questions.mdsummary tablequestions-content.mdfooter says 9/2/13. Manual recount gives 10/2/12. Both files disagree with each other and with reality.decisions/questions.mdsummary tabledecisions/README.mdQ-012–Q-015range implies Q-014 is in content, but Q-014 is in perception. Not a regression from this PR.Tyre (Architecture): APPROVE
Q-WTF-041 design pass now in candidate list. Proposer/executor split confirmed. No architectural issues.
decisions/README.mdVerdict: CHANGES REQUESTED
2 warnings —
questions.mdsummary table counts disagree with the domain files. Need a recount pass on Content (resolved/open split) and Scope (total).Review Round 4: planning -> main (type: code)
Hoshe (Code Quality): APPROVE
Manual recount verified. Content: 24 (10 resolved, 2 partial, 12 open). Scope: 15 (2/3/10). Grand Total: 61 (24/7/30). All match between
questions.mdsummary table, domain file footers, and actual header counts. No regressions from earlier rounds.Tyre (Architecture): APPROVE
Summary table arithmetic internally consistent. Critical paths correct. SKILL.md 8d-planning clean. No architectural issues.
Verdict: APPROVED
Pull request closed