Agent skill

Fill Participants

by benoror in benoror/obsidianos_work

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

MITAuto-check passedDocuments & Office

Install Fill Participants

skills CLI
$ npx skills add benoror/obsidianos_work --skill fill-participants -a claude-code

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

GitHub CLI
$ gh skill install benoror/obsidianos_work fill-participants --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/fill-participants .claude/skills/fill-participants && 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
fill-participants
GitHub stars
165
Token cost
~1.6k tokens
SKILL.md length
705 words
Files
1
Skills in repo
18
Repo updated
First seen
Licence
MIT

At a glance

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

  • Works in 7 steps: Identify targets → Gather participant info for each target → Match names to People files → …
  • Documents & Office work in your project
  • SKILL.md covers Usage, Frontmatter Conventions, Workflow and Step 8: Offer to commit, plus 1 more section
  • Calls git

What it does

Fill Participants is an agent skill from benoror/obsidianos_work. Resolve and fill Participants frontmatter + link unlinked names in body. Args: <path, all.

Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Requires qmd (CLI or MCP) and gws CLI when resolving names from Google Docs (read-only). See [google-workspace-cli](../shared/google-workspace-cli.md).

It sits in Documents & Office. It works with Google Workspace. The repository describes itself as: ObsidianOS - Work Vault. The licence is MIT.

When your agent uses it

  • Documents & Office work in your project

Example prompts

  • “/fill-participants”

Requirements

  • Compatibility (from SKILL.md): Requires qmd (CLI or MCP) and gws CLI when resolving names from Google Docs (read-only). See [google-workspace-cli](../_shared/google-workspace-cli.md).

Workflow steps

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

  1. Identify targets
  2. Gather participant info for each target
  3. Match names to People files
  4. Present findings and ask for confirmation
  5. Link unlinked names in note body
  6. Apply frontmatter changes
  7. Handle intentionally blank meetings

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

    Shell commands in SKILL.md call:

    • git

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

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    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.

  • Compatibility

    Requires qmd (CLI or MCP) and gws CLI when resolving names from Google Docs (read-only). See [google-workspace-cli](../_shared/google-workspace-cli.md).

    From compatibility in the SKILL.md frontmatter.

Context cost

Fill Participants loads about 1.6k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 705 words of instructions outside code blocks.

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

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). 705 words, ~1,599 tokens.

