agentleFS
Slava-codeSlava-code/slava-stack/.claude/skills/meeting/SKILL.md

meeting

Skill0 starsChanged 29 days agoMITView on GitHub

Save a meeting or call: verbatim transcript to raw/transcripts/, line-linked notes to meetings/ and propagate action items, insights, contacts and outcomes to todos/, advisors/, hubs and STATE.md after confirming each. Use when the user says: save this meeting, log this call, here's a transcript, we met with X, or pastes Otter/Granola/Fireflies notes.

14 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use ingest, commit and 1 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • JaimeGBASkill

    ingest

    Digest an external source (article, paper, transcript, URL, book chapter) and integrate its content into the knowledge base

    Also in 3 projects that use this

  • SentrySkill

    commit

    Create commit messages following Sentry conventions. Use when committing code changes, writing commit messages, or formatting git history. Follows conventional commits with Sentry-specific issue references.

    Also in 3 projects that use this

  • MicrosoftSkill

    handoff

    Compact the current conversation into a handoff document for another agent to pick up.

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 13 edited versions we read keep these.

  • 2

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Acquire the single-writer lock: Check runs/.lock. If it exists, abort with "another agent is writing, retry later." Otherwise write …

    line 14
  2. Distinctive:

    Ask only for what you can't infer.

    line 23
  3. Distinctive:

    Extract propagation candidates: Read the transcript and the digest you just wrote, and collect candidates in four buckets:

    line 32
  4. Very specific:

    Bidirectional wikilinks: every propagated file links back to [[meetings/<file>]], and the meeting's ## Related lists each propagated file.

    line 48
  5. Very specific:

    Recurring counterparty: if someone already has an advisors/<slug>/ or discovery/<firm>/ folder, still file the notes in meetings/ and the …

    line 70

“Common” is measured: kept by at least 6 in 10 of the 13 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

/meeting — Save a meeting + propagate its contents

The defining feature of this skill is propagation: a meeting file is a source, not a destination. /add-entry files one thing in one place; /meeting files the record AND fans the load-bearing bits out to where they're actionable.

Required reading first time: CONVENTIONS.md (esp. §"Single-writer rule", §"Commit convention", §inference discipline), schema/kb-schema.yaml (meeting type), meetings/README.md, raw/transcripts/README.md.

