{"id":"b6ffa017-0e28-42e0-bf99-c89953baad5e","shortId":"R8WRYv","kind":"skill","title":"obsidian-bases","tagline":"Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian.","description":"# Obsidian Bases Skill\n\n## When to Use\n- Use when creating or editing `.base` files in Obsidian.\n- Use for database-like note views with filters, formulas, summaries, or cards/tables.\n- Use when the user asks about Obsidian Bases specifically.\n\n## Workflow\n\n1. **Create the file**: Create a `.base` file in the vault with valid YAML content\n2. **Define scope**: Add `filters` to select which notes appear (by tag, folder, property, or date)\n3. **Add formulas** (optional): Define computed properties in the `formulas` section\n4. **Configure views**: Add one or more views (`table`, `cards`, `list`, or `map`) with `order` specifying which properties to display\n5. **Validate**: Verify the file is valid YAML with no syntax errors. Check that all referenced properties and formulas exist. Common issues: unquoted strings containing special YAML characters, mismatched quotes in formula expressions, referencing `formula.X` without defining `X` in `formulas`\n6. **Test in Obsidian**: Open the `.base` file in Obsidian to confirm the view renders correctly. If it shows a YAML error, check quoting rules below\n\n## Schema\n\nBase files use the `.base` extension and contain valid YAML.\n\n```yaml\n# Global filters apply to ALL views in the base\nfilters:\n  # Can be a single filter string\n  # OR a recursive filter object with and/or/not\n  and: []\n  or: []\n  not: []\n\n# Define formula properties that can be used across all views\nformulas:\n  formula_name: 'expression'\n\n# Configure display names and settings for properties\nproperties:\n  property_name:\n    displayName: \"Display Name\"\n  formula.formula_name:\n    displayName: \"Formula Display Name\"\n  file.ext:\n    displayName: \"Extension\"\n\n# Define custom summary formulas\nsummaries:\n  custom_summary_name: 'values.mean().round(3)'\n\n# Define one or more views\nviews:\n  - type: table | cards | list | map\n    name: \"View Name\"\n    limit: 10                    # Optional: limit results\n    groupBy:                     # Optional: group results\n      property: property_name\n      direction: ASC | DESC\n    filters:                     # View-specific filters\n      and: []\n    order:                       # Properties to display in order\n      - file.name\n      - property_name\n      - formula.formula_name\n    summaries:                   # Map properties to summary formulas\n      property_name: Average\n```\n\n## Filter Syntax\n\nFilters narrow down results. They can be applied globally or per-view.\n\n### Filter Structure\n\n```yaml\n# Single filter\nfilters: 'status == \"done\"'\n\n# AND - all conditions must be true\nfilters:\n  and:\n    - 'status == \"done\"'\n    - 'priority > 3'\n\n# OR - any condition can be true\nfilters:\n  or:\n    - 'file.hasTag(\"book\")'\n    - 'file.hasTag(\"article\")'\n\n# NOT - exclude matching items\nfilters:\n  not:\n    - 'file.hasTag(\"archived\")'\n\n# Nested filters\nfilters:\n  or:\n    - file.hasTag(\"tag\")\n    - and:\n        - file.hasTag(\"book\")\n        - file.hasLink(\"Textbook\")\n    - not:\n        - file.hasTag(\"book\")\n        - file.inFolder(\"Required Reading\")\n```\n\n### Filter Operators\n\n| Operator | Description |\n|----------|-------------|\n| `==` | equals |\n| `!=` | not equal |\n| `>` | greater than |\n| `<` | less than |\n| `>=` | greater than or equal |\n| `<=` | less than or equal |\n| `&&` | logical and |\n| `\\|\\|` | logical or |\n| <code>!</code> | logical not |\n\n## Properties\n\n### Three Types of Properties\n\n1. **Note properties** - From frontmatter: `note.author` or just `author`\n2. **File properties** - File metadata: `file.name`, `file.mtime`, etc.\n3. **Formula properties** - Computed values: `formula.my_formula`\n\n### File Properties Reference\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `file.name` | String | File name |\n| `file.basename` | String | File name without extension |\n| `file.path` | String | Full path to file |\n| `file.folder` | String | Parent folder path |\n| `file.ext` | String | File extension |\n| `file.size` | Number | File size in bytes |\n| `file.ctime` | Date | Created time |\n| `file.mtime` | Date | Modified time |\n| `file.tags` | List | All tags in file |\n| `file.links` | List | Internal links in file |\n| `file.backlinks` | List | Files linking to this file |\n| `file.embeds` | List | Embeds in the note |\n| `file.properties` | Object | All frontmatter properties |\n\n### The `this` Keyword\n\n- In main content area: refers to the base file itself\n- When embedded: refers to the embedding file\n- In sidebar: refers to the active file in main content\n\n## Formula Syntax\n\nFormulas compute values from properties. Defined in the `formulas` section.\n\n```yaml\nformulas:\n  # Simple arithmetic\n  total: \"price * quantity\"\n\n  # Conditional logic\n  status_icon: 'if(done, \"✅\", \"⏳\")'\n\n  # String formatting\n  formatted_price: 'if(price, price.toFixed(2) + \" dollars\")'\n\n  # Date formatting\n  created: 'file.ctime.format(\"YYYY-MM-DD\")'\n\n  # Calculate days since created (use .days for Duration)\n  days_old: '(now() - file.ctime).days'\n\n  # Calculate days until due date\n  days_until_due: 'if(due_date, (date(due_date) - today()).days, \"\")'\n```\n\n## Key Functions\n\nMost commonly used functions. For the complete reference of all types (Date, String, Number, List, File, Link, Object, RegExp), see [FUNCTIONS_REFERENCE.md](references/FUNCTIONS_REFERENCE.md).\n\n| Function | Signature | Description |\n|----------|-----------|-------------|\n| `date()` | `date(string): date` | Parse string to date (`YYYY-MM-DD HH:mm:ss`) |\n| `now()` | `now(): date` | Current date and time |\n| `today()` | `today(): date` | Current date (time = 00:00:00) |\n| `if()` | `if(condition, trueResult, falseResult?)` | Conditional |\n| `duration()` | `duration(string): duration` | Parse duration string |\n| `file()` | `file(path): file` | Get file object |\n| `link()` | `link(path, display?): Link` | Create a link |\n\n### Duration Type\n\nWhen subtracting two dates, the result is a **Duration** type (not a number).\n\n**Duration Fields:** `duration.days`, `duration.hours`, `duration.minutes`, `duration.seconds`, `duration.milliseconds`\n\n**IMPORTANT:** Duration does NOT support `.round()`, `.floor()`, `.ceil()` directly. Access a numeric field first (like `.days`), then apply number functions.\n\n```yaml\n# CORRECT: Calculate days between dates\n\"(date(due_date) - today()).days\"                    # Returns number of days\n\"(now() - file.ctime).days\"                          # Days since created\n\"(date(due_date) - today()).days.round(0)\"           # Rounded days\n\n# WRONG - will cause error:\n# \"((date(due) - today()) / 86400000).round(0)\"      # Duration doesn't support division then round\n```\n\n### Date Arithmetic\n\n```yaml\n# Duration units: y/year/years, M/month/months, d/day/days,\n#                 w/week/weeks, h/hour/hours, m/minute/minutes, s/second/seconds\n\"now() + \\\"1 day\\\"\"       # Tomorrow\n\"today() + \\\"7d\\\"\"        # A week from today\n\"now() - file.ctime\"      # Returns Duration\n\"(now() - file.ctime).days\"  # Get days as number\n```\n\n## View Types\n\n### Table View\n\n```yaml\nviews:\n  - type: table\n    name: \"My Table\"\n    order:\n      - file.name\n      - status\n      - due_date\n    summaries:\n      price: Sum\n      count: Average\n```\n\n### Cards View\n\n```yaml\nviews:\n  - type: cards\n    name: \"Gallery\"\n    order:\n      - file.name\n      - cover_image\n      - description\n```\n\n### List View\n\n```yaml\nviews:\n  - type: list\n    name: \"Simple List\"\n    order:\n      - file.name\n      - status\n```\n\n### Map View\n\nRequires latitude/longitude properties and the Maps community plugin.\n\n```yaml\nviews:\n  - type: map\n    name: \"Locations\"\n    # Map-specific settings for lat/lng properties\n```\n\n## Default Summary Formulas\n\n| Name | Input Type | Description |\n|------|------------|-------------|\n| `Average` | Number | Mathematical mean |\n| `Min` | Number | Smallest number |\n| `Max` | Number | Largest number |\n| `Sum` | Number | Sum of all numbers |\n| `Range` | Number | Max - Min |\n| `Median` | Number | Mathematical median |\n| `Stddev` | Number | Standard deviation |\n| `Earliest` | Date | Earliest date |\n| `Latest` | Date | Latest date |\n| `Range` | Date | Latest - Earliest |\n| `Checked` | Boolean | Count of true values |\n| `Unchecked` | Boolean | Count of false values |\n| `Empty` | Any | Count of empty values |\n| `Filled` | Any | Count of non-empty values |\n| `Unique` | Any | Count of unique values |\n\n## Complete Examples\n\n### Task Tracker Base\n\n```yaml\nfilters:\n  and:\n    - file.hasTag(\"task\")\n    - 'file.ext == \"md\"'\n\nformulas:\n  days_until_due: 'if(due, (date(due) - today()).days, \"\")'\n  is_overdue: 'if(due, date(due) < today() && status != \"done\", false)'\n  priority_label: 'if(priority == 1, \"🔴 High\", if(priority == 2, \"🟡 Medium\", \"🟢 Low\"))'\n\nproperties:\n  status:\n    displayName: Status\n  formula.days_until_due:\n    displayName: \"Days Until Due\"\n  formula.priority_label:\n    displayName: Priority\n\nviews:\n  - type: table\n    name: \"Active Tasks\"\n    filters:\n      and:\n        - 'status != \"done\"'\n    order:\n      - file.name\n      - status\n      - formula.priority_label\n      - due\n      - formula.days_until_due\n    groupBy:\n      property: status\n      direction: ASC\n    summaries:\n      formula.days_until_due: Average\n\n  - type: table\n    name: \"Completed\"\n    filters:\n      and:\n        - 'status == \"done\"'\n    order:\n      - file.name\n      - completed_date\n```\n\n### Reading List Base\n\n```yaml\nfilters:\n  or:\n    - file.hasTag(\"book\")\n    - file.hasTag(\"article\")\n\nformulas:\n  reading_time: 'if(pages, (pages * 2).toString() + \" min\", \"\")'\n  status_icon: 'if(status == \"reading\", \"📖\", if(status == \"done\", \"✅\", \"📚\"))'\n  year_read: 'if(finished_date, date(finished_date).year, \"\")'\n\nproperties:\n  author:\n    displayName: Author\n  formula.status_icon:\n    displayName: \"\"\n  formula.reading_time:\n    displayName: \"Est. Time\"\n\nviews:\n  - type: cards\n    name: \"Library\"\n    order:\n      - cover\n      - file.name\n      - author\n      - formula.status_icon\n    filters:\n      not:\n        - 'status == \"dropped\"'\n\n  - type: table\n    name: \"Reading List\"\n    filters:\n      and:\n        - 'status == \"to-read\"'\n    order:\n      - file.name\n      - author\n      - pages\n      - formula.reading_time\n```\n\n### Daily Notes Index\n\n```yaml\nfilters:\n  and:\n    - file.inFolder(\"Daily Notes\")\n    - '/^\\d{4}-\\d{2}-\\d{2}$/.matches(file.basename)'\n\nformulas:\n  word_estimate: '(file.size / 5).round(0)'\n  day_of_week: 'date(file.basename).format(\"dddd\")'\n\nproperties:\n  formula.day_of_week:\n    displayName: \"Day\"\n  formula.word_estimate:\n    displayName: \"~Words\"\n\nviews:\n  - type: table\n    name: \"Recent Notes\"\n    limit: 30\n    order:\n      - file.name\n      - formula.day_of_week\n      - formula.word_estimate\n      - file.mtime\n```\n\n## Embedding Bases\n\nEmbed in Markdown files:\n\n```markdown\n![[MyBase.base]]\n\n<!-- Specific view -->\n![[MyBase.base#View Name]]\n```\n\n## YAML Quoting Rules\n\n- Use single quotes for formulas containing double quotes: `'if(done, \"Yes\", \"No\")'`\n- Use double quotes for simple strings: `\"My View Name\"`\n- Escape nested quotes properly in complex expressions\n\n## Troubleshooting\n\n### YAML Syntax Errors\n\n**Unquoted special characters**: Strings containing `:`, `{`, `}`, `[`, `]`, `,`, `&`, `*`, `#`, `?`, `|`, `-`, `<`, `>`, `=`, `!`, `%`, `@`, `` ` `` must be quoted.\n\n```yaml\n# WRONG - colon in unquoted string\ndisplayName: Status: Active\n\n# CORRECT\ndisplayName: \"Status: Active\"\n```\n\n**Mismatched quotes in formulas**: When a formula contains double quotes, wrap the entire formula in single quotes.\n\n```yaml\n# WRONG - double quotes inside double quotes\nformulas:\n  label: \"if(done, \"Yes\", \"No\")\"\n\n# CORRECT - single quotes wrapping double quotes\nformulas:\n  label: 'if(done, \"Yes\", \"No\")'\n```\n\n### Common Formula Errors\n\n**Duration math without field access**: Subtracting dates returns a Duration, not a number. Always access `.days`, `.hours`, etc.\n\n```yaml\n# WRONG - Duration is not a number\n\"(now() - file.ctime).round(0)\"\n\n# CORRECT - access .days first, then round\n\"(now() - file.ctime).days.round(0)\"\n```\n\n**Missing null checks**: Properties may not exist on all notes. Use `if()` to guard.\n\n```yaml\n# WRONG - crashes if due_date is empty\n\"(date(due_date) - today()).days\"\n\n# CORRECT - guard with if()\n'if(due_date, (date(due_date) - today()).days, \"\")'\n```\n\n**Referencing undefined formulas**: Ensure every `formula.X` in `order` or `properties` has a matching entry in `formulas`.\n\n```yaml\n# This will fail silently if 'total' is not defined in formulas\norder:\n  - formula.total\n\n# Fix: define it\nformulas:\n  total: \"price * quantity\"\n```\n\n## References\n\n- [Bases Syntax](https://help.obsidian.md/bases/syntax)\n- [Functions](https://help.obsidian.md/bases/functions)\n- [Views](https://help.obsidian.md/bases/views)\n- [Formulas](https://help.obsidian.md/formulas)\n- [Complete Functions Reference](references/FUNCTIONS_REFERENCE.md)\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["obsidian","bases","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-obsidian-bases","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/obsidian-bases","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34666 github stars · SKILL.md body (13,126 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-04-23T06:51:39.626Z","embedding":null,"createdAt":"2026-04-18T21:41:36.057Z","updatedAt":"2026-04-23T06:51:39.626Z","lastSeenAt":"2026-04-23T06:51:39.626Z","tsv":"'/.matches':1204 '/bases/functions)':1482 '/bases/syntax)':1478 '/bases/views)':1486 '/formulas)':1490 '0':807,819,1212,1386,1396 '00':708,709,710 '1':83,453,840,1046 '10':311 '2':98,462,614,1050,1125,1201,1203 '3':114,295,385,470 '30':1237 '4':125,1199 '5':145,1210 '6':185 '7d':844 '86400000':817 'access':770,1362,1372,1388 'across':256 'activ':577,1072,1308,1312 'add':101,115,128 'alway':1371 'and/or/not':245 'appear':107 'appli':225,360,778 'archiv':405 'area':558 'arithmet':597,828 'articl':397,1118 'asc':323,1091 'ask':77,1528 'author':461,1146,1148,1165,1185 'averag':350,880,936,1096 'base':3,8,9,21,35,46,56,80,89,191,212,216,231,562,1014,1111,1247,1474 'book':395,414,419,1116 'boolean':979,985 'boundari':1536 'byte':513 'calcul':624,637,783 'card':38,134,304,881,886,1159 'cards/tables':72 'caus':812 'ceil':768 'charact':172,1294 'check':157,207,978,1399 'clarif':1530 'clear':1503 'colon':1302 'common':165,656,1355 'communiti':914 'complet':661,1010,1100,1107,1491 'complex':1286 'comput':119,473,585 'condit':376,388,601,713,716 'configur':126,263 'confirm':196 'contain':169,219,1265,1296,1320 'content':97,557,581 'correct':200,782,1309,1343,1387,1424 'count':879,980,986,992,998,1006 'cover':891,1163 'crash':1413 'creat':4,23,53,84,87,516,618,627,736,801 'criteria':1539 'current':698,705 'custom':286,290 'd':1198,1200,1202 'd/day/days':834 'daili':1189,1196 'databas':25,63 'database-lik':24,62 'date':113,515,519,616,641,647,648,650,666,680,681,683,687,697,699,704,706,744,786,787,789,802,804,814,827,875,967,969,971,973,975,1028,1036,1108,1140,1141,1143,1216,1364,1416,1419,1421,1430,1431,1433 'day':625,629,632,636,638,642,652,776,784,791,795,798,799,809,841,855,857,1023,1031,1061,1213,1225,1373,1389,1423,1435 'days.round':806,1395 'dd':623,691 'dddd':1219 'default':929 'defin':99,118,181,249,285,296,589,1461,1467 'desc':324 'describ':1507 'descript':426,482,679,893,935 'deviat':965 'direct':322,769,1090 'display':144,264,274,280,334,734 'displaynam':273,278,283,1055,1060,1066,1147,1151,1154,1224,1228,1306,1310 'divis':824 'doesn':821 'dollar':615 'done':373,383,606,1040,1077,1104,1135,1269,1340,1352 'doubl':1266,1273,1321,1332,1335,1347 'drop':1171 'due':640,644,646,649,788,803,815,874,1025,1027,1029,1035,1037,1059,1063,1083,1086,1095,1415,1420,1429,1432 'durat':631,717,718,720,722,739,749,754,762,820,830,852,1358,1367,1378 'duration.days':756 'duration.hours':757 'duration.milliseconds':760 'duration.minutes':758 'duration.seconds':759 'earliest':966,968,977 'edit':6,55 'emb':543,1248 'embed':566,570,1246 'empti':990,994,1002,1418 'ensur':1439 'entir':1325 'entri':1449 'environ':1519 'environment-specif':1518 'equal':427,429,437,441 'error':156,206,813,1291,1357 'escap':1281 'est':1155 'estim':1208,1227,1244 'etc':469,1375 'everi':1440 'exampl':1011 'exclud':399 'exist':164,1403 'expert':1524 'express':177,262,1287 'extens':217,284,492,507 'fail':1455 'fals':988,1041 'falseresult':715 'field':755,773,1361 'file':10,22,57,86,90,149,192,213,463,465,477,485,489,498,506,510,527,533,536,540,563,571,578,670,724,725,727,729,1251 'file.backlinks':534 'file.basename':487,1205,1217 'file.ctime':514,635,797,850,854,1384,1394 'file.ctime.format':619 'file.embeds':541 'file.ext':282,504,1020 'file.folder':499 'file.haslink':415 'file.hastag':394,396,404,410,413,418,1018,1115,1117 'file.infolder':420,1195 'file.links':528 'file.mtime':468,518,1245 'file.name':337,467,483,872,890,904,1079,1106,1164,1184,1239 'file.path':493 'file.properties':547 'file.size':508,1209 'file.tags':522 'fill':996 'filter':13,40,68,102,224,232,237,242,325,329,351,353,366,370,371,380,392,402,407,408,423,1016,1074,1101,1113,1168,1177,1193 'finish':1139,1142 'first':774,1390 'fix':1466 'floor':767 'folder':110,502 'format':608,609,617,1218 'formula':14,42,69,116,123,163,176,184,250,259,260,279,288,347,471,476,582,584,592,595,931,1022,1119,1206,1264,1316,1319,1326,1337,1349,1356,1438,1451,1463,1469,1487 'formula.day':1221,1240 'formula.days':1057,1084,1093 'formula.formula':276,340 'formula.my':475 'formula.priority':1064,1081 'formula.reading':1152,1187 'formula.status':1149,1166 'formula.total':1465 'formula.word':1226,1243 'formula.x':179,1441 'frontmatt':457,550 'full':495 'function':654,658,677,780,1479,1492 'functions_reference.md':675 'galleri':888 'get':728,856 'global':223,361 'greater':430,434 'group':317 'groupbi':315,1087 'guard':1410,1425 'h/hour/hours':836 'help.obsidian.md':1477,1481,1485,1489 'help.obsidian.md/bases/functions)':1480 'help.obsidian.md/bases/syntax)':1476 'help.obsidian.md/bases/views)':1484 'help.obsidian.md/formulas)':1488 'hh':692 'high':1047 'hour':1374 'icon':604,1129,1150,1167 'imag':892 'import':761 'index':1191 'input':933,1533 'insid':1334 'intern':530 'issu':166 'item':401 'key':653 'keyword':554 'label':1043,1065,1082,1338,1350 'largest':946 'lat/lng':927 'latest':970,972,976 'latitude/longitude':909 'less':432,438 'librari':1161 'like':26,64,775 'limit':310,313,1236,1495 'link':531,537,671,731,732,735,738 'list':135,305,523,529,535,542,669,894,899,902,1110,1176 'locat':921 'logic':442,444,446,602 'low':1052 'm/minute/minutes':837 'm/month/months':833 'main':556,580 'map':137,306,343,906,913,919,923 'map-specif':922 'markdown':1250,1252 'match':400,1448,1504 'math':1359 'mathemat':938,960 'max':944,956 'may':1401 'md':1021 'mean':939 'median':958,961 'medium':1051 'mention':34 'metadata':466 'min':940,957,1127 'mismatch':173,1313 'miss':1397,1541 'mm':622,690,693 'modifi':520 'must':377,1297 'mybase.base':1253,1254 'name':261,265,272,275,277,281,292,307,309,321,339,341,349,486,490,868,887,900,920,932,1071,1099,1160,1174,1233,1256,1280 'narrow':354 'nest':406,1282 'non':1001 'non-empti':1000 'note':29,65,106,454,546,1190,1197,1235,1406 'note.author':458 'null':1398 'number':509,668,753,779,793,859,937,941,943,945,947,949,953,955,959,963,1370,1382 'numer':772 'object':243,548,672,730 'obsidian':2,7,44,45,59,79,188,194 'obsidian-bas':1 'old':633 'one':129,297 'open':189 'oper':424,425 'option':117,312,316 'order':139,331,336,871,889,903,1078,1105,1162,1183,1238,1443,1464 'output':1513 'overdu':1033 'page':1123,1124,1186 'parent':501 'pars':684,721 'path':496,503,726,733 'per':364 'per-view':363 'permiss':1534 'plugin':915 'price':599,610,612,877,1471 'price.tofixed':613 'prioriti':384,1042,1045,1049,1067 'proper':1284 'properti':111,120,142,161,251,269,270,271,319,320,332,338,344,348,448,452,455,464,472,478,480,551,588,910,928,1053,1088,1145,1220,1400,1445 'quantiti':600,1472 'quot':174,208,1258,1262,1267,1274,1283,1299,1314,1322,1329,1333,1336,1345,1348 'rang':954,974 'read':422,1109,1120,1132,1137,1175,1182 'recent':1234 'recurs':241 'refer':479,559,567,574,662,1473,1493 'referenc':160,178,1436 'references/functions_reference.md':676,1494 'regexp':673 'render':199 'requir':421,908,1532 'result':314,318,356,746 'return':792,851,1365 'review':1525 'round':294,766,808,818,826,1211,1385,1392 'rule':209,1259 's/second/seconds':838 'safeti':1535 'schema':211 'scope':100,1506 'section':124,593 'see':674 'select':104 'set':267,925 'show':203 'sidebar':573 'signatur':678 'silent':1456 'simpl':596,901,1276 'sinc':626,800 'singl':236,369,1261,1328,1344 'size':511 'skill':47,1498 'skill-obsidian-bases' 'smallest':942 'source-sickn33' 'special':170,1293 'specif':81,328,924,1520 'specifi':140 'ss':694 'standard':964 'status':372,382,603,873,905,1039,1054,1056,1076,1080,1089,1103,1128,1131,1134,1170,1179,1307,1311 'stddev':962 'stop':1526 'string':168,238,484,488,494,500,505,607,667,682,685,719,723,1277,1295,1305 'structur':367 'substitut':1516 'subtract':742,1363 'success':1538 'sum':878,948,950 'summari':16,70,287,289,291,342,346,876,930,1092 'support':765,823 'syntax':155,352,583,1290,1475 'tabl':36,133,303,862,867,870,1070,1098,1173,1232 'tag':109,411,525 'task':1012,1019,1073,1502 'test':186,1522 'textbook':416 'three':449 'time':517,521,701,707,1121,1153,1156,1188 'to-read':1180 'today':651,702,703,790,805,816,843,848,1030,1038,1422,1434 'tomorrow':842 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'tostr':1126 'total':598,1458,1470 'tracker':1013 'treat':1511 'troubleshoot':1288 'true':379,391,982 'trueresult':714 'two':743 'type':302,450,481,665,740,750,861,866,885,898,918,934,1069,1097,1158,1172,1231 'uncheck':984 'undefin':1437 'uniqu':1004,1008 'unit':831 'unquot':167,1292,1304 'use':17,50,51,60,73,214,255,628,657,1260,1272,1407,1496 'user':33,76 'valid':95,146,151,220,1521 'valu':474,586,983,989,995,1003,1009 'values.mean':293 'vault':93 'verifi':147 'view':12,27,37,39,66,127,132,198,228,258,300,301,308,327,365,860,863,865,882,884,895,897,907,917,1068,1157,1230,1255,1279,1483 'view-specif':326 'w/week/weeks':835 'week':846,1215,1223,1242 'without':180,491,1360 'word':1207,1229 'work':19 'workflow':82 'wrap':1323,1346 'wrong':810,1301,1331,1377,1412 'x':182 'y/year/years':832 'yaml':96,152,171,205,221,222,368,594,781,829,864,883,896,916,1015,1112,1192,1257,1289,1300,1330,1376,1411,1452 'year':1136,1144 'yes':1270,1341,1353 'yyyi':621,689 'yyyy-mm-dd':620,688","prices":[{"id":"e9283bc8-48b9-4f36-adad-0e0d2792e33f","listingId":"b6ffa017-0e28-42e0-bf99-c89953baad5e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:41:36.057Z"}],"sources":[{"listingId":"b6ffa017-0e28-42e0-bf99-c89953baad5e","source":"github","sourceId":"sickn33/antigravity-awesome-skills/obsidian-bases","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/obsidian-bases","isPrimary":false,"firstSeenAt":"2026-04-18T21:41:36.057Z","lastSeenAt":"2026-04-23T06:51:39.626Z"}],"details":{"listingId":"b6ffa017-0e28-42e0-bf99-c89953baad5e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"obsidian-bases","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34666,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-23T06:41:03Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"bce8e013ef1c74bb4d14bcfe6bb794b6cd0ceb95","skill_md_path":"skills/obsidian-bases/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/obsidian-bases"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"obsidian-bases","description":"Create and edit Obsidian Bases (.base files) with views, filters, formulas, and summaries. Use when working with .base files, creating database-like views of notes, or when the user mentions Bases, table views, card views, filters, or formulas in Obsidian."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/obsidian-bases"},"updatedAt":"2026-04-23T06:51:39.626Z"}}