← All Skills

snappy-krisp

v1.0.0
13 files, 59.4 KB ~1,038 words · 5 min read Updated 2026-09-09

snappy-krisp skill

50 of 54 checks pass
What it can do
fetch-meetings after-date?read
fetch-document meeting-idread
fetch-action-items limit?read
metrics nameread
What does not pass yet
$ npx snappy-skills install snappy-krisp
zip ↓
File Tree
├── AGENTS.md ├── SKILL.md ├── api.test.ts ├── api.ts ├── contract.test.ts ├── entities.json ├── faces/ │ ├── components/ │ │ ├── krisp-faces.css │ │ └── krisp-faces.tsx │ ├── family.tsx │ └── fixtures/ │ ├── krisp-actions.json │ ├── krisp-hits.json │ └── krisp-meeting.json └── metrics.json
Documents
AGENTS.md

<!-- SKILL-INDEX-START -->

[snappy-krisp Index]|root: ~/.claude/skills/snappy-krisp|IMPORTANT: Prefer these files over pre-training assumptions for this domain. Read the relevant file when the AGENTS.md summary is insufficient.|root:{SKILL.md}

<!-- SKILL-INDEX-END -->

snappy-krisp — Krisp → Ops Bridge#

Pure transformers that turn raw Krisp MCP payloads into structured work the

snappy-ops chassis can stage. No network calls — the agent fetches via

mcp__krisp__* tools, then pipes raw JSON through these helpers.

Purpose#

  • A snappy-ops recipe needs Robert's pending commitments from recent meetings
  • You want to scout tool mentions from mastermind transcripts
  • You need to bridge a specific meeting's action items into the work chassis

When NOT to use#

  • You need to write/update Krisp data — this skill is read-only transform
  • You need headless/cron access — see GAP in SKILL.md (no HTTP client yet)

API shape#

tsimport {
  actionItemsFor, pendingActionItemsFor, actionItemsSince,
  commitmentsFrom, extractToolMentions, meetingsSince,
} from "../snappy-krisp/api.ts";

// Claude Code agent fetches raw via MCP, then…
const mine = pendingActionItemsFor(raw);                  // items not-done, assigned to me
const recent = actionItemsSince(mine, "2026-04-01");      // last two weeks
const commits = commitmentsFrom(meetings);                // from meeting_notes
const tools = extractToolMentions(keyPointsText);         // scout list
Helper Purpose Certificate
pendingActionItemsFor(raw, who?) Filter list_action_items to my pending items Returns array; caller verifies count > 0 before staging
actionItemsSince(raw, iso) Filter by meeting_date ≥ iso Returns array; caller logs staged run_id
commitmentsFrom(raw, who?) Normalize meeting_notes.action_items Returns Commitment[]; run_id written to staged-actions.ndjson
extractToolMentions(text) Pull "try X" / URLs / foo.dev slugs Returns deduped string[]; certificate = the recipe's audit entry

All side-effects happen in the calling recipe. This primitive has no state.

CLI (stdin-piped)#

bashcat items.json    | npx tsx api.ts pending-for "Robert"
cat items.json    | npx tsx api.ts since 2026-04-01
cat meetings.json | npx tsx api.ts commitments "Robert"
cat meeting.json  | npx tsx api.ts tool-mentions

Identity#

Default assignee is "Robert Boulos". Override with KRISP_ME in

.env.cache. Matching is first-name tolerant so "Robert", "Robert B.", and

"Robert Boulos" all collapse to the same person.

Used by#

Nothing in the collection names this skill.

<!-- SNAPPY-CONTRACT-VERBS-START -->

Contract verbs#

Generated from api.ts HAND_CONTRACT. Do not hand-edit this block.

Verb Contract arguments Effect First call
fetch-meetings after-date? read npx tsx ~/.claude/skills/snappy-krisp/api.ts fetch-meetings
fetch-document meeting-id read npx tsx ~/.claude/skills/snappy-krisp/api.ts fetch-document <meeting-id>
fetch-action-items limit? read npx tsx ~/.claude/skills/snappy-krisp/api.ts fetch-action-items
metrics name read npx tsx ~/.claude/skills/snappy-krisp/api.ts metrics "<name>"

Show the result#

When an answer carries face_hint, show it with one snappy_present(<answer>) call.

See /snappy-faces for face selection. Human-facing images must crop to the

