From vela-plugins
Creates an INDEX.md knowledge base for a meeting-heavy engagement, with typed tables, markdown links, a contradictions tracker, and a key people reference
How this skill is triggered — by the user, by Claude, or both
Slash command
/vela-plugins:build-indexThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`INDEX.md` is the central knowledge base for a meeting-heavy engagement. It organises meetings into typed tables, links summaries and transcripts via standard markdown links, tracks cross-session contradictions, and maintains a reference table of key people.
INDEX.md is the central knowledge base for a meeting-heavy engagement. It organises meetings into typed tables, links summaries and transcripts via standard markdown links, tracks cross-session contradictions, and maintains a reference table of key people.
It is also the dependency for /sync-transcripts (which writes — placeholder rows when new transcripts land) and /summarize-transcripts (which replaces — with links to completed summaries). Build this file before running either of those skills.
Before writing anything, identify the types of meetings in your engagement. Common patterns:
| Category | Description |
|---|---|
| Stakeholder Interviews | 1:1 sessions with client team members |
| Kickoff & Progress Meetings | Stream kickoffs, weekly reviews |
| Technical Design Sessions | Architecture, workflow, or system design sessions |
| Internal Check-ins | Your own team's internal calls |
Add, rename, or remove categories to match your engagement. Each becomes its own ## section with its own table. One hard constraint: Summary must be the first column in every table — /sync-transcripts writes — there and /summarize-transcripts reads from it.
# <Engagement Name> — Knowledge Base Index
> <One-sentence description of the engagement and what this index covers>. Summaries are in `summaries/`; source transcripts are in `transcripts/`.
For each category from Step 1, add a ## section with a horizontal rule above it and a table below. Use the column patterns for the relevant type.
---
## Stakeholder Interviews
| Summary | Role | Date | Transcript |
|---|---|---|---|
| [Name — Role](summaries/YYYY-MM-DD_Name_Role.md) | Role Title | Mon DD | YYYY-MM-DD_Topic.md |
---
## Internal Check-ins
| Summary | Date | Key Topics |
|---|---|---|
| [Team Check-in](summaries/YYYY-MM-DD_Checkin.md) | Mon DD | Topic 1, topic 2 |
---
## Kickoff & Progress Meetings
| Summary | Type | Date | Participants |
|---|---|---|---|
| [Stream 1 Kickoff](summaries/YYYY-MM-DD_Stream1_Kickoff.md) | Stream 1 Kickoff | Mon DD | Person A + Person B |
---
## Technical Design Sessions
| Summary | Type | Date | Participants | Transcript |
|---|---|---|---|---|
| [Architecture Session](summaries/YYYY-MM-DD_Architecture.md) | Architecture Session | Mon DD | Person A + Person B | YYYY-MM-DD_Topic.md |
For any category not listed above, choose columns that are meaningful for that meeting type:
Summary is always firstDate is always presentTranscript if transcripts exist for those meetings/summarize-transcriptsAlways include this section, even if empty at first. It captures cross-session conflicts that need resolution before system design is finalised.
---
## Contradictions & Flags
> Cross-session contradictions that need resolution before system design is finalised.
1. **Short label — Person A vs. Person B:** One sentence describing the conflict. [Summary A](summaries/YYYY-MM-DD_A.md) says X; [Summary B](summaries/YYYY-MM-DD_B.md) says Y. → *Status: unresolved.*
If no contradictions exist yet, leave a placeholder rather than omitting the section:
## Contradictions & Flags
> Cross-session contradictions that need resolution before system design is finalised.
*None identified yet.*
Always the last section. One row per person, one key note — what matters most about them for the project.
---
## Key People Reference
| Name | Role | Key Note |
|---|---|---|
| Full Name | Role Title | One-line note about their most important characteristic for the project |
Populate this as you add meeting rows. Keep it deduplicated — the same person may appear under a nickname or short name elsewhere in the index.
Once the file exists, the other skills maintain it:
/sync-transcripts — adds — placeholder rows as new transcripts are downloaded; leave these as-is/summarize-transcripts — replaces — with markdown links to completed summary filesDo not write summary links directly into the index — let /summarize-transcripts do it so the file naming convention stays consistent.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub shaheerairaj/vela-marketplace --plugin vela-plugins