---
name: obsidian-vault-reporter
description: >-
  Sync and push standalone markdown reports, analyses, and figures to the Obsidian Vault's 06_Analyses/ directory and publish to GitHub.
---
# Obsidian Vault Reporter

## Overview
This skill allows Claude Code to easily publish standalone research reports, analyses, and plots directly to your Obsidian research vault. It creates a self-contained directory under `06_Analyses/` with a unique date-prefixed name, packages the report and all figures/plots together, rewrites relative image paths, and commits/pushes the changes to your private repository.

## Dependencies
None.

## Quick Start
To publish a report, run the helper script `vault_reporter.py` with the path to the report, the titles, and any figures/assets:
```bash
~/.claude/skills/obsidian-vault-reporter/vault_reporter.py \
  --report path/to/my_analysis.md \
  --assets path/to/plot1.png path/to/plot2.pdf \
  --title "OptB EField Bias Study" \
  --commit-msg "analyses: add OptB EField Bias Study"
```

## Utility Scripts
The skill is driven by a CLI wrapper:

```bash
~/.claude/skills/obsidian-vault-reporter/vault_reporter.py [arguments]
```

### Arguments:
* `--report`: (Required) Path to the markdown report or paper draft to upload.
* `--assets`: (Optional) Space-separated paths to any figures, images, or data files associated with the report.
* `--title`: (Required) Plain text title. This is sanitized into a slug and prefixed with the current date `YYYY_MM_DD` to create a standalone directory under `06_Analyses/`.
* `--commit-msg`: (Required) A descriptive Git commit message.
* `--vault-path`: (Optional) Custom local vault directory (defaults to `/Users/pgranger/cernbox/Research_vault`).

## Workflow
1. Locate the finalized report and its associated figure files.
2. Formulate a short, descriptive title for the analysis.
3. Run the `vault_reporter.py` script. 
4. The script automatically handles local copying or falls back to a remote checkout if running outside your local machine.

## Common Mistakes
* **Relative paths for assets**: Always provide correct paths to assets so the script can locate and copy them.
* **Keystroke backup spam**: Ensure Claude Code doesn't call this on every single temporary file. Only call it when a report/analysis is ready for vault documentation.
