원클릭으로
inbox
Universal entry point for unstructured content. Classifies, stores in _inbox/, and hands off to the appropriate downstream skill.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Universal entry point for unstructured content. Classifies, stores in _inbox/, and hands off to the appropriate downstream skill.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Process meeting content into structured documentation -- summaries, decision tracking, action propagation, file updates. Config-driven for any organization. Replaces project-ops, bravo-ops, management-ops, marketing-ops.
Process and summarize transcriptions from calls, meetings, or voice recordings. Use when user provides a transcription, mentions processing a transcript, or wants to summarize a recorded conversation.
Knowledge extraction manager and skill evolution engine. Backfills _insights.yaml from historical corpus, compiles execution feedback into patterns, and proposes SKILL.md improvements.
Lifecycle management for outgoing material in `_outbox/`. List pending items, archive completed ones into the relevant contact/project folder, and keep manifest, CHANGELOG, and tasks in sync. Use when an outbox item has been sent, replied to, or otherwise resolved -- and the central `_outbox/` should be cleaned up.
Manage skill repo updates, symlink health, and installation. Fetches from multiple remotes with version safety, creates symlinks for new skills, audits symlink state.
Shared operational framework for meeting documentation, task management, and workflow processes. Base module referenced by the /ops skill.
| name | inbox |
| description | Universal entry point for unstructured content. Classifies, stores in _inbox/, and hands off to the appropriate downstream skill. |
Universal capture and classification for unstructured content. Accepts voice memos, quick notes, raw text, forwarded emails -- classifies and routes to the appropriate downstream skill.
vault/_inbox/
_inbox.yaml # Derived index (rebuilt from frontmatter)
YYMMDD-HHMMSS[-slug].md # Active items (frontmatter is canonical)
.audio/ # Raw audio captured by Trillian, paired by basename
YYMMDD-HHMMSS[-slug].m4a
.files/ # File drops: input files with a vault destiny (CR-024)
YYMMDD-HHMMSS[-slug].<ext>
.archive/ # Processed items (moved here after downstream skill runs)
.audio/ # Audio archived alongside transcript
.files/ # Source files that don't accompany their output
Schema: see docs/schemas/inbox.md for
the canonical <id>.md frontmatter shape, .audio/ convention, and
lifecycle states. The schema is the source of truth; this SKILL.md
documents skill behaviour. Other tools (Trillian, Deep Thought, Marvin,
external skills) write directly to _inbox/ against the schema; /inbox
is one of several producers.
/inbox [content] -- Default: Capture + ClassifyAccept raw content (pasted text, file path, or inline text), classify it, store in _inbox/, and suggest the downstream skill.
Processing flow:
Parse input -- detect content type:
voice_memoemailfile_drop (CR-024): move/copy the file into _inbox/.files/<id>.<ext> and create the paired stub with source.file_path and a type-based classification guess (PDF/document → summarize into a folder; CSV/xlsx → project data; image/media → attachment). Files >~25 MB: flag the size and offer process-in-place + reference-stub archiving instead of moving the blob. Full convention in docs/schemas/inbox.md "File drops".quick_noteraw_textAuto-classify -- determine which downstream skill should process this:
| Signal | Classification | Target Skill |
|---|---|---|
| Speaker labels, timestamps, dialogue format | transcript | /transcript |
| Org team member names (from ops-config), meeting context | ops | /ops |
| "TODO", "remind me", imperative sentences, action items | task | /tasks add |
| Short observation, no action context | note | None (already saved) |
| Idea, brainstorm, "what if" | idea | None (already saved) |
Assign confidence: high (clear signals), medium (some signals), low (ambiguous).
Determine routing -- consult CLAUDE.md MEETING ROUTING for folder suggestions:
_contacts/*/_meta.yaml for display_name or aliases matchteam[] for internal team members_contacts/david-ekberg/, acme/meetings/management/)Confirm with user -- present classification + routing summary:
Classification: transcript (high confidence)
Target skill: /transcript
Target folder: _contacts/david-ekberg/
OK to proceed? (or override)
Wait for user confirmation or override. Keep it brief -- one question, then go.
Store in _inbox/:
_inbox/YYMMDD-HHMMSS[-slug].md with frontmatter per docs/schemas/inbox.mdid, created, classification, confidence, status: pending, and routing fields in frontmatter_inbox.yaml index from the new frontmattersource.audio_path and ensure the audio is at _inbox/.audio/<id>.m4aExecute the downstream skill automatically:
transcript -> Run /transcript with the content, passing the target folderops -> Run /ops with the content, passing the org configtask -> Run /tasks add [extracted description]note/idea -> Already saved, no downstream skill neededArchive the inbox item after the downstream skill completes:
status: processed, processed_at to now (ISO 8601), processed_by to the downstream skill name, output_file to its output path_inbox/.archive/<id>.md and set archived_to_inbox/.audio/<id>.m4a to _inbox/.archive/.audio/<id>.m4a_inbox.yaml to reflect the new state/inbox status -- Show Inbox StateDisplay counts by status (per schema):
Inbox Status:
pending: 3 items
processing: 1 item
processed: 5 items (will archive on next process run)
skipped: 1 item
archived: 12 items (in .archive/)
---
Active: 4 items (pending + processing + skipped)
Orphan audio: 1 file (audio in .audio/ with no matching .md yet)
Also show classification breakdown of active items, flag any orphan
audio waiting in .audio/ for a matching transcript, and flag orphan
file drops in .files/ with no paired stub (offer to register them,
CR-024).
/inbox process [id|all] -- Process Stored ItemsProcess one item by ID, or all unprocessed items (status new or classified) with all.
Single item (/inbox process <id>):
_inbox/<id>.mdclassification is missing or confidence: low, run classification (Step 2 from default flow); update frontmatterstatus: processing/transcript, /ops, or /tasks add as appropriatestatus: processed, processed_at, processed_by, output_file<id>.md to _inbox/.archive/<id>.md (and paired audio to .archive/.audio/<id>.m4a if present); set archived_to
.files/ moves WITH the output -- to the target folder's .attachments/ when it should accompany the content (ask if unclear), else to _inbox/.archive/.files/<id>.<ext>. Record the final path in the stub before archiving it._inbox.yaml from current frontmatterAll items (/inbox process all):
_inbox/*.md, read each frontmatter, filter to status: pending or processing. Skip working documents (registered type: working_doc / tag do-not-process per the schema CR-022 section) -- they are surfaces, not captures| ID | Title | Classification | Target | Folder |
|--------------------------|----------------|----------------|-------------|---------------------|
| 250428-091803-bob | samtal med bob | transcript | /transcript | _contacts/bob/ |
| 250428-103044-sara | samtal med sara| transcript | /transcript | _contacts/sara/ |
Ask: "Process all? (or list IDs to skip/override)"status: processing
b. Run the downstream skill with the body content and target folder
c. Let the skill complete its full processing (summary, changelog, tasks, insights)
d. Update frontmatter: status: processed, processed_at, processed_by, output_file, archived_to
e. Move <id>.md to .archive/; move paired audio (if any) to .archive/.audio/
f. Brief status line: "Item 250428-091803-bob done -- processed as transcript -> _contacts/bob/"_inbox.yaml once at the endKey principle: /inbox process is an automation pipeline, not a suggestion engine. It actually runs the downstream skills. Human-in-the-loop is limited to:
/transcript may ask about participants, /ops may ask about org config) -- pass these through to the user as they come up/inbox triage [refresh|status] -- Triage working-surface upkeep (CR-022)Operates on the vault's registered triage doc (see the
schema CR-022 section: an _inbox/ working
document with type: working_doc, status: keep, tag do-not-process).
If no triage doc is registered, say so and stop -- this subcommand never
creates one uninvited (offer to register an existing file if the user asks).
Design principle (blocking): mechanical upkeep only. Never reorder, reword, re-bucket, or classify items. Sorting INKORG is the human's thinking step, not the skill's.
refresh (default):
Veckoankare: line's date and week number to
today. Preserve the standing-context text after them verbatim -- only the
date/week tokens change. If bucket headings carry week numbers
(e.g. DENNA VECKA (v.26)), update those tokens too.[x] bullet (with its sub-bullets) to
_inbox/.archive/YYMMDD-triage-klart.md -- create with a # KLART-arkiv
header if missing, append under a ## YYMMDD heading, keep the bullet
text verbatim plus a (arkiverad YYMMDD) suffix.<!-- secret-ok --> — that marker
is the owner's recorded decision to keep the credential inline; offer to
stamp it when the user says a flagged line should stay.status: read-only -- items per section, INKORG count + oldest item
age, [x] items awaiting archive, week-anchor date vs today, link to the
KLART archive.
/inbox help -- Usage GuidePrint this usage guide:
/inbox [content] Capture, classify, and route content
/inbox status Show inbox counts by status
/inbox process [id|all] Process one or all stored items
/inbox triage [refresh|status] Triage working-surface upkeep (CR-022)
/inbox help This help text
Content types detected: voice_memo, email, quick_note, raw_text, clipboard
Classifications: transcript, ops, task, note, idea
Items are stored in vault/_inbox/ and tracked in _inbox.yaml.
After processing with the downstream skill, items are archived.
_inbox.yaml -- derived index_inbox.yaml is a derived index, rebuilt from the frontmatter of every
_inbox/*.md. It exists for fast batch listing (Marvin, /inbox status)
without parsing every markdown file.
The canonical metadata for any single item lives in that item's frontmatter, not here. If frontmatter and index disagree, frontmatter wins.
/inbox rebuilds the index on every status or process invocation.
External tools writing items directly into _inbox/<id>.md MAY also append
to the index, but they are not required to -- the next /inbox call picks
up new files from frontmatter automatically.
See docs/schemas/inbox.md for the index
schema (version: 2, post-CR-012). v1 files are detected and rewritten
lazily on first run.
Markdown with YAML frontmatter (canonical metadata) and a body. See
docs/schemas/inbox.md for the full
frontmatter spec.
Filename: YYMMDD-HHMMSS[-slug].md where:
YYMMDD-HHMMSS is creation timestamp (vault-local)slug is optional, kebab-case, derived from a short titleMinimal valid frontmatter:
---
id: 250428-091803
created: 2026-04-28T09:18:03+02:00
status: pending
---
/inbox populates additional fields (classification, target_skill,
target_folder, confidence) when the item is classified.
_contacts/ folder structure for participant matching/transcript, /ops, /tasks) -- not just suggestions_inbox/.audio/ and frontmatter-only stub markdown to _inbox/<id>.md; the matching transcript arrives later from Deep Thought_inbox/<id>.md with source.external_id set to the DT job idFollows the core-skills archive pattern: never delete, always archive.
_inbox/.archive/<id>.md_inbox/.archive/.audio/<id>.m4a_inbox.yaml retains the item entry with status: processed and archived_to set/inbox prune --older-than Nd will reclaim space)_inbox.yaml is a derived index. If they disagree, frontmatter wins.YYMMDD-HHMMSS[-slug] identifier format (per schema).audio/<id>.m4a if audio captured