element, render at 2x on Retina, and fill the destination channel instead of

placing a small card in a full-page screenshot.

<!-- SNAPPY-CONTRACT-VERBS-END -->

<!-- SKILL-INDEX-START -->
[snappy-krisp Index]|root: ~/.claude/skills/snappy-krisp|IMPORTANT: Prefer these files over pre-training assumptions for this domain. Read the relevant file when the AGENTS.md summary is insufficient.|root:{SKILL.md}
<!-- SKILL-INDEX-END -->

# snappy-krisp — Krisp → Ops Bridge

Pure transformers that turn raw Krisp MCP payloads into structured work the
snappy-ops chassis can stage. No network calls — the agent fetches via
`mcp__krisp__*` tools, then pipes raw JSON through these helpers.

## Purpose

- A snappy-ops recipe needs Robert's pending commitments from recent meetings
- You want to scout tool mentions from mastermind transcripts
- You need to bridge a specific meeting's action items into the work chassis

## When NOT to use

- You need to write/update Krisp data — this skill is read-only transform
- You need headless/cron access — see GAP in SKILL.md (no HTTP client yet)

## API shape

```ts
import {
  actionItemsFor, pendingActionItemsFor, actionItemsSince,
  commitmentsFrom, extractToolMentions, meetingsSince,
} from "../snappy-krisp/api.ts";

// Claude Code agent fetches raw via MCP, then…
const mine = pendingActionItemsFor(raw);                  // items not-done, assigned to me
const recent = actionItemsSince(mine, "2026-04-01");      // last two weeks
const commits = commitmentsFrom(meetings);                // from meeting_notes
const tools = extractToolMentions(keyPointsText);         // scout list
```

| Helper | Purpose | Certificate |
|---|---|---|
| `pendingActionItemsFor(raw, who?)` | Filter list_action_items to my pending items | Returns array; caller verifies count > 0 before staging |
| `actionItemsSince(raw, iso)` | Filter by meeting_date ≥ iso | Returns array; caller logs staged run_id |
| `commitmentsFrom(raw, who?)` | Normalize meeting_notes.action_items | Returns `Commitment[]`; run_id written to staged-actions.ndjson |
| `extractToolMentions(text)` | Pull "try X" / URLs / `foo.dev` slugs | Returns deduped string[]; certificate = the recipe's audit entry |

All side-effects happen in the calling recipe. This primitive has no state.

## CLI (stdin-piped)

```bash
cat items.json    | npx tsx api.ts pending-for "Robert"
cat items.json    | npx tsx api.ts since 2026-04-01
cat meetings.json | npx tsx api.ts commitments "Robert"
cat meeting.json  | npx tsx api.ts tool-mentions
```

## Identity

Default assignee is `"Robert Boulos"`. Override with `KRISP_ME` in
`.env.cache`. Matching is first-name tolerant so "Robert", "Robert B.", and
"Robert Boulos" all collapse to the same person.

## Used by

Nothing in the collection names this skill.

<!-- SNAPPY-CONTRACT-VERBS-START -->
## Contract verbs

Generated from `api.ts` `HAND_CONTRACT`. Do not hand-edit this block.

| Verb | Contract arguments | Effect | First call |
|---|---|---|---|
| `fetch-meetings` | `after-date?` | `read` | `npx tsx ~/.claude/skills/snappy-krisp/api.ts fetch-meetings` |
| `fetch-document` | `meeting-id` | `read` | `npx tsx ~/.claude/skills/snappy-krisp/api.ts fetch-document <meeting-id>` |
| `fetch-action-items` | `limit?` | `read` | `npx tsx ~/.claude/skills/snappy-krisp/api.ts fetch-action-items` |
| `metrics` | `name` | `read` | `npx tsx ~/.claude/skills/snappy-krisp/api.ts metrics "<name>"` |

## Show the result

When an answer carries `face_hint`, show it with one `snappy_present(<answer>)` call.
See `/snappy-faces` for face selection. Human-facing images must crop to the
element, render at 2x on Retina, and fill the destination channel instead of
placing a small card in a full-page screenshot.
<!-- SNAPPY-CONTRACT-VERBS-END -->

Keyboard Shortcuts

Search in document⌘K
Focus search/
Previous file tab
Next file tab
Close overlayEsc
Show shortcuts?