Agent skill

Archive Issue

by foyzulkarim in foyzulkarim/claude-lens

Retire a closed issue's working artifacts out of specs/ into the GitHub wiki — use when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's…

MITAuto-check passedDevelopment

Install Archive Issue

skills CLI
$ npx skills add foyzulkarim/claude-lens --skill archive-issue -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install foyzulkarim/claude-lens archive-issue --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/foyzulkarim/claude-lens.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/archive-issue .claude/skills/archive-issue && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
archive-issue
GitHub stars
251
Token cost
~2.8k tokens
SKILL.md length
1,552 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Retire a closed issue's working artifacts out of specs/ into the GitHub wiki — use when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's…

  • Works in 8 steps: Ensure the local wiki clone is current → Resolve the anchor, confirm closed → Derive the source artifacts from the… → …
  • The user asks to archive a finished issue
  • SKILL.md covers Step 0 — Ensure the local wiki…, Step 1 — Resolve the anchor,…, Step 2 — Derive the source… and Step 3 — Write the hub page, plus 4 more sections
  • Calls git and gh

What it does

Archive Issue is an agent skill from foyzulkarim/claude-lens. Retire a closed issue's working artifacts out of specs/ into the GitHub wiki — use when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's requirements/architecture/review docs to the wiki.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Software architecture. It works with GitHub and Git. The repository describes itself as: A local dashboard for visualizing your Claude Code usage — sessions, token costs, cache performance, tool calls, and daily breakdowns. The licence is MIT.

When your agent uses it

  • The user asks to archive a finished issue
  • Empty out specs/ for a done task
  • Move an issues requirements/architecture/review docs to the wiki

Example prompts

  • “/archive-issue”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Ensure the local wiki clone is current
  2. Resolve the anchor, confirm closed
  3. Derive the source artifacts from the anchor
  4. Write the hub page
  5. Write the sub-pages
  6. Update the index
  7. Retire the sources from the main repo
  8. Commit and push the wiki, with confirmation

What it can do on your machine

Read from SKILL.md and the folder at commit 7937ea1. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Archive Issue loads about 2.8k tokens when it runs. Until then it costs about 62 tokens; SKILL.md has 1,552 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~62
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from foyzulkarim/claude-lens at commit 7937ea1, republished under its MIT licence (© foyzulkarim). 1,552 words, ~2,834 tokens.

