# Meetings

Context for the Meetings app's data, where a meeting's notes, diagram...

- Repository: https://github.com/kirodotdev/KiroCrew (4711 stars)
- Category: AI and agents
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add kirodotdev/KiroCrew --skill meetings -g -a claude-code -y`
Codex: `npx skills add kirodotdev/KiroCrew --skill meetings -g -a codex -y`
Cursor: `npx skills add kirodotdev/KiroCrew --skill meetings -g -a cursor -y`
Gemini CLI: `npx skills add kirodotdev/KiroCrew --skill meetings -g -a gemini-cli -y`

## Description

Context for the Meetings app's data, where a meeting's notes, diagram, transcript-derived tasks and calendar cache live, what the lifecycle states mean, how the app's agents are driven. Load when asked about a meeting's notes or action items, or when touching the meetings app data dir.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Meetings app

The Meetings app transcribes a live meeting and fans each line out to a small
crew of background agents. A **file-backed** agent (`widget_type` `markdown` or
`html`) owns exactly ONE output file and rewrites it in full after every batch.
An agent whose `widget_type` is `chat` has no output file, its output IS its
chat replies, it gets no `OUTPUT_FILE` line, and none of the file rules below
apply to it.

Only a markdown agent's output is user-editable in the app (the editable
minutes). A user edit never touches the agent's file: it is saved as a separate
sidecar under `edits/` that the dashboard shows in place of the agent's output,
so the agent's next rewrite cannot destroy it. That `edits/` tree is a sensitive
path, no agent can read or write it through file tools, so the agent's own
file is NOT what the user sees once they have edited it. An `html` output is not
user-editable.

Only one meeting may be active at a time; starting a second answers 409. The
server enforces the lifecycle transition table, not just the UI: `active` and
`paused` may only reach `ended` through `reviewing` (the action-item review
gate) on the status route, `reviewing` may go back to `paused`, `ended` may be
reopened to `active`, and a same-status POST is an idempotent no-op. Stop
(`POST …/meetings/<id>/stop`) is the separate exit that ends a meeting outright.

A live translation panel translates each transcript line as it lands, using one
tool-less `kirocrew-lite` call per line in an ephemeral session, deliberately
NOT the agent batch path, because latency is the point. It is sequential per
meeting and drops the oldest pending line when it falls behind, so gaps in
`translations.json` are expected, not a bug.

## Where the data lives

All paths are under `~/.kiro/crew/apps/meetings/data/`:

The rest: https://github.com/kirodotdev/KiroCrew/blob/HEAD/src/kiro_crew/builtin_skills/meetings/SKILL.md
