docs: add live-operation issue tracking implementation plan
Some checks failed
Gitea CI / test (pull_request) Failing after 5s
Some checks failed
Gitea CI / test (pull_request) Failing after 5s
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
# Live Operation Issue Tracking Implementation Plan
|
||||
|
||||
> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
|
||||
|
||||
**Goal:** Track real-operation confirmation for all open Gitea issues with per-issue comments and a synchronized summary on the `80` PR, then close issues in dependency-safe order.
|
||||
|
||||
**Architecture:** Use issue tickets as the primary state log with a strict four-state lifecycle. Maintain one aggregate status comment on `task/80-implementation-audit-closeout` PR. Enforce child-first closure and parent close gating.
|
||||
|
||||
**Tech Stack:** Git CLI, Gitea CLI (`tea`), Markdown (`docs/ouroboros/80_implementation_audit.md`)
|
||||
|
||||
---
|
||||
|
||||
### Task 1: Snapshot open issues and classify parent-child graph
|
||||
|
||||
**Files:**
|
||||
- Create: none
|
||||
- Modify: none
|
||||
- Test: `tea issues ls` output inspection
|
||||
|
||||
**Step 1: Capture open issue list**
|
||||
|
||||
Run: `tea issues ls --state open --limit 200`
|
||||
Expected: list of all open issues (including `318~381`).
|
||||
|
||||
**Step 2: Fetch details for each issue**
|
||||
|
||||
Run: `for n in $(tea issues ls --state open --limit 200 --output json | jq -r '.[].number'); do tea issue view "$n"; done`
|
||||
Expected: issue bodies/comments available for relation parsing.
|
||||
|
||||
**Step 3: Extract parent-child references**
|
||||
|
||||
Run: parse issue text for relation keywords (`parent`, `child`, `depends on`, `blocks`).
|
||||
Expected: dependency map ready.
|
||||
|
||||
**Step 4: Validate unresolved dependency edges**
|
||||
|
||||
Run: verify each parent references only existing issue numbers.
|
||||
Expected: no dangling child references.
|
||||
|
||||
**Step 5: Commit**
|
||||
|
||||
```bash
|
||||
# no commit (discovery task)
|
||||
```
|
||||
|
||||
### Task 2: Initialize per-issue tracking comments (`NOT_STARTED`)
|
||||
|
||||
**Files:**
|
||||
- Create: none
|
||||
- Modify: none
|
||||
- Test: issue comment presence check
|
||||
|
||||
**Step 1: Prepare standard template text**
|
||||
|
||||
```text
|
||||
Status: NOT_STARTED
|
||||
Observed At: <KST>, <UTC>
|
||||
Environment: live
|
||||
Evidence: N/A
|
||||
Next: Begin live observation for this issue.
|
||||
```
|
||||
|
||||
**Step 2: Post initialization comment to each open issue**
|
||||
|
||||
Run: `tea issues comment <issue-number> --message "<template>"`
|
||||
Expected: each open issue has one initialization comment.
|
||||
|
||||
**Step 3: Verify comment coverage**
|
||||
|
||||
Run: sample-check each issue (`tea issue view <issue-number>`) for latest status comment.
|
||||
Expected: 100% coverage across open issues.
|
||||
|
||||
**Step 4: Commit**
|
||||
|
||||
```bash
|
||||
# no commit (ticket operations)
|
||||
```
|
||||
|
||||
### Task 3: Create and maintain `80` PR aggregate status comment
|
||||
|
||||
**Files:**
|
||||
- Modify: `docs/ouroboros/80_implementation_audit.md` (final sync only, not this task)
|
||||
- Test: PR comment contains full issue table
|
||||
|
||||
**Step 1: Identify PR number for `task/80-implementation-audit-closeout`**
|
||||
|
||||
Run: `tea pr ls --state open`
|
||||
Expected: PR number for `task/80...` identified.
|
||||
|
||||
**Step 2: Post initial summary comment**
|
||||
|
||||
Run: `tea pr comment <pr-number> --message "<issue-state-summary-table>"`
|
||||
Expected: one aggregate comment listing `issue | state | last observed at | parent/child`.
|
||||
|
||||
**Step 3: Define update protocol**
|
||||
|
||||
Run: update same summary comment on every issue state change.
|
||||
Expected: summary remains single-source aggregate view.
|
||||
|
||||
**Step 4: Commit**
|
||||
|
||||
```bash
|
||||
# no commit (ticket/PR operations)
|
||||
```
|
||||
|
||||
### Task 4: Execute live observation loop and mark `OBSERVING` -> `CONFIRMED`
|
||||
|
||||
**Files:**
|
||||
- Create: none
|
||||
- Modify: none
|
||||
- Test: evidence-backed state transitions present in issue comments
|
||||
|
||||
**Step 1: Mark active issue as `OBSERVING`**
|
||||
|
||||
Run: `tea issues comment <issue-number> --message "Status: OBSERVING ..."`
|
||||
Expected: issue history shows observation started.
|
||||
|
||||
**Step 2: Capture one real-operation evidence item**
|
||||
|
||||
Run: collect log/query/order identifier tied to issue behavior.
|
||||
Expected: one concrete evidence reference captured.
|
||||
|
||||
**Step 3: Mark issue `CONFIRMED`**
|
||||
|
||||
Run: `tea issues comment <issue-number> --message "Status: CONFIRMED ... Evidence: <id> ..."`
|
||||
Expected: issue has explicit confirmed state.
|
||||
|
||||
**Step 4: Sync PR aggregate summary**
|
||||
|
||||
Run: update `80` PR summary comment row for that issue.
|
||||
Expected: PR summary and issue status aligned.
|
||||
|
||||
**Step 5: Commit**
|
||||
|
||||
```bash
|
||||
# no commit (ticket operations)
|
||||
```
|
||||
|
||||
### Task 5: Close issues with child-first dependency enforcement
|
||||
|
||||
**Files:**
|
||||
- Create: none
|
||||
- Modify: none
|
||||
- Test: parent close attempted only after all children closed
|
||||
|
||||
**Step 1: Close confirmed child issues first**
|
||||
|
||||
Run: `tea issues close <child-issue-number>`
|
||||
Expected: child issue state becomes closed.
|
||||
|
||||
**Step 2: Verify all children for each parent**
|
||||
|
||||
Run: evaluate dependency map for remaining non-closed children.
|
||||
Expected: parent close gate decision available.
|
||||
|
||||
**Step 3: Close eligible parent issues**
|
||||
|
||||
Run: `tea issues close <parent-issue-number>`
|
||||
Expected: parent is closed only when all children are closed.
|
||||
|
||||
**Step 4: Post closure comment and sync PR summary**
|
||||
|
||||
Run: comment `Status: CLOSED` on closed issue and update PR summary row.
|
||||
Expected: closure trace exists in both issue and PR aggregate.
|
||||
|
||||
**Step 5: Commit**
|
||||
|
||||
```bash
|
||||
# no commit (ticket operations)
|
||||
```
|
||||
|
||||
### Task 6: Reflect final tracked outcomes in `80` audit and commit
|
||||
|
||||
**Files:**
|
||||
- Modify: `docs/ouroboros/80_implementation_audit.md`
|
||||
- Test: markdown consistency + traceability check
|
||||
|
||||
**Step 1: Update `80` with final live-confirmed statuses**
|
||||
|
||||
Run: edit status lines and evidence summary sections.
|
||||
Expected: document reflects final issue states and confirmation notes.
|
||||
|
||||
**Step 2: Add issue closure summary block**
|
||||
|
||||
Run: include closed child/parent sequence summary.
|
||||
Expected: audit reader can verify closure logic quickly.
|
||||
|
||||
**Step 3: Validate references**
|
||||
|
||||
Run: ensure issue numbers in doc match actual closed/open states.
|
||||
Expected: no mismatch between doc and Gitea.
|
||||
|
||||
**Step 4: Commit closeout doc update**
|
||||
|
||||
```bash
|
||||
git add docs/ouroboros/80_implementation_audit.md
|
||||
git commit -m "docs: finalize 80 audit with live-operation issue confirmations"
|
||||
```
|
||||
|
||||
**Step 5: Push branch**
|
||||
|
||||
Run: `git push`
|
||||
Expected: closeout commit available on `task/80-implementation-audit-closeout`.
|
||||
Reference in New Issue
Block a user