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.
npx agentmods add skills/koroqe/opos/task-completenpx skills add Koroqe/OPOS --skill task-completegit clone --depth 1 https://github.com/Koroqe/OPOSWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00027 | $0.02399 |
| Opus 5 | $0.00014 | $0.01200 |
| Sonnet 5 | $0.00005 | $0.00480 |
| Haiku 4.5 | $0.00003 | $0.00240 |
Grade A, and why
task-complete 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 yesterday.
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.
How it starts
The opening of the file, as written. The whole thing — 95 lines — stays where its author put it; the contents beside it link to each section on GitHub.
task-complete
When to use
At task completion: after the final slice is committed and the work is merge-ready. NOT for partial completion (use task-update --status blocked instead).
Inputs
summary— 2-4 sentence agent-written summary of what shipped and why (required).since_sha— git SHA where the task started. If omitted, resolve via the fallback chain below.issue— optional override; default: read from<repo-root>/.claude/.current-task. As of v0.7.0.current-taskis a newline-delimited array of active issues; this skill auto-picks when exactly 1 is active and REQUIRES--issuewhen 2+ are active (see step 3).deliverables— optional markdown checklist of final deliverables state.
since_sha fallback chain
When --since_sha is not passed, resolve in this order:
git rev-parse origin/HEAD 2>/dev/null— the default branch on the remote (e.g.origin/main).- If (1) fails:
git rev-parse main 2>/dev/null— a localmainbranch if it exists. - If (2) fails:
git rev-list --max-parents=0 HEAD | head -1— the first commit reachable on the current branch (works in any single-branch repo). - If (3) equals
HEAD(single-commit branch): empty changelog; post the summary and proceed.
Steps
- Check for upstream updates. Invoke
check-for-updates(silent unless an update is available; cached 6h). Best-effort — failures do not block this skill's run. - Resolve repo root via
git rev-parse --show-toplevel. - Read
$REPO_ROOT/.claude/.current-taskas a newline-delimited array of active task issue numbers (v0.7.0 array semantics; v0.6.x single-task content parses as 1-element array — fully backwards-compatible). Apply defensive read-side filtering (drop non-digit lines per Risk 30). Then determine the target issue number:- If
--issue <N>was provided → use it directly. - Else if the array has EXACTLY 1 entry → use that entry. This preserves v0.6.x single-task workflow behavior.
- Else if the array has >1 entries (multi-active parallel-session workflow as of v0.7.0) → ABORT with:
Multiple active tasks: #<comma-list>. Pass --issue <N> to specify which one to complete. - Else (array empty / file absent) → ABORT with:
No active task. Pass --issue <N> explicitly if completing a task you didn't open via task-register on this machine.
- If
- Read and validate config.
- Resolve
since_shavia the fallback chain above (if not passed). - Compute the changelog:
git log <since_sha>..HEAD --oneline --no-merges. Capture as a bulleted list. - Find PR links via
gh issue view <number> --json closedByPullRequestsReferences— extract URLs and titles from GitHub's native link references (PRs that say "Closes #N" or are otherwise GitHub-linked to the issue). More reliable than title or body search. - Scan commits in the range for the
Refs: #<issue>trailer. Collect commits LACKING the ref. If any are found, prepare a warning block for the final comment AND print to stdout. - Render the final comment: agent summary (verbatim from
--summary), then changelog bullets (or "no commits in range" line), then PR-link section (skip if empty), then deliverables (if provided), then the warning block (if commits missed the ref). When the warning block has 5 or more missing-ref commits, wrap the list in a markdown<details><summary>N commits missing Refs: #<issue></summary>...</details>block so it doesn't visually dominate the final comment. Threshold (>=5) is intentional — under 5, the inline list is short enough to stay flat for quick scanning. gh issue comment <number> --repo <repo> --body "<final>".- Ensure label
status:doneexists; create withgh label create status:done --color <hex>if missing (warn on creation). The color SHOULD come from.claude/task-tracking.config.json's_label_palette["status:done"]field (defaults to green0E8A16in the shipped config); v0.1.1 documents the palette as the source of truth, but the config-read mechanic is currently still manual (the skill body picks the color; future v0.2.0 work will wire the read into the skill itself). Apply it:gh issue edit <number> --add-label status:done. gh issue close <number> --repo <repo> --reason completed.- Archive the task file to
tasks/closed/(new in v0.2.0; usesgit mvsince v0.6.1). Ensure the directory exists viamkdir -p "$REPO_ROOT/tasks/closed/"(idempotent — first task-complete after v0.2.0 creates it; subsequent calls no-op). Then move the task file viagit mvso the deletion is staged automatically:git mv "$REPO_ROOT/tasks/<number>.md" "$REPO_ROOT/tasks/closed/<number>.md". Whygit mv(v0.6.1 fix): plainmvleaves the originaltasks/<number>.mdtracked in git's index (since the original was added intask-register's step 11 — see task-register/SKILL.md), causing both paths to exist in HEAD. The v0.5.3 + v0.6.0 task-complete runs hit this bug and required a retroactive cleanup commit (b775b0f).git mvstages the deletion atomically with the add, fixing it at root. Backwards-compat: iftasks/<number>.mddoesn't exist (e.g. task was opened pre-v0.2.0 before thetasks/convention), skip silently. Iftasks/<number>.mdexists but is NOT tracked (rare; only the first task ever opened on a brand-new consumer repo),git mvfalls back tomvsemantics — no error. - Remove the completed issue from
$REPO_ROOT/.claude/.current-task(v0.7.0 array semantics; v0.7.2 Python one-liner rewrite — see below). Use:ISSUE="$ISSUE_NUM" TARGET="$REPO_ROOT/.claude/.current-task" python3 -c ' import os, sys target = os.environ["TARGET"] issue = os.environ["ISSUE"] if not os.path.exists(target): sys.exit(0) # File already absent — desired end state achieved (defensive against concurrent task-complete from another session). with open(target) as f: lines = [l for l in f.read().splitlines() if l.strip() and l.strip() != issue] if lines: with open(target, "w") as f: f.write("\n".join(lines) + "\n") else: os.remove(target) '
What ships with it
20 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- history/.gitkeep 0 B
- history/2026-05-22-issue-1-final.md 3.1 KB
- history/2026-05-25-issue-3-refactor-complete.md 3.2 KB
- history/2026-05-28-issue-2-research-complete.md 3.2 KB
- history/2026-05-28-issue-4-harden-complete.md 3.1 KB
- history/2026-05-28-issue-5-v020-complete.md 4.1 KB
- history/2026-05-28-issue-6-v030-complete.md 4.0 KB
- history/2026-05-29-issue-7-v031-complete.md 2.3 KB
- history/2026-05-29-issue-8-v040-complete.md 3.0 KB
- history/2026-05-29-issue-9-v050-complete.md 3.5 KB
- history/2026-05-30-issue-10-v051-complete.md 3.3 KB
- history/2026-05-30-issue-11-v052-complete.md 3.4 KB
- history/2026-05-30-issue-12-v053-complete.md 4.1 KB
- history/2026-05-30-issue-13-v060-complete.md 4.5 KB
- history/2026-05-31-issue-14-v061-complete.md 5.3 KB
- history/2026-06-10-issue-15-v070-complete.md 7.0 KB
- history/2026-06-12-issue-16-v071-complete.md 6.6 KB
- history/2026-06-25-issue-17-v072-complete.md 6.1 KB
- history/2026-06-26-issue-18-v080-complete.md 5.8 KB
- PROCESS.md 2.8 KB
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.
- yesterday First seen · 95 lines · 27 tokens per session scan A acadc0522a20
task-complete is a skill published in the GitHub repository Koroqe/OPOS (2 stars, last pushed 4d ago), licensed MIT. It adds 27 tokens to every session and 2,399 once invoked, about $0.0001 per session on Opus 5. 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-08-31.
Other skills, from other repositories
Codex Implement
Delegate a well-scoped GitHub issue to Codex CLI (headless, in an isolated worktree), then peer-review the diff with agy + Codex before opening the PR. Mandatory peer-review gate before merge. Repo-agnostic — auto-detects repo, conventions, and build commands.
super-evolve
Ultimate self-evolution skill. Merges evolve + self-improve into one comprehensive meta-skill with external research, area focus, dry-run mode, and expanded memory mining.
issue-triage
Issue triage: audit open issues, categorize, detect duplicates, cross-ref PRs, risk assessment, post comments. Args: "all" for deep analysis of all, issue numbers to focus (e.g. "42 57"), "en"/"fr" for language, no arg = audit only in French.
pr-to-video
Turn a GitHub pull request (a PR URL, owner/repo#N, or 'this PR' in a checked-out repo) into a code-change explainer video — changelog, feature reveal, fix, or refactor walkthrough built from the diff, commits, and files: the input is a code change, not a website. Not a product promo (/product-launch-video) or a no-PR…
general-video
Author or edit a custom HyperFrames composition when no specialized workflow fits, or when BRIEF.md sets flow: companion. Use for longer or multi-scene pieces, brand and sizzle reels, montages, static loops, static title cards, footage remixes, and freeform builds. Use motion-graphics instead for a short unnarrated…
motion-graphics
A short, design-led motion graphic where motion is the message — kinetic typography, stat count-up, chart/data-viz hit, logo sting / brand lockup, lower-third / callout / social overlay, animated map (highlight regions, connect places, zoom to a location), animated tweet / news-article / headline, webpage / UI…