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-registernpx skills add Koroqe/OPOS --skill task-registergit clone --depth 1 https://github.com/Koroqe/OPOSWrote 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.
[](https://agentmods.dev/skills/koroqe/opos/task-register)<a href="https://agentmods.dev/skills/koroqe/opos/task-register"><img src="https://agentmods.dev/badge/skills/koroqe/opos/task-register.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00024 | $0.02243 |
| Opus 5 | $0.00012 | $0.01122 |
| Sonnet 5 | $0.00005 | $0.00449 |
| Haiku 4.5 | $0.00002 | $0.00224 |
Grade A, and why
task-register 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 3d 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.
How it starts
The opening of the file, as written. The whole thing — 70 lines — stays where its author put it; the contents beside it link to each section on GitHub.
task-register
When to use
At the start of a NEW task — NOT a fix or continuation of in-flight work. The user explicitly invokes /task-register "<title>" --depts <comma-list> [--plan-file <path>] [--goal "<text>"]. If a task is already in flight (the repo-root .claude/.current-task exists), this skill refuses to start and asks the user to complete or abandon first.
Inputs may be gathered conversationally over multiple AskUserQuestion turns before the GitHub call — the skill doesn't require them all in one CLI invocation. In practice, the calling agent (chief-of-staff) often clarifies title, depts, and goal interactively before making the actual gh issue create call.
Inputs
title— short title for the GitHub issue (required).depts— comma-separated department names; lowercased for label normalization (required).plan_file— optional path to a plan file (e.g. under~/.claude/plans/).goal— optional one-paragraph goal. Default: prompt user inline.quiet_label_creation— optional bool, default false. When true, suppress per-label warnings from steps 6-7 and emit a single summary line at the end instead ("Auto-created N labels: dept:engineering, dept:company, task").
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. If the user sees an update notice, they may want to invoke/sync-from-coreafter this skill completes. - Resolve repo root:
REPO_ROOT=$(git rev-parse --show-toplevel). All file paths in this skill are anchored to$REPO_ROOT. - Read
$REPO_ROOT/.claude/task-tracking.config.json. Validaterepois non-empty. - Parse current active-task array. Read
$REPO_ROOT/.claude/.current-taskas a newline-delimited array of integers (v0.7.0 array semantics; v0.6.x single-task content parses as 1-element array — fully backwards-compatible). If file is absent or empty →CURRENT_TASKS = []. Apply defensive read-side filtering: drop any line that isn't pure digits (handles partial-write garbage from the rare intra-machine concurrent-register race documented in RISKS Risk 30; v0.8.x candidate is properflock). Continue regardless of count — multi-active tasks are first-class as of v0.7.0; parallel Claude sessions can each open a fresh task without colliding. The pre-v0.7.0 "refuse if .current-task already exists" guard is REMOVED; the new duplicate check happens at step 10 against the candidate issue number aftergh issue create. gh repo view <repo> --json visibility— if visibility ispublic, print a WARNING to stdout (do not block).- Normalize each
--deptsvalue: trim whitespace andtr A-Z a-z(lowercase). For each normalized dept name, ensure labeldept:<name>exists; create withgh label create dept:<name> --description "Auto-created by task-register"if missing. Warning behavior depends onquiet_label_creation: when false (default), print one warning line per created label AND record each in the history-entry body. When true, accumulate the created labels in a list and defer the announcement to step 11's summary; still record in the history-entry body. - Ensure flat label
taskexists; create if missing (same warning behavior — perquiet_label_creation). - Render the issue body from
shared/templates/task-issue.md.tmpl, substituting{{TITLE}},{{DEPARTMENTS}}(joined human-friendly list),{{INITIATED_BY}}(=chief-of-staff+ ISO date),{{PLAN_LINK}},{{GOAL}}. Leave the<!-- progress-log -->marker intact (it serves as an anchor for the optional v1 body-insertion approach; v0 uses comments). - Create the issue and capture the URL from stdout.
gh issue createdoes NOT support--json(onlygh issue view/gh issue listdo — this was a documented-but-wrong pattern in v0.1.x–v0.2.0 fixed in v0.3.0 after issue #6's task-register run hit the bug). The working pattern:
PreferURL=$(gh issue create --repo "$REPO" --title "$TITLE" --body-file /tmp/body.md \ --label task $(printf -- '--label dept:%s ' "${DEPTS[@]}")) ISSUE_NUM=$(basename "$URL")--body-fileover--body "$RENDERED"to avoid shell-quoting hell with multi-line bodies. TheURLcapture is the baregh issue createstdout (one line, just the URL — stable across recent gh versions);basenameparses the trailing/Nsegment. - Append the new issue number to
$REPO_ROOT/.claude/.current-task(array semantics as of v0.7.0). Useecho $ISSUE_NUM >> "$REPO_ROOT/.claude/.current-task". Defensive duplicate check (uses the array parsed at step 4): if$ISSUE_NUMis already inCURRENT_TASKS, skip the append silently and note in the history-entry body. This protects against re-runs invoked with an explicit--issuereferencing an already-tracked issue, and against the rare intra-machine race where another session's step 9 completed and appended between this run's step 4 and step 10. The append is best-effort — partial writes (a half-written digit, a missing newline) are silently filtered at every subsequent read via step 4's defensive parser. - Create the task file from the TASK.md.tmpl template. Render
shared/templates/TASK.md.tmplinto$REPO_ROOT/tasks/<issue-number>.md, substituting:<<ISSUE_NUMBER>>(digits),<<TITLE>>(the issue title),<<OWNER_AGENT>>(=chief-of-staff),<<DEPARTMENTS>>(joined comma list),<<STATE>>(=active),<<CREATED_DATE>>(today's ISO date),<<COMPLETED_DATE>>(blank),<<SUCCESS_CRITERIA>>(parsed from issue body's "## Acceptance criteria" section if structured; empty list[]otherwise),<<DEADLINE>>(blank),<<RELATED_SKILLS>>(blank[]unless caller specifies). Skip silently iftasks/<issue-number>.mdalready exists (idempotency for retried invocations — don't overwrite). Create thetasks/directory first viamkdir -pif absent (consumer-side first task creates it; framework repo already has it). - Print a one-line summary:
Tracked: #<number> (<url>) — depts: <list>. Ifquiet_label_creationwas true and labels were created, append:— auto-created N labels: <comma-separated list>. - Write history entry to
$REPO_ROOT/.claude/skills/task-register/history/<YYYY-MM-DD>-<short-run-id>.mdper the rootCLAUDE.mdschema. Include in body: the issue URL, depts, plan_file, the path to the task file created in step 11, the full list of label-creation events from steps 6-7 (regardless ofquiet_label_creation— the history-entry body always records them for audit), AND the pre-register + post-register.current-taskarray contents (v0.7.0 addition — audit trail for parallel workflows: knowing whether the run added to an empty array or appended to N existing tasks is the signal future history reviewers need to reconstruct what was in flight).
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-self-test.md 2.3 KB
- history/2026-05-22-issue-2-research-survey.md 2.4 KB
- history/2026-05-25-issue-3-refactor.md 2.4 KB
- history/2026-05-28-issue-4-harden.md 2.0 KB
- history/2026-05-28-issue-5-v020.md 1.7 KB
- history/2026-05-28-issue-6-v030.md 3.2 KB
- history/2026-05-28-issue-7-v031.md 1.6 KB
- history/2026-05-29-issue-10-v051.md 2.9 KB
- history/2026-05-29-issue-8-v040.md 1.4 KB
- history/2026-05-29-issue-9-v050.md 1.6 KB
- history/2026-05-30-issue-11-v052.md 1.6 KB
- history/2026-05-30-issue-12-v053.md 2.2 KB
- history/2026-05-30-issue-13-v060.md 3.1 KB
- history/2026-05-31-issue-14-v061.md 3.7 KB
- history/2026-06-10-issue-15-v070.md 3.4 KB
- history/2026-06-12-issue-16-v071.md 3.3 KB
- history/2026-06-25-issue-17-v072.md 3.2 KB
- history/2026-06-26-issue-18-v080.md 3.7 KB
- PROCESS.md 2.7 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.
- 3d ago First seen · 70 lines · 24 tokens per session scan A 384447786e1f
task-register is a skill published in the GitHub repository Koroqe/OPOS (2 stars, last pushed 6d ago), licensed MIT. It adds 24 tokens to every session and 2,243 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
a11y-remediate
Use to produce a leader-facing remediation proposal from one or more /a11y-audit outputs plus team and product context. Translates audit findings into sprint plans, staffing asks, customer-facing language, compliance rollups, and critical-path analysis. Refuses to fabricate numbers, owners, or commitments beyond the…
prioritize
Prioritize triaged/investigated issues — recommends shortlist, backlog, won't fix, or community contribution with priority signals and draft communications.
om-gap-analysis
Grounded platform gap analysis at engagement scale — turn a folder of client docs into an Epic/Story tree where every coverage verdict is re-run by executable gates against a validated checkout of the platform, scored in atomic commits, license-tier-tagged, and synthesized into a client-facing summary + backlog. Use…
finn-build
Claim the next safe agent-ready issue from Linear, implement it, and open a PR. Use when asked to run Finn-loop's builder, work the approved queue, or fix Finn-loop review feedback. Designed for /loop; one pass does one unit of work.
finn-review
Review open PRs against their linked Linear issues and required GitHub checks, then post a three-group verdict with Finn-loop labels. Use when asked to run Finn-loop's reviewer or review its PR queue. Designed for /loop; never merges or pushes code.
finn-spec
Interview the user about a raw idea until confident, then file a build-ready issue in Linear. Use when asked to run Finn-loop's spec interview, draft a queue-ready issue, or plan a feature. Interactive — requires the user present; never run unattended.