Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 55 additions & 5 deletions .github/skills/dev/planning/cleanup-completed-issues/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: cleanup-completed-issues
description: Guide for cleaning up completed and closed issues in the torrust-tracker project. Covers moving closed issue documentation files from docs/issues/open/ to docs/issues/closed/ and eventually deleting them. Supports single issue cleanup or batch cleanup. Use when cleaning up closed issues, archiving issue docs, or maintaining the docs/issues/ folder. Triggers on "cleanup issue", "archive issue", "move closed issue", "clean completed issues", "delete closed issue", or "maintain issue docs".
metadata:
author: torrust
version: "1.1"
version: "1.2"
---

# Cleaning Up Completed Issues
Expand Down Expand Up @@ -39,6 +39,22 @@ Related lifecycle docs:

## Step-by-Step Process

### Step 0: Create a Working Branch

This cleanup task may not have a dedicated GitHub issue. Use a descriptive branch name
without an issue prefix:

```bash
git checkout -b chore/cleanup-completed-issues-from-open
```

If there is a linked issue (e.g., automating this process), prefix the branch accordingly:

```bash
# When automating this process uses a tracking issue
git checkout -b 1774-automate-cleanup-completed-issues
```

### Step 1: Verify Issue is Closed on GitHub

**Single issue:**
Expand All @@ -60,17 +76,51 @@ done

### Step 2: Move Issue File to `docs/issues/closed/`

**Single file:**

```bash
# Single issue
git mv docs/issues/open/42-add-peer-expiry-grace-period.md docs/issues/closed/
```

# Batch
**Directory (multi-file subissue spec):**

```bash
git mv docs/issues/open/42-my-subissue-folder/ docs/issues/closed/
```

**Batch files:**

```bash
git mv docs/issues/open/21-some-old-issue.md \
docs/issues/open/22-another-old-issue.md \
docs/issues/closed/
```

### Step 3: Commit and Push
Note: `git mv` on a directory moves all files inside it atomically.

### Step 3: Update Frontmatter of Moved Files

After moving, the spec's YAML frontmatter fields must reflect the closed state:

| Field | Before | After |
| --------------------- | ------------------------ | ------------------------- |
| `status` | `open`, `planned`, etc. | `done` |
| `spec-path` | `docs/issues/open/...` | `docs/issues/closed/...` |
| `last-updated-utc` | previous date | current date |

For directories with multiple files, update at minimum the main `ISSUE.md` plus any
supplementary files whose frontmatter references the `docs/issues/open/` path (e.g.,
`related-artifacts` links to the open spec).

### Step 4: Update Any Parent Epic Spec

If the closed issue was a subissue of an EPIC, update the epic's spec to reflect the
new `docs/issues/closed/` path and `DONE` status in its subissue table.

Example: if `docs/issues/open/EPIC.md` has a table row referencing a subissue at
`docs/issues/open/...` with `TODO` status, update both the path and status after archiving.

### Step 5: Commit and Push

```bash
# Single issue
Expand All @@ -82,7 +132,7 @@ git commit -S -m "chore(issues): archive closed issue specs #21, #22, #23 to doc
git push {your-fork-remote} {branch}
```

### Step 4 (Stage 2): Delete When No Longer Needed
### Step 6 (Stage 2): Delete When No Longer Needed

