From for-the-record
Capture a verbatim discussion exactly as provided - no summarization, no rewording, no omission. Preserves the full back-and-forth for reference.
How this skill is triggered — by the user, by Claude, or both
Slash command
/for-the-record:capture-discussionThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
<purpose>
<load-config>
<action>Resolve the user's home directory.</action>
<command language="bash" output="home" tool="Bash">echo $HOME</command>
<constraint>Never pass `~` to the Read tool.</constraint>
<read path="<home>/.things/config.json" output="config" />
<if condition="config-missing">Tell the user: "Run `/things:setup-things` first." Then stop.<exit /></if>
<read path="<home>/.things/for-the-record/preferences.json" output="preferences" />
<if condition="preferences-missing">Tell the user: "Run `/setup-ftr` first." Then stop.<exit /></if>
</load-config>
Parse Arguments
<action>Parse `$ARGUMENTS` for:</action>
- **--from-file <path>**: Read content from a file instead of user-provided text
- **--title <title>**: Override the discussion title
- **--tags tag1,tag2**: Explicitly set tags
Gather Content
<if condition="--from-file provided">
<action>Read the file at the specified path. Use its full content as the discussion body.</action>
</if>
<if condition="no --from-file">
<action>The user should paste or provide the discussion content in this conversation. If they haven't yet, ask:</action>
<ask-user-question>
<question>Paste the discussion content you want to capture verbatim.</question>
</ask-user-question>
</if>
<constraint>Whatever content is gathered -- whether from a file or pasted -- it MUST be written to the output file with ZERO modifications. No fixing typos, no reformatting, no trimming whitespace patterns, no adding section headers.</constraint>
Generate Metadata
<action>Generate minimal frontmatter:</action>
- `title`: From `--title` flag, or derive a brief descriptive title from the first few lines of content
- `date`: Today's date (YYYY-MM-DD)
- `doc_type`: `"discussion"`
- `tags`: From `--tags` flag, or auto-generate if `preferences.auto_tag` is true (cross-reference `tags.json` and `~/.things/tags/index.json`), or ask user
- `source_type`: `"conversation"` (default) or `"import"` if `--from-file` was used
<action>Generate filename: `<YYYY-MM-DD>-<slugified-title>.md`</action>
Write Discussion File
<write path="<home>/.things/for-the-record/discussions/<filename>">
<template name="discussion">
```markdown
---
title: "<title>"
date: <YYYY-MM-DD>
doc_type: "discussion"
tags: [<tags>]
source_type: "<source_type>"
---
<VERBATIM CONTENT -- every word exactly as provided, no changes>
```
</template>
</write>
<constraint>The body after the frontmatter closing `---` MUST be the exact content provided. Do not add headers, summaries, or any wrapper text around it.</constraint>
Handle Git Workflow
<git-workflow>
<action>Pull latest before committing.</action>
<command language="bash" tool="Bash">git -C <home>/.things pull --rebase 2>/dev/null || true</command>
<action>Read git workflow from `config.json` (`git.workflow`).</action>
<if condition="workflow-auto">Automatically `git add`, `git commit -m "discussion: <title>"`, and `git push`.</if>
<if condition="workflow-ask">
<ask-user-question>
<question>Commit and push this discussion capture?</question>
<option>Yes -- commit and push</option>
<option>Commit only</option>
<option>No -- I'll handle git myself</option>
</ask-user-question>
</if>
<if condition="workflow-manual">Tell the user the discussion has been saved.</if>
</git-workflow>
Confirm
<completion-message>
Captured verbatim: **<title>**
Location: `<home>/.things/for-the-record/discussions/<filename>`
Tags: `<tags>`
This discussion is preserved exactly as provided -- no summarization or rewording.
</completion-message>
npx claudepluginhub brennacodes/brenna-plugs --plugin for-the-recordCaptures user conversation as raw writing fragments in a single markdown file, preserving structure without imposing outlines or phases.
Captures team discussions, meeting notes, and conversations into structured Markdown files with participants, key points, decisions, action items, and updates monthly YAML indexes.
Saves the current Claude Code session transcript as clean markdown (conversation only) and raw transcript files for reuse in memos, blog drafts, or articles. Supports starting, refreshing, and finalizing logs per session.