docs: retire the central tracker entirely

All 234 issues were verified and moved to the repo that owns the code;
the 26 epics were dissolved into per-repo issues held together by a
shared title prefix and sibling cross-links. Nothing is filed here now.
This commit is contained in:
spikerj committed 2026-08-07 14:32:47 +00:00
1 parent 8fa2456ba6
commit 07361be7ed
1 file changed
+12 -7
+12 -7
View File
@@ -1119,24 +1119,29 @@ dotnet test --filter "Category=Unit" # Unit tests only
| Python art pipeline, model backends, its Dockerfiles | `spikersoft-artpipe` | | Python art pipeline, model backends, its Dockerfiles | `spikersoft-artpipe` |
| Native mobile apps | `spikersoft-ios` / `spikersoft-android` | | Native mobile apps | `spikersoft-ios` / `spikersoft-android` |
| Godot client | `spikersoft-games-godot` | | Godot client | `spikersoft-games-godot` |
| **Cross-repo epics only** | `spikersoft-issues` |
**There is no central tracker.** `spikerj/spikersoft-issues` was retired on 2026-08-07 and
now holds this README only — do not file there.
The reason is mechanical: Gitea auto-closes an issue when a merged PR says `fixes #N` The reason is mechanical: Gitea auto-closes an issue when a merged PR says `fixes #N`
**only within the same repo**. A ticket filed in a central tracker can never close itself, **only within the same repo**. A ticket filed in a central tracker can never close itself,
so completed work silently accumulates as an open backlog. That is exactly what happened — so completed work silently accumulates as an open backlog. That is exactly what happened —
the umbrella tracker reached 234 open issues, a large share of which were already shipped. the umbrella tracker reached 234 open issues before it was broken up.
Rules that follow from this: Rules that follow from this:
- A ticket must be **closeable by merging in one repo**. If it isn't, it's really several - A ticket must be **closeable by merging in one repo**. If it isn't, it's really several
tickets. tickets.
- Work spanning repos becomes **one narrowly-scoped issue per repo**, cross-linked to its - Work spanning repos becomes **one narrowly-scoped issue per repo**. There is no epic
siblings by full reference (`spikerj/spikersoft-backend#12`) and pointing at its epic. parent — a unit is held together by two things instead:
- **Epics live in [`spikerj/spikersoft-issues`](https://git.spikersoft.com/spikerj/spikersoft-issues)** 1. a **shared title prefix**, e.g. `[Scheduling] Backend: recurrence expansion`, so the
and hold no implementation work of their own — only a checklist of per-repo children. whole unit is one search away; and
They are the one thing that legitimately closes by hand. 2. a **sibling cross-link block** in every issue body listing the unit by full reference.
- Reference issues across repos with the **full `owner/repo#N` form**. A bare `#N` resolves - Reference issues across repos with the **full `owner/repo#N` form**. A bare `#N` resolves
against the repo you're writing in, which silently points at an unrelated ticket. against the repo you're writing in, which silently points at an unrelated ticket.
- When an epic-sized idea has genuinely undecided design, file a **decision issue** stating
the concrete options and what must be settled. That is a real, closeable deliverable; a
vague "implement X" stub is not.
### QA: Gitea issues and the AI agent (MCP) ### QA: Gitea issues and the AI agent (MCP)