Download SKILL.mdSave it as .claude/skills/fill-participants/SKILL.md (or your agent's skills folder).
name
fill-participants
description
Resolve and fill Participants frontmatter + link unlinked names in body. Args: <path>, all.
compatibility
Requires qmd (CLI or MCP) and gws CLI when resolving names from Google Docs (read-only). See [google-workspace-cli](../_shared/google-workspace-cli.md).
license
MIT

Fill Participants

Usage

  • /fill-participants all — Scan all meetings, find those missing Participants, resolve and fill them.
  • /fill-participants <path> — Fill participants for a specific meeting note (relative to workspace root, e.g. Meetings/Engineering/Some Meeting.md).

Frontmatter Conventions

See people-resolver for wikilink format and name matching rules.

Participants live in YAML frontmatter as either:

yaml
# Single participant
Participants: "[[@Jane Doe]]"

# Multiple participants
Participants:
  - "[[@Jane Doe]]"
  - "[[@Alex Kim]]"

# Team-wide meetings
Participants: "[[+Engineering]]"

Workflow

Step 1: Identify targets

Mode A (all):

Run /note-status pending --step=participants to discover notes missing Participants:, present them, and let the user select which to process.

Mode B (specific file):

  1. Read the specified file.
  2. Check if Participants already exists in frontmatter. If so, inform user and stop (or ask if they want to override).
Step 2: Gather participant info for each target

For each meeting missing Participants, determine attendees using the resolution priority defined in people-resolver. In summary:

  1. External transcript sources — Use the source linked in Notes: frontmatter:
    • Google Docs: Extract document ID from Notes:, fetch content with gws (gws docs documents get or gws drive files export to plain text — see google-workspace-cli); Gemini summaries name participants explicitly.
    • Otter.ai: Use otter-fetch when an Otter URL is in Notes: (user pastes JSON; run parse_otter.js or parse inline).
  2. File name — X x Y patterns.
  3. File content — Existing [[@Name]] references.
  4. Folder conventions — e.g. Meetings/Engineering/Scrum/ → [[+Engineering]].
  5. Similar meetings — Recurring meeting with same name, different date.
  6. Tracker.md — Jira ticket assignees for disambiguation.
Step 3: Match names to People files

Build a name dictionary per people-resolver. Match names from the transcript source (Google Docs, Otter when enabled, etc.) against the dictionary. Flag any unmatched names for user confirmation.

Step 4: Present findings and ask for confirmation

Present results grouped into:

  1. Confident matches — Table of meeting → proposed Participants. Apply without asking.
  2. Needs confirmation — Ambiguous matches, unknown people, or meetings with only Otter.ai links (no Google Doc). Ask the user.
  3. New people — Names not in People files. See people-resolver § "Creating New People".

Also flag if any existing @Person.md files are missing key properties (FullName, Team) that were discovered from Google Docs.

Scan the entire file content (body + AI transcript callouts) for mentions of people that are not already wrapped in [[@Name]] wikilinks. This catches plain-text references from Gemini transcripts and manual notes.

5a: Build a name dictionary

Use the name dictionary and matching rules from people-resolver.

5b: Scan for unlinked mentions

Search the note body for each name variant, following the word boundary and skip rules in people-resolver.

Show full SKILL.md (295 more words)Show less
5c: Present matches for confirmation

⚠️ MANDATORY: Always prompt the user before replacing. Never auto-replace — false positives are common with first names and nicknames.

Display a numbered table of proposed replacements:

| # | Replace? | Found text | → Link | Context (surrounding text) |
|---|----------|------------|--------|---------------------------|
| 1 | ✅ | Jane Doe | [[@Jane Doe]] | "...assigned Jane Doe a bug ticket..." |
| 2 | ✅ | @Jane | [[@Jane Doe]] | "...recent changes made by @Jane..." |
| 3 | ⬜ | Alex Kim | [[@Alex Kim]] | "...Alex Kim confirmed they have been..." |
| 4 | ⬜ | Alex | — (skip, it's the user) | "...Alex Rivera and Alex agreed..." |
  • Default ✅ for full-name matches (high confidence).
  • Default ⬜ for first-name-only or nickname matches (need confirmation).
  • Always skip linking the vault owner's name (see USER.md Identity) — these don't need wikilinks.
  • Show a short context snippet so the user can judge correctness.
  • Let the user toggle by saying numbers (e.g. "1,2" or "all" or "none").
5d: Apply confirmed replacements

Use StrReplace for each confirmed match. When a name appears multiple times, ask the user if they want to replace all occurrences or specific ones.

Step 6: Apply frontmatter changes

For each file, add Participants: to the YAML frontmatter just before the closing ---. Use StrReplace targeting a unique anchor (last line before ---).

Step 7: Handle intentionally blank meetings

For meetings where participants genuinely can't be determined:

  • Use team links where the meeting clearly belongs to a team (e.g. [[+QA]], [[+Eng]]).
  • Use — (em-dash) as the universal "intentionally left blank" marker for true unknowns.
  • Never leave the field absent — every meeting should end up with a Participants value.

Step 8: Offer to commit

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

Important Notes

  • Always read a file before editing it — frontmatter may have been modified by Obsidian sync.
  • The modified: timestamp in frontmatter changes frequently; use other properties as unique anchors for StrReplace.
  • Batch edits where possible to minimize round-trips, but never edit a file without reading it first.
  • Interview notes use the co-interviewer (not the candidate) as Participants. If it was a solo interview, use [[@Me]].
  • This workspace may not be a git repo. If git status fails, skip the commit step entirely without error.

© 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/fill-participants of benoror/obsidianos_work.

Open the folder on GitHubat commit 3c7923e

Compare with similar skills

Fill Participants 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.

Fill Participants compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Fill Participants this skillbenoror/obsidianos_work165—~1.6kAutomated safety check: PassMIT
Managing Google Workspacetaylorwilsdon/google_workspace_mcp3.3k—~2.9kAutomated safety check: PassMIT
Gogopenclaw/gogcli8.5k—~2.9kAutomated safety check: PassMIT
Gws Calendar Agendagoogleworkspace/cli31k1 repos~389Automated safety check: PassApache-2.0
Gws Drive Uploadgoogleworkspace/cli31k1 repos~322Automated safety check: PassApache-2.0
Google Workspacemitsuhiko/agent-stuff3.2k—~919Automated safety check: PassApache-2.0

Similar skills

  • Managing Google Workspace

    taylorwilsdon/google_workspace_mcp

    Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search).

    3.3k GitHub stars~2.9k tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed
  • Gog

    openclaw/gogcli

    gog CLI: safe Google Workspace automation, JSON, auth, scoped reads/writes.

    8.5k GitHub stars~2.9k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Gws Calendar Agenda

    googleworkspace/cli

    Google Calendar: Show upcoming events across all calendars. An agent skill from googleworkspace/cli.

    31k GitHub starsUsed in 1 repo~389 tokens
    Documents & OfficeAuto-check passed
  • Gws Drive Upload

    googleworkspace/cli

    Google Drive: Upload a file with automatic metadata. An agent skill from googleworkspace/cli.

    31k GitHub starsUsed in 1 repo~322 tokens
    Documents & OfficeAuto-check passed
  • Google Workspace

    mitsuhiko/agent-stuff

    Access Google Workspace APIs (Drive, Docs, Calendar, Gmail, Sheets, Slides, Chat, People) via local helper scripts without MCP.

    3.2k GitHub stars~919 tokensUpdated 13 days ago
    Documents & OfficeAuto-check passed
  • Gws Sheets Append

    googleworkspace/cli

    Google Sheets: Append a row to a spreadsheet. An agent skill from googleworkspace/cli.

    31k GitHub starsUsed in 1 repo~389 tokens
    Documents & OfficeAuto-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
  • Followup Todos

    benoror/obsidianos_work

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

    165 GitHub stars~1.8k 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

Questions about Fill Participants

What does Fill Participants do?

Resolve and fill Participants frontmatter + link unlinked names in body. Fill Participants is an agent skill from benoror/obsidianos_work. Resolve and fill Participants frontmatter + link unlinked names in body.

When should I use Fill Participants?

Fill Participants fits situations like: documents & Office work in your project.

How do I install Fill Participants in Claude Code?

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

How do I install Fill Participants in Codex?

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

Can I use Fill Participants 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 fill-participants -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/fill-participants, .gemini/skills/fill-participants, .github/skills/fill-participants and .opencode/skills/fill-participants in your project.

What does Fill Participants need to run?

Going by SKILL.md and its folder, Fill Participants needs the command-line tools its instructions call (git). Compatibility (from SKILL.md): Requires qmd (CLI or MCP) and gws CLI when resolving names from Google Docs (read-only). See [google-workspace-cli](../_shared/google-workspace-cli.md)..

Does Fill Participants access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Fill Participants 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 Fill Participants use?

Fill Participants 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 Fill Participants use?

About 1.6k tokens (SKILL.md is roughly 6.4k 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 Fill Participants?

Skills that share tags, products or a category with Fill Participants: Managing Google Workspace (taylorwilsdon/google_workspace_mcp, 3.3k stars), Gog (openclaw/gogcli, 8.5k stars), Gws Calendar Agenda (googleworkspace/cli, 31k stars) and Gws Drive Upload (googleworkspace/cli, 31k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Fill Participants?

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.