Skip to content
Back to skills

Finish Task

ASecurity

After a task's PR is created, offer to close the task on the configured board and reindex it. Use when the user says a PR is up or asks to close or finish a task.

  • 1,531 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agents

Works with

  • cli

Security analysis

A100/100

Scanned November 7, 2026

npx -y skills add hashgraph-online/awesome-codex-plugins --skill finish-task --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Finish Task?

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

Security grade badge for Finish Task
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/hashgraph-online-finish-task/badge)](https://www.skillsdirectory.com/skills/hashgraph-online-finish-task)

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: finish-task
description: After a task's PR is created, offer to close the task on the configured board and reindex it. Use when the user says a PR is up or asks to close or finish a task.
---

# Finish Task

Reply in Russian. The server appends the PR link idempotently, completes the selected generic
target, and adds a clickable task link to the PR body; clients never send credentials.

1. **Config.** Read `task_board` from `.review.yml`, otherwise `get_board_config()`. Use only
   `type`, `project`, `create_target`, `done_target`, and `options`. If no board is resolved,
   report a board-less no-op.
2. **Resolve key and PR.** Match `key_pattern` on the current branch, newest `briefs` file, or
   `gh pr view --json title,body`; otherwise ask. Resolve the PR URL with `gh pr view --json url -q
   .url` (or ask). Missing key or URL is a no-op.
3. **Discover.** Call `get_board_targets(board_type=<type>, project=<project>,
   provider_options=<task_board.options or {}>)`. Select `done_target` from `targets` with a done
   purpose. For each option with `required_for` containing `finish`, resolve its value from
   `choices`; if required metadata is missing, ask instead of guessing.
4. **Offer + confirm.** Show the PR link and the **resolved done target** by its label plus every
   selected option, and state that a task link will be prepended to the PR body. Ask whether to add an optional note. Write **only after explicit confirmation**;
   never write to the board silently.
5. **Write.** Call
   ```
   finish_task(key=<key>, pr_url=<url>, note=<note or null>, board_type=<type>,
               target=<done_target or null>, provider_options=<task_board.options or {}>)
   ```
   On `status == "error"`, report the reason in Russian and stop.
6. **Re-index.** Call `sync_board(board=<project or null>, board_type=<type>,
   provider_options=<task_board.options or {}>)`, then report the write and sync result. When
   `already_closed` is true, state that no duplicate PR link was added. Report the task link from
   `task_link_status`, not from `task_link_added` alone: `added` — the link was written now;
   `already_present` — it was already in the PR body, so report it as normal (an idempotent no-op,
   never as a problem); `failed` — only then relay the warning verbatim, and the board write still
   succeeded. `task_link_added` stays `true` only for `added` (older deploys may omit
   `task_link_status`: treat a missing field as `added`/`failed` by whether warnings mention the link).

All reads are fail-open; the explicitly confirmed `finish_task` call is the only write.

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.