Steps

  1. Acquire the single-writer lock. Check runs/.lock. If it exists, abort with "another agent is writing, retry later." Otherwise write <session-id> <ISO-timestamp> to it. Release it in the final step (and on any abort).
  2. Acquire the transcript + metadata. The user pastes the transcript, gives a file path, or points at a recording. Elicit (or infer from the transcript header) what's needed for frontmatter:
    • Date (meeting date → date_found + filename). If only "today", use today.
    • Participants (list — names + roles where known; "Unknown" is acceptable, don't invent names).
    • Counterparty kind — advisor | customer | investor | partner | internal | networking | other.
    • Product — track-a | track-b | shared.
    • Topic (→ slug + title).
    • Source — how it was captured (Otter / Granola / Fireflies / live notes / recording).
    • Ask only for what you can't infer. Don't stall the save on optional fields.
  3. Write the meeting file. Copy schema/templates/meeting.md → meetings/YYYY-MM-DD-<counterparty-slug>-<topic-slug>.md (lowercase, hyphenated, slug ≤ ~50 chars). Fill:
    • Frontmatter — all required fields (title, type, product, date_found, participants, counterparty_kind, status). status: reviewed. Write a description: (≤120 chars, rule-not-summary, no wikilinks/links). Set redacted: true if the meeting is sensitive/NDA and scrub accordingly.
    • ## TL;DR (mandatory — lint enforces it) — 3–5 bullets a future agent reads instead of the transcript.
    • ## Key points / advice, ## Action items ([ ] checkboxes), optional ## Strategy / positioning notes, ## Notable quotes, ## Artifacts shared.
    • Transcript = its own file. First write the FULL verbatim transcript, unedited, to raw/transcripts/YYYY-MM-DD-<counterparty>-<topic>.md (frontmatter type: source, status: raw, a description:, a 2-line header naming the meeting file, then the text). Never edit it afterwards: notes cite it by line, so line numbers must stay stable. Then, in the meeting file, link every TL;DR bullet, key point, quote and action item to the transcript line(s) it comes from as [T:NN](../raw/transcripts/<file>.md#LNN) (find lines with grep -n). ## Transcript in the meeting file is one line pointing at the transcript file. Commit the transcript with the meeting (meeting: add ...).
    • Inference discipline (load-bearing): the digest reports what the transcript SAYS, not what it implies. Preserve hedges (maybe, we should ask, e.g.). Attribute advice to the speaker. A timeline/dependency about us is not a commitment by the counterparty. When unsure, quote. (CONVENTIONS §inference discipline.)
  4. Extract propagation candidates. Read the transcript and the digest you just wrote, and collect candidates in four buckets:
    BucketLooks likeDestination
    Action items"we should do X", "ask about Y", "send them Z", a deadlinetodos/ (one file each, via the /add-todo shape)
    Strategy / positioninga GTM/positioning/pricing/competition insight worth keepingstrategy/ if it's a settled stance; brainstorming/ if still open
    Contactsa person worth tracking (advisor, mentor, intro)[[wikilink]] in the meeting's related: now; offer an advisors/<slug>/ stub if they'll recur
    Artifactsfiles/links exchangedraw/ (binaries: decks, PDFs, recordings) or tools/ (utilities) — note them; the user supplies the actual files
    Resolved threadsthe meeting settles an open question recorded elsewhere — a ## Open threads bullet, a [?question] / [?decision] tag, a pending decisioninline resolution stamp on that doc (CONVENTIONS §"Resolution stamps"), NOT a supersede/rewrite. **Resolved YYYY-MM-DD → [[meetings/<file>]]:** <one line> at the head of the resolved bullet; back-link from the meeting's ## Related.
  5. Confirm before writing — every propagation. Present the candidates as a grouped checklist and let the user approve/edit/drop each. Nothing in step 4 is written without explicit confirmation. This is the inference-discipline gate: transcripts overflow with "maybe" and "we should look into" that an eager agent rounds up into commitments. Default to fewer, higher-confidence propagations; it's cheap to add another later. For todos, confirm the deadline — never invent one; if the transcript gives no date, ask or leave it out.
  6. Write the approved propagations.
    • Todos → todos/<deadline>-<slug>.md per schema/templates/todo.md (type: todo, kind: if event/meeting, status: pending, priority, created_at: today, related: wikilinks back to the meeting + any entity). Match /add-todo.
    • Strategy / brainstorm → strategy/YYYY-MM-DD-<slug>.md or brainstorming/YYYY-MM-DD-<slug>.md per the matching template. Cite the meeting: [[meetings/<file>]].
    • Advisor stub (only if user opts in) → advisors/<slug>/README.md per schema/templates/advisor.md.
    • Resolution stamps → edit the host doc in place: **Resolved YYYY-MM-DD → [[meetings/<file>]]:** <one line> at the head of the resolved bullet, original text left below. No new file, no supersedes: frontmatter, host doc stays live.
    • Bidirectional wikilinks: every propagated file links back to [[meetings/<file>]], and the meeting's ## Related lists each propagated file. Both sides know about the link.

6a. Run names through ALIASES.md. Transcripts mangle names (Dana Example → "Donna Exampel", ExampleDB → "Example Debbie"). Resolve every person, company and acronym in the digest against the alias table; ask the user about any that match nothing. Add new variants to the table. 6b. Keep current truth current. Ask: does this change what is true now — an outcome, a status, a number, a price, a decision, who someone is? If yes: (a) edit the matching line in STATE.md and bump its as-of: date; (b) update the hub README if the entity has one (see ALIASES.md); (c) add a new row to ALIASES.md for any new recurring name, nickname or transcript mis-spelling; (d) put a one-line outcome banner on older files that still read as open. Stage these in the same commit set. Skip silently if nothing changed. For a customer meeting, also append one line to the customer hub (discovery/<customer>/README.md). If the meeting closes an open todo, run the /complete-todo steps for it.

  1. Regenerate INDEXes + lint. python3 scripts/rebuild-indexes.py, then python3 scripts/kb-lint.py <changed files>. Fix content (or amend schema in a separate schema: commit) on failure — never --no-verify.
  2. Commit + push — one atomic commit per artifact, push after each (CONVENTIONS §"Commit convention"):
    • meeting: add <date>-<slug> — the meeting file + its raw/transcripts/ file (+ regenerated INDEX.md files)
    • todo: add <deadline>-<slug> — each todo
    • strategy: add <date>-<slug> / brainstorm: add <date>-<slug> — each insight doc
    • advisor: add <slug> — the stub, if created
    • <host-prefix>: resolve <host-slug> thread — each resolution stamp (prefix = the stamped doc's type, e.g. brainstorm: resolve <slug> thread) Each commit ends with the Co-Authored-By: trailer per CONVENTIONS.
  3. Release the lock. rm runs/.lock.
  4. Report. Summarize: the meeting file path + every propagated artifact, as a short list, so the user sees the fan-out.

Notes

  • Customer/prospect meetings: the verbatim transcript still lives in raw/transcripts/ and the notes in meetings/. If the call warrants a discovery digest, ALSO create a discovery/ type: interview file (themes, objections, quotes keyed to the firm) that links to the meeting notes and the transcript — don't duplicate the transcript into discovery/.
  • Recurring counterparty: if someone already has an advisors/<slug>/ or discovery/<firm>/ folder, still file the notes in meetings/ and the transcript in raw/transcripts/, and link them from their folder. Don't move either into the entity folder.
  • Privacy: redacted: true + scrub for NDA/sensitive meetings before committing. Git history is permanent.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.