Skip to content
Security
Skill

/commitment-triage

Recognize obligations in conversation, extract signals with immediacy and expiration, create and manage commitments in the workspace.

BOOST
From plugin
ironclaw
13k23 skills6 commands1 MCP
Install
$ npx -y skills add nearai/ironclaw --skill commitment-triage --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/commitment-triage

Context preview

The summary Claude sees to decide when to auto-load this skill.

Recognize obligations in conversation, extract signals with immediacy and expiration, create and manage commitments in the workspace.

SKILL.md

commitment-triage.SKILL.md
name: commitment-triage
version: 0.2.1
description: Recognize obligations in conversation, extract signals with immediacy and expiration, create and manage commitments in the workspace.
activation:
  # Limits enforced by `ironclaw_skills::types::ActivationCriteria::enforce_limits`:
  # MAX_KEYWORDS_PER_SKILL=20, MAX_PATTERNS_PER_SKILL=5. The lists below are
  # intentionally trimmed to those caps; entries past the cap are silently
  # dropped at parse time.
  keywords:
    - need to
    - have to
    - must do
    - promised
    - committed to
    - deadline
    - by friday
    - by tomorrow
    - follow up
    - get back to
    - track this
    - mark done
    - commitment
    - obligation
    - overdue
    - slack message from
    - asked me to review
    - can you review
    - this week
  patterns:
    - "(?i)I (need|have|should|must|ought) to"
    - "(?i)(don't let me forget|make sure I)"
    - "(?i)(by|before|until) (monday|tuesday|wednesday|thursday|friday|saturday|sunday|tomorrow|tonight|end of)"
    - "(?i)(promised|committed|agreed) (to|that)"
    - "(?i)(slack|email|dm|text) message from .+: .+"
  exclude_keywords:
    - setup commitments
    - install commitments
  tags:
    - commitments
    - task-management
    - personal-assistant
  max_context_tokens: 2000

Commitment Triage

You have a commitments tracking system in the workspace under `projects/commitments/`. Read `projects/commitments/README.md` for the full schema if you need field details.

Mode A: Passive signal detection

When the user says something that implies an obligation, promise, or deadline — but is NOT explicitly asking you to track it — silently extract a signal.

**Triggers:** "I need to...", "I promised Sarah...", "I should get back to...", "The report is due Friday", "They asked me to review..."

Treat these as especially strong passive-signal cases even if the user does not say "track this":

  • "The strategy team asked me to review the international expansion reforecast this week."
  • "Legal asked me to comment on the draft by Thursday."
  • "Slack message from Priya: can you review the OAuth callback edge case this week?"
  • "I need to review Sarah's deck before Friday."

These should usually become `review`, `reply`, or `follow-up` signals with `immediacy: prompt` when the request is time-sensitive or comes from a named person/team.

Treat inbound-message phrasings like these as strong passive signals too:

  • "Slack message from strategy: can you review the international expansion reforecast this week?"
  • "Email from legal: can you comment on the draft by Thursday?"

**Action:** 1. Check for duplicates: `memory_search` for key phrases within `projects/commitments/` 2. If no duplicate, call `memory_write` with:

  • `target`: `projects/commitments/signals/pending/<slug>.md`
  • `append`: false
  • Content: signal frontmatter + description

3. Only after the `memory_write` succeeds, at a natural pause briefly note: "I've tracked a commitment about [topic]."

Do not merely acknowledge or summarize an obligation. This mode is successful only if a signal is actually written to `projects/commitments/signals/pending/`.

Do NOT interrupt the conversation flow. Signal extraction is a side-effect. For commitment tracking, use `memory_tree`, `memory_read`, and `memory_write`. Do not use CodeAct, shell commands, or creative-generation tools unless the user explicitly asked for execution rather than tracking.

**Signal template:**

---
type: signal
source_channel: <current channel>
source_message: "<brief quote>"
detected_at: <today YYYY-MM-DD>
immediacy: <realtime|prompt|batch — see rules below>
expires_at: <YYYY-MM-DD or null>
confidence: <high if explicit obligation, medium if implied, low if ambiguous>
obligation_type: <reply|deliver|attend|review|decide|follow-up|informational>
mentions: [<people mentioned>]
destination: null
promoted_to: null
---
<1-2 sentence description of the detected obligation.>

**Immediacy rules:**

  • `realtime`: production incidents, security alerts, stop-loss triggers, anything marked urgent by the user. If you detect a realtime signal, send a `message` immediately — do not wait for the next triage run.
  • `prompt`: urgent DMs from key people, trending topics (for creators), time-sensitive requests, or named-person/team asks like "the strategy team asked me to review..."
  • `batch`: most obligations — meeting action items, reports to read, tasks with multi-day deadlines

**Signal destinations (set during triage, not initial extraction):**

  • `commitment`: actionable, tracked → promote to `projects/commitments/open/`
  • `parked_idea`: interesting but not now → write to `projects/commitments/parked-ideas/`
  • `intelligence`: informational, shapes future decisions → write a durable MemoryDoc via `memory_write` to a non-commitments path (e.g. `context/intel/<slug>.md`)
  • `dismissed`: not relevant

Mode B: Explicit capture

When the user explicitly asks to track something: "track this", "add a commitment", "I committed to X".

If the user says "track this separately", "track this too", or otherwise introduces a second distinct obligation, create a new commitment file for that new item. Do not overwrite or silently reuse the previous commitment unless it is clearly the same obligation.

Phrasings like "track this request from Slack", "track this request from email", or "track this review request" are explicit capture requests. They should go through Mode B and produce a persisted commitment or signal write, not just a summary response.

Example:

  • User: "Track this: Sarah is going to deliver the Q2 budget proposal by Friday."
  • User later: "Track this separately: Bob is drafting the acquisition term sheet by Tuesday next week."
  • Required behavior: create a second distinct `memory_write` for Bob's term

sheet. Do not only confirm it in prose, and do not reuse Sarah's file.

**Action:** 1. Skip the signal stage — write directly to `projects/commitments/open/<slug>.md` 2.

Read more
Ships withironclaw

IronClaw is an Agent OS focused on privacy, security and extensibility

Get the whole plugin

Other skills on ironclaw.

railway-test
Skill

railway-test

Triggered when the user invokes /railway-test or $railway-test, asks to test a pull request on Railway, or requests browser-based…

@nearai@nearaiInstall Skill