Mindmesh skill
Transform unstructured knowledge from conversations, research, URLs, ideas, screenshots, and other sources into structured, searchable personal knowledge. Use when capturing, organizing, enriching, connecting, updating, or retrieving knowledge through the MindMesh knowledge system.From its SKILL.md
npx -y skills add ShivamGoyal03/mindmesh-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.1 KB, ~2.4k tokens by cl100k_base, as published. Nobody here has run it
compatibility: tools: - Notion MCP (notion-fetch, notion-search, notion-create-pages, notion-update-page) - web_search - web_fetch - image reading (for Instagram/reel keyframes) - create_file / present_files
MindMesh — Knowledge Capture & Notion Publishing Skill
Core Rule
Nothing gets written to Notion until the user explicitly approves. Show first → Approve → Write → Verify → Log.
Pipeline
Input (URL / paste / image)
→ Step 1: BOOTSTRAP workspace config (once per session)
→ Step 2: EXTRACT raw content
→ Step 3: ENRICH with verified tool links
→ Step 4: STRUCTURE into .md one-pager
→ Step 5: SHOW .md + 3 placement options in chat
→ Step 6: WAIT for approval
→ Step 7: WRITE to Notion
→ Step 8: VERIFY (re-fetch)
→ Step 9: SET RELATIONS
→ Step 10: LOG (show draft → approve → write → verify)
Step 1: Bootstrap Workspace Config (run ONCE per session)
Before processing any content, discover the workspace structure dynamically. Do NOT use hardcoded IDs — resolve everything fresh via Notion tools.
1. notion-search "logs" → find the Change Log / Logs page → store as LOGS_PAGE_ID
2. notion-search "Knowledge Hub Index" → find the central index → store as HUB_PAGE_ID
3. notion-fetch HUB_PAGE_ID → read current entry count → store as NEXT_ENTRY_NUMBER
4. notion-search "Main Database" → find the hub database → store as MAIN_DB_ID
5. notion-search for each relevant data source:
"Notes" database → store as NOTES_DB_ID
"Resources" database → store as RESOURCES_DB_ID
"Notebook" database → store as NOTEBOOK_DB_ID
Store all resolved IDs in working memory for the rest of the session. If any search returns no results, ask the user to confirm the page name before proceeding.
Why dynamic: The skill must work across any Notion workspace, not just ThinkSync. If the user configures a different workspace, page names are the stable identifiers — not IDs.
Step 2: Content Extraction by Source Type
| Source | Strategy |
|---|---|
| GitHub repo URL | web_fetch the URL — README renders as markdown |
| Article / docs URL | web_fetch — markdown mode extracts main content |
| YouTube URL | web_search for transcript/summary + web_fetch for metadata |
| LinkedIn post (pasted) | Use as-is |
| Instagram / reel (images) | Read all uploaded keyframe images in order, extract all visible text |
| Google Doc URL | web_fetch the /mobilebasic version |
| Use bash/file reading tools | |
| Direct paste | Use as-is |
If URL is inaccessible: Tell the user, request screenshots or pasted text. Do not proceed with partial data.
Step 3: Tool & Link Enrichment (MANDATORY)
Web-search every tool, library, framework, or product mentioned in the content. Find and attach: official site, GitHub repo (if open source), official docs page.
Rules:
- Only link URLs verified via search — NEVER guess or fabricate
- If no verifiable link found, list the tool as plain text with note: "link not verified"
Step 4: Structure into Markdown One-Pager
Generate a .md file using this template:
# [Title]
## Metadata
- **Source type:** [GitHub repo / LinkedIn post / Instagram reel / article / etc.]
- **Source URL:** [verified URL or "pasted content"]
- **Author/Source:** [if known]
- **Date captured:** [YYYY-MM-DD]
- **Category:** [e.g. System Design / AI / Open Source / Interview Prep]
## Summary
[2-4 sentences: what this is and why it matters]
## Key Content / Insights
[Main content — tables, bullets, code blocks as appropriate]
## Tools & Official Links
| Tool | Role | Official link |
|---|---|---|
## In Your Notion Knowledge Base
| Page | Relationship | Why Relevant |
|---|---|---|
| [Page Name](https://app.notion.com/p/PAGE_ID) | relationship-type | reason |
## Notes
[Caveats, limitations, controversies]
## Tags
`tag1` `tag2` `tag3`
For technical content, also add: Concepts, Code Examples, Algorithms, Resources sections.
Relationship types:
new— no overlap with existing pagesrelated— different topic, connectedextension— adds depth to an existing pageduplicate— same content already existsmerge-candidate— should be merged with an existing page
CRITICAL: The Notion comparison table must be built ONLY from pages found via
notion-search in the current session. Run searches with relevant keywords from the content
before building this table. Never use IDs from memory or training data.
Every page reference must be a real hyperlink:
[Page Name](https://app.notion.com/p/PAGE_ID)
Notion auto-converts these into native bidirectional backlinks.
Step 5: Show .md + Placement Options
- Save the .md file and present it using
present_files - In the chat message (NOT inside the .md), present:
Top 3 placement options:
1. [Page/DB name] — [one-line reason] (strongest fit)
2. [Page/DB name] — [one-line reason]
3. [Page/DB name] — [one-line reason]
4. New page — create standalone Notes DB page, link to Knowledge Hub Index as entry #N
Do NOT pick a placement unilaterally. Wait for the user's choice.
Step 6: Wait for Approval
Do not write anything to Notion until the user explicitly approves or picks an option. If they request edits to the .md first, incorporate changes before proceeding.
Step 7: Write to Notion
Use the IDs resolved in Step 1. Determine write type:
| Action | Parent format |
|---|---|
| New Notes DB page | {"data_source_id": "NOTES_DB_ID", "type": "data_source_id"} |
| New Resources DB entry | {"data_source_id": "RESOURCES_DB_ID", "type": "data_source_id"} |
| New Notebook entry | {"data_source_id": "NOTEBOOK_DB_ID", "type": "data_source_id"} |
| New Main DB row | {"data_source_id": "MAIN_DB_ID", "type": "data_source_id"} |
| Append to existing page | notion-update-page with update_content — ALWAYS notion-fetch the page first to get exact current text for old_str |
All page cross-references in written content = real hyperlinks [Name](https://app.notion.com/p/ID).
Step 8: Verify the Write
Re-fetch the page immediately after every write. Confirm content landed before reporting success. Never assume success — always verify.
Step 9: Set Relations
After creating a new page, set its relation properties via notion-update-page → update_properties:
Main Database → appropriate category row (search for it if unknown)
Notebook → Knowledge Hub Index page ID (resolved in Step 1)
Then update the Knowledge Hub Index linked entries table:
- Fetch the index page to get exact current table text
- Append a new row:
| NEXT_ENTRY_NUMBER | [Page](url) | Category | YYYY-MM-DD | tags |
Step 10: Log the Change
Write a log entry to LOGS_PAGE_ID (resolved in Step 1).
Format:
## YYYY-MM-DD — [Descriptive Title]
- [Page changed with hyperlink] — [what was done]
- [Additional pages if any]
- [Any flags: duplicate detected, relation set, etc.]
---
Non-negotiable log rules:
- Insert at the TOP, immediately after
# Change Logheading — NEVER append to bottom ---horizontal rule between EVERY entry, including before and after the new entry- Every page reference = real hyperlink
- After writing, re-fetch the Logs page and verify:
# Change Logis the first line- New entry is directly below it
---separators exist between all entries- Nothing is floating above the heading
Source-Specific Notes
Instagram / Reel images: Read all uploaded images in order. Extract all visible text including tables, captions, slide numbers. Flag any missing slides in Notes section.
GitHub Repos: Extract description, star count, language, license, key features, code examples. Search for official site + docs + package manager page. Note any sub-folders worth a separate extraction pass.
LinkedIn Posts: Treat as announcement/social proof, not primary source. If it links to a repo or article, fetch that as primary. Flag as low-value if it only announces a milestone.
Multi-image carousels: Extract each slide numbered. Unify tabular data (e.g. month-by-month plans) into a single structured table.
Error Handling
| Error | Action |
|---|---|
| Notion write fails | Report exact error. Do NOT retry silently. Ask user how to proceed. |
no matches found on update_content | Re-fetch the page to get exact current text, then retry |
| Page not found | Verify ID — do not guess alternatives |
| Relation field rejects value | Use single URL string per property update call, not an array |
| Instagram / blocked URL | Ask for screenshots or pasted text |
| Tool link not found via search | List as bare name with "link not verified" |
| Bootstrap search returns no results | Ask user for the correct page name before proceeding |
Workspace Configuration (Optional)
For teams using MindMesh across a non-default workspace, add a config.md file alongside
this SKILL.md with explicit page name overrides:
# MindMesh Workspace Config
logs_page_name: "Change Log"
hub_page_name: "Knowledge Hub Index"
main_db_name: "Main Database"
notes_db_name: "Notes"
resources_db_name: "Resources"
notebook_db_name: "Notebook"
If config.md exists, use its names during Step 1 bootstrap search.
If it doesn't exist, use the defaults above.
Self-Check Before Reporting Complete
- Workspace bootstrapped (IDs resolved, not hardcoded)?
- .md shown and approved before any Notion write?
- 3 placement options presented in chat (not inside .md)?
- Write verified by re-fetching the page?
- All page cross-references use real hyperlinks?
- Relations set (Main DB + Notebook) on new pages?
- Knowledge Hub Index entry appended with correct next number?
- Log entry written, approved, and verified?
- Log page:
# Change Logfirst, newest entry at top,---between all entries?
What ships with it: 2 files
3.8 KB alongside SKILL.md