feat(hooks): auto-link meetings to their related projects#61
Open
rhadiaris wants to merge 2 commits into
Open
Conversation
Clean distribution from main (a3422e3). Dev-only files removed per .distignore (72 files stripped).
… projects Adds a new skill-scoped hook that mirrors the existing post-meeting-person-update pattern, but for project pages. After a meeting note is written (or piped inline), the hook scans the content against active project pages in 04-Projects/ and appends a link under each matching project's "## Meeting History" section. Highlights: - Dual-mode: file-triggered via PostToolUse/Write AND inline CLI for skills that fetch transcripts without saving a file (echo "..." | hook --inline --name "...") - Keyword matching: explicit "keywords:" frontmatter field per project (preferred) or full-name fallback from filename. No single-word fallback — prevents false positives on generic words. - Skips closed/archived projects. - Idempotent across both modes (won't double-link). - Each entry carries a source: file/inline audit tag. Wired into /process-meetings alongside the existing person-update hook so it fires automatically whenever a meeting note is written. Test plan: - File mode: write a meeting note to 00-Inbox/Meetings/, verify matching projects receive a Meeting History entry - Inline mode: pipe a transcript via stdin with --name, verify same behavior - Idempotency: re-run on same meeting, verify no duplicate links - Status filter: confirm closed/archived projects are skipped
1a60417 to
6e4ef10
Compare
Owner
|
Thank you so much for this — it's a thoughtful PR and I really appreciate the effort you put in (mirroring the person-link pattern is exactly the right instinct). Auto-linking meetings to projects is something I'm actively working on right now, as part of a broader push to make the whole entity-linking layer much more effective. Rather than merge it in isolation, I'd like to fold it into that work so it all hangs together — and I'm hoping to have a release out in the coming days. Your approach here directly feeds into how I'm thinking about it, so thank you. Please keep the contributions and suggestions coming — they make a real difference. |
e89f2f6 to
b271e92
Compare
750693a to
c4f152e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new skill-scoped hook (
post-meeting-project-update.cjs) that mirrors the existingpost-meeting-person-update.cjspattern but updates project pages instead of person pages. After a meeting note is written (or piped inline), the hook scans the content against active project pages in04-Projects/and appends a link under each matching project's## Meeting Historysection.Before: When
/process-meetingsran, person pages got updated with meeting references but project pages did not. If you met about a specific project, you had to manually link the meeting yourself — and most of the time, it just never happened. Project pages drifted out of sync with the actual work being discussed about them.After: Project pages stay in sync automatically, with zero manual upkeep.
What's in this PR
.claude/hooks/post-meeting-project-update.cjs(dual-mode — file-triggered + inline CLI)/process-meetingsSKILL.md frontmatter alongsidepost-meeting-person-update.cjs.claude/hooks/README.md[Unreleased]How matching works
keywords:in its frontmatter (comma-separated). Preferred.keywords:is missing, the hook falls back to the project's filename converted to a full multi-word phrase (e.g.,Acme_Migration.md→"acme migration")."brief"or"pipeline"matching every meeting that mentions them in passing.status: closed/status: archived).Dual mode
File mode (default, automatic):
PostToolUse/Writewhen a meeting note is savedInline mode (new, for skills that fetch transcripts without saving):
Each linked entry carries a
source: fileorsource: inlineaudit tag so the provenance is visible.Test plan
00-Inbox/Meetings/, verify matching projects receive a Meeting History entry--name, verify same behavior--inlinewithout--nameerrors with usage; empty stdin errors🤖 Generated with Claude Code