```bash
git rm docs/issues/closed/42-add-peer-expiry-grace-period.md
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
doc-type: issue
issue-type: bug
status: planned
status: done
priority: p1
github-issue: 1507
spec-path: docs/issues/open/1507-review-localhost-peer-ip.md
spec-path: docs/issues/closed/1507-review-localhost-peer-ip.md
branch: "1507-review-localhost-peer-ip"
related-pr: null
last-updated-utc: 2026-06-17 18:05
last-updated-utc: 2026-06-18 18:00
semantic-links:
skill-links:
- create-issue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
doc-type: issue
issue-type: task
status: open
status: done
priority: p2
github-issue: 1726
spec-path: docs/issues/open/1726-1840-workflow-performance-sccache/ISSUE.md
spec-path: docs/issues/closed/1726-1840-workflow-performance-sccache/ISSUE.md
branch: 1726-reduce-build-times-sccache
related-pr: 1905
last-updated-utc: 2026-06-12 10:00
last-updated-utc: 2026-06-18 18:00
semantic-links:
skill-links:
- create-issue
Expand Down Expand Up @@ -381,7 +381,7 @@ Commit message: `ci: adopt sccache for non-docker ci builds`
- [x] Local benchmark report exists with baseline vs `sccache` (cold, warm, warm-after-change).
- [ ] ~~CI benchmark report exists~~ — **replaced by progressive sub-tasks** (3a → 3d below).
- [x] Recommendation is documented with evidence: **reject sccache for local development**.
- [x] **Task 3a: Bare cargo build with sccache on GHA runner (cold vs warm timing).**mozilla-actions/sccache-action@*,
- [x] **Task 3a: Bare cargo build with sccache on GHA runner (cold vs warm timing).**mozilla-actions/sccache-action@\*,
- Cold: **479.44 s** → Cross-run with sccache: **192.21 s** ✅ (60 % reduction, 93.38 % hit rate)
- [ ] **Task 3b: sccache inside Docker build (Strategy B2 — GHA backend).**
- ✅ `Containerfile.sccache-experiment` created with sccache in `chef` stage
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ semantic-links:
skill-links:
- create-issue
related-artifacts:
- docs/issues/open/1726-1840-workflow-performance-sccache/ISSUE.md
- docs/issues/closed/1726-1840-workflow-performance-sccache/ISSUE.md
---

# Cargo Build & Test Benchmark Results
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
doc-type: issue
issue-type: task
status: planned
status: done
priority: p2
github-issue: 1786
spec-path: docs/issues/open/1786-tighten-lint-config.md
spec-path: docs/issues/closed/1786-tighten-lint-config.md
branch: "1786-tighten-lint-config"
related-pr: 1784
last-updated-utc: 2026-05-15 08:00
last-updated-utc: 2026-06-18 18:00
semantic-links:
skill-links:
- create-issue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
doc-type: issue
issue-type: task
status: open
status: done
priority: p2
github-issue: 1851
spec-path: docs/issues/open/1851-1840-workflow-performance-dockerignore-audit/ISSUE.md
spec-path: docs/issues/closed/1851-1840-workflow-performance-dockerignore-audit/ISSUE.md
branch: "1851-workflow-performance-dockerignore-audit"
related-pr: null
last-updated-utc: 2026-05-29 00:00
last-updated-utc: 2026-06-18 08:30
semantic-links:
skill-links:
- create-issue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
doc-type: issue
issue-type: task
status: open
status: done
priority: p1
github-issue: 1852
spec-path: docs/issues/open/1852-1840-workflow-performance-recipe-stage-manifest-only-copy/ISSUE.md
spec-path: docs/issues/closed/1852-1840-workflow-performance-recipe-stage-manifest-only-copy/ISSUE.md
branch: "1852-recipe-stage-manifest-only-copy"
related-pr: null
last-updated-utc: 2026-06-01 00:00
last-updated-utc: 2026-06-18 08:30
semantic-links:
skill-links:
- create-issue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
doc-type: issue
issue-type: task
status: open
status: done
priority: p1
github-issue: 1868
spec-path: docs/issues/open/1868-1840-workflow-performance-exclude-irrelevant-workspace-members/ISSUE.md
spec-path: docs/issues/closed/1868-1840-workflow-performance-exclude-irrelevant-workspace-members/ISSUE.md
branch: "1868-1840-exclude-irrelevant-workspace-members"
related-pr: null
last-updated-utc: 2026-06-03 00:00
last-updated-utc: 2026-06-18 08:30
semantic-links:
skill-links:
- create-issue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
doc-type: issue
issue-type: task
status: open
status: done
priority: p2
epic: 1669
github-issue: 1904
spec-path: docs/issues/open/1904-1669-si-24-relocate-http-server-test-environment.md
spec-path: docs/issues/closed/1904-1669-si-24-relocate-http-server-test-environment.md
branch: 1904-relocate-http-server-test-environment
related-pr: 1915
last-updated-utc: 2026-06-15
last-updated-utc: 2026-06-18 18:00
semantic-links:
skill-links:
- create-issue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
doc-type: issue
issue-type: task
status: open
status: done
priority: p2
epic: 1669
github-issue: 1906
spec-path: docs/issues/open/1906-1669-si-25-relocate-udp-server-test-environment.md
spec-path: docs/issues/closed/1906-1669-si-25-relocate-udp-server-test-environment.md
branch: 1906-relocate-udp-server-test-environment
related-pr: 1916
last-updated-utc: 2026-06-17
last-updated-utc: 2026-06-18 18:00
semantic-links:
skill-links:
- create-issue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
doc-type: issue
issue-type: task
status: open
status: done
priority: p2
epic: 1669
github-issue: 1907
spec-path: docs/issues/open/1907-1669-si-26-remove-udp-protocol-peer-id-re-export.md
spec-path: docs/issues/closed/1907-1669-si-26-remove-udp-protocol-peer-id-re-export.md
branch: null
related-pr: null
last-updated-utc: 2026-06-10
last-updated-utc: 2026-06-18 18:00
semantic-links:
skill-links:
- create-issue
Expand Down
Loading