Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Board

ASecurity

Manage the task board - view, create, move, prioritize, and track work items

39 stars
0 votes
0 copies
0 views
Added 9/23/2026
ai-agentsgo

Security Analysis

A100/100

Scanned 9/23/2026

Install to Claude Code

$npx -y skills add tashfeenahmed/scallopbot --skill board --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Board?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Board
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tashfeenahmed-board/badge)](https://www.skillsdirectory.com/skills/tashfeenahmed-board)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: board
description: Manage the task board - view, create, move, prioritize, and track work items
user-invocable: true
triggers: [board, kanban, tasks, todo, plate, "what's next", remind, reminder, schedule,
           work items, priorities, progress, status, overview, "how am i doing"]
scripts:
  run: "scripts/run.ts"
inputSchema:
  type: object
  properties:
    action:
      type: string
      enum: [view, add, move, update, done, archive, detail, snooze]
      description: "Action to perform on the board"
    scope:
      type: string
      enum: [current, all]
      description: "View scope. Defaults to naturally active work; use all for a complete durable inventory."
    query:
      type: string
      description: "Natural topic/name from the user's request. Lets a relevant older item return without dumping unrelated history."
    column:
      type: string
      enum: [inbox, backlog, scheduled, in_progress, waiting, done, archived]
      description: "Filter by column (for view) or target column (for move)"
    priority:
      type: string
      enum: [urgent, high, medium, low]
      description: "Priority level (for add/update/view filter)"
    label:
      type: string
      description: "Filter by label (for view)"
    title:
      type: string
      description: "For kind=nudge, the exact message delivered to the user; write it directly to them, never as an instruction such as 'ask the user'. For kind=task, a short board label."
    kind:
      type: string
      enum: [nudge, task]
      description: "nudge=pre-written user-facing message, task=sub-agent work that requires task_config (for add/update)"
    trigger_time:
      type: string
      description: "For ONE-OFF items only: 'in 30 min', 'tomorrow 9am', 'at 3pm', 'today 7pm'. For recurring schedules (every day / daily / every Monday / weekdays / weekends) use the `recurring` object instead — do NOT put 'every day at 8am' in trigger_time."
    recurring:
      type: object
      description: "USE THIS for any user request containing 'every day', 'daily', 'every Monday/Tuesday/...', 'weekdays', or 'weekends'. Example: user says 'remind me every day at 8am to take vitamins' → pass recurring={type:'daily',hour:8,minute:0} and leave trigger_time unset. The item will automatically re-fire on the next occurrence after each trigger."
      properties:
        type:
          type: string
          enum: [daily, weekly, weekdays, weekends]
          description: "daily=every day, weekly=one specific day of the week (requires dayOfWeek), weekdays=Mon-Fri, weekends=Sat-Sun"
        hour:
          type: integer
          description: "Hour in 24h format (0-23). For '8am' use 8, for '8pm' use 20."
        minute:
          type: integer
          description: "Minute (0-59)"
        dayOfWeek:
          type: integer
          description: "Day of week for type='weekly': 0=Sunday, 1=Monday, 2=Tuesday, 3=Wednesday, 4=Thursday, 5=Friday, 6=Saturday"
    labels:
      type: array
      items:
        type: string
      description: "Labels/tags (for add/update)"
    goal_id:
      type: string
      description: "Link to a goal (for add/update)"
    task_config:
      type: object
      description: "Sub-agent task config (for add with kind=task)"
      properties:
        goal:
          type: string
        tools:
          type: array
          items:
            type: string
    item_id:
      type: string
      description: "Item ID (for move/update/done/archive/detail/snooze)"
    status:
      type: string
      enum: [inbox, backlog, scheduled, in_progress, waiting, done, archived]
      description: "Target column (for move)"
    result:
      type: string
      description: "Completion note (for done)"
    time:
      type: string
      description: "New time for snooze, e.g. '1 hour', 'tomorrow 9am'"
  required: [action]
metadata:
  openclaw:
    emoji: "📋"
    safety:
      localWrite: true
    requires:
      bins: []
---

# Board Skill

Unified kanban task board that replaces the reminder and progress skills.

## Columns
- **inbox**: Untriaged items (agent-created proactive triggers)
- **backlog**: Triaged, not yet scheduled
- **scheduled**: Has a trigger time, waiting to fire
- **in_progress**: Being worked on
- **waiting**: Blocked on something
- **done**: Completed
- **archived**: Dismissed/expired/old done

## Actions
- `view`: Show the board. Optional filters: column, priority, label
- `add`: Create a new item. Required: title. Optional: kind, trigger_time, priority, labels, goal_id, task_config, recurring
- `move`: Move item to a column. Required: item_id, status (target column)
- `update`: Edit an item. Required: item_id. Optional: title, priority, labels, trigger_time, kind
- `done`: Mark complete. Required: item_id. Optional: result (completion note)
- `archive`: Dismiss/archive an item. Required: item_id
- `detail`: Show full item detail, including durable worker/attempt/lease/error state and result cost. Required: item_id
- `snooze`: Reschedule trigger time. Required: item_id, time

## Priority Levels
urgent > high > medium (default) > low

## Item Kinds
- `nudge`: A pre-written message/reminder delivered verbatim to the user. The `title` must address them directly.
- `task`: Sub-agent work that runs autonomously under a durable lease with heartbeats and bounded retries, then stores its result. Put internal instructions in `task_config.goal`, not in a nudge.

### User-facing nudge text

For a scheduled `nudge`, `title` is the exact notification text. Never store a plan for what the bot should say.

- BAD: `Daily check-in with Sam - ask about priorities and deadlines`
- GOOD: `Hey Sam, what are your priorities and deadlines today? How are things going?`
- BAD: `Send the user a reminder to take their medication`
- GOOD: `Quick reminder to take your medication.`

If the bot must gather data or perform work before messaging, use `kind: "task"` and put the work in `task_config.goal`.

## Recurring vs one-off

The system supports both. **Pick the right one:**

- **One-off**: use `trigger_time` — e.g. "remind me tomorrow at 9am" → `trigger_time: "tomorrow 9am"`. Fires once, then done.
- **Recurring**: use the `recurring` object — e.g. "remind me every day at 8am" → `recurring: {"type":"daily","hour":8,"minute":0}`. Automatically re-fires on each next occurrence forever until the user archives it.

If the user says any of these, they want **recurring** (never `trigger_time`):

| User says | Use |
|---|---|
| "every day at 8am" / "daily at 8am" | `recurring: {"type":"daily","hour":8,"minute":0}` |
| "every Monday at 9am" | `recurring: {"type":"weekly","hour":9,"minute":0,"dayOfWeek":1}` |
| "every weekday at 9am" / "weekdays at 9am" | `recurring: {"type":"weekdays","hour":9,"minute":0}` |
| "every weekend at 10am" / "weekends at 10am" | `recurring: {"type":"weekends","hour":10,"minute":0}` |

`dayOfWeek`: 0=Sun, 1=Mon, 2=Tue, 3=Wed, 4=Thu, 5=Fri, 6=Sat.

`hour` is 24h: 8am=8, noon=12, 2pm=14, 8pm=20.

**Never** put "every day at 8am" as a string into `trigger_time` — use the `recurring` object.

Attribution

tashfeenahmedtashfeenahmed
View sourceMore from tashfeenahmed →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

695601 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →