Agent skill

Followup Todos

by benoror in benoror/obsidianos_work

Extract action items as plain markdown bullets (with confirmation).

MITAuto-check passedProductivity & Automation

Install Followup Todos

skills CLI
$ npx skills add benoror/obsidianos_work --skill followup-todos -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install benoror/obsidianos_work followup-todos --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/benoror/obsidianos_work.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/followup-todos .claude/skills/followup-todos && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
followup-todos
GitHub stars
165
Token cost
~1.8k tokens
SKILL.md length
868 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

Extract action items as plain markdown bullets (with confirmation).

  • Works in 6 steps: Read the meeting note and gather context → Classify each action item → Present proposals to the user —… → …
  • Tasks that involve Meeting notes and agendas
  • SKILL.md covers Usage, Output format (mandatory), Prerequisites and Optional context, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Followup Todos is an agent skill from benoror/obsidianos_work. Extract action items as plain markdown bullets (with confirmation). Args: <path. No args = run [/note-status pending --step=todos](../note-status/SKILL.mdpending-mode).

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Productivity & Automation, covering Meeting notes and agendas. It works with Jira and Obsidian. The repository describes itself as: ObsidianOS - Work Vault. The licence is MIT.

When your agent uses it

  • Tasks that involve Meeting notes and agendas

Example prompts

  • “/followup-todos”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Read the meeting note and gather context
  2. Classify each action item
  3. Present proposals to the user — MANDATORY CONFIRMATION
  4. Insert confirmed follow-ups
  5. Mark as processed
  6. Offer to commit

What it can do on your machine

Read from SKILL.md and the folder at commit 3c7923e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Followup Todos loads about 1.8k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 868 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from benoror/obsidianos_work at commit 3c7923e, republished under its MIT licence (© benoror). 868 words, ~1,834 tokens.

Download SKILL.mdSave it as .claude/skills/followup-todos/SKILL.md (or your agent's skills folder).
name
followup-todos
description
Extract action items as plain markdown bullets (with confirmation). Args: <path>. No args = run [/note-status pending --step=todos](../note-status/SKILL.md#pending-mode).
license
MIT

Follow-up Todos

Usage

  • /followup-todos <path> — Extract and propose follow-ups from a specific meeting note.
  • /followup-todos (no args) — Run /note-status pending --step=todos to show meetings missing follow-up extraction. The user picks one (or more) to process.

Output format (mandatory)

  • Never insert Obsidian Tasks / checkbox lines: no - [ ], - [x], - [-], or any - [?] pattern.
  • Never append Tasks-plugin inline metadata on inserted lines: no 📅, 🛫, ⏳, or other parsed task tokens. (Optional priority emoji at the very end as plain text — e.g. 🔼 — is fine if it reads naturally in prose.)
  • Always insert plain list items: - Description… Wikilinks ([[@Name]], [[+Team]]) and bold are allowed.

Prerequisites

The meeting file should ideally have cached AI transcripts (from /cache-notes). If not cached, suggest running /cache-notes <path> first. However, the skill also works on notes with only manual content.

Optional context

For classification (owner, urgency, dates in the proposal step), you may still use people-resolver and obsidian-tasks as reference — but do not copy Tasks checkbox or date-token syntax into the note.

Workflow

Step 1: Read the meeting note and gather context

See vault-context for vault discovery conventions.

Read the entire file. Also read Tracker.md to cross-reference Jira tickets and current task status — this helps:

  • Set priority: A ticket already marked 🔺 in the Tracker should keep that priority (as trailing emoji in the bullet text if you include one).
  • Avoid duplicates: If a follow-up already exists in the Tracker for the same Jira ticket, flag it in the proposal table (Step 3) rather than creating a duplicate line in the note.
  • Add context: If the meeting references a Jira ticket ID (e.g. PROJ-1234), pull its current status and assignee from the Tracker.

Extract action items from all content sources, skipping lines that are already captured as follow-ups (compare meaning, not only exact text):

  1. Manual notes (between frontmatter --- and ## 🤖 AI Notes): Free-text action items (e.g. "- Talk to Alex about X"). Skip lines that are checkbox tasks (- [*] — any single character between brackets) when deduplicating, but note the vault may still contain legacy - [ ] lines from older runs.
  2. [!gemini_todos] callout: Gemini's "Suggested Next Steps" — explicit action items.
  3. [!gemini_notes] callout: Summary & Details — scan for implicit commitments ("will do X", "agreed to Y", "plans to Z").
  4. Other provider callouts ([!otter_todos], etc.): Same treatment as Gemini.

Also extract:

  • Existing plain bullets and checkbox lines in the follow-up section to avoid duplicates
  • Participants: from frontmatter (to resolve assignees)
  • Meeting date (from filename or created: frontmatter)
Step 2: Classify each action item

For each candidate action item (from manual notes, transcript todos, or implicit commitments in details), determine:

  1. Owner: Who is responsible? See people-resolver for name matching and assignee rules.

  2. Relevance: Score as high, medium, or skip:

    • High: Action is for the user, has a clear deliverable, or is time-sensitive.
    • Medium: Action is for someone else but the user should track it, or it's vague but potentially important.
    • Skip: Purely informational, already completed (based on date vs today), or not actionable.
  3. Priority (for the proposal table only): Based on urgency and impact (see priorities in obsidian-tasks). When inserting bullets, you may end the line with a single priority emoji (🔺 ⏫ 🔼 🔽) as plain text — never as Tasks metadata.

  4. Dates: Note due/start in the proposal table when helpful; do not put 📅 / 🛫 / ⏳ on inserted lines. If a date matters, write it in words in the bullet (e.g. "by 2026-03-26").

Show full SKILL.md (318 more words)Show less
Step 3: Present proposals to the user — MANDATORY CONFIRMATION

⚠️ STOP HERE AND WAIT FOR USER CONFIRMATION. Never skip this step, even during /meeting wrap sequences. Do NOT write follow-ups to the file until the user explicitly approves.

Display a numbered table:

| # | Add? | Follow-up | Owner | Priority |
|---|------|-----------|-------|----------|
| 1 | ✅   | Talk with Alex about temp environments | Me | 🔼 |
| 2 | ✅   | Offload data lake work to Jane | Me | ⏫ |
| 3 | ⬜   | Confirm travel plans for Friday | [[@Sam Rivera]] | — |
| 4 | ⬜   | Verify production deploy completed | Me | 🔼 |
  • Default ✅ for high-relevance items owned by the user.
  • Default ⬜ for others' items or skippable ones.
  • Let the user toggle by saying numbers (e.g. "1,3,4" or "all" or "none except 2").
Step 4: Insert confirmed follow-ups

Only proceed after the user has explicitly confirmed which items to include (Step 3).

Insert each confirmed item as one line:

markdown
- Clear, self-contained description (optional **bold**, `[[@Name]]`, optional trailing 🔼)

Do not use - [ ]. Placement depends on the note's template:

Daily Standup notes (Meetings/*/Scrum/YYYY-MM-DD.md)

These follow the Daily Standup template:

Yesterday
- ...
Today
- ...          ← INSERT FOLLOW-UPS HERE (append after existing Today items)
Blockers
- ...
---
Pending/Carry-over Backlog
- ...

Insert at the end of the "Today" section, just before the Blockers line. Use StrReplace targeting Blockers as the anchor.

Other meeting notes

Prefer a dedicated section heading if missing, e.g. ## Follow-ups, placed after the title / any manual notes and before ## 🤖 AI Notes. If a ## Follow-ups (or equivalent) section already exists, append there. If neither heading exists, append after the frontmatter closing --- and add ## Follow-ups first.

General rules
  • Group by owner if multiple people are involved (optional sub-bullets under a short **[[@Name]]** line).
  • Preserve existing content — always append, never overwrite.
Step 5: Mark as processed

After inserting, add a TodosExtracted: YYYY-MM-DDTHH:MM:SS±HH:MM frontmatter property to prevent re-processing. This is required — /meeting wrap pending relies on it to detect unprocessed meetings.

Step 6: Offer to commit

See /commit. Skip when called as part of a sequence (e.g. /meeting wrap).

Important Notes

  • Always read the file before editing — frontmatter may have changed since your last read.
  • Do NOT duplicate follow-ups that already exist in the note body (compare by description similarity).
  • When in doubt about relevance, include it as ⬜ in Step 3 and let the user decide.
  • If the meeting is old (>2 weeks), flag items that may already be completed and suggest skipping them.

© benoror, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/followup-todos of benoror/obsidianos_work.

Open the folder on GitHubat commit 3c7923e

Compare with similar skills

Followup Todos next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Followup Todos compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Followup Todos this skillbenoror/obsidianos_work165—~1.8kAutomated safety check: PassMIT
Management Talkthananon/9arm-skills3.2k—~3.2kAutomated safety check: PassNone
Daily Journalravila4/claude-adhd-skills158—~2.5kAutomated safety check: PassMIT
GranolaArtemXTech/claude-code-obsidian-starter225—~905Automated safety check: PassNone
Daily UpdateAr9av/obsidian-wiki3.5k—~2.4kAutomated safety check: NotesMIT
Granola To Obsidianharperreed/dotfiles334—~1.2kAutomated safety check: PassNone

Similar skills

  • Management Talk

    thananon/9arm-skills

    Rewrite engineer-to-engineer content for engineering-org leadership (VPs, directors, PMs, release managers, execs in an engineering-savvy company) and shape it for the channel it is going to — JIRA…

    3.2k GitHub stars~3.2k tokensUpdated 3 mo ago
    Productivity & AutomationAuto-check passed
  • Daily Journal

    ravila4/claude-adhd-skills

    Draft, organize, or update development journal entries. An agent skill from ravila4/claude-adhd-skills.

    158 GitHub stars~2.5k tokensUpdated 7 mo ago
    Productivity & AutomationAuto-check passed
  • Granola

    ArtemXTech/claude-code-obsidian-starter

    Query and sync Granola meetings to Obsidian vault. An agent skill from ArtemXTech/claude-code-obsidian-starter.

    225 GitHub stars~905 tokensUpdated 5 days ago
    Productivity & AutomationAuto-check passed
  • Daily Update

    Ar9av/obsidian-wiki

    Run or configure the daily wiki maintenance cycle: check source freshness, refresh the index and hot.md, and manage its scheduled 9 AM launchd/systemd/cron reminder.

    3.5k GitHub stars~2.4k tokensUpdated today
    Productivity & AutomationAuto-check: notes
  • Granola To Obsidian

    harperreed/dotfiles

    A skill your agent uses when asked to import, sync, or add Granola meeting notes into the Obsidian vault.

    334 GitHub stars~1.2k tokensUpdated 8 days ago
    Productivity & AutomationAuto-check passed
  • Summarize Meetings

    harperreed/dotfiles

    A skill your agent uses when processing, summarizing, or extracting insights from meeting notes in the Obsidian vault.

    334 GitHub stars~3.3k tokensUpdated 8 days ago
    Productivity & AutomationAuto-check passed

More from benoror/obsidianos_work

All 18 skills in this repo
  • Qmd

    benoror/obsidianos_work

    Search vault notes by keyword or meaning. An agent skill from benoror/obsidianos_work.

    165 GitHub stars~858 tokensUpdated 4 mo ago
    Auto-check passed
  • Cache Notes

    benoror/obsidianos_work

    Fetch & embed AI transcripts as Obsidian callouts. An agent skill from benoror/obsidianos_work.

    165 GitHub stars~2.7k tokensUpdated 4 mo ago
    Auto-check passed
  • Fill Participants

    benoror/obsidianos_work

    Resolve and fill Participants frontmatter + link unlinked names in body.

    165 GitHub stars~1.6k tokensUpdated 4 mo ago
    Auto-check passed
  • Last 1on1

    benoror/obsidianos_work

    Show when you last had a 1:1 with each direct report / peer, sorted by recency.

    165 GitHub stars~732 tokensUpdated 4 mo ago
    Auto-check passed
  • Mail Transcripts

    benoror/obsidianos_work

    Gmail AI transcript notifications → meeting Notes: URLs + mark read.

    165 GitHub stars~1k tokensUpdated 4 mo ago
    Auto-check passed
  • Meeting

    benoror/obsidianos_work

    Create or wrap meeting notes. An agent skill from benoror/obsidianos_work.

    165 GitHub stars~2k tokensUpdated 4 mo ago
    Auto-check passed

Works with

Questions about Followup Todos

What does Followup Todos do?

Extract action items as plain markdown bullets (with confirmation). Followup Todos is an agent skill from benoror/obsidianos_work. Extract action items as plain markdown bullets (with confirmation).

When should I use Followup Todos?

Followup Todos fits situations like: tasks that involve Meeting notes and agendas.

How do I install Followup Todos in Claude Code?

Run `npx skills add benoror/obsidianos_work --skill followup-todos -a claude-code`. Or copy the skill folder (.agents/skills/followup-todos in benoror/obsidianos_work) into .claude/skills/followup-todos in your project. Claude Code loads it when a task matches its description.

How do I install Followup Todos in Codex?

Run `npx skills add benoror/obsidianos_work --skill followup-todos -a codex`. Or copy the skill folder (.agents/skills/followup-todos in benoror/obsidianos_work) into .agents/skills/followup-todos in your project. Codex loads it when a task matches its description.

Can I use Followup Todos in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add benoror/obsidianos_work --skill followup-todos -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/followup-todos, .gemini/skills/followup-todos, .github/skills/followup-todos and .opencode/skills/followup-todos in your project.

What does Followup Todos need to run?

SKILL.md names no scripts, command-line tools or credentials: Followup Todos is instructions for the agent only.

Does Followup Todos access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Followup Todos safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Followup Todos use?

Followup Todos is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Followup Todos use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Followup Todos?

Skills that share tags, products or a category with Followup Todos: Management Talk (thananon/9arm-skills, 3.2k stars), Daily Journal (ravila4/claude-adhd-skills, 158 stars), Granola (ArtemXTech/claude-code-obsidian-starter, 225 stars) and Daily Update (Ar9av/obsidian-wiki, 3.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Followup Todos?

benoror (a GitHub user) maintains it in benoror/obsidianos_work, which has 165 GitHub stars. The repository holds 18 skills in this directory. The repository was last updated on June 11, 2026.

Source: benoror/obsidianos_work on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.