# Obsidian Chat Summary

> Generates a concise, technical Markdown summary of a Gemini CLI chat session, formatted for an Obsidian vault. Includes code, highlights, decisions, and custom tags/links. Use at the end of a session or task to create a structured record.

- Skill: `reutfarkash/obsidian-chat-summary` (Agent Skill)
- Install (CLI): `npx skillmds@latest add reutfarkash/obsidian-chat-summary`
- Raw SKILL.md: https://api.skillmd.com/api/skills/reutfarkash/obsidian-chat-summary/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: ReutFarkash (https://skillmd.com/u/reutfarkash)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/reutfarkash/obsidian-chat-summary

---


# Obsidian Chat Summary

## Overview

This skill enables the Gemini CLI to generate a concise, technical Markdown summary of the current chat session or a completed task, specifically formatted for integration into an Obsidian vault. The summary captures key aspects of the interaction, including code changes, decisions, problems, and open questions, ensuring future reference is efficient and informative. It also facilitates the preservation of the chat session's state for later resumption.

## Workflow: Generating a Summary

To generate a summary, the agent will:

1.  **Read Shared Settings:** Read the `../_shared-gemini/skill_settings.md` file to get the file naming convention, frontmatter template, and summary configuration (e.g., `include_work_duration`).
2.  **Generate Session Wrap-up Tag:** Generate the chat save tag according to `meta/ENGINEERING_STANDARDS.md` v1.8 (Format: `YYYY-MM-DD_HHMMSS-description`).
3.  **Instruct User to Save Chat:** Present the user with the generated tag. The tag MUST be provided as the **very last line** of the response, alone and unstyled.
4.  **Collect Session Information:** Review the recent conversation history to identify key points based on the user's specified content types.
5.  **Read Configuration:** Identify skill-specific custom tags and Obsidian links embedded within this SKILL.md.
6.  **Construct Frontmatter:** Create YAML frontmatter using the template from the shared settings, populating the `{{tags}}` and `{{date}}` variables.
7.  **Generate Content:** Compile a summary focusing on technical details, conciseness, and future relevance. Only include sections for which meaningful content exists.
    *   **Chat State Preservation:** Include the generated tag, allowing the user to resume the conversation later using `/chat resume <tag>`.
    *   **Effective Work Duration:** (If enabled in settings) Calculate and provide a breakdown of the time spent on active "execution blocks" versus the total session span.
    *   **Code Changes/Snippets:** Extract useful code blocks or significant modifications.
    *   **Conversational Highlights:** Summarize key discussions, crucial clarifications, or important exchanges.
    *   **Decisions Made:** Document resolved ambiguities or chosen approaches.
    *   **Problems Solved:** Outline issues encountered and their solutions.
    *   **Tasks Completed:** List actions performed or features implemented.
    *   **Open Questions/TODOs:** Note any pending questions, follow-up items, or unresolved tasks.
    *   **Relevant Subjects/People:** Identify any significant topics or individuals mentioned.
    *   **Links:** Include local file paths and external URLs discussed.
    *   **Conversation Turns:** When referencing specific parts of the conversation, use brief, context-setting quotes.
8.  **Format Output:** Present the summary in clean Markdown, ensuring compatibility and readability within Obsidian.
9.  **Write to File:** Create the Markdown file in the `vault_output_directory` defined in the shared settings, using the filename format from the shared settings (e.g., `YYYY-MM-DD_HHMMSS-obsidian-chat-summary.md`).

## Content Generation Guidelines

*   **Tone:** Technical and concise. Avoid conversational filler or unnecessary pleasantries.
*   **Relevance:** Prioritize information that would be valuable for future reference, suchs as key decisions, technical implementations, solved problems, or outstanding tasks.
*   **Time Tracking:** When calculating "Effective Work Duration," focus on active pairing phases (e.g., architecture, implementation, debugging gauntlets) rather than idle session time.
*   **Code:** Format code snippets using appropriate Markdown code blocks, indicating the language if known.
    *   Local file paths should be presented as `[[path/to/file.ext]]` for Obsidian compatibility.
    *   External URLs should be standard Markdown links `[Description](URL)`.
*   **No Fluff:** If a section would be empty or contain only trivial information, omit it entirely.

## Skill-Specific Configuration

This section allows you to define skill-specific tags and links to be incorporated into the generated summaries. The main frontmatter template is defined in `../_shared-gemini/skill_settings.md`.

*   **`custom_tags`**: A comma-separated list of tags to always include in summaries generated by *this specific skill*.
*   **`custom_obsidian_links`**: A comma-separated list of Obsidian internal links that might be relevant to include in the summary content where appropriate.

## Future Enhancements

- [ ] **Automated GitOps Tethering:** Add logic to automatically detect if the current directory is a Git repository and append the current short SHA `[ref: <sha>]` to the summary header.
- [ ] **Dataview Auto-Linking:** Automatically suggest or generate a Dataview query snippet at the bottom of the summary to show "Related notes from this project."
- [ ] **Technical Overview Callout:** Generate a high-visibility Obsidian callout at the top of every note containing:
    - **Links:** Local filesystem paths and GitHub remote URLs for all active repositories.
    - **Features:** A bulleted list of specific feature names implemented during the session.
- [ ] **Session Metadata:** Extract and display context-recognition data:
    - **Length of Session:** Estimated time or number of turns.
    - **Subject Cloud:** Main technical subjects and libraries referenced.
    - **Toolbelt:** List of primary tools used (e.g., `replace`, `grep_search`, `run_shell_command`).

