Promotes recurring patterns from vault Second Brain notes into skill files. The APPLY step runs on human approval only, never autonomously. The scan-and-propose phase MAY run on a schedule (see Scheduled Mode).
Signal Strength
| Signal | Criteria | Action |
|---|---|---|
| weak | 1 project or 1 source | Track, don't propose |
| strong | 3+ projects OR 2+ independent sources | Propose to human |
| applied | Already synced to skill | Skip |
Annotation Schema
Second Brain notes use a ## Skill Candidates table:
## Skill Candidates
<!-- Updated by learning-docs during retrospectives -->
| Pattern | Target Skill | Seen In | First Seen | Signal |
|---------|-------------|---------|------------|--------|
| Go error wrapping with %w | golang | feed-brain, bbp | 2026-01-15 | weak |
| Token bucket rate limiting | cloud-infrastructure | feed-brain, nur, clawdbot | 2026-01-10 | strong |
Table-based: easy to append via CLI, readable in Obsidian, parseable by Claude.
Process
- SCAN:
obsidian search query="## Skill Candidates" path="Second Brain" matches - FILTER: only
strongsignals; skip rows where signal =appliedor pattern already exists in target skill - GROUP: candidates by target skill with vault source citations
- PROPOSE: draft exact text to add to each skill file (show diff-style)
- APPROVE: human gate (always RED in decision framework)
- APPLY: edit skill file + add backlink + update signal
Apply Step Details
After human approval for each candidate:
- Edit target skill file with the proposed addition
- Add source backlink as HTML comment:
<!-- vault: [[Second Brain - Development#Pattern Name]] --> - Update the Skill Candidates table: change signal from
strongtoapplied
# Example: update signal in vault
obsidian read file="Second Brain - Development"
# Find the row, replace "strong" with "applied" in the table
obsidian append file="Second Brain - Development" content="..."
Presentation Format
## Knowledge Sync Report
### Candidates Found: N strong, M weak (skipped)
#### golang (2 candidates)
**1. Go error wrapping with %w**
- Source: [[Second Brain - Development#Go Error Handling]]
- Seen in: feed-brain, bbp
- Proposed addition to `skills/golang/SKILL.md`:
[exact text to add]
- [ ] Approve [ ] Skip [ ] Modify
#### cloud-infrastructure (1 candidate)
...
Scheduled Mode (propose-only)
The scan half of this skill may run unattended; the APPLY gate never does. A scheduled run executes SCAN → FILTER → GROUP → PROPOSE, writes the report to quality_reports/knowledge_sync/report-YYYY-MM-DD.md in the forge repo, and STOPS. Max reviews the report later and triggers APPLY interactively.
Runner: a user crontab entry (1st of the month, 09:23 local). The human installs it manually: persisting a headless autonomous run is a user-authorized action, Claude only documents the line (crontab -l to inspect, crontab -r or edit to remove). Replace <forge-repo> and <claude-bin> with your paths (which claude), and mkdir -p ~/.claude/logs first (cron fails silently on a missing redirect target):
23 9 1 * * cd <forge-repo> && <claude-bin> -p "Run the knowledge-sync skill in Scheduled Mode: SCAN, FILTER, GROUP, PROPOSE only. Write the report to quality_reports/knowledge_sync/report-$(date +\%Y-\%m-\%d).md. Do NOT apply any skill changes." >> ~/.claude/logs/knowledge-sync-cron.log 2>&1
Caveats:
- cron does not catch up on runs missed while the machine sleeps: if the report is missing after the 1st, kick the same prompt manually.
- The headless run depends on the settings.json allowlist covering the
obsidianCLI; a permission denial shows up in the log file, not on screen. - The report lands on whatever branch is currently checked out in the forge repo. Reports are tracked in git (review history), not gitignored.
- CronCreate (in-session scheduler) is NOT suitable here: its jobs are session-only and expire within 7 days.
Quality Notes
- Take your time scanning every Skill Candidates table thoroughly
- Read the target skill file before proposing additions (avoid duplicates)
- Quality of proposals matters more than quantity
- Do not skip validation steps
Rules
- Never auto-apply. Always present proposals and wait for approval.
- One skill at a time. Don't batch across skills without per-skill approval.
- Preserve existing content. Additions only, never modify existing skill text.
- Backlinks are mandatory. Every applied pattern traces back to its vault source.
- Cadence: monthly or after major project milestones. Not after every session.