[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6KSHDMYCM3HA15JK3FFJKKX":3,"skill-same:01M6KSHDMYCM3HA15JK3FFJKKX":85},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":14,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6KSHDMYCM3HA15JK3FFJKKX","obsidian-bases",null,"Create and edit Obsidian Bases (.base files) with valid YAML schemas, filters, formulas, properties, summaries, and views. Use for database-like Obsidian views or when the user mentions Bases, .base files, table\u002Fcard\u002Flist views, filters, formulas, or summaries.","gupta-builds\u002Fsecond-brain-claudekit","gupta-builds","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235218211?v=4","01M6KS71X7Q8MRJY5W891CMDWV","Anant Gupta","01M6KS721XF74MNY8FHWK83KNW",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fobsidian-bases\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"obsidian bases","obsidian","bases","filters","summaries","for","formulas","with","card","base","files","properties","opencode","use","edit","yaml","database","create","valid","codex","2026-11-10 10:12:30",false,"---\nname: obsidian-bases\ndescription: Create and edit Obsidian Bases (.base files) with valid YAML schemas, filters, formulas, properties, summaries, and views. Use for database-like Obsidian views or when the user mentions Bases, .base files, table\u002Fcard\u002Flist views, filters, formulas, or summaries.\nlicense: MIT\nmetadata:\n  copilot-enabled-agents: opencode, claude, codex\n  copilot-builtin-version: \"1\"\n  copilot-upstream-revision: \"a1dc48e68138490d522c04cbf5822214c6eb1202\"\n---\n\n# Obsidian Bases\n\n## Workflow\n\n1. Read the existing \u003Ccode>.base\u003C\u002Fcode> file before editing it.\n2. Define global scope with \u003Ccode>filters\u003C\u002Fcode>.\n3. Add computed values under \u003Ccode>formulas\u003C\u002Fcode> only when needed.\n4. Configure property display names and one or more views.\n5. Validate YAML, formula references, quoting, and date\u002Fduration operations.\n6. Open or query the Base in Obsidian when the CLI is available.\n\n## Schema\n\n~~~yaml\nfilters:\n  and:\n    - 'file.ext == \"md\"'\n    - 'status != \"archived\"'\n\nformulas:\n  days_until_due: 'if(due, (date(due) - today()).days, \"\")'\n\nproperties:\n  status:\n    displayName: Status\n  formula.days_until_due:\n    displayName: \"Days Until Due\"\n\nsummaries:\n  mean_rounded: 'values.mean().round(2)'\n\nviews:\n  - type: table\n    name: Active\n    limit: 50\n    filters:\n      and:\n        - 'status != \"done\"'\n    order:\n      - file.name\n      - status\n      - formula.days_until_due\n    groupBy:\n      property: status\n      direction: ASC\n    summaries:\n      formula.days_until_due: Average\n~~~\n\nViews may be \u003Ccode>table\u003C\u002Fcode>, \u003Ccode>cards\u003C\u002Fcode>, or \u003Ccode>list\u003C\u002Fcode>.\nA \u003Ccode>map\u003C\u002Fcode> view depends on compatible map support.\n\n## Filters and properties\n\nFilters may be a single expression or recursively nested \u003Ccode>and\u003C\u002Fcode>,\n\u003Ccode>or\u003C\u002Fcode>, and \u003Ccode>not\u003C\u002Fcode> objects. Property namespaces are:\n\n- note properties: \u003Ccode>status\u003C\u002Fcode> or \u003Ccode>note.status\u003C\u002Fcode>\n- file metadata: \u003Ccode>file.name\u003C\u002Fcode>, \u003Ccode>file.path\u003C\u002Fcode>,\n  \u003Ccode>file.folder\u003C\u002Fcode>, \u003Ccode>file.ctime\u003C\u002Fcode>, \u003Ccode>file.mtime\u003C\u002Fcode>,\n  \u003Ccode>file.tags\u003C\u002Fcode>, \u003Ccode>file.links\u003C\u002Fcode>, and\n  \u003Ccode>file.backlinks\u003C\u002Fcode>\n- formulas: \u003Ccode>formula.days_until_due\u003C\u002Fcode>\n\nUse \u003Ccode>file.hasTag()\u003C\u002Fcode>, \u003Ccode>file.hasLink()\u003C\u002Fcode>,\n\u003Ccode>file.hasProperty()\u003C\u002Fcode>, and \u003Ccode>file.inFolder()\u003C\u002Fcode> for indexed\nfile relationships. The \u003Ccode>this\u003C\u002Fcode> value refers to the Base itself, the\nembedding note, or the active file depending on where the Base is rendered.\n\n## Formula rules\n\n- Guard optional properties with \u003Ccode>if()\u003C\u002Fcode>.\n- Date subtraction returns a Duration, not a number. Access\n  \u003Ccode>.days\u003C\u002Fcode>, \u003Ccode>.hours\u003C\u002Fcode>, or another numeric field before\n  calling number methods such as \u003Ccode>.round()\u003C\u002Fcode>.\n- Every \u003Ccode>formula.X\u003C\u002Fcode> used by a view or property configuration must\n  have a matching \u003Ccode>X\u003C\u002Fcode> entry under \u003Ccode>formulas\u003C\u002Fcode>.\n- Wrap formulas containing double quotes in YAML single quotes.\n- Quote YAML strings containing special characters, especially colons and\n  leading punctuation.\n\nRead [Functions reference](references\u002FFUNCTIONS_REFERENCE.md) for function and\ntype-specific operations, and [Examples](references\u002FEXAMPLES.md) for complete\ntask-tracker and daily-notes Bases.\n\n## Validation checklist\n\n- The document parses as YAML and has a \u003Ccode>views\u003C\u002Fcode> list.\n- View \u003Ccode>order\u003C\u002Fcode>, \u003Ccode>groupBy\u003C\u002Fcode>, and summaries reference defined\n  note, file, or formula properties.\n- Formula quoting is balanced and duration math accesses a numeric field.\n- Embedded view names match exactly: \u003Ccode>![[My Base.base#View Name]]\u003C\u002Fcode>.\n\n## Attribution\n\nAdapted from \u003Ccode>kepano\u002Fobsidian-skills\u003C\u002Fcode> at revision\n\u003Ccode>a1dc48e68138490d522c04cbf5822214c6eb1202\u003C\u002Fcode>. See \u003Ccode>LICENSE\u003C\u002Fcode>.\n","# Obsidian Bases\n\n## Workflow\n\n1. Read the existing \u003Ccode>.base\u003C\u002Fcode> file before editing it.\n2. Define global scope with \u003Ccode>filters\u003C\u002Fcode>.\n3. Add computed values under \u003Ccode>formulas\u003C\u002Fcode> only when needed.\n4. Configure property display names and one or more views.\n5. Validate YAML, formula references, quoting, and date\u002Fduration operations.\n6. Open or query the Base in Obsidian when the CLI is available.\n\n## Schema\n\n~~~yaml\nfilters:\n  and:\n    - 'file.ext == \"md\"'\n    - 'status != \"archived\"'\n\nformulas:\n  days_until_due: 'if(due, (date(due) - today()).days, \"\")'\n\nproperties:\n  status:\n    displayName: Status\n  formula.days_until_due:\n    displayName: \"Days Until Due\"\n\nsummaries:\n  mean_rounded: 'values.mean().round(2)'\n\nviews:\n  - type: table\n    name: Active\n    limit: 50\n    filters:\n      and:\n        - 'status != \"done\"'\n    order:\n      - file.name\n      - status\n      - formula.days_until_due\n    groupBy:\n      property: status\n      direction: ASC\n    summaries:\n      formula.days_until_due: Average\n~~~\n\nViews may be \u003Ccode>table\u003C\u002Fcode>, \u003Ccode>cards\u003C\u002Fcode>, or \u003Ccode>list\u003C\u002Fcode>.\nA \u003Ccode>map\u003C\u002Fcode> view depends on compatible map support.\n\n## Filters and properties\n\nFilters may be a single expression or recursively nested \u003Ccode>and\u003C\u002Fcode>,\n\u003Ccode>or\u003C\u002Fcode>, and \u003Ccode>not\u003C\u002Fcode> objects. Property namespaces are:\n\n- note properties: \u003Ccode>status\u003C\u002Fcode> or \u003Ccode>note.status\u003C\u002Fcode>\n- file metadata: \u003Ccode>file.name\u003C\u002Fcode>, \u003Ccode>file.path\u003C\u002Fcode>,\n  \u003Ccode>file.folder\u003C\u002Fcode>, \u003Ccode>file.ctime\u003C\u002Fcode>, \u003Ccode>file.mtime\u003C\u002Fcode>,\n  \u003Ccode>file.tags\u003C\u002Fcode>, \u003Ccode>file.links\u003C\u002Fcode>, and\n  \u003Ccode>file.backlinks\u003C\u002Fcode>\n- formulas: \u003Ccode>formula.days_until_due\u003C\u002Fcode>\n\nUse \u003Ccode>file.hasTag()\u003C\u002Fcode>, \u003Ccode>file.hasLink()\u003C\u002Fcode>,\n\u003Ccode>file.hasProperty()\u003C\u002Fcode>, and \u003Ccode>file.inFolder()\u003C\u002Fcode> for indexed\nfile relationships. The \u003Ccode>this\u003C\u002Fcode> value refers to the Base itself, the\nembedding note, or the active file depending on where the Base is rendered.\n\n## Formula rules\n\n- Guard optional properties with \u003Ccode>if()\u003C\u002Fcode>.\n- Date subtraction returns a Duration, not a number. Access\n  \u003Ccode>.days\u003C\u002Fcode>, \u003Ccode>.hours\u003C\u002Fcode>, or another numeric field before\n  calling number methods such as \u003Ccode>.round()\u003C\u002Fcode>.\n- Every \u003Ccode>formula.X\u003C\u002Fcode> used by a view or property configuration must\n  have a matching \u003Ccode>X\u003C\u002Fcode> entry under \u003Ccode>formulas\u003C\u002Fcode>.\n- Wrap formulas containing double quotes in YAML single quotes.\n- Quote YAML strings containing special characters, especially colons and\n  leading punctuation.\n\nRead [Functions reference](references\u002FFUNCTIONS_REFERENCE.md) for function and\ntype-specific operations, and [Examples](references\u002FEXAMPLES.md) for complete\ntask-tracker and daily-notes Bases.\n\n## Validation checklist\n\n- The document parses as YAML and has a \u003Ccode>views\u003C\u002Fcode> list.\n- View \u003Ccode>order\u003C\u002Fcode>, \u003Ccode>groupBy\u003C\u002Fcode>, and summaries reference defined\n  note, file, or formula properties.\n- Formula quoting is balanced and duration math accesses a numeric field.\n- Embedded view names match exactly: \u003Ccode>![[My Base.base#View Name]]\u003C\u002Fcode>.\n\n## Attribution\n\nAdapted from \u003Ccode>kepano\u002Fobsidian-skills\u003C\u002Fcode> at revision\n\u003Ccode>a1dc48e68138490d522c04cbf5822214c6eb1202\u003C\u002Fcode>. See \u003Ccode>LICENSE\u003C\u002Fcode>.\n",{"name":5,"license":15,"metadata":44,"description":7},{"copilot-enabled-agents":45,"copilot-builtin-version":46,"copilot-upstream-revision":47},"opencode, claude, codex","1","a1dc48e68138490d522c04cbf5822214c6eb1202","main","a0226a7102f182a8c17d5d9e017879958daef9ee","skills\u002FJarvis\u002Fobsidian-bases","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit","https:\u002F\u002Fgithub.com\u002Fgupta-builds","https:\u002F\u002Fanantgupta.dev","UMN'28\r\nComputer Science Undergrad | Full-stack Developer | Researcher @ BOOM | Upcoming AI\u002FML Engineer","2026-09-21 14:33:18",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add gupta-builds\u002Fsecond-brain-claudekit --skill obsidian-bases",{"tool":62,"command":63},"bunx","bunx skills add gupta-builds\u002Fsecond-brain-claudekit --skill obsidian-bases",{"tool":65,"command":66},"pnpm","pnpm dlx skills add gupta-builds\u002Fsecond-brain-claudekit --skill obsidian-bases","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fobsidian-bases\u002FSKILL.md",true,[70,75,81],{"path":71,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"LICENSE","许可证",1077,"https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fobsidian-bases\u002FLICENSE",{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"references\u002FEXAMPLES.md","REFERENCE","参考文档",981,"https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fobsidian-bases\u002Freferences\u002FEXAMPLES.md",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002FFUNCTIONS_REFERENCE.md",1918,"https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fobsidian-bases\u002Freferences\u002FFUNCTIONS_REFERENCE.md",[86,120,140,164,185,222],{"skillNo":87,"name":88,"nameZh":6,"description":89,"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":102,"publishedAt":39},"01M6KSNPNZ3P9YTDB85TVSSEMD","humanizer","Rewrite AI-sounding text so it reads naturally without changing what it says.\nUse when editing or reviewing prose for inflated claims,\nsales language, vague sources, repetitive structure, stock AI words, passive\nvoice, filler, or chatbot artifacts. Based on Wikipedia's \"Signs of AI writing.\"","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Ftested-tools\u002F_future\u002Fhumanizer\u002FSKILL.md",[92,97],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[88,103,104,105,106,107,108,32,109,110,111,112,113,114,115,116,117,118,24,119],"writing","artifacts","voice","text","editing","sales","prose","language","structure","chatbot","stock","rewrite","sources","passive","wikipedia","claims","vague",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":129,"publishedAt":39},"01M6KSJMNGTS59JZ120MG8H861","obsidian-markdown","Create and edit Obsidian-specific Markdown syntax, including wikilinks, embeds, block references, callouts, properties, tags, and comments. Use for Obsidian notes when these extensions matter; ordinary Markdown is assumed knowledge.","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fobsidian-markdown\u002FSKILL.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000002","文档处理",[20,130,131,38,132,36,133,134,33,32,31,30,135,136,137,138,139,24],"obsidian markdown","markdown","notes","knowledge","syntax","references","tags","block","comments","extensions",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":39},"01M6KSJCCA2R8NZX49W04Z2H0F","obsidian-cli","Use the official Obsidian CLI when a task needs Obsidian's running app, index, configured features, command registry, or developer runtime. Use for currently open notes and tabs, workspace state, daily notes, typed properties, tasks, links\u002Fbacklinks, Bases queries, template resolution, link-aware moves, plugin commands, and plugin\u002Ftheme debugging; do not use it for ordinary filesystem operations.","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fobsidian-cli\u002FSKILL.md",[],[147,20,148,149,132,150,151,152,153,154,155,156,31,157,158,159,160,161,162,163],"cli","obsidian cli","official","debugging","tasks","registry","developer","open","template","command","do","commands","app","backlinks","theme","links","features",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":39},"01M6KSH2CFBWK18Q07HWJ9T8JS","json-canvas","Create and edit JSON Canvas (.canvas) files with valid nodes, edges, groups, colors, layout, IDs, and referential integrity. Use for Obsidian Canvas files, visual maps, flowcharts, project boards, or any request involving the JSON Canvas format.","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002FJarvis\u002Fjson-canvas\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000015","视觉设计",[174,175,176,20,38,37,36,177,178,32,31,179,29,180,181,182,183,26,24,184],"canvas","json canvas","json","ids","format","Nodes","maps","visual","project","layout","request",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":203,"publishedAt":39},"01M6KSDFWQ8V8CV3870MC4T84P","last30days","Research what people actually say about any topic in the last 30 days. Pulls posts and engagement from Reddit, X, YouTube, TikTok, Hacker News, Polymarket, GitHub, and the web. Includes a doctor health check to diagnose broken or missing sources.","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002F.claude_wsl\u002Flast30days\u002FSKILL.md",[191,194,197,200],{"categoryNo":192,"categoryName":193,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":195,"categoryName":196,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":198,"categoryName":199,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":201,"categoryName":202,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000037","律师与法务",[187,204,205,206,207,208,209,210,211,212,213,214,215,216,217,159,218,219,220,221],"react","doctor","search","NVIDIA","perplexity","Video","Media","parallel","python3","read","write","youtube","tiktok","deep","brave","posts","rednote","hacker",{"skillNo":223,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":230,"publishedAt":39},"01M6KS8D7DXZFQA2JYF3QWKVYY","https:\u002F\u002Fgithub.com\u002Fgupta-builds\u002Fsecond-brain-claudekit\u002Fblob\u002Fmain\u002Fskills\u002F.claude_windows\u002Flast30days\u002FSKILL.md",[226,227,228,229],{"categoryNo":192,"categoryName":193,"taxonomyType":95,"taxonomyTypeDesc":96},{"categoryNo":195,"categoryName":196,"taxonomyType":95,"taxonomyTypeDesc":96},{"categoryNo":198,"categoryName":199,"taxonomyType":95,"taxonomyTypeDesc":96},{"categoryNo":201,"categoryName":202,"taxonomyType":100,"taxonomyTypeDesc":101},[187,204,205,206,207,208,209,210,211,212,213,214,215,216,217,159,218,219,220,221]]