origin-project-update

Sync and bootstrap Obsidian project notes from selected meeting records.

Updated Dec 9, 2025
One-click install
npx skills add https://github.com/Aki2022/skills --skill origin-project-update-aki2022
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: origin-project-update
Source: https://github.com/Aki2022/skills/tree/main/origin-project-update
Command: npx skills add https://github.com/Aki2022/skills --skill origin-project-update-aki2022

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires PyYAML, and includes scripts (resource) and references (resource) components.

What problem does it solve? Keeping Obsidian project notes, meeting records, and the project list consistent is error-prone when done by hand: YAML keys drift, backlinks go missing, and list entries duplicate. This Skill bootstraps new project notes from explicitly selected meeting records, backfills YAML and backlinks on existing records, and audits project/list consistency without overwriting existing content. ## Core Features & Use Cases - Project bootstrap: Create a new project note from user-selected meeting records, with LLM-drafted sections that cite source records and mark unverified information. - Deterministic backfill and validation: A Python helper preflights all targets, adds project YAML keys and backlinks to records in dry-run mode by default, and rolls back on write failure. - Audit and collision safety: Detects existing project notes, duplicate list rows, conflicting project assignments, and local absolute paths, stopping without partial writes. - Use Case: After several meetings about a new client, select the relevant records, bootstrap a project_<key>.md note with sourced overview and open issues, then backfill each record's frontmatter and verify the project list stays consistent. ## Quick Start Use origin-project-update to bootstrap a new Obsidian project note from the meeting records I specify, then backfill their YAML and backlinks after I review the dry-run diff.

Frequently Asked Questions about origin-project-update

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an Obsidian project note from existing meeting notes?

Select the meeting records explicitly, then run the bootstrap workflow: the helper preflights that no project note or list row exists for the key, an LLM drafts sections with source links from only the selected records, and you review before writing. The script never creates the note body itself.

How do I backfill project frontmatter and backlinks in Obsidian records?

Run scripts/project_update.py with --mode backfill, --project-key, and --record paths. It defaults to a dry-run showing diffs; add --apply only after review. It adds the YAML project key and a single relative backlink immediately after the frontmatter.

Does the backfill script overwrite existing project assignments?

No. If a record already has YAML or a backlink pointing to a different project, the script raises a conflict and stops without changing any file. Reassignment or explicit overwrite is a separate operation outside bootstrap and backfill.

What dependencies does the project update script require?

The script requires Python 3 and PyYAML for parsing note frontmatter. If PyYAML is missing, it exits with an error rather than falling back to manual parsing, since hand-editing YAML risks corrupting the contract.

Why does validation fail on my Obsidian project note?

Validation fails if the YAML project key mismatches, the client field is empty, required headings like overview or minutes are missing, or local absolute paths appear in the note. It also fails when list_project.md has a duplicate or missing row for the key.

When should I not use this Skill for meeting records?

Do not use it for newly recorded meetings that the recorder already routes to an existing project automatically; re-running the same LLM update would double-apply changes. Use it only for bootstrap, backfill, or audit with explicitly named targets.