Skip to content
Back to skills

Task Hygiene

ASecurity

Cleanup and triage of the task ledgers FOUND_DEFECTS.md, CURRENT_ERRORS.md, .matrx/AGENT_TASKS.md, .matrx/ARMAN_TASKS.md. Use when invoked as /task-hygiene <step>, cleaning up tasks, defects, or errors, triaging an error dump, promoting defects, or bootstrapping these files.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 3, 2026
testinggoshellgitdocumentation

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 3, 2026

npx -y skills add armanisadeghi/ai-matrx --skill task-hygiene --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Task Hygiene?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Task Hygiene
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/armanisadeghi-task-hygiene/badge)](https://www.skillsdirectory.com/skills/armanisadeghi-task-hygiene)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: task-hygiene
type: Skill
title: "task-hygiene — cleanup and triage of the repo task system"
description: "Cleanup and triage of the task ledgers FOUND_DEFECTS.md, CURRENT_ERRORS.md, .matrx/AGENT_TASKS.md, .matrx/ARMAN_TASKS.md. Use when invoked as /task-hygiene <step>, cleaning up tasks, defects, or errors, triaging an error dump, promoting defects, or bootstrapping these files."
tags: [tasks, defects, errors, triage, hygiene, ledgers]
timestamp: 2026-09-10T00:00:00Z
---

<!-- SYNCED COPY — do not edit here.
     Canonical: common-docs/skills/task-hygiene/SKILL.md
     This file is distributed to every consuming repo by
     common-docs/meta/scripts/sync_skills.py. Edit the canonical, run the
     sync, and commit each repo. Edits made here are overwritten and lost. -->

# Task Hygiene

Maintenance of the four-file task system in every repo. Run the full sequence or exactly one
step; steps are independent, never assume an earlier one ran.

## Invocation

`/task-hygiene` (all steps, 0–7) or `/task-hygiene <n|name>` (that step, after step 0).

| # | Name | One-liner |
|---|------|-----------|
| 0 | `bootstrap` | Verify/create the four files; always runs first |
| 1 | `cleanup` | Move clearly-done items to condensed completed entries |
| 2 | `dedupe` | Merge duplicates, same-root-cause pairs, defect↔task overlaps |
| 3 | `promote` | Propose ≤3 defect→task promotions to Arman at a time |
| 4 | `analyze` | Full code analysis of named items; stamp the entries |
| 5 | `enrich` | Add concise pointers that make tasks easier to execute later |
| 6 | `docs` | Fix documentation the above revealed as stale |
| 7 | `excavate` | Hunt buried work items in docs; file the orphans |

## The four files

Adapt to where a repo keeps them; never force moves.

| File | Role |
|------|------|
| `FOUND_DEFECTS.md` (root) | **Holding area.** Unapproved discoveries with evidence. NOT a worklist. |
| `CURRENT_ERRORS.md` (root) | **Error-dump inbox.** Arman pastes raw logs; every line gets a home. **Not in aidream** — run [aidream-error-systems.md](aidream-error-systems.md) there instead. |
| `.matrx/AGENT_TASKS.md` | **The only approved worklist.** |
| `.matrx/ARMAN_TASKS.md` | Steps only Arman can perform. A decision is not a row here: it goes through [ask-arman](/skills/ask-arman/SKILL.md). |

Never read, write, or list any `.arman/` directory. Never edit docs under any `official/`
directory — file the correction instead. The repo's own CLAUDE.md wins on conflict.

## Conventions

- **Dates:** absolute `YYYY-MM-DD` on every entry.
- **Defect IDs:** the ledger's real scheme, claimed from the maximum —
  [defect ownership § Entry IDs](/policies/reality-is-the-referee.md). Only open entries carry an ID,
  and every open entry sits under `## OPEN`.
- **Admission test for a friction entry:** reproducible on a fresh checkout AND fixable in the
  repo. Never file your own sandbox or permission errors, shell mistakes, transient flakes,
  local corrupted state, third-party limits with no workaround, or secrets.
- **Priority:** `P0` breaks users/data now · `P1` this week · `P2` can wait · `P3` polish.
- **Defect statuses:** `open` / `needs-hw-verification` / `blocked-external` / `rejected`.
- **Analysis stamp**, exactly one per entry: `Unverified — from docs/logs only` (the default) or
  `Analyzed <date> — verified in code: <finding>`. A task from an unanalyzed defect says "code
  analysis pending".

## Lifecycle

- **Fixed while in holding:** delete the defect entry at once and add
  `- [x] <what> — fixes {ID} (<date>, commit)` to AGENT_TASKS Completed.
- **Completed items** condense to one line; detail lives in git. Compress anything done more
  than ~2 weeks ago.
- **Rejected registry** at the bottom of FOUND_DEFECTS:
  `- {ID} — <reason> — <date> — delete when: <condition>`. Check it before re-filing; step 1
  deletes lines whose condition has happened.
- **Cross-repo routing:** a defect belonging to another local repo is filed in that repo's own
  files, noting who found it. Repo absent → file locally as `blocked-external`.
- **Headless runs:** step 3 needs Arman live. Otherwise write the prepared batch into
  `## Pending Arman review` in FOUND_DEFECTS. Never stall, never self-approve.

## Step 0 — Bootstrap

Check the four files exist; create any missing one from [templates.md](templates.md) (never
`CURRENT_ERRORS.md` in aidream). No Task Tracking section in the repo CLAUDE.md → add a brief one.
Equivalent files under other names → use them, update headers, don't relocate.

## Step 1 — Cleanup

Mechanical only. AGENT_TASKS and ARMAN_TASKS done items → one line in Completed/Done.
FOUND_DEFECTS `fixed` entries → fixed-while-in-holding (never record twice). Prune the
Rejected registry.

## Step 2 — Combine

Merge same-problem pairs, one-root-cause symptom groups, and any defect that already exists as
an open task (fold its evidence into the task, delete the defect). CURRENT_ERRORS signatures
duplicating an entry → link by ID. Union evidence, never drop it.

## Step 3 — Promote

Before promoting, record two checks on the entry: **already built?** (search by domain
concept; found → delete with a pointer to the code) and **still real?** (reproduce it;
not reproducible → `needs-hw-verification` or delete with evidence). Present at most 3 to
Arman, each: title · priority · one-paragraph why · defect ID replaced · analysis stamp.
Approved → move to AGENT_TASKS; rejected → a Rejected line. Then the next ≤3.

## Step 4 — Analyze

Read the code; confirm or refute; root cause, blast radius, fix sketch. Update the entry in
place with the stamp and file:line evidence. A wrong claim is corrected or deleted.

## Step 5 — Enrich

Add only what makes execution cheap: exact paths, the pinning test, the related FEATURE.md,
gotchas from sibling tasks. An entry that already suffices gets nothing.

## Step 6 — Docs

Grep for claims touched by recently completed work, verify in code, then fix per the
[docs](/skills/docs/SKILL.md) skill.

## Step 7 — Excavate buried work

1. **Candidates (grep):** filenames `TASK-*`, `*PLAN*`, `*ROADMAP*`, `*HANDOFF*`, `NEXT_*`,
   `KNOWN_*`, `*_INITIATIVE*` in the root and `docs/` (skip `official/`, `.arman/`); content
   `not yet built|not yet wired|planned|follow-up|TODO|deferred`.
2. **Orphan filter (grep):** a candidate whose basename appears in any tracked surface
   (the four files, root CLAUDE.md, `docs/handoffs/`, nearby FEATURE.md) is dropped. Cap ~10,
   oldest first.
3. **Judgment:** one small read-only agent reads each orphan's first ~60 lines: undone work?
   one-line summary? superseded (evidence)?
4. **File:** live work → one FOUND_DEFECTS entry marked "BURIED WORK RESCUED" with the path;
   dead docs → step 6. Never drop a candidate silently.

A repeat run skips anything already filed.

## CURRENT_ERRORS lifecycle (not aidream)

Dumps are batch snapshots: Arman often cannot re-test for hours.

1. Raw exports land at the bottom of **Inbox**.
2. Fingerprint each error (ignore timestamps and frame noise), dedupe against **Unique errors**,
   and give every new signature a home: fix now if quick (tell Arman at once), FOUND_DEFECTS,
   an agent task (step 3), or ARMAN_TASKS.
3. Clear the Inbox after triage.
4. Resolved rows stay until a shipped build confirms (~2 weeks), then go. A returning error gets
   a new row citing the old ID. The file only shrinks.

In aidream, tool-call failures are mostly harness defects (faulty tools, poor instructions) —
codebase improvements, not agent mistakes.

Files in this skill

  • SKILL.md7.4 KB
  • aidream-error-systems.md9 KB
  • templates.md5.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…