task-close

task-close is a command for Claude Code from Mozurok/fhorja.dev. It costs 0 tokens per session (7,694 once invoked), scanned A, original, MIT.

A task-closing command that checks the completion conditions, marks the task closed, and moves its folder from active work to an archive.

In plain words
What is it for?
Use it once the task's slices are closed and its specification's done-conditions have been verified.
Why use it?
It provides a defined final step for ending a whole task after all of its parts are complete.

Command for Claude Code

Written for Claude Code: a Claude Code command (commands/*.md). Also seen: reads .claude/ paths; reads ~/.codex paths; mentions Codex.

Good fit Use it once the task's slices are closed and its specification's done-conditions have been verified.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/mozurok/fhorja.dev/task-close
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/Mozurok/fhorja.dev

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for task-close

README.md
[![agentmods](https://agentmods.dev/badge/commands/mozurok/fhorja.dev/task-close/github.svg)](https://agentmods.dev/commands/mozurok/fhorja.dev/task-close)
Your own site
<a href="https://agentmods.dev/commands/mozurok/fhorja.dev/task-close"><img src="https://agentmods.dev/badge/commands/mozurok/fhorja.dev/task-close/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for task-close

Your own site · 80×15
<a href="https://agentmods.dev/commands/mozurok/fhorja.dev/task-close"><img src="https://agentmods.dev/badge/commands/mozurok/fhorja.dev/task-close.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 7,694 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.07694
Opus 5.5 $0.00000 $0.03078
Sonnet 5.5 $0.00000 $0.01539
Haiku 4.5 $0.00000 $0.00769

Measured 12d ago against content hash 12a06aa4e835, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

task-close scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/task-close.md · 200 lines

How it starts

The opening of the file, as written. The whole thing — 200 lines — stays where its author put it; the contents beside it link to each section on GitHub.

task-close

Act as a senior/staff engineering workflow closure operator.

Goal: Perform the terminal task lifecycle transition for a finished engineering task: verify the spec done-conditions, set TASK_STATE.md to its final closed state, and move the task folder from active/ to archive/. This is the symmetric counterpart to task-init and the only official way to close a whole task.

This command is distinct from slice-closure (which closes a single slice and may route toward delivery) and from where-we-at (which only assesses progress). Use task-close exactly once per task, when the whole task is ending.

Mandatory context bootstrap (before any output):

  • Resolving the spec and wos/<topic>.md: canonical repository FIRST. Otherwise use active-adapter docs: ~/.claude/workflow-docs (CLAUDE_WORKFLOW_DOCS_DIR), ~/.cursor/workflow-docs (WORKFLOW_DOCS_DIR; project .cursor/workflow-docs on project installs), ~/.codex/workflow-docs (CODEX_WORKFLOW_DOCS_DIR), or <kimi-home>/workflow-docs (KIMI_WORKFLOW_DOCS_DIR). Nonempty overrides win. Kimi home: KIMI_CODE_HOME, else existing ~/.kimi-code, else existing ~/.kimi, default ~/.kimi-code. Use one root for both paths; try other adapters if absent or unknown. Report resolved root, fallback to other adapters, or missing mandatory context in ### Command transcript. Installed snapshots refresh and prune retired topics only on sync.
  • Read these sections in WORKFLOW_OPERATING_SYSTEM.md first:
    • ## LLM execution contract
    • ## Editor mode policy (mode definitions only; the tool mapping table is lazy-loaded in wos/editor-mode-mappings.md and needed only for non-Claude-Code tools)
    • ## Global output contract (including Adaptive handoff and Mode selection rule)
    • ## Cross-cutting workflow guardrails
  • Read additional sections needed for closure:
    • ## When a task moves to done and `## When a task stays in `active (the done-conditions gate)
    • ## Repository structure (the active/ vs archive/ convention; done/ is a legacy alias)
    • ## Project-level memory (to keep project pointers valid after the move, and for the knowledge/ folder write convention; full detail in wos/project-level-memory.md)
  • Read the active task's memory:
    • TASK_STATE.md (current phase, last completed step, recommended next step, open blockers)
    • IMPLEMENTATION_PLAN.md and SLICES/ closure status (every slice must be closed or explicitly deferred to a follow-up task)
    • DECISIONS.md (confirm no decision is still open)
    • SOURCE_OF_TRUTH.md ## Workspace section, if present (the worktree path and task branch to tear down per ADR-0074)
  • Read canonical command inventory when a clone is available; otherwise use installed Fhorja commands and skills.
  • Align all routing recommendations and next-command suggestions with the current command set.
  • Official next-command names only: every recommended next command (including the handoff Run now line) MUST use a registered canonical command name or available installed Fhorja command or skill. Never invent names. One exception: Run now: none with Mode: N/A declares the chain ended with no honest next step, defined under ### Official command names (routing integrity) (ADR-0126); use it only then, never to end a chain that has a real next step.

Required inputs:

  • active task folder path (projects/<client>__<project>/active/YYYY-MM-DD_<task-slug>/)
  • TASK_STATE.md (current)
  • IMPLEMENTATION_PLAN.md and SLICES/ closure status, if present
  • evidence (or explicit user waiver) for each done-condition: implementation complete, review complete, team approval, merge into the target integration branch

Done-conditions gate (from the spec ## When a task moves to done``):

  1. implementation complete
  2. review complete
  3. team approval happened
  4. merge into the target integration branch happened
  5. TASK_STATE.md updated to final state (this command performs this one)
  • For each condition, classify exactly one of: met (cite evidence: commit, PR, slice note), not-met, or not-applicable / waived (user-confirmed for this context).
  • If any condition is not-met and not explicitly waived by the user, do NOT archive. Return a gate-blocked result and route to the smallest unblocking action (review-hard if review is missing, pr-package if the PR is not prepared, or an explicit user confirmation for approval/merge).
  • Condition 4 is checked, never auto-waived (ADR-0191). WHERE an integration branch exists, ask whether the closed work is ON it: the cited commits are ancestors of that branch (git merge-base --is-ancestor <commit> <branch>). They are, and condition 4 is MET, on the direct-to-branch pattern as much as on a merged pull request; push is a separate act and this condition does not ask about it. WHERE no integration branch exists at all, the condition is not-applicable and says so.

Read the full file on GitHub · 200 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago Changed · -1 lines 12a06aa4e835
  2. 15d ago Changed · +3 lines 0a1133c2ba93
  3. 22d ago Changed · -6 lines 7ba7f89f185c
  4. 23d ago Changed · +2 lines 2ae8d8af6b53
  5. 1mo ago First seen · 202 lines · 0 tokens per session scan A 7dcbeee2f8da

Subscribe to this mod's changes

task-close is a command published in the GitHub repository Mozurok/fhorja.dev (10 stars, last pushed 12d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 7,694 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.