Skip to content
Back to skills

Task

ASecurity

Create, show, claim, finish, or move a task in a tracker with a duplicate-title check before every create. Use for /task create, /task show, /task claim, /task done, /task move, /task backlog, or when someone says add a task, close the task, or what is T123.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythongobashsqldatabase

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add foxrun-ai/foxrun --skill task --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Task?

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

Security grade badge for Task
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/foxrun-ai-task/badge)](https://www.skillsdirectory.com/skills/foxrun-ai-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
---
type: note
workspace: system
timestamp: 2026-10-26T14:10:00-04:00
name: task
description: "Create, show, claim, finish, or move a task in a tracker with a duplicate-title check before every create. Use for /task create, /task show, /task claim, /task done, /task move, /task backlog, or when someone says add a task, close the task, or what is T123."
kind: knowledge
argument-hint: "create | show | claim | comment | done | accept | move | backlog | todo | block | cancel <task id or title words>"
---

# task

One skill for the task object. The operation is the argument: `/task create`, `/task done T12`.
This skill is a thin door onto `work.py`. The hub for runs, claims, and close-out rules is `program-control`.
Every write goes through `work.py`, never hand SQL, so each change leaves an activity row.

## Find the tracker

Set `<ws>` to the workspace that owns the work. Do not route by the current folder alone.
Set `<tracker>` to `workspace_settings.<ws>.database` in `~/.foxrun/config/person.json`. If it is absent, use `~/.foxrun/data.db`.
In the commands below, `<work>` stands for this exact prefix:

```bash
python3 ~/.foxrun/work/work.py --workspace <ws> --db <tracker> --receipt-root ~/foxrun/<ws> --by <you>
```

Write `<you>` as your own agent name, never the runtime name.

## Steps

1. **Check for a duplicate first.** Before any `create`, search the titles with two or three key words:
   `sqlite3 -readonly <tracker> "SELECT id,title,status,project FROM tasks WHERE title LIKE '%<words>%' ORDER BY id"`.
   If a row fits, use it and stop here. Done when the search ran and you named the match, or said there is none.
2. **Place it.** A new top-level task needs the person's yes on one placement line: the title and the work stream. A checklist item under a task (`--parent <task id>`) needs no yes. Done when you have the yes, or the row is a checklist item.
3. **Run the operation.** Use one command from the table. Run `<work> <verb> --help` for every option. Done when the command prints `ok`.

   | Operation | Command |
   |---|---|
   | create | `<work> create --title "<what it checks, fixes, or makes>" --project <stream id> --status todo --problem ... --job-when ... --job-want ... --job-so ... --body ... --acceptance ... --context ... --where <path>` |
   | show | `<work> show <task id>` |
   | claim | `<work> claim <task id>` |
   | comment | `<work> comment <task id> "<one line>"` |
   | done | `<work> --receipt history/outputs/<evidence file> --proof "<one-line result>" done <task id>` (sets `in-review`; the receipt path is relative to `--receipt-root`) |
   | accept | `<work> accept <task id>` (a signer who did not do the work) |
   | move | `<work> task-move <task id> --project <stream id> --note "<reason>"` |
   | backlog, todo | `<work> backlog <task id> --note "<reason>"` or `todo` |
   | block | `<work> block <task id> "<reason>"` |
   | cancel | `<work> cancel <task id> --reason "<reason>"` |
   | edit | `<work> task-update <task id> --title ... --note ... --add-tag ...` |

4. **Read it back.** Run `<work> show <task id>`. Done when the printed row has the id, title, and status you expect. Say a fact was recorded only after this read.

## Gotchas

- `done` does not close a task. It sets `in-review`. `accept` closes it, and the signer must not be the one who did the work.
- `task-update` refuses `--status` and `--project`. Use the status verbs and `task-move`.
- One task holds every run of one piece of work. Never make a task per reply, read, or receipt.
- `create` prints the new id. Use that id; do not guess the next number.

Files in this skill

  • SKILL.md3.5 KB
  • replays/duplicate-check-first.json231 B

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.