[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N0JTN17SQJNP8N97NB3H0Q":3,"skill-same:01M6N0JTN17SQJNP8N97NB3H0Q":86},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":64,"ownerDescription":65,"updatedAt":66,"install":67,"resources":79},"01M6N0JTN17SQJNP8N97NB3H0Q","concept-synthesis",null,"Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across sources over time. Transforms thousands of raw concept pages into a curated intellectual fingerprint. Includes a reversible curation cull pass (Phase 5) with hard keep\u002Fdelete\u002Fmerge verdicts, substance gates, grounding labels, cluster budgets, and merge-with-backlinks salience promotion.","garrytan\u002Fgbrain","garrytan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19957?v=4","01M6DJCCDDG53MTYYRTXAXFG17","Garry Tan","01M6MZQZCEN3RRMD33E1X9ZZR9",32847,"MIT","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fconcept-synthesis\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"concept","Synthesis","concept synthesis","across","phase","salience","labels","my","which","concepts","transforms","sources","merge","synthesize","time","map","patterns","rubric","tracing","delete","notes","2026-11-10 10:12:30",false,"---\nname: concept-synthesis\nversion: 0.2.0\ndescription: Deduplicate and synthesize raw concept stubs into a tiered intellectual map (T1 Canon to T4 Riff), tracing idea evolution across sources over time. Transforms thousands of raw concept pages into a curated intellectual fingerprint. Includes a reversible curation cull pass (Phase 5) with hard keep\u002Fdelete\u002Fmerge verdicts, substance gates, grounding labels, cluster budgets, and merge-with-backlinks salience promotion.\ntriggers:\n  - \"concept synthesis\"\n  - \"synthesize my concepts\"\n  - \"find patterns across my notes\"\n  - \"build my intellectual map\"\n  - \"trace idea evolution\"\n  - \"canon vs riff\"\n  - \"cull my concepts\"\n  - \"which concepts to keep\"\n  - \"concept quality rubric\"\nmutating: true\nwrites_pages: true\nwrites_to:\n  - concepts\u002F\n---\n\n# concept-synthesis — From Raw Stubs to Intellectual Map\n\n> **Convention:** see [conventions\u002Fquality.md](..\u002Fconventions\u002Fquality.md) for\n> back-link enforcement and quote-fidelity requirements.\n>\n> **Convention:** see [_brain-filing-rules.md](..\u002F_brain-filing-rules.md) —\n> output files under `concepts\u002F` per the primary-subject rule.\n\n## What this solves\n\nMany ingestion pipelines (signal-detector, idea-ingest, voice-note-ingest)\ncreate a concept page for every idea mentioned. Over months this produces:\n\n- Thousands of stub pages, many duplicates or near-duplicates\n- Timeline entries that repeat the same source across multiple concept pages\n- No synthesis — just \"the user mentioned X on this date\"\n- No tier assignments — everything flat\n- No clustering — related ideas aren't linked\n\nThis skill transforms that raw material into a curated intellectual map.\n\n## Architecture\n\n```\nPhase 1: Dedup + merge (deterministic)\n  N stubs → ~N\u002F4 canonical concepts\n    ├── Jaccard dedup (word-overlap on titles + first-paragraph)\n    ├── Substring dedup (\"founder mode\" vs \"founder mode vs manager mode\")\n    ├── Semantic dedup (LLM: \"are these the same idea?\")\n    └── Merge timelines + aliases from duplicates into the canonical page\n\nPhase 2: Score + tier (deterministic + heuristic)\n  Each canonical concept → scored and tiered\n    ├── Frequency: distinct sources referencing this concept\n    ├── Timespan: first mention → last mention in days\n    ├── Breadth: distinct months it appears in\n    ├── Engagement: avg engagement on concept-bearing sources (if available)\n    └── Tier: T1 Canon | T2 Developing | T3 Speculative | T4 Riff\n\nPhase 3: Synthesize (LLM, T1+T2 only)\n  T1 + T2 concepts → rich synthesis\n    ├── Evolution narrative: how the idea sharpened over time\n    ├── Best articulation: highest-engagement or most precise quote\n    ├── Related concepts: cross-links to other concepts\n    ├── Context: what was happening when this idea emerged \u002F evolved\n    └── Counter-positions: what this idea argues against\n\nPhase 4: Cluster + map (LLM)\n  All tiered concepts → intellectual clusters\n    ├── Group related concepts into domains (auto-named via LLM)\n    ├── Generate cluster summary pages\n    ├── Build a master concepts\u002FREADME.md with the full map\n    └── Identify idea genealogies (concept A → evolved into concept B)\n\nPhase 5: Curation cull (rubric + reversible merge)\n  Each concept → hard verdict: ELITE | KEEP | MERGE\u002FREWRITE | DELETE\n    ├── 6-axis rubric (substance 2x, packaging 1x) + minimum substance gate\n    ├── Grounding labels (VERIFIED \u002F OPINION \u002F NEEDS_SOURCE \u002F UNSAFE)\n    ├── Cluster budgets + reputational-risk gate\n    ├── Merge-with-backlinks into cluster canonicals (fully reversible)\n    └── merge_count \u002F independent_sources → emergent tier promotion\n```\n\n## Invocation\n\nThe skill is markdown agent instructions. The agent uses gbrain's\nexisting operations + LLM passes:\n\n```bash\n# 1. List all concept pages\ngbrain query \"type:concept\" --limit 10000 --json\n\n# 2. Phase 1 dedup — agent applies Jaccard + substring locally,\n#    then LLM passes to identify semantic duplicates.\n\n# 3. Phase 2 tier — agent scores each canonical concept based on\n#    frequency \u002F timespan \u002F breadth and writes tier into frontmatter.\n\n# 4. Phase 3 synthesis — for each T1\u002FT2, agent reads the timeline\n#    + associated source pages and writes a synthesis section\n#    onto the concept page via put_page.\n\n# 5. Phase 4 clustering — agent reads the tiered concept list\n#    and writes concepts\u002FREADME.md with the full intellectual map.\n```\n\n## Output: concept page format (post-synthesis)\n\n### T1 Canon — full synthesis\n\n```markdown\n---\ntitle: \"concept name\"\ntype: concept\ntier: 1\ntier_label: \"Canon\"\nmention_count: 18\ndistinct_months: 8\nfirst_mention: \"YYYY-MM-DD\"\nlast_mention: \"YYYY-MM-DD\"\ncomposite_score: 78.4\naliases: [\"alternate phrasing 1\", \"alternate phrasing 2\"]\nrelated: [\"sibling-concept-1\", \"sibling-concept-2\"]\n---\n\n# concept name\n\n**Tier 1 — Canon** | 18 mentions across 8 months\n\n## Synthesis\n\n[2-4 paragraph narrative tracing how the idea evolved, what it means in\nthe user's worldview, why it matters. Third-person analytical voice.]\n\n## Best Articulation\n\n> \"Verbatim quote from a source — the most precise or highest-engagement\n> expression of this idea.\" — [Date](source-url)\n\n## Evolution\n\n| Period | Expression | Signal |\n|--------|-----------|--------|\n| YYYY-MM | \"First articulation\" | First use — aspiration frame |\n| YYYY-MM | \"Sharpening\" | Anti-pattern emerges |\n| YYYY-MM | \"Peak form\" | Cleanest expression |\n\n## Related Concepts\n- [sibling concept](sibling-concept.md) — relationship description\n- [sibling concept](sibling-concept.md) — relationship description\n\n## Timeline\n[Full timeline with deduped entries, quotes, source links]\n```\n\n### T3 \u002F T4 — stub only (no LLM synthesis)\n\n```markdown\n---\ntitle: \"concept name\"\ntype: concept\ntier: 4\ntier_label: \"Riff\"\nmention_count: 1\n---\n\n# concept name\n\n**Tier 4 — Riff** | 1 mention\n\n> \"Quote from the source\" — [Date](URL)\n```\n\n## Output: cluster map at concepts\u002FREADME.md\n\n```markdown\n# Intellectual Universe\n\n## Canon (T1) — N concepts\nThe permanent intellectual fingerprint. Ideas that recur across years.\n\n### [Cluster Name]\n- [concept-slug](concept-slug.md) — one-line characterization\n- ...\n\n### [Other Cluster]\n- ...\n\n## Developing (T2) — N concepts\nSharpening. Might become canon.\n\n## Speculative (T3) — N concepts\nTesting in public.\n\n## Stats\n- Total concepts: N\n- T1 Canon: N\n- T2 Developing: N\n- T3 Speculative: N\n- T4 Riff: N\n- Earliest source: YYYY-MM-DD\n- Latest source: YYYY-MM-DD\n```\n\n## Phase 5: Curation cull — keep\u002Fdelete\u002Fmerge rubric\n\nPhases 1–4 only merge up — they never remove anything. Over months that\nleaves a corpus where hollow stubs dilute the concepts that actually\ncompound. Phase 5 is the cull: a hard verdict per concept, run on a cadence\nor on demand, with every destructive step reversible.\n\n> **Convention:** see [conventions\u002Ftest-before-bulk.md](..\u002Fconventions\u002Ftest-before-bulk.md)\n> — cull 3-5 clusters first, read the actual output, only then run the\n> full pass.\n\n### The core question\n\n> If the user pulled this concept up cold in two years, would it sharpen a\n> thought or seed something new — or would they scroll past it as filler?\n\nScroll-past = DELETE.\n\n### The 6 axes (score each 1-5)\n\nThree substance axes weighted **2x**, three packaging\u002Ffit axes weighted\n**1x**. Substance carries the concept; packaging earns it surface area.\n\n**SUBSTANCE (2x weight):**\n\n| Axis | 1 | 3 | 5 |\n|---|---|---|---|\n| **Insight & tension** — carries real intellectual load: a mechanism, a non-obvious causal link, an inversion, a hidden cost | platitude (\"startups are hard\") | familiar idea with a specific angle | a named mechanism you can reuse |\n| **Originality & surprise** — fresh framing that inverts an expectation, vs. a cliché anyone could write | fortune cookie (\"discipline beats motivation\") | known idea through the user's lens | a frame that feels newly coined and portable |\n| **Specificity & completeness** — self-contained claim\u002Fmechanism\u002Fdistinction with concrete detail, not a fragment needing missing context | vague or truncated | complete but generic | specific, evidenced, stands fully on its own |\n\n**PACKAGING & FIT (1x weight):**\n\n| Axis | 1 | 3 | 5 |\n|---|---|---|---|\n| **Voltage & wit** — charge in the language: a sharp turn, a compression, a line that lands | flat \u002F textbook | clean | quotable, has snap |\n| **Representative** — sounds like the user or connects to the user's documented worldview | any account could have written it | compatible with the user's lens | unmistakably the user's fingerprint |\n| **Powerful & legible** — usable ammunition (essay beat, talk line, meeting frame) AND it transmits who the user actually is | inert trivia | usable with work | ready to deploy + makes the user better understood |\n\n### Scoring → verdict\n\nWeighted score = (Insight + Originality + Specificity) × 2 +\n(Voltage + Representative + Powerful) × 1. Max = **45**; express as %.\n\n| Weighted % | Verdict | Gates that must ALSO hold |\n|---|---|---|\n| **≥85%** | **ELITE** — keep + flag for reuse | no axis \u003C 3; ≥2 fives, at least one on a SUBSTANCE axis |\n| **75-84%** | **KEEP** | (Insight ≥4 OR Originality ≥4) AND Specificity ≥3 AND (Representative ≥3 OR Powerful ≥4) |\n| **55-74%** | **MERGE\u002FREWRITE or weak-keep** | good idea, flawed body → fold into the cluster canonical or rewrite to stand alone. Keep as-is only if rare provenance or it fills a coverage gap. Else DELETE. |\n| **\u003C55%** | **DELETE** | — |\n\n**Minimum substance gate (overrides the %):** a concept can NEVER be KEEP or\nELITE if Insight \u003C 3 or Originality \u003C 3. Style does not buy its way past a\nhollow idea.\n\nMERGE\u002FREWRITE is a real third verdict, not a dodge. Many stubs have a live\nidea trapped in a weak body — fold those into the cluster canonical or\nrewrite them to stand alone. Use it when Insight ≥ 3 but Specificity or\nVoltage drags the score down.\n\n### Hard DELETE triggers (any one = delete, regardless of score)\n\n- **Fortune-cookie restatement** — true but says nothing a greeting card\n  wouldn't; platitude, no mechanism.\n- **Fragment** — requires unavailable context; not self-contained (unless\n  rare provenance, and even then only if intelligible + useful).\n- **Mangled extraction** — transcription garble, truncated mid-thought,\n  incoherent, or a chunk header masquerading as a concept.\n- **Off-mission trivia** — accurate but unconnected to anything the user\n  builds, believes, or could use.\n- **Duplicate within cluster** — fails the operational duplicate test below.\n- **Unsupported factual claim** — a factual\u002Fhistorical\u002Fcausal assertion\n  that's wrong or unsourced and stated as fact (see grounding labels).\n  Soften-or-cut.\n\n### Grounding labels (factual concepts only) — label, don't just penalize\n\nAny factual, historical, scientific, or causal claim gets a truth pass and a\n`grounding:` frontmatter label:\n\n- **VERIFIED** — accurate + sourced → fine to keep and deploy.\n- **OPINION** — clearly framed as the user's take or argument → fine.\n- **NEEDS_SOURCE** — plausible but unsourced as-fact → keep only if\n  reframed as claim\u002Fopinion.\n- **UNSAFE** — wrong, or punchy-but-false → DELETE or soften.\n\nDo not store confident falsehoods — deployed, they make the user *less*\nwell understood, not more. Citations follow\n[conventions\u002Fquality.md](..\u002Fconventions\u002Fquality.md).\n\n### Reputational-risk gate\n\nA concept that is punchy but could misrepresent the user — make them sound\ncruel, dismissive of people, or holding a position they don't — is a\nliability, not ammunition. Flag for rewrite or delete even if it scores high\non voltage. Powerful means *usable without blowback*.\n\n### Cluster budget (the \"trite at scale\" problem)\n\nWhen many concepts come from one source or share one idea, evaluate the SET,\nnot each in isolation. Per semantic cluster, the default budget:\n\n- **1 canonical concept** (the sharpest statement of the mechanism) — always.\n- **+1-2 more** ONLY if each adds a *distinct* mechanism, a concrete\n  example, a different emotional register, a new audience, or singular\n  phrasing from the user.\n- **More than 3** only if tied to an active project.\n\nEverything else in the cluster is MERGE (preferred — see below) or DELETE.\nForty near-identical stubs on one theme → one canonical mechanism concept,\nmaybe one great line. The rest merge up.\n\n### Operational duplicate test\n\nDon't eyeball \"% overlap.\" Compare the candidate against the best existing\nconcept in its cluster and ask: **does this add a new mechanism, example,\nemotional register, audience, or user-specific phrasing?** If no → MERGE\n(fold it in, keep the signal) or DELETE. If yes → the thing it adds is what\njustifies keeping it.\n\n### Hard KEEP overrides (rescue a low score — but floored)\n\nEach override applies ONLY if the concept is intelligible and potentially\nuseful:\n\n- **Singular voice** — captures something only the user would say. Voice\n  beats polish, but not voice over coherence.\n- **Load-bearing for an active project** — directly feeds a known thesis or\n  work in flight.\n- **Rare provenance** — a real quote\u002Fmoment that can't be regenerated (a\n  meeting, the user's own note), AND it carries recoverable meaning. A\n  content-free \"great point about the AI thing\" does NOT qualify.\n\n### Merge-with-backlinks (reversible — nothing is destroyed)\n\nFor redundant clusters the cull is INVERTED: do not delete the tail — merge\nit up into the canonical head and let the merge ledger become a salience\nmetric. An idea independently re-derived N times isn't bloat; it's the\ncorpus flagging *this matters* in N different contexts. Deleting dupes\nthrows that signal away; merging captures it.\n\nEach merge grows three frontmatter fields plus one body section on the\ncanonical:\n\n- **`merge_count`** (int) — raw number of pages absorbed, including\n  same-source re-extractions.\n- **`independent_sources`** (int) — distinct sources the cluster drew from.\n  **This is the true salience metric** — raw merge_count inflates when one\n  source gets re-extracted repeatedly; independent_sources is the fix.\n- **`backlinks`** (list of `{source, angle, date}`) — every absorbed page's\n  source plus the *specific angle* it brought. All framings survive; they\n  just stop being separate top-level pages.\n- **`## Facets`** (body) — the canonical mechanism up top, then one short\n  \"as seen in {source}: {angle}\" line per absorbed page. The concept\n  becomes multi-angle, not redundant.\n\n**Merge-quality gate (reject incomplete merges):** a merge is only written\nif (a) the `## Facets` section has one line per absorbed page (source +\nspecific angle) and (b) every `backlinks` entry has source + angle + date.\nEmpty facets or dangling entries = reject the merge and flag the cluster for\nmanual review. No half-merges.\n\n**Distinctness guard is a HARD VETO, not advisory.** Two concepts that look\nlike duplicates are NOT merged unless an LLM judge AFFIRMATIVELY confirms\nthey state the SAME mechanism. Default is DON'T merge; the judge must earn\nthe merge, and its yes\u002Fno + reason is logged per cluster. Different\nmechanisms\u002Fexamples\u002Fregisters → separate canonicals. Similarity proposes;\njudgment disposes.\n\n**Finding merge candidates — qualitative bands, not numeric cutoffs.** Do\nnot hardcode a similarity threshold: `gbrain search` returns hybrid\n(RRF-fused) scores, not raw cosine similarity, and any pinned number rots as\nthe corpus and search mode shift. Work qualitatively: search each concept's\ntitle + first paragraph and treat another concept as a merge CANDIDATE when\nthe two surface each other at the top of the result list with a visible\nscore gap to the rest. Concepts that share vocabulary but not mechanism land\nmid-list — that's exactly the band where the distinctness guard earns its\nkeep. Calibrate on your own corpus distribution before the bulk pass.\n\n### Merge mechanics (progressive, fully reversible)\n\n```bash\n# 0. Inventory the stratum being culled\ngbrain query \"type:concept\" --limit 10000 --json\n\n# 1. Probe for merge candidates (mutual top-of-list hits)\ngbrain search \"concept title + first paragraph\" --limit 10\n\n# 2. Archive the absorbed page verbatim under _merged\u002F BEFORE touching it\n#    (add merged_into: \u003Ccanonical-slug> to its frontmatter). The _merged\u002F\n#    tree is the undo button.\ngbrain get concepts\u002Fabsorbed-stub\ngbrain put concepts\u002F_merged\u002Fcluster-name\u002Fabsorbed-stub\n\n# 3. Grow the canonical head: merge_count, independent_sources,\n#    backlinks, and the ## Facets section\ngbrain put concepts\u002Fcanonical-slug\n\n# 4. Soft-delete the absorbed original (restorable until purge)\ngbrain delete concepts\u002Fabsorbed-stub\n\n# Undo paths: gbrain restore \u003Cslug> (within the purge window),\n# the _merged\u002F copy (survives purge), and per-page version history:\ngbrain history concepts\u002Fcanonical-slug\ngbrain revert concepts\u002Fcanonical-slug \u003Cversion_id>\n```\n\nCommit incrementally. Nothing is hard-deleted during a cull; the `_merged\u002F`\ntree plus soft-delete plus page history keep every step reversible.\n\n### Merge ledger → emergent tier promotion\n\nFeed `independent_sources` into Phase 2's Frequency axis. When a canonical\nconcept's `independent_sources` crosses the natural gap in the corpus\nhistogram — look at the distribution, don't hardcode a round number — it is\na tier-promotion candidate (T4→T3, T3→T2, T2→T1 review). No size cap: a\nconcept that keeps absorbing merges SHOULD grow fat. The tier boundary\nbecomes emergent, not hand-drawn — the corpus telling you a recurring idea\nhas earned its tier.\n\n## Quality gates\n\n### Dedup quality\n- No two concept pages should be \"the same idea in different words.\"\n- Aliases preserved in frontmatter for search.\n- Run `gbrain query \"type:concept\"` and spot-check the count reduction.\n\n### Tier quality\n- T1 should feel like \"yes, that IS one of my recurring frameworks\" —\n  recognizable, recurring, sharp.\n- T2 should feel like \"I'm working on this; it's getting clearer.\"\n- No concept should be T1 with \u003C 4 months span or \u003C 6 mentions.\n- No concept should be T4 with > 3 months span.\n\n### Synthesis quality\n- Captures evolution, not just repetition.\n- Uses verbatim quotes, not paraphrase.\n- Links to related concepts (markdown links, not wiki-links).\n- Does NOT hallucinate sources or dates.\n\n### Cull quality\n- No concept deleted while it holds the cluster's only statement of a\n  mechanism — the canonical survives every cull.\n- Every merge passes the merge-quality gate: populated `## Facets` +\n  complete `backlinks` entries. No half-merges.\n- Distinctness-guard verdicts logged per cluster; the judge said yes out\n  loud before any merge was written.\n- No UNSAFE-labeled claim survives stated as fact.\n- Every absorbed page has a verbatim `_merged\u002F` copy before its original is\n  soft-deleted.\n\n## Cron integration\n\nThis is heavy work. Run on a cadence, not on every signal:\n\n- After a major ingestion batch completes (signal-detector burst, archive\n  crawler run, etc.).\n- Weekly cron for incremental synthesis of newly-promoted T1\u002FT2 concepts.\n- Manual trigger for a full re-synthesis when the corpus shifts\n  significantly.\n- The Phase 5 cull runs less often than synthesis — monthly, or after a\n  large ingestion wave visibly inflates the stub count. Always\n  test-before-bulk first.\n\n## When it fails\n\nFollow the [agent operator protocol](..\u002Fconventions\u002Fagent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:\n\n- The LLM judge or synthesis run stops on a cost cap (`cost_cap_exceeded`, or exit 11 with a `resume_command`): report what finished; resume with the printed command only within the budget the user agreed.\n- `no_pricing` under a user cap: tell the user, look up the model's per-token rate, and after they agree ask the brain host's operator to register it with `gbrain pricing set \u003Cmodel> --input \u003Cusd-per-1M> --output \u003Cusd-per-1M>`.\n- `revision_conflict` when rewriting a concept page: re-read and merge; never collapse a page you did not re-read.\n\n## Anti-Patterns\n\n- ❌ Running synthesis on T3\u002FT4 — wastes API budget on ideas that may\n  never sharpen.\n- ❌ Hallucinating quotes or dates. The timeline must be verifiable\n  against existing brain pages.\n- ❌ Generic cluster names (\"Various Topics\"). If you can't name the\n  cluster, the cluster isn't real.\n- ❌ Re-synthesizing already-synthesized T1s without new source material.\n  Idempotency-respect.\n- ❌ Hardcoding a numeric similarity cutoff for merge candidates. Search\n  scores are corpus- and mode-relative; use the qualitative bands and let\n  the distinctness guard decide.\n- ❌ Merging on similarity alone. Shared vocabulary is not shared\n  mechanism; the distinctness guard is a hard veto, not advisory.\n- ❌ Deleting redundant concepts instead of merging them up. Deletion\n  throws away the frequency signal that drives tier promotion.\n- ❌ Keeping a hollow concept because the phrasing is pretty. The minimum\n  substance gate exists precisely for this.\n- ❌ Hard-deleting during a cull. Archive to `_merged\u002F` + soft-delete;\n  keep every undo path alive.\n- ❌ Bulk-culling without a 3-5 cluster spot-check first\n  ([conventions\u002Ftest-before-bulk.md](..\u002Fconventions\u002Ftest-before-bulk.md)).\n\n## Related skills\n\n- `skills\u002Fsignal-detector\u002FSKILL.md` — creates raw concept stubs from text channels\n- `skills\u002Fvoice-note-ingest\u002FSKILL.md` — same for audio channels\n- `skills\u002Fidea-ingest\u002FSKILL.md` — same for links \u002F articles\n\n\n## Contract\n\nThis skill guarantees:\n\n- Routing matches the canonical triggers in the frontmatter.\n- Output written under the directories listed in `writes_to:` (when applicable).\n- Conventions referenced (`quality.md`, `brain-first.md`, `_brain-filing-rules.md`) are followed.\n- Privacy contract preserved: no real names, no fork-specific filesystem path literals, no upstream-fork references.\n\nThe full behavior contract is documented in the body sections above; this section exists for the conformance test.\n\n## Output Format\n\nThe skill's output shape is documented inline in the body sections above (see \"Output\", \"Brain page format\", or equivalent). The literal section header here exists for the conformance test (`test\u002Fskills-conformance.test.ts`).\n","# concept-synthesis — From Raw Stubs to Intellectual Map\n\n> **Convention:** see [conventions\u002Fquality.md](..\u002Fconventions\u002Fquality.md) for\n> back-link enforcement and quote-fidelity requirements.\n>\n> **Convention:** see [_brain-filing-rules.md](..\u002F_brain-filing-rules.md) —\n> output files under `concepts\u002F` per the primary-subject rule.\n\n## What this solves\n\nMany ingestion pipelines (signal-detector, idea-ingest, voice-note-ingest)\ncreate a concept page for every idea mentioned. Over months this produces:\n\n- Thousands of stub pages, many duplicates or near-duplicates\n- Timeline entries that repeat the same source across multiple concept pages\n- No synthesis — just \"the user mentioned X on this date\"\n- No tier assignments — everything flat\n- No clustering — related ideas aren't linked\n\nThis skill transforms that raw material into a curated intellectual map.\n\n## Architecture\n\n```\nPhase 1: Dedup + merge (deterministic)\n  N stubs → ~N\u002F4 canonical concepts\n    ├── Jaccard dedup (word-overlap on titles + first-paragraph)\n    ├── Substring dedup (\"founder mode\" vs \"founder mode vs manager mode\")\n    ├── Semantic dedup (LLM: \"are these the same idea?\")\n    └── Merge timelines + aliases from duplicates into the canonical page\n\nPhase 2: Score + tier (deterministic + heuristic)\n  Each canonical concept → scored and tiered\n    ├── Frequency: distinct sources referencing this concept\n    ├── Timespan: first mention → last mention in days\n    ├── Breadth: distinct months it appears in\n    ├── Engagement: avg engagement on concept-bearing sources (if available)\n    └── Tier: T1 Canon | T2 Developing | T3 Speculative | T4 Riff\n\nPhase 3: Synthesize (LLM, T1+T2 only)\n  T1 + T2 concepts → rich synthesis\n    ├── Evolution narrative: how the idea sharpened over time\n    ├── Best articulation: highest-engagement or most precise quote\n    ├── Related concepts: cross-links to other concepts\n    ├── Context: what was happening when this idea emerged \u002F evolved\n    └── Counter-positions: what this idea argues against\n\nPhase 4: Cluster + map (LLM)\n  All tiered concepts → intellectual clusters\n    ├── Group related concepts into domains (auto-named via LLM)\n    ├── Generate cluster summary pages\n    ├── Build a master concepts\u002FREADME.md with the full map\n    └── Identify idea genealogies (concept A → evolved into concept B)\n\nPhase 5: Curation cull (rubric + reversible merge)\n  Each concept → hard verdict: ELITE | KEEP | MERGE\u002FREWRITE | DELETE\n    ├── 6-axis rubric (substance 2x, packaging 1x) + minimum substance gate\n    ├── Grounding labels (VERIFIED \u002F OPINION \u002F NEEDS_SOURCE \u002F UNSAFE)\n    ├── Cluster budgets + reputational-risk gate\n    ├── Merge-with-backlinks into cluster canonicals (fully reversible)\n    └── merge_count \u002F independent_sources → emergent tier promotion\n```\n\n## Invocation\n\nThe skill is markdown agent instructions. The agent uses gbrain's\nexisting operations + LLM passes:\n\n```bash\n# 1. List all concept pages\ngbrain query \"type:concept\" --limit 10000 --json\n\n# 2. Phase 1 dedup — agent applies Jaccard + substring locally,\n#    then LLM passes to identify semantic duplicates.\n\n# 3. Phase 2 tier — agent scores each canonical concept based on\n#    frequency \u002F timespan \u002F breadth and writes tier into frontmatter.\n\n# 4. Phase 3 synthesis — for each T1\u002FT2, agent reads the timeline\n#    + associated source pages and writes a synthesis section\n#    onto the concept page via put_page.\n\n# 5. Phase 4 clustering — agent reads the tiered concept list\n#    and writes concepts\u002FREADME.md with the full intellectual map.\n```\n\n## Output: concept page format (post-synthesis)\n\n### T1 Canon — full synthesis\n\n```markdown\n---\ntitle: \"concept name\"\ntype: concept\ntier: 1\ntier_label: \"Canon\"\nmention_count: 18\ndistinct_months: 8\nfirst_mention: \"YYYY-MM-DD\"\nlast_mention: \"YYYY-MM-DD\"\ncomposite_score: 78.4\naliases: [\"alternate phrasing 1\", \"alternate phrasing 2\"]\nrelated: [\"sibling-concept-1\", \"sibling-concept-2\"]\n---\n\n# concept name\n\n**Tier 1 — Canon** | 18 mentions across 8 months\n\n## Synthesis\n\n[2-4 paragraph narrative tracing how the idea evolved, what it means in\nthe user's worldview, why it matters. Third-person analytical voice.]\n\n## Best Articulation\n\n> \"Verbatim quote from a source — the most precise or highest-engagement\n> expression of this idea.\" — [Date](source-url)\n\n## Evolution\n\n| Period | Expression | Signal |\n|--------|-----------|--------|\n| YYYY-MM | \"First articulation\" | First use — aspiration frame |\n| YYYY-MM | \"Sharpening\" | Anti-pattern emerges |\n| YYYY-MM | \"Peak form\" | Cleanest expression |\n\n## Related Concepts\n- [sibling concept](sibling-concept.md) — relationship description\n- [sibling concept](sibling-concept.md) — relationship description\n\n## Timeline\n[Full timeline with deduped entries, quotes, source links]\n```\n\n### T3 \u002F T4 — stub only (no LLM synthesis)\n\n```markdown\n---\ntitle: \"concept name\"\ntype: concept\ntier: 4\ntier_label: \"Riff\"\nmention_count: 1\n---\n\n# concept name\n\n**Tier 4 — Riff** | 1 mention\n\n> \"Quote from the source\" — [Date](URL)\n```\n\n## Output: cluster map at concepts\u002FREADME.md\n\n```markdown\n# Intellectual Universe\n\n## Canon (T1) — N concepts\nThe permanent intellectual fingerprint. Ideas that recur across years.\n\n### [Cluster Name]\n- [concept-slug](concept-slug.md) — one-line characterization\n- ...\n\n### [Other Cluster]\n- ...\n\n## Developing (T2) — N concepts\nSharpening. Might become canon.\n\n## Speculative (T3) — N concepts\nTesting in public.\n\n## Stats\n- Total concepts: N\n- T1 Canon: N\n- T2 Developing: N\n- T3 Speculative: N\n- T4 Riff: N\n- Earliest source: YYYY-MM-DD\n- Latest source: YYYY-MM-DD\n```\n\n## Phase 5: Curation cull — keep\u002Fdelete\u002Fmerge rubric\n\nPhases 1–4 only merge up — they never remove anything. Over months that\nleaves a corpus where hollow stubs dilute the concepts that actually\ncompound. Phase 5 is the cull: a hard verdict per concept, run on a cadence\nor on demand, with every destructive step reversible.\n\n> **Convention:** see [conventions\u002Ftest-before-bulk.md](..\u002Fconventions\u002Ftest-before-bulk.md)\n> — cull 3-5 clusters first, read the actual output, only then run the\n> full pass.\n\n### The core question\n\n> If the user pulled this concept up cold in two years, would it sharpen a\n> thought or seed something new — or would they scroll past it as filler?\n\nScroll-past = DELETE.\n\n### The 6 axes (score each 1-5)\n\nThree substance axes weighted **2x**, three packaging\u002Ffit axes weighted\n**1x**. Substance carries the concept; packaging earns it surface area.\n\n**SUBSTANCE (2x weight):**\n\n| Axis | 1 | 3 | 5 |\n|---|---|---|---|\n| **Insight & tension** — carries real intellectual load: a mechanism, a non-obvious causal link, an inversion, a hidden cost | platitude (\"startups are hard\") | familiar idea with a specific angle | a named mechanism you can reuse |\n| **Originality & surprise** — fresh framing that inverts an expectation, vs. a cliché anyone could write | fortune cookie (\"discipline beats motivation\") | known idea through the user's lens | a frame that feels newly coined and portable |\n| **Specificity & completeness** — self-contained claim\u002Fmechanism\u002Fdistinction with concrete detail, not a fragment needing missing context | vague or truncated | complete but generic | specific, evidenced, stands fully on its own |\n\n**PACKAGING & FIT (1x weight):**\n\n| Axis | 1 | 3 | 5 |\n|---|---|---|---|\n| **Voltage & wit** — charge in the language: a sharp turn, a compression, a line that lands | flat \u002F textbook | clean | quotable, has snap |\n| **Representative** — sounds like the user or connects to the user's documented worldview | any account could have written it | compatible with the user's lens | unmistakably the user's fingerprint |\n| **Powerful & legible** — usable ammunition (essay beat, talk line, meeting frame) AND it transmits who the user actually is | inert trivia | usable with work | ready to deploy + makes the user better understood |\n\n### Scoring → verdict\n\nWeighted score = (Insight + Originality + Specificity) × 2 +\n(Voltage + Representative + Powerful) × 1. Max = **45**; express as %.\n\n| Weighted % | Verdict | Gates that must ALSO hold |\n|---|---|---|\n| **≥85%** | **ELITE** — keep + flag for reuse | no axis \u003C 3; ≥2 fives, at least one on a SUBSTANCE axis |\n| **75-84%** | **KEEP** | (Insight ≥4 OR Originality ≥4) AND Specificity ≥3 AND (Representative ≥3 OR Powerful ≥4) |\n| **55-74%** | **MERGE\u002FREWRITE or weak-keep** | good idea, flawed body → fold into the cluster canonical or rewrite to stand alone. Keep as-is only if rare provenance or it fills a coverage gap. Else DELETE. |\n| **\u003C55%** | **DELETE** | — |\n\n**Minimum substance gate (overrides the %):** a concept can NEVER be KEEP or\nELITE if Insight \u003C 3 or Originality \u003C 3. Style does not buy its way past a\nhollow idea.\n\nMERGE\u002FREWRITE is a real third verdict, not a dodge. Many stubs have a live\nidea trapped in a weak body — fold those into the cluster canonical or\nrewrite them to stand alone. Use it when Insight ≥ 3 but Specificity or\nVoltage drags the score down.\n\n### Hard DELETE triggers (any one = delete, regardless of score)\n\n- **Fortune-cookie restatement** — true but says nothing a greeting card\n  wouldn't; platitude, no mechanism.\n- **Fragment** — requires unavailable context; not self-contained (unless\n  rare provenance, and even then only if intelligible + useful).\n- **Mangled extraction** — transcription garble, truncated mid-thought,\n  incoherent, or a chunk header masquerading as a concept.\n- **Off-mission trivia** — accurate but unconnected to anything the user\n  builds, believes, or could use.\n- **Duplicate within cluster** — fails the operational duplicate test below.\n- **Unsupported factual claim** — a factual\u002Fhistorical\u002Fcausal assertion\n  that's wrong or unsourced and stated as fact (see grounding labels).\n  Soften-or-cut.\n\n### Grounding labels (factual concepts only) — label, don't just penalize\n\nAny factual, historical, scientific, or causal claim gets a truth pass and a\n`grounding:` frontmatter label:\n\n- **VERIFIED** — accurate + sourced → fine to keep and deploy.\n- **OPINION** — clearly framed as the user's take or argument → fine.\n- **NEEDS_SOURCE** — plausible but unsourced as-fact → keep only if\n  reframed as claim\u002Fopinion.\n- **UNSAFE** — wrong, or punchy-but-false → DELETE or soften.\n\nDo not store confident falsehoods — deployed, they make the user *less*\nwell understood, not more. Citations follow\n[conventions\u002Fquality.md](..\u002Fconventions\u002Fquality.md).\n\n### Reputational-risk gate\n\nA concept that is punchy but could misrepresent the user — make them sound\ncruel, dismissive of people, or holding a position they don't — is a\nliability, not ammunition. Flag for rewrite or delete even if it scores high\non voltage. Powerful means *usable without blowback*.\n\n### Cluster budget (the \"trite at scale\" problem)\n\nWhen many concepts come from one source or share one idea, evaluate the SET,\nnot each in isolation. Per semantic cluster, the default budget:\n\n- **1 canonical concept** (the sharpest statement of the mechanism) — always.\n- **+1-2 more** ONLY if each adds a *distinct* mechanism, a concrete\n  example, a different emotional register, a new audience, or singular\n  phrasing from the user.\n- **More than 3** only if tied to an active project.\n\nEverything else in the cluster is MERGE (preferred — see below) or DELETE.\nForty near-identical stubs on one theme → one canonical mechanism concept,\nmaybe one great line. The rest merge up.\n\n### Operational duplicate test\n\nDon't eyeball \"% overlap.\" Compare the candidate against the best existing\nconcept in its cluster and ask: **does this add a new mechanism, example,\nemotional register, audience, or user-specific phrasing?** If no → MERGE\n(fold it in, keep the signal) or DELETE. If yes → the thing it adds is what\njustifies keeping it.\n\n### Hard KEEP overrides (rescue a low score — but floored)\n\nEach override applies ONLY if the concept is intelligible and potentially\nuseful:\n\n- **Singular voice** — captures something only the user would say. Voice\n  beats polish, but not voice over coherence.\n- **Load-bearing for an active project** — directly feeds a known thesis or\n  work in flight.\n- **Rare provenance** — a real quote\u002Fmoment that can't be regenerated (a\n  meeting, the user's own note), AND it carries recoverable meaning. A\n  content-free \"great point about the AI thing\" does NOT qualify.\n\n### Merge-with-backlinks (reversible — nothing is destroyed)\n\nFor redundant clusters the cull is INVERTED: do not delete the tail — merge\nit up into the canonical head and let the merge ledger become a salience\nmetric. An idea independently re-derived N times isn't bloat; it's the\ncorpus flagging *this matters* in N different contexts. Deleting dupes\nthrows that signal away; merging captures it.\n\nEach merge grows three frontmatter fields plus one body section on the\ncanonical:\n\n- **`merge_count`** (int) — raw number of pages absorbed, including\n  same-source re-extractions.\n- **`independent_sources`** (int) — distinct sources the cluster drew from.\n  **This is the true salience metric** — raw merge_count inflates when one\n  source gets re-extracted repeatedly; independent_sources is the fix.\n- **`backlinks`** (list of `{source, angle, date}`) — every absorbed page's\n  source plus the *specific angle* it brought. All framings survive; they\n  just stop being separate top-level pages.\n- **`## Facets`** (body) — the canonical mechanism up top, then one short\n  \"as seen in {source}: {angle}\" line per absorbed page. The concept\n  becomes multi-angle, not redundant.\n\n**Merge-quality gate (reject incomplete merges):** a merge is only written\nif (a) the `## Facets` section has one line per absorbed page (source +\nspecific angle) and (b) every `backlinks` entry has source + angle + date.\nEmpty facets or dangling entries = reject the merge and flag the cluster for\nmanual review. No half-merges.\n\n**Distinctness guard is a HARD VETO, not advisory.** Two concepts that look\nlike duplicates are NOT merged unless an LLM judge AFFIRMATIVELY confirms\nthey state the SAME mechanism. Default is DON'T merge; the judge must earn\nthe merge, and its yes\u002Fno + reason is logged per cluster. Different\nmechanisms\u002Fexamples\u002Fregisters → separate canonicals. Similarity proposes;\njudgment disposes.\n\n**Finding merge candidates — qualitative bands, not numeric cutoffs.** Do\nnot hardcode a similarity threshold: `gbrain search` returns hybrid\n(RRF-fused) scores, not raw cosine similarity, and any pinned number rots as\nthe corpus and search mode shift. Work qualitatively: search each concept's\ntitle + first paragraph and treat another concept as a merge CANDIDATE when\nthe two surface each other at the top of the result list with a visible\nscore gap to the rest. Concepts that share vocabulary but not mechanism land\nmid-list — that's exactly the band where the distinctness guard earns its\nkeep. Calibrate on your own corpus distribution before the bulk pass.\n\n### Merge mechanics (progressive, fully reversible)\n\n```bash\n# 0. Inventory the stratum being culled\ngbrain query \"type:concept\" --limit 10000 --json\n\n# 1. Probe for merge candidates (mutual top-of-list hits)\ngbrain search \"concept title + first paragraph\" --limit 10\n\n# 2. Archive the absorbed page verbatim under _merged\u002F BEFORE touching it\n#    (add merged_into: \u003Ccanonical-slug> to its frontmatter). The _merged\u002F\n#    tree is the undo button.\ngbrain get concepts\u002Fabsorbed-stub\ngbrain put concepts\u002F_merged\u002Fcluster-name\u002Fabsorbed-stub\n\n# 3. Grow the canonical head: merge_count, independent_sources,\n#    backlinks, and the ## Facets section\ngbrain put concepts\u002Fcanonical-slug\n\n# 4. Soft-delete the absorbed original (restorable until purge)\ngbrain delete concepts\u002Fabsorbed-stub\n\n# Undo paths: gbrain restore \u003Cslug> (within the purge window),\n# the _merged\u002F copy (survives purge), and per-page version history:\ngbrain history concepts\u002Fcanonical-slug\ngbrain revert concepts\u002Fcanonical-slug \u003Cversion_id>\n```\n\nCommit incrementally. Nothing is hard-deleted during a cull; the `_merged\u002F`\ntree plus soft-delete plus page history keep every step reversible.\n\n### Merge ledger → emergent tier promotion\n\nFeed `independent_sources` into Phase 2's Frequency axis. When a canonical\nconcept's `independent_sources` crosses the natural gap in the corpus\nhistogram — look at the distribution, don't hardcode a round number — it is\na tier-promotion candidate (T4→T3, T3→T2, T2→T1 review). No size cap: a\nconcept that keeps absorbing merges SHOULD grow fat. The tier boundary\nbecomes emergent, not hand-drawn — the corpus telling you a recurring idea\nhas earned its tier.\n\n## Quality gates\n\n### Dedup quality\n- No two concept pages should be \"the same idea in different words.\"\n- Aliases preserved in frontmatter for search.\n- Run `gbrain query \"type:concept\"` and spot-check the count reduction.\n\n### Tier quality\n- T1 should feel like \"yes, that IS one of my recurring frameworks\" —\n  recognizable, recurring, sharp.\n- T2 should feel like \"I'm working on this; it's getting clearer.\"\n- No concept should be T1 with \u003C 4 months span or \u003C 6 mentions.\n- No concept should be T4 with > 3 months span.\n\n### Synthesis quality\n- Captures evolution, not just repetition.\n- Uses verbatim quotes, not paraphrase.\n- Links to related concepts (markdown links, not wiki-links).\n- Does NOT hallucinate sources or dates.\n\n### Cull quality\n- No concept deleted while it holds the cluster's only statement of a\n  mechanism — the canonical survives every cull.\n- Every merge passes the merge-quality gate: populated `## Facets` +\n  complete `backlinks` entries. No half-merges.\n- Distinctness-guard verdicts logged per cluster; the judge said yes out\n  loud before any merge was written.\n- No UNSAFE-labeled claim survives stated as fact.\n- Every absorbed page has a verbatim `_merged\u002F` copy before its original is\n  soft-deleted.\n\n## Cron integration\n\nThis is heavy work. Run on a cadence, not on every signal:\n\n- After a major ingestion batch completes (signal-detector burst, archive\n  crawler run, etc.).\n- Weekly cron for incremental synthesis of newly-promoted T1\u002FT2 concepts.\n- Manual trigger for a full re-synthesis when the corpus shifts\n  significantly.\n- The Phase 5 cull runs less often than synthesis — monthly, or after a\n  large ingestion wave visibly inflates the stub count. Always\n  test-before-bulk first.\n\n## When it fails\n\nFollow the [agent operator protocol](..\u002Fconventions\u002Fagent-operator-protocol.md) for any gbrain error `code`, exit code, `[AGENT]` block or notice block. Specific to this skill:\n\n- The LLM judge or synthesis run stops on a cost cap (`cost_cap_exceeded`, or exit 11 with a `resume_command`): report what finished; resume with the printed command only within the budget the user agreed.\n- `no_pricing` under a user cap: tell the user, look up the model's per-token rate, and after they agree ask the brain host's operator to register it with `gbrain pricing set \u003Cmodel> --input \u003Cusd-per-1M> --output \u003Cusd-per-1M>`.\n- `revision_conflict` when rewriting a concept page: re-read and merge; never collapse a page you did not re-read.\n\n## Anti-Patterns\n\n- ❌ Running synthesis on T3\u002FT4 — wastes API budget on ideas that may\n  never sharpen.\n- ❌ Hallucinating quotes or dates. The timeline must be verifiable\n  against existing brain pages.\n- ❌ Generic cluster names (\"Various Topics\"). If you can't name the\n  cluster, the cluster isn't real.\n- ❌ Re-synthesizing already-synthesized T1s without new source material.\n  Idempotency-respect.\n- ❌ Hardcoding a numeric similarity cutoff for merge candidates. Search\n  scores are corpus- and mode-relative; use the qualitative bands and let\n  the distinctness guard decide.\n- ❌ Merging on similarity alone. Shared vocabulary is not shared\n  mechanism; the distinctness guard is a hard veto, not advisory.\n- ❌ Deleting redundant concepts instead of merging them up. Deletion\n  throws away the frequency signal that drives tier promotion.\n- ❌ Keeping a hollow concept because the phrasing is pretty. The minimum\n  substance gate exists precisely for this.\n- ❌ Hard-deleting during a cull. Archive to `_merged\u002F` + soft-delete;\n  keep every undo path alive.\n- ❌ Bulk-culling without a 3-5 cluster spot-check first\n  ([conventions\u002Ftest-before-bulk.md](..\u002Fconventions\u002Ftest-before-bulk.md)).\n\n## Related skills\n\n- `skills\u002Fsignal-detector\u002FSKILL.md` — creates raw concept stubs from text channels\n- `skills\u002Fvoice-note-ingest\u002FSKILL.md` — same for audio channels\n- `skills\u002Fidea-ingest\u002FSKILL.md` — same for links \u002F articles\n\n\n## Contract\n\nThis skill guarantees:\n\n- Routing matches the canonical triggers in the frontmatter.\n- Output written under the directories listed in `writes_to:` (when applicable).\n- Conventions referenced (`quality.md`, `brain-first.md`, `_brain-filing-rules.md`) are followed.\n- Privacy contract preserved: no real names, no fork-specific filesystem path literals, no upstream-fork references.\n\nThe full behavior contract is documented in the body sections above; this section exists for the conformance test.\n\n## Output Format\n\nThe skill's output shape is documented inline in the body sections above (see \"Output\", \"Brain page format\", or equivalent). The literal section header here exists for the conformance test (`test\u002Fskills-conformance.test.ts`).\n",{"name":5,"version":45,"mutating":46,"triggers":47,"writes_to":56,"description":7,"writes_pages":46},"0.2.0",true,[21,48,49,50,51,52,53,54,55],"synthesize my concepts","find patterns across my notes","build my intellectual map","trace idea evolution","canon vs riff","cull my concepts","which concepts to keep","concept quality rubric",[57],"concepts\u002F","master","074ec301549ded4930f04d2c3b22d709a6c095cc","skills\u002Fconcept-synthesis",4902,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain","https:\u002F\u002Fgithub.com\u002Fgarrytan","https:\u002F\u002Fblog.garrytan.com","Writes software, dreams. ","2026-11-14 04:11:30",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":46},[69,72,75],{"tool":70,"command":71},"npx","npx skills add garrytan\u002Fgbrain --skill concept-synthesis",{"tool":73,"command":74},"bunx","bunx skills add garrytan\u002Fgbrain --skill concept-synthesis",{"tool":76,"command":77},"pnpm","pnpm dlx skills add garrytan\u002Fgbrain --skill concept-synthesis","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fconcept-synthesis\u002FSKILL.md",[80],{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"routing-eval.jsonl","OTHER","其他",1709,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Fskills\u002Fconcept-synthesis\u002Frouting-eval.jsonl",[87,100,106,129,156,169],{"skillNo":88,"name":89,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":40},"01M6N109FNGH1PK49T734PZXGB","query-helper","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fquery-helper\u002FSKILL.md",[],[93,94,95,96,97,98,99],"query helper","helper","query","search","page","find","false",{"skillNo":101,"name":102,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":40},"01M6N108A23GW6NGQEQ0E7GV0A","broken","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fbroken\u002FSKILL.md",[],[102],{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":40},"01M6N105E88C5K2H03H0CC79G1","brain-ops","Read, enrich, and write brain pages with source attribution.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog\u002Fskills\u002Fbrain-ops\u002FSKILL.md",[],[113,114,115,116,117,97,118,119,120,121,95,122,123,124,125,126,127,128,96],"brain ops","brain","ops","true","attribution","read","write","up","look","pages","people","with","enrich","web","path","source",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":140,"publishedAt":40},"01M6N102GRMF22TVCNT6RK5MRD","meeting-prep","Build a briefing before you meet someone, from their recent threads, open loops and what they care about.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Fmeeting-prep\u002FSKILL.md",[135],{"categoryNo":136,"categoryName":137,"taxonomyType":138,"taxonomyTypeDesc":139},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[141,142,143,144,145,96,146,147,148,95,99,149,150,151,152,153,154,155],"meeting","prep","meeting prep","me","prepare","brief","open","build","loops","about","you","briefing","threads","for","Meet",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":40},"01M6N1005QK7REHX5KGMNR5PF0","inbox-zero","Triage the inbox into replies, delegations and archives.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Finbox-zero\u002FSKILL.md",[],[163,164,165,96,166,99,167,26,168],"inbox zero","ZeRO","inbox","clear","replies","triage",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":175,"publishedAt":40},"01M6N0ZXQ8RRRW71PNV61T57GP","deal-memo","Draft an investment memo from the deal pages and the founder history already in the brain.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgbrain\u002Fblob\u002Fmaster\u002Ftest\u002Ffixtures\u002Fskill-catalog-query\u002Fskills\u002Fdeal-memo\u002FSKILL.md",[],[176,177,178,122,114,179,180,119,181,116,96,182],"deal memo","deal","memo","draft","investment","history","founder"]