Download SKILL.mdSave it as .claude/skills/archive-issue/SKILL.md (or your agent's skills folder).
name
archive-issue
description
Retire a closed issue's working artifacts out of specs/ into the GitHub wiki — use when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's requirements/architecture/review docs to the wiki.
model
inherit

Archive Issue

Once an issue closes, GitHub is the source of truth for its scope — but its requirements, architecture, and code-review docs under specs/ still hold reasoning worth keeping. This skill retires them out of specs/ straight into the GitHub wiki (specs/wiki-structure.md is the authoritative layout spec — read it before doing anything else if you haven't already; the Correlation model section there is what Steps 1–2 below execute). Nothing archived is ever committed to the main repo — the wiki is the only place this content lives.

Step 0 — Ensure the local wiki clone is current

Work happens in a local working clone of the wiki repo, conventionally at .wiki/ in the main repo root (gitignored — never part of this repo's history):

  • If .wiki/ doesn't exist: git clone <repo>.wiki.git .wiki.
  • If it exists: git -C .wiki pull --ff-only before making any changes, so you're not archiving on top of a stale copy.

All of Steps 3–5 write into this clone, not into the main repo.

Step 1 — Resolve the anchor, confirm closed

Take the issue number (or plan-task ID, e.g. #P1-1) from the user — pass it explicitly (/archive-issue 70, or "archive issue 70") whenever you know it; this pins Step 2's resolution to that one issue's artifacts instead of leaving them to be found by scanning, which is where cross-issue mix-ups come from. The issue record (specs/issues/<ID>-<slug>.md) is the normal anchor for everything that follows — find it by scanning specs/issues/*.md frontmatter for issue: N (if given a number) or by its filename prefix (if given a plan-task ID). From that one file, read off: primary plan-task <ID>, slug <slug>, issue number N, GitHub URL, and phase (derived from <ID>'s prefix P<phase>-<n>; no ID → Unphased).

If the issue record is already gone but other artifacts for that N still linger (a partial or interrupted prior archive can leave specs/context/<N>.md, a specs/requirements// specs/architecture/ file, or a specs/reviews/REV-*.md / CODE-REVIEW-*.md behind without the issue record) — don't treat the missing record as "nothing to archive." Derive <ID>/<slug> from whatever's left instead: specs/context/<N>.md's frontmatter description: carries #P<phase>-<n> — <title>; a surviving REQ-<slug>.md/ARCH-<slug>.md filename carries <slug> directly; gh issue view N gives the title, URL, and closed state regardless. Confirm closed via gh issue view N in this case since there's no issue record to have already recorded it.

Confirm the issue's GitHub state is closed. If it's still open, stop and say so — this is a retirement step, not a drafting one; open-issue artifacts stay in specs/ where the active pipeline expects them. Make no changes to specs/ or .wiki/.

If the issue's title notes it absorbed another plan-task (e.g. "#13 absorbs #P0-5"), the absorbed ID is noted in the hub overview later — it does not change which phase this issue is grouped under (the primary task's phase always wins).

Step 2 — Derive the source artifacts from the anchor

Using <ID>, <slug>, and N from Step 1, resolve each source directly (no searching required — this is the point of the anchor):

SourceResolved asSub-page?
specs/issues/<ID>-<slug>.mdis the anchorNo — fold its Summary into the hub; link the GitHub issue instead of duplicating the body
specs/context/<N>.mddirect pathNo — overlaps the issue body; delete, don't mirror
specs/requirements/REQ-<slug>.mddirect path, if it existsYes → issue-NNN/REQ-<slug>.md — same filename, only the directory changes
specs/architecture/ARCH-<slug>.mddirect path, if it existsYes → issue-NNN/ARCH-<slug>.md — same filename
Review report — current convention: specs/reviews/REV-PR-<N>.md / REV-BRANCH-<safe-name>.md / REV-STAGED-*.md / REV-DIFF-*.md (per ~/.claude/skills/review/SKILL.md's "General mode" save location); older /review output may still linger as CODE-REVIEW-*.md at the repo root or specs/review/ — search all of them, e.g. find . -maxdepth 2 -iname 'CODE-REVIEW-*.md'; find specs/reviews -iname 'REV-*.md', don't assume one fixed spotevery file whose Target metadata row's branch is feat/<N>/… — matched by branch, never by assuming the PR number equals the issue number, and never by directoryYes, one per matching file, each keeping its original filename (REV-PR-76.md stays REV-PR-76.md, CODE-REVIEW-PR-60.md stays CODE-REVIEW-PR-60.md)

Most issues (bugs, chores, small enhancements) never had a REQ/ARCH/review doc — only add the sub-pages that actually exist. Don't invent placeholder pages for missing docs.

Never rename a file on archive. Only its directory changes (specs/requirements/ → issue-NNN/, etc.) — the filename itself is untouched. This is deliberate (see wiki-structure.md's Rules): generic names like requirements.md/review.md were tried once and reverted the same day because they break recognition against the specs/ names these documents are already known by.

Multiple reviews: if more than one review report's Target branch matches feat/<N>/… (multiple PRs against the same issue), every one gets its own sub-page under its own original name — REV-PR-60.md and REV-PR-72.md (or their CODE-REVIEW-*.md equivalents) both land in issue-NNN/ unchanged, no renaming needed since their own filenames already disambiguate them. A branch-mode review (no PR — its Target names a branch/commit rather than a PR URL) archives the same way under its own name (e.g. REV-BRANCH-feat-13-…md, or the legacy CODE-REVIEW-BRANCH-feat-13-…md); the branch-mode nature doesn't block sub-page creation, only affects the hub's PR(s): line (Step 3).

If a review report's branch doesn't obviously match the issue slug, check its Target metadata row before attributing it — don't archive a review that belongs to a different issue. If it genuinely can't be matched, leave it out and flag it to the user rather than guessing.

Show full SKILL.md (694 more words)Show less

Step 3 — Write the hub page

.wiki/issue-NNN.md (zero-padded to 3 digits). The metadata line is mandatory and must preserve every correlation key, since specs/ is about to be emptied of them:

**Plan task:** #P<X>-<Y> · **Phase:** <X> · **PR(s):** #NN[, #MM…] · **Closed:** YYYY-MM-DD · [GitHub issue #N](url)
  • No plan-task ID → **Plan task:** — (unphased), and this issue's index entry goes under ## Unphased in Step 5, not a phase heading.
  • No PR (branch-mode review, or no review at all) → **PR(s):** — (branch review) or **PR(s):** — respectively; never omit the field.
  • Absorbed another task → note it in the overview paragraph below the metadata line (e.g. "absorbs #P0-5"), not as a second metadata field or a second index entry.

Below the metadata line: a paragraph of what shipped (pull from the issue body's Summary — don't re-derive it), a bullet list linking each sub-page that exists, and a one-line Outcome pulled from the acceptance criteria / review verdict. Follow the shape of the wiki's existing issue-013.md (the worked example referenced in specs/wiki-structure.md) for the overview/Outcome prose style.

Link sub-pages by bare basename, never full path. Write [Label](CODE-REVIEW-PR-63), not [Label](issue-NNN/CODE-REVIEW-PR-63.md) — even though the file lives at issue-NNN/CODE-REVIEW-PR-63.md. GitHub's wiki renders a .md-suffixed link as a raw-file link instead of a wiki-page link, which silently breaks navigation (this regressed for issues #20–#26 before being caught and fixed — see the Rules in specs/wiki-structure.md). Drop both the issue-NNN/ directory prefix and the .md extension in the link text; the directory nesting is only for organizing the wiki's git tree.

Step 4 — Write the sub-pages

Carry the REQ/ARCH/review content over largely as-is — these are already well-formed docs; don't rewrite them, just relocate them into .wiki/issue-NNN/ under their original filenames and drop anything that's now stale (e.g. a REQ doc's "next step: run /plan-architecture" footer no longer applies once archived). The sub-page vocabulary is open — REQ/ARCH/CODE-REVIEW cover the common case, spike findings and ADR/decisions docs (whatever they're actually named) cover the rest — but every one keeps its specs/ filename verbatim. Never invent a placeholder for a document that doesn't exist, and never rename one that does.

Step 5 — Update the index

Both .wiki/Home.md and .wiki/_Sidebar.md use the same phase-grouped structure (specs/wiki-structure.md's "The model" section):

  • Determine the group: the phase from Step 1 (## Phase <X> — <name>), or ## Unphased if the issue has no plan-task ID.
  • Find or create the heading. If this is the first issue archived into that phase in either index file, create the ## Phase <X> — <name> (or ## Unphased) heading — append new phase headings in phase order, with ## Unphased last. On Home.md, a newly created phase heading gets a ✓/◐ status marker read from that phase's current exit-criteria state in specs/claude-lens-plan.md.
  • Insert in issue-number order within the group — find the correct ascending position among that group's existing entries, not just appended at the end.
  • Refresh the phase's ✓/◐ marker on Home.md if plan.md's exit criteria for that phase have changed since the marker was last set — this can catch drift beyond just the issue being archived right now (e.g. stale checkboxes elsewhere in plan.md); fix plan.md too if you find it.
  • Create .wiki/Home.md / .wiki/_Sidebar.md (with a one-line header, phase-grouped) if this is the first archived issue overall.

Step 6 — Retire the sources from the main repo

Remove the archived files from the main repo (git rm, in the main repo, not .wiki/) — specs/issues/<ID>-<slug>.md, specs/context/<N>.md, whichever of specs/requirements// specs/architecture/ were mirrored, and every matching review report wherever Step 2 found it (specs/reviews/, repo root, specs/review/, or elsewhere) — remove from its actual location, not an assumed one. This is the "leave nothing behind" half of the convention: once an issue is archived, nothing about it should remain anywhere in the main repo — not just specs/. Commit this to the main repo separately from the wiki push in Step 7 — they're two different repos with two different histories.

Step 7 — Commit and push the wiki, with confirmation

Inside .wiki/: git add, commit (batch multiple issues archived in one pass into one commit if convenient), then push to origin. Pushing to the wiki repo is a push to shared external state — confirm with the user before pushing, same as any other push, even though the commit itself is harmless to make locally. Report what moved where (source path → wiki page) so the user can review before/after the push.

© foyzulkarim, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/archive-issue of foyzulkarim/claude-lens.

Open the folder on GitHubat commit 7937ea1

Compare with similar skills

Archive Issue next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Archive Issue compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Archive Issue this skillfoyzulkarim/claude-lens251—~2.8kAutomated safety check: PassMIT
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0
Pull Request Title and Body Writeropeninterpreter/openinterpreter69k2 repos~1.1kAutomated safety check: PassApache-2.0
Draft Release Notesjamiepine/voicebox57k—~941Automated safety check: PassMIT
PR Review State Fetchprisma/orm48k—~767Automated safety check: PassApache-2.0

Similar skills

  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Pull Request Title and Body Writer

    openinterpreter/openinterpreter

    Rewrites the title and body of one or more pull requests with gh, leading with why the change was made, then what changed, and describing only the net result.

    69k GitHub starsUsed in 2 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Draft Release Notes

    jamiepine/voicebox

    Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.

    57k GitHub stars~941 tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Official

    Fetches a pull request's canonical review state as JSON, validates it, and renders markdown, a text summary and triage target files from it using bundled scripts.

    48k GitHub stars~767 tokensUpdated today
    DevelopmentAuto-check passed
  • Publishes curated, bilingual release notes for an existing Mole version tag with gh release edit, including contributor thanks and reactions, after the release workflow finishes.

    70k GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed

More from foyzulkarim/claude-lens

  • Create Issue

    foyzulkarim/claude-lens

    File GitHub issues for the claude-lens project with the right shape for the work type — plan tasks from specs/claude-lens-plan.md, Phase 4 page tasks, spikes, bugs, enhancements, chores.

    251 GitHub stars~2.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Move To Worktree

    foyzulkarim/claude-lens

    After /start-task: park the current clean, pushed feature branch in its own issue-numbered nested worktree (.worktrees/<issue) and return the primary checkout to current main, so the next parallel…

    251 GitHub stars~663 tokensUpdated 2 mo ago
    Auto-check: notes

Works with

Categories

Questions about Archive Issue

What does Archive Issue do?

Retire a closed issue's working artifacts out of specs/ into the GitHub wiki — use when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's…. Archive Issue is an agent skill from foyzulkarim/claude-lens. Retire a closed issue's working artifacts out of specs/ into the GitHub wiki — use when the user asks to archive a finished issue, empty out specs/ for a done task, or move an issue's requirements/architecture/review docs to the wiki.

When should I use Archive Issue?

Archive Issue fits situations like: the user asks to archive a finished issue; empty out specs/ for a done task; move an issues requirements/architecture/review docs to the wiki.

How do I install Archive Issue in Claude Code?

Run `npx skills add foyzulkarim/claude-lens --skill archive-issue -a claude-code`. Or copy the skill folder (.claude/skills/archive-issue in foyzulkarim/claude-lens) into .claude/skills/archive-issue in your project. Claude Code loads it when a task matches its description.

How do I install Archive Issue in Codex?

Run `npx skills add foyzulkarim/claude-lens --skill archive-issue -a codex`. Or copy the skill folder (.claude/skills/archive-issue in foyzulkarim/claude-lens) into .agents/skills/archive-issue in your project. Codex loads it when a task matches its description.

Can I use Archive Issue in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add foyzulkarim/claude-lens --skill archive-issue -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/archive-issue, .gemini/skills/archive-issue, .github/skills/archive-issue and .opencode/skills/archive-issue in your project.

What does Archive Issue need to run?

Going by SKILL.md and its folder, Archive Issue needs the command-line tools its instructions call (git and gh).

Does Archive Issue access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Archive Issue safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Archive Issue use?

Archive Issue is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Archive Issue use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Archive Issue?

Skills that share tags, products or a category with Archive Issue: Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars), Create Pull Request (cline/cline, 70k stars), Pull Request Title and Body Writer (openinterpreter/openinterpreter, 69k stars) and Draft Release Notes (jamiepine/voicebox, 57k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Archive Issue?

foyzulkarim (a GitHub user) maintains it in foyzulkarim/claude-lens, which has 251 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 5, 2026.

Source: foyzulkarim/claude-lens on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.