obsidian-linear-synclisted
Install: claude install-skill kogakure/skills
# obsidian-linear-sync
Mirror a Linear project into an Obsidian vault as Markdown. **One-way: Linear → Markdown.**
Nothing is ever written back — no mutating Linear tool, under any circumstances.
Division of labour you must respect:
- **You** resolve the project and fetch the data (or let the script fetch it, see below).
- **The script** (`scripts/linear_sync.py`, relative to this skill directory) makes every
reproducible decision and writes every byte. You do not render Markdown yourself, do not
compute filenames, and do not edit a note with `Edit`/`Write`. That is exactly why `Edit`
and `Write` are absent from `allowed-tools`.
Result per project:
```
01 Projects/Linear/Website Redesign/
Website Redesign.md ← index note
ENG-42 Rework the checkout flow.md ← one file per ticket
ENG-51 Ship the new nav.md
```
## Argument parsing
Arguments: `<linear-project-url | project name | project UUID> [flags]`
- **Positional** (required): the project URL, name, or UUID. From
`https://linear.app/acme/project/website-redesign-a1b2c3d4e5f6/` the slug
`website-redesign-a1b2c3d4e5f6` is enough. If it is missing, list the user's projects
(`list_projects`) and ask which one.
- `--dry-run`: full run, but no writes, no folder creation, no watermark advance.
**Recommend this for a first run on any project.**
- `--force`: ignore all watermarks and refetch every ticket. Implies `--census`.
- `--census`: force the reconciliation pass (which tick