Borrowing it
Nothing to install: this file belongs to Koroqe/OPOS. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Koroqe/OPOS/main/.claude/skills/task-register/SKILL.mdgit 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/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.
<a href="https://agentmods.dev/skills/koroqe/opos/task-register"><img src="https://agentmods.dev/badge/skills/koroqe/opos/task-register.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00024 | $0.02528 |
| Opus 5.5 | $0.00010 | $0.01011 |
| Sonnet 5.5 | $0.00005 | $0.00506 |
| Haiku 4.5 | $0.00002 | $0.00253 |
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 27d 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 — 81 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 steward invokes this itself; it is not a command the user is expected to type. When chief-of-staff goal-decomposition classifies an opening message as a NEW task, it runs this skill at Notice tier (do it, mention it) — see the steward's "Goal decomposition pattern" step 2. A user MAY still invoke /task-register "<title>" --depts <comma-list> [--plan-file <path>] [--goal "<text>"] directly, but nothing depends on them doing so.
Multi-active tasks are first-class (v0.7.0). An existing .claude/.current-task does NOT block a new registration — the pre-v0.7.0 refuse-guard was removed (see step 4); parallel sessions each open their own task without colliding.
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
- (Removed in v0.21.0 — do NOT invoke
check-for-updates.) Update checks belong to the SessionStart updater (shared/scripts/opos-session-update.mjs), which runs once a day for free. Invoking the skill here cost ~5 model requests per lifecycle call, each re-reading the whole session context. Step numbering is kept so the references below stay valid. - 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. 9b. Take the lease on the new issue (v0.17.0). This is what makes the task visible as in progress to every other session, on every machine —.current-tasknever could:
Handle the exit code exactly as in the lease skill's "Calling the lease from another skill" table:node .claude/skills/lease/lease.mjs acquire --key "issue:<repo>#$ISSUE_NUM" --intent "<title>"0proceed ·9the company has not opted in to leases — printlease: not configured, gate skippedand proceed exactly as before · anything else STOP. The issue already exists at this point, so on a non-zero exit say so plainly ("issue #N created, but NOT leased: "), finish the remaining steps, and recordoutcome: partial. Exit3(stale clone) means rungit pull --ff-onlyand re-acquire — never work on a task from a clone that is behind.
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 5.3 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.
- 27d ago Changed · +7 lines 084dd094d8a8
- 1mo ago Changed · +4 lines 1b305c3ae343
- 1mo ago First seen · 70 lines · 24 tokens per session scan A 384447786e1f
task-register is a skill published in the GitHub repository Koroqe/OPOS (4 stars, last pushed today), licensed MIT. It adds 24 tokens to every session and 2,528 once invoked, about $0.0001 per session on Opus 5.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
github-project-management
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning.
resolution_playbook
How to choose one resolution action from a ticket and its customer history.
github-tool
GitHub integration tool. Fetches and creates issues and PRs via the gh CLI. Use when: Use when: you need to create or list issues and PRs, perform repository operations, or check tasks on GitHub.
github-project-management
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning.
github-multi-repo
Multi-repository coordination, synchronization, and architecture management with AI swarm orchestration.
github-project-management
GitHub project management with issue tracking, project-board automation, and sprint planning. Use when triaging or organizing issues, automating a project board, planning a sprint, or running release/roadmap coordination on GitHub.