{"id":"39f2b3f3-4e43-4bd5-a3f1-cbfee6e453b1","shortId":"sZxuPP","kind":"skill","title":"weekly-synthesis","tagline":"Extract time-window meaning from recent Obsidian notes: emerging thesis, contradictions, gaps, exactly one action, exactly one question. Load when user asks for weekly synthesis, what recent notes mean, or next action. Do NOT use for inbox triage, link-only review, or note promot","description":"# weekly-synthesis\n\n## Constraints\n\n- Output is NOT a recap; must contain thesis + evidence\n- EXACTLY one action, EXACTLY one question (not zero, not many)\n- NEVER let old notes dominate; they are calibration only\n- NEVER write synthesis note without user confirmation\n- If signal is weak: say \"conclusion is uncertain\" — do NOT force a thesis\n- Default time window: 7 days unless user specifies otherwise\n\n## Trigger Boundary\n\n**Use when:** weekly synthesis, what recent notes mean, emerging thesis, one most valuable next action/question, time-window meaning-making.\n\n**Do NOT use for:**\n- Raw material routing → `inbox-triage`\n- Link-only or relationship review → `connection-review`\n- Project status reporting (not synthesis)\n- Promoting result into stable note → `note-promotion`\n\n## Boundaries\n\n- **Owns:** time-window meaning extraction, thesis formation, gap identification\n- **Delegates to:** `note-promotion` (synthesis ready for stable note), `opencode-context-maintenance` (thesis reveals drift)\n- **Never absorbs:** inbox routing, link-only review, health diagnosis\n\n## Continuations\n\n| Condition | Next skill |\n|-----------|-----------|\n| User wants to preserve synthesis as stable note | `note-promotion` |\n| Thesis or gaps reveal context drift | `opencode-context-maintenance` |\n| Insufficient signal; try relationships first | `connection-review` |\n| Signal too weak to form any thesis | Escalate to human |\n\n## Companion Skill\n\nAll vault operations follow `obsidian-mcp`. Forbidden: `obsidian_patch_note`, `obsidian_append_to_note`. Verify every write through readback.\n\n## Procedure\n\n### Phase 1: Scope\n1. Identify time window (default: 7 days; respect user-specified period)\n2. `obsidian_list_notes` or `obsidian_search_notes` → notes in window\n3. Count and report scope before proceeding\n\n### Phase 2: Read\n1. `obsidian_get_note format:\"document-map\"` → theme distribution\n2. Deep-read only notes that support thesis, contradiction, or gap claims\n3. Use older notes only for calibration (not primary signal)\n\n### Phase 3: Synthesize\n\nWhen extracting meaning, read `references/examples.md` for thesis quality calibration.\n\nSix dimensions:\n1. **Emerging thesis**: one claim + supporting evidence (or \"uncertain\" if weak)\n2. **Contradictions**: only tensions that matter for reasoning\n3. **Gaps**: missing perspective, evidence, decision, or experiment\n4. **One action**: exactly one highest-value next move\n5. **One question**: exactly one question worth preserving\n6. **Follow-up note suggestions**: optional downstream notes\n\n<details>\n<summary>Weak Signal Handling (expand when theme stability is low)</summary>\n\n- Fewer than 3 notes in window: report insufficient data, suggest expanding window\n- Notes all on different topics: report fragmentation, no forced thesis\n- Contradictions only surface-level: report \"no meaningful contradictions found\"\n- Acceptable: \"Thesis uncertain. Strongest signal is [X] but evidence is thin.\"\n- One action can be \"gather more data on [X]\" when signal is genuinely weak\n\n</details>\n\n### Phase 4: Report\n\nWhen formatting output, read `references/templates.md` for the exact synthesis format.\n\nDo not write synthesis note by default. After user approval, create with `obsidian_write_note overwrite:false` and read back.\n\n## Gotchas\n\n### Gotcha 1: Recap disguised as synthesis\n**What happens:** Agent lists what happened this week without extracting meaning\n**Why it's wrong:** A recap has zero cognitive return; user already knows what happened\n**Correct approach:** Force a thesis claim with supporting evidence, even if uncertain\n\n### Gotcha 2: Multiple actions and questions\n**What happens:** Agent returns 3-5 actions and 2-3 questions\n**Why it's wrong:** Defeats the purpose of synthesis (focus); user loses signal in noise\n**Correct approach:** Force exactly one action and one question; pick highest-value\n\n### Gotcha 3: Old notes dominate the thesis\n**What happens:** Agent builds thesis primarily from notes older than the time window\n**Why it's wrong:** Recent signal disappears; synthesis becomes rehash of established knowledge\n**Correct approach:** Use older notes only as calibration; thesis must be grounded in recent evidence\n\n## Validators (CI only, not runtime)\n\n- `validators/post-check.sh`: Verifies exactly one \"One action:\" and one \"One question:\" in output\n\n## Exit Criteria\n\n- Output is not a recap (has thesis + evidence)\n- Exactly one action and exactly one question\n- Thesis has evidence; contradictions are not forced\n- Any written note has been read back and verified","tags":["weekly","synthesis","opencode","obsidian","knowledge","workflow","r007b34r","agent-skills","ai-agents","ai-tools","claude-code-skills","digital-garden"],"capabilities":["skill","source-r007b34r","skill-weekly-synthesis","topic-agent-skills","topic-ai-agents","topic-ai-tools","topic-claude-code-skills","topic-digital-garden","topic-knowledge-base","topic-knowledge-management","topic-knowledge-workflow","topic-llm","topic-mcp","topic-mcp-server","topic-model-context-protocol"],"categories":["opencode-obsidian-knowledge-workflow"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/r007b34r/opencode-obsidian-knowledge-workflow/weekly-synthesis","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add r007b34r/opencode-obsidian-knowledge-workflow","source_repo":"https://github.com/r007b34r/opencode-obsidian-knowledge-workflow","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (4,551 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T13:22:59.783Z","embedding":null,"createdAt":"2026-05-18T13:22:59.783Z","updatedAt":"2026-05-18T13:22:59.783Z","lastSeenAt":"2026-05-18T13:22:59.783Z","tsv":"'-3':566 '-5':562 '1':271,273,306,353,508 '2':285,304,316,364,552,565 '3':296,329,340,372,418,561,597 '4':380,474 '5':390 '6':398 '7':105,278 'absorb':195 'accept':448 'action':19,36,65,382,460,554,563,588,654,673 'action/question':127 'agent':515,559,605 'alreadi':535 'append':261 'approach':540,584,630 'approv':495 'ask':26 'back':505,691 'becom':624 'boundari':112,166 'build':606 'calibr':80,335,350,636 'ci':645 'claim':328,357,544 'cognit':532 'companion':247 'conclus':94 'condit':205 'confirm':88 'connect':151,235 'connection-review':150,234 'constraint':53 'contain':60 'context':189,223,227 'continu':204 'contradict':15,325,365,438,446,681 'correct':539,583,629 'count':297 'creat':496 'criteria':662 'data':424,465 'day':106,279 'decis':377 'deep':318 'deep-read':317 'default':102,277,492 'defeat':572 'deleg':177 'diagnosi':203 'differ':431 'dimens':352 'disappear':622 'disguis':510 'distribut':315 'document':312 'document-map':311 'domin':77,600 'downstream':405 'drift':193,224 'emerg':13,121,354 'escal':244 'establish':627 'even':548 'everi':265 'evid':62,359,376,456,547,643,670,680 'exact':17,20,63,66,383,393,483,586,651,671,675 'exit':661 'expand':410,426 'experi':379 'extract':4,172,343,522 'fals':502 'fewer':416 'first':233 'focus':577 'follow':252,400 'follow-up':399 'forbidden':256 'forc':99,436,541,585,684 'form':241 'format':174,310,477,485 'found':447 'fragment':434 'gap':16,175,221,327,373 'gather':463 'genuin':471 'get':308 'gotcha':506,507,551,596 'ground':640 'handl':409 'happen':514,518,538,558,604 'health':202 'highest':386,594 'highest-valu':385,593 'human':246 'identif':176 'identifi':274 'inbox':41,142,196 'inbox-triag':141 'insuffici':229,423 'know':536 'knowledg':628 'let':74 'level':442 'link':44,145,199 'link-on':43,144,198 'list':287,516 'load':23 'lose':579 'low':415 'mainten':190,228 'make':133 'mani':72 'map':313 'materi':139 'matter':369 'mcp':255 'mean':8,33,120,132,171,344,523 'meaning':445 'meaning-mak':131 'miss':374 'move':389 'multipl':553 'must':59,638 'never':73,82,194 'next':35,126,206,388 'nois':582 'note':12,32,48,76,85,119,162,164,180,186,215,217,259,263,288,292,293,309,321,332,402,406,419,428,490,500,599,610,633,687 'note-promot':163,179,216 'obsidian':11,254,257,260,286,290,307,498 'obsidian-mcp':253 'old':75,598 'older':331,611,632 'one':18,21,64,67,123,356,381,384,391,394,459,587,590,652,653,656,657,672,676 'opencod':188,226 'opencode-context-mainten':187,225 'oper':251 'option':404 'otherwis':110 'output':54,478,660,663 'overwrit':501 'own':167 'patch':258 'period':284 'perspect':375 'phase':270,303,339,473 'pick':592 'preserv':211,397 'primari':337 'primarili':608 'procedur':269 'proceed':302 'project':153 'promot':49,158,165,181,218 'purpos':574 'qualiti':349 'question':22,68,392,395,556,567,591,658,677 'raw':138 'read':305,319,345,479,504,690 'readback':268 'readi':183 'reason':371 'recap':58,509,529,667 'recent':10,31,118,620,642 'references/examples.md':346 'references/templates.md':480 'rehash':625 'relationship':148,232 'report':155,299,422,433,443,475 'respect':280 'result':159 'return':533,560 'reveal':192,222 'review':46,149,152,201,236 'rout':140,197 'runtim':648 'say':93 'scope':272,300 'search':291 'signal':90,230,237,338,408,452,469,580,621 'six':351 'skill':207,248 'skill-weekly-synthesis' 'source-r007b34r' 'specifi':109,283 'stabil':413 'stabl':161,185,214 'status':154 'strongest':451 'suggest':403,425 'support':323,358,546 'surfac':441 'surface-level':440 'synthes':341 'synthesi':3,29,52,84,116,157,182,212,484,489,512,576,623 'tension':367 'theme':314,412 'thesi':14,61,101,122,173,191,219,243,324,348,355,437,449,543,602,607,637,669,678 'thin':458 'time':6,103,129,169,275,614 'time-window':5,128,168 'topic':432 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-tools' 'topic-claude-code-skills' 'topic-digital-garden' 'topic-knowledge-base' 'topic-knowledge-management' 'topic-knowledge-workflow' 'topic-llm' 'topic-mcp' 'topic-mcp-server' 'topic-model-context-protocol' 'tri':231 'triag':42,143 'trigger':111 'uncertain':96,361,450,550 'unless':107 'use':39,113,136,330,631 'user':25,87,108,208,282,494,534,578 'user-specifi':281 'valid':644 'validators/post-check.sh':649 'valu':387,595 'valuabl':125 'vault':250 'verifi':264,650,693 'want':209 'weak':92,239,363,407,472 'week':2,28,51,115,520 'weekly-synthesi':1,50 'window':7,104,130,170,276,295,421,427,615 'without':86,521 'worth':396 'write':83,266,488,499 'written':686 'wrong':527,571,619 'x':454,467 'zero':70,531","prices":[{"id":"a41ac9d2-8d9d-4d36-b04d-347eab14f02b","listingId":"39f2b3f3-4e43-4bd5-a3f1-cbfee6e453b1","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"r007b34r","category":"opencode-obsidian-knowledge-workflow","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:59.783Z"}],"sources":[{"listingId":"39f2b3f3-4e43-4bd5-a3f1-cbfee6e453b1","source":"github","sourceId":"r007b34r/opencode-obsidian-knowledge-workflow/weekly-synthesis","sourceUrl":"https://github.com/r007b34r/opencode-obsidian-knowledge-workflow/tree/master/skills/weekly-synthesis","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:59.783Z","lastSeenAt":"2026-05-18T13:22:59.783Z"}],"details":{"listingId":"39f2b3f3-4e43-4bd5-a3f1-cbfee6e453b1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"r007b34r","slug":"weekly-synthesis","github":{"repo":"r007b34r/opencode-obsidian-knowledge-workflow","stars":6,"topics":["agent-skills","ai-agents","ai-tools","claude-code-skills","digital-garden","knowledge-base","knowledge-management","knowledge-workflow","llm","mcp","mcp-server","model-context-protocol","note-taking","obsidian","obsidian-mcp","opencode","opencode-skills","pkm","second-brain","zettelkasten"],"license":"apache-2.0","html_url":"https://github.com/r007b34r/opencode-obsidian-knowledge-workflow","pushed_at":"2026-05-14T11:39:07Z","description":"7 AKU-architected skills for OpenCode + Obsidian MCP: obsidian-mcp, inbox-triage, connection-review, weekly-synthesis, context-maintenance, vault-health-feedback, note-promotion. Knowledge Activation v4 with validators, EDD evals, and CI. Built on obsidian-mcp-server. Works with OpenCode and Claude Code.","skill_md_sha":"6599b165aa79896cbd8451630a2ff67c99800ce7","skill_md_path":"skills/weekly-synthesis/SKILL.md","default_branch":"master","skill_tree_url":"https://github.com/r007b34r/opencode-obsidian-knowledge-workflow/tree/master/skills/weekly-synthesis"},"layout":"multi","source":"github","category":"opencode-obsidian-knowledge-workflow","frontmatter":{"name":"weekly-synthesis","license":"Apache-2.0","description":"Extract time-window meaning from recent Obsidian notes: emerging thesis, contradictions, gaps, exactly one action, exactly one question. Load when user asks for weekly synthesis, what recent notes mean, or next action. Do NOT use for inbox triage, link-only review, or note promotion.","compatibility":"opencode; requires obsidian-mcp"},"skills_sh_url":"https://skills.sh/r007b34r/opencode-obsidian-knowledge-workflow/weekly-synthesis"},"updatedAt":"2026-05-18T13:22:59.783Z"}}