{"id":"07d1e570-82e3-4d66-ba02-f967671a06e1","shortId":"6xKHKq","kind":"skill","title":"xlsx-official","tagline":"Unless otherwise stated by the user or existing template","description":"# Requirements for Outputs\n\n## All Excel files\n\n### Zero Formula Errors\n- Every Excel model MUST be delivered with ZERO formula errors (#REF!, #DIV/0!, #VALUE!, #N/A, #NAME?)\n\n### Preserve Existing Templates (when updating templates)\n- Study and EXACTLY match existing format, style, and conventions when modifying files\n- Never impose standardized formatting on files with established patterns\n- Existing template conventions ALWAYS override these guidelines\n\n## Financial models\n\n### Color Coding Standards\nUnless otherwise stated by the user or existing template\n\n#### Industry-Standard Color Conventions\n- **Blue text (RGB: 0,0,255)**: Hardcoded inputs, and numbers users will change for scenarios\n- **Black text (RGB: 0,0,0)**: ALL formulas and calculations\n- **Green text (RGB: 0,128,0)**: Links pulling from other worksheets within same workbook\n- **Red text (RGB: 255,0,0)**: External links to other files\n- **Yellow background (RGB: 255,255,0)**: Key assumptions needing attention or cells that need to be updated\n\n### Number Formatting Standards\n\n#### Required Format Rules\n- **Years**: Format as text strings (e.g., \"2024\" not \"2,024\")\n- **Currency**: Use $#,##0 format; ALWAYS specify units in headers (\"Revenue ($mm)\")\n- **Zeros**: Use number formatting to make all zeros \"-\", including percentages (e.g., \"$#,##0;($#,##0);-\")\n- **Percentages**: Default to 0.0% format (one decimal)\n- **Multiples**: Format as 0.0x for valuation multiples (EV/EBITDA, P/E)\n- **Negative numbers**: Use parentheses (123) not minus -123\n\n### Formula Construction Rules\n\n#### Assumptions Placement\n- Place ALL assumptions (growth rates, margins, multiples, etc.) in separate assumption cells\n- Use cell references instead of hardcoded values in formulas\n- Example: Use =B5*(1+$B$6) instead of =B5*1.05\n\n#### Formula Error Prevention\n- Verify all cell references are correct\n- Check for off-by-one errors in ranges\n- Ensure consistent formulas across all projection periods\n- Test with edge cases (zero values, negative numbers)\n- Verify no unintended circular references\n\n#### Documentation Requirements for Hardcodes\n- Comment or in cells beside (if end of table). Format: \"Source: [System/Document], [Date], [Specific Reference], [URL if applicable]\"\n- Examples:\n  - \"Source: Company 10-K, FY2024, Page 45, Revenue Note, [SEC EDGAR URL]\"\n  - \"Source: Company 10-Q, Q2 2025, Exhibit 99.1, [SEC EDGAR URL]\"\n  - \"Source: Bloomberg Terminal, 8/15/2025, AAPL US Equity\"\n  - \"Source: FactSet, 8/20/2025, Consensus Estimates Screen\"\n\n# XLSX creation, editing, and analysis\n\n## Overview\n\nA user may ask you to create, edit, or analyze the contents of an .xlsx file. You have different tools and workflows available for different tasks.\n\n## Important Requirements\n\n**LibreOffice Required for Formula Recalculation**: You can assume LibreOffice is installed for recalculating formula values using the `recalc.py` script. The script automatically configures LibreOffice on first run\n\n## Reading and analyzing data\n\n### Data analysis with pandas\nFor data analysis, visualization, and basic operations, use **pandas** which provides powerful data manipulation capabilities:\n\n```python\nimport pandas as pd\n\n# Read Excel\ndf = pd.read_excel('file.xlsx')  # Default: first sheet\nall_sheets = pd.read_excel('file.xlsx', sheet_name=None)  # All sheets as dict\n\n# Analyze\ndf.head()      # Preview data\ndf.info()      # Column info\ndf.describe()  # Statistics\n\n# Write Excel\ndf.to_excel('output.xlsx', index=False)\n```\n\n## Excel File Workflows\n\n## CRITICAL: Use Formulas, Not Hardcoded Values\n\n**Always use Excel formulas instead of calculating values in Python and hardcoding them.** This ensures the spreadsheet remains dynamic and updateable.\n\n### ❌ WRONG - Hardcoding Calculated Values\n```python\n# Bad: Calculating in Python and hardcoding result\ntotal = df['Sales'].sum()\nsheet['B10'] = total  # Hardcodes 5000\n\n# Bad: Computing growth rate in Python\ngrowth = (df.iloc[-1]['Revenue'] - df.iloc[0]['Revenue']) / df.iloc[0]['Revenue']\nsheet['C5'] = growth  # Hardcodes 0.15\n\n# Bad: Python calculation for average\navg = sum(values) / len(values)\nsheet['D20'] = avg  # Hardcodes 42.5\n```\n\n### ✅ CORRECT - Using Excel Formulas\n```python\n# Good: Let Excel calculate the sum\nsheet['B10'] = '=SUM(B2:B9)'\n\n# Good: Growth rate as Excel formula\nsheet['C5'] = '=(C4-C2)/C2'\n\n# Good: Average using Excel function\nsheet['D20'] = '=AVERAGE(D2:D19)'\n```\n\nThis applies to ALL calculations - totals, percentages, ratios, differences, etc. The spreadsheet should be able to recalculate when source data changes.\n\n## Common Workflow\n1. **Choose tool**: pandas for data, openpyxl for formulas/formatting\n2. **Create/Load**: Create new workbook or load existing file\n3. **Modify**: Add/edit data, formulas, and formatting\n4. **Save**: Write to file\n5. **Recalculate formulas (MANDATORY IF USING FORMULAS)**: Use the recalc.py script\n   ```bash\n   python recalc.py output.xlsx\n   ```\n6. **Verify and fix any errors**: \n   - The script returns JSON with error details\n   - If `status` is `errors_found`, check `error_summary` for specific error types and locations\n   - Fix the identified errors and recalculate again\n   - Common errors to fix:\n     - `#REF!`: Invalid cell references\n     - `#DIV/0!`: Division by zero\n     - `#VALUE!`: Wrong data type in formula\n     - `#NAME?`: Unrecognized formula name\n\n### Creating new Excel files\n\n```python\n# Using openpyxl for formulas and formatting\nfrom openpyxl import Workbook\nfrom openpyxl.styles import Font, PatternFill, Alignment\n\nwb = Workbook()\nsheet = wb.active\n\n# Add data\nsheet['A1'] = 'Hello'\nsheet['B1'] = 'World'\nsheet.append(['Row', 'of', 'data'])\n\n# Add formula\nsheet['B2'] = '=SUM(A1:A10)'\n\n# Formatting\nsheet['A1'].font = Font(bold=True, color='FF0000')\nsheet['A1'].fill = PatternFill('solid', start_color='FFFF00')\nsheet['A1'].alignment = Alignment(horizontal='center')\n\n# Column width\nsheet.column_dimensions['A'].width = 20\n\nwb.save('output.xlsx')\n```\n\n### Editing existing Excel files\n\n```python\n# Using openpyxl to preserve formulas and formatting\nfrom openpyxl import load_workbook\n\n# Load existing file\nwb = load_workbook('existing.xlsx')\nsheet = wb.active  # or wb['SheetName'] for specific sheet\n\n# Working with multiple sheets\nfor sheet_name in wb.sheetnames:\n    sheet = wb[sheet_name]\n    print(f\"Sheet: {sheet_name}\")\n\n# Modify cells\nsheet['A1'] = 'New Value'\nsheet.insert_rows(2)  # Insert row at position 2\nsheet.delete_cols(3)  # Delete column 3\n\n# Add new sheet\nnew_sheet = wb.create_sheet('NewSheet')\nnew_sheet['A1'] = 'Data'\n\nwb.save('modified.xlsx')\n```\n\n## Recalculating formulas\n\nExcel files created or modified by openpyxl contain formulas as strings but not calculated values. Use the provided `recalc.py` script to recalculate formulas:\n\n```bash\npython recalc.py <excel_file> [timeout_seconds]\n```\n\nExample:\n```bash\npython recalc.py output.xlsx 30\n```\n\nThe script:\n- Automatically sets up LibreOffice macro on first run\n- Recalculates all formulas in all sheets\n- Scans ALL cells for Excel errors (#REF!, #DIV/0!, etc.)\n- Returns JSON with detailed error locations and counts\n- Works on both Linux and macOS\n\n## Formula Verification Checklist\n\nQuick checks to ensure formulas work correctly:\n\n### Essential Verification\n- [ ] **Test 2-3 sample references**: Verify they pull correct values before building full model\n- [ ] **Column mapping**: Confirm Excel columns match (e.g., column 64 = BL, not BK)\n- [ ] **Row offset**: Remember Excel rows are 1-indexed (DataFrame row 5 = Excel row 6)\n\n### Common Pitfalls\n- [ ] **NaN handling**: Check for null values with `pd.notna()`\n- [ ] **Far-right columns**: FY data often in columns 50+ \n- [ ] **Multiple matches**: Search all occurrences, not just first\n- [ ] **Division by zero**: Check denominators before using `/` in formulas (#DIV/0!)\n- [ ] **Wrong references**: Verify all cell references point to intended cells (#REF!)\n- [ ] **Cross-sheet references**: Use correct format (Sheet1!A1) for linking sheets\n\n### Formula Testing Strategy\n- [ ] **Start small**: Test formulas on 2-3 cells before applying broadly\n- [ ] **Verify dependencies**: Check all cells referenced in formulas exist\n- [ ] **Test edge cases**: Include zero, negative, and very large values\n\n### Interpreting recalc.py Output\nThe script returns JSON with error details:\n```json\n{\n  \"status\": \"success\",           // or \"errors_found\"\n  \"total_errors\": 0,              // Total error count\n  \"total_formulas\": 42,           // Number of formulas in file\n  \"error_summary\": {              // Only present if errors found\n    \"#REF!\": {\n      \"count\": 2,\n      \"locations\": [\"Sheet1!B5\", \"Sheet1!C10\"]\n    }\n  }\n}\n```\n\n## Best Practices\n\n### Library Selection\n- **pandas**: Best for data analysis, bulk operations, and simple data export\n- **openpyxl**: Best for complex formatting, formulas, and Excel-specific features\n\n### Working with openpyxl\n- Cell indices are 1-based (row=1, column=1 refers to cell A1)\n- Use `data_only=True` to read calculated values: `load_workbook('file.xlsx', data_only=True)`\n- **Warning**: If opened with `data_only=True` and saved, formulas are replaced with values and permanently lost\n- For large files: Use `read_only=True` for reading or `write_only=True` for writing\n- Formulas are preserved but not evaluated - use recalc.py to update values\n\n### Working with pandas\n- Specify data types to avoid inference issues: `pd.read_excel('file.xlsx', dtype={'id': str})`\n- For large files, read specific columns: `pd.read_excel('file.xlsx', usecols=['A', 'C', 'E'])`\n- Handle dates properly: `pd.read_excel('file.xlsx', parse_dates=['date_column'])`\n\n## Code Style Guidelines\n**IMPORTANT**: When generating Python code for Excel operations:\n- Write minimal, concise Python code without unnecessary comments\n- Avoid verbose variable names and redundant operations\n- Avoid unnecessary print statements\n\n**For Excel files themselves**:\n- Add comments to cells with complex formulas or important assumptions\n- Document data sources for hardcoded values\n- Include notes for key calculations and model sections\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\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":["xlsx","official","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-xlsx-official","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/xlsx-official","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 · 34404 github stars · SKILL.md body (10,516 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-22T00:52:00.773Z","embedding":null,"createdAt":"2026-04-18T21:47:50.383Z","updatedAt":"2026-04-22T00:52:00.773Z","lastSeenAt":"2026-04-22T00:52:00.773Z","tsv":"'-1':540 '-123':221 '-3':979,1087 '/c2':595 '0':93,94,108,109,110,118,120,133,134,145,175,195,196,543,546,1129 '0.0':200,207 '0.15':552 '024':172 '1':251,629,1009,1188,1191,1193 '1.05':257 '10':321,333 '123':218 '128':119 '2':171,638,864,869,978,1086,1150 '20':803 '2024':169 '2025':336 '255':95,132,143,144 '3':647,872,875 '30':925 '4':654 '42':1135 '42.5':567 '45':325 '5':659,1013 '50':1036 '5000':531 '6':253,674,1016 '64':999 '8/15/2025':345 '8/20/2025':351 '99.1':338 'a1':758,772,776,784,792,859,886,1074,1197 'a10':773 'aapl':346 'abl':620 'across':279 'action':1364 'add':755,767,876,1328 'add/edit':649 'align':750,793,794 'alway':67,177,490 'analysi':359,421,426,1164 'analyz':370,418,465 'appli':607,1090 'applic':317,1358 'ask':364,1402 'assum':396 'assumpt':147,225,229,237,1337 'attent':149 'automat':410,928 'avail':383 'averag':557,597,603 'avg':558,565 'avoid':1262,1313,1320 'b':252 'b1':761 'b10':528,580 'b2':582,770 'b5':250,256,1153 'b9':583 'background':141 'bad':516,532,553 'base':1189 'bash':670,915,921 'basic':429 'besid':304 'best':1156,1161,1172 'bk':1002 'bl':1000 'black':105 'bloomberg':343 'blue':90 'bold':779 'boundari':1410 'broad':1091 'build':988 'bulk':1165 'c':1282 'c10':1155 'c2':594 'c4':593 'c4-c2':592 'c5':549,591 'calcul':114,496,513,517,555,576,610,905,1204,1348 'capabl':438 'case':286,1103 'cell':151,238,240,263,303,714,857,944,1059,1064,1088,1096,1185,1196,1331 'center':796 'chang':102,626 'check':267,692,969,1021,1048,1094 'checklist':967 'choos':630 'circular':294 'clarif':1404 'clear':1377 'code':74,1294,1301,1309 'col':871 'color':73,88,781,789 'column':470,797,874,991,995,998,1030,1035,1192,1276,1293 'comment':300,1312,1329 'common':627,708,1017 'compani':320,332 'complex':1174,1333 'comput':533 'concis':1307 'configur':411 'confirm':993 'consensus':352 'consist':277 'construct':223 'contain':899 'content':372 'convent':51,66,89 'correct':266,568,974,985,1071 'count':958,1132,1149 'creat':367,640,730,894 'create/load':639 'creation':356 'criteria':1413 'critic':484 'cross':1067 'cross-sheet':1066 'currenc':173 'd19':605 'd2':604 'd20':564,602 'data':419,420,425,436,468,625,634,650,722,756,766,887,1032,1163,1169,1199,1209,1216,1259,1339 'datafram':1011 'date':312,1285,1291,1292 'decim':203 'default':198,450 'delet':873 'deliv':27 'denomin':1049 'depend':1093 'describ':1365,1381 'detail':686,954,1120 'df':446,524 'df.describe':472 'df.head':466 'df.iloc':539,542,545 'df.info':469 'df.to':476 'dict':464 'differ':379,385,614 'dimens':800 'div/0':33,716,949,1054 'divis':717,1045 'document':296,1338 'dtype':1268 'dynam':508 'e':1283 'e.g':168,194,997 'edg':285,1102 'edgar':329,340 'edit':357,368,806 'end':306 'ensur':276,504,971 'environ':1393 'environment-specif':1392 'equiti':348 'error':21,31,259,273,679,685,690,693,697,704,709,947,955,1119,1125,1128,1131,1141,1146 'essenti':975 'establish':62 'estim':353 'etc':234,615,950 'ev/ebitda':212 'evalu':1249 'everi':22 'exact':45 'exampl':248,318,920 'excel':17,23,445,448,456,475,477,481,492,570,575,588,599,732,808,892,946,994,1006,1014,1179,1266,1278,1288,1303,1325 'excel-specif':1178 'execut':1360 'exhibit':337 'exist':11,38,47,64,83,645,807,824,1100 'existing.xlsx':829 'expert':1398 'export':1170 'extern':135 'f':852 'factset':350 'fals':480 'far':1028 'far-right':1027 'featur':1181 'ff0000':782 'ffff00':790 'file':18,54,60,139,376,482,646,658,733,809,825,893,1140,1231,1273,1326 'file.xlsx':449,457,1208,1267,1279,1289 'fill':785 'financi':71 'first':414,451,934,1044 'fix':677,701,711 'font':748,777,778 'format':48,58,158,161,164,176,187,201,205,309,653,740,774,817,1072,1175 'formula':20,30,112,222,247,258,278,392,402,486,493,571,589,651,661,665,725,728,738,768,815,891,900,914,938,965,972,1053,1078,1084,1099,1134,1138,1176,1221,1244,1334 'formulas/formatting':637 'found':691,1126,1147 'full':989 'function':600 'fy':1031 'fy2024':323 'generat':1299 'good':573,584,596 'green':115 'growth':230,534,538,550,585 'guidelin':70,1296 'handl':1020,1284 'hardcod':96,244,299,488,501,512,521,530,551,566,1342 'header':181 'hello':759 'horizont':795 'id':1269 'identifi':703 'import':387,440,743,747,820,1297,1336 'impos':56 'includ':192,1104,1344 'index':479,1010 'indic':1186 'industri':86 'industry-standard':85 'infer':1263 'info':471 'input':97,1407 'insert':865 'instal':399 'instead':242,254,494 'intend':1063 'interpret':1111 'invalid':713 'issu':1264 'json':683,952,1117,1121 'k':322 'key':146,1347 'larg':1109,1230,1272 'len':561 'let':574 'librari':1158 'libreoffic':389,397,412,931 'limit':1369 'link':121,136,1076 'linux':962 'load':644,821,823,827,1206 'locat':700,956,1151 'lost':1228 'maco':964 'macro':932 'make':189 'mandatori':662 'manipul':437 'map':992 'margin':232 'match':46,996,1038,1378 'may':363 'minim':1306 'minus':220 'miss':1415 'mm':183 'model':24,72,990,1350 'modifi':53,648,856,896 'modified.xlsx':889 'multipl':204,211,233,840,1037 'must':25 'n/a':35 'name':36,459,726,729,844,850,855,1316 'nan':1019 'need':148,153 'negat':214,289,1106 'never':55 'new':641,731,860,877,879,884 'newsheet':883 'none':460 'note':327,1345 'null':1023 'number':99,157,186,215,290,1136 'occurr':1041 'off-by-on':269 'offici':3 'offset':1004 'often':1033 'one':202,272 'open':1214 'openpyxl':635,736,742,812,819,898,1171,1184 'openpyxl.styles':746 'oper':430,1166,1304,1319 'otherwis':5,77 'output':15,1113,1387 'output.xlsx':478,673,805,924 'overrid':68 'overview':360,1368 'p/e':213 'page':324 'panda':423,432,441,632,1160,1257 'parenthes':217 'pars':1290 'pattern':63 'patternfil':749,786 'pd':443 'pd.notna':1026 'pd.read':447,455,1265,1277,1287 'percentag':193,197,612 'period':282 'perman':1227 'permiss':1408 'pitfal':1018 'place':227 'placement':226 'point':1061 'posit':868 'power':435 'practic':1157 'present':1144 'preserv':37,814,1246 'prevent':260 'preview':467 'print':851,1322 'project':281 'proper':1286 'provid':434,909 'pull':122,984 'python':439,499,515,519,537,554,572,671,734,810,916,922,1300,1308 'q':334 'q2':335 'quick':968 'rang':275 'rate':231,535,586 'ratio':613 'read':416,444,1203,1233,1237,1274 'recalc.py':406,668,672,910,917,923,1112,1251 'recalcul':393,401,622,660,706,890,913,936 'red':129 'redund':1318 'ref':32,712,948,1065,1148 'refer':241,264,295,314,715,981,1056,1060,1069,1194 'referenc':1097 'remain':507 'rememb':1005 'replac':1223 'requir':13,160,297,388,390,1406 'result':522 'return':682,951,1116 'revenu':182,326,541,544,547 'review':1399 'rgb':92,107,117,131,142 'right':1029 'row':764,863,866,1003,1007,1012,1015,1190 'rule':162,224 'run':415,935 'safeti':1409 'sale':525 'sampl':980 'save':655,1220 'scan':942 'scenario':104 'scope':1380 'screen':354 'script':407,409,669,681,911,927,1115 'search':1039 'sec':328,339 'second':919 'section':1351 'select':1159 'separ':236 'set':929 'sheet':452,454,458,462,527,548,563,579,590,601,753,757,760,769,775,783,791,830,837,841,843,847,849,853,854,858,878,880,882,885,941,1068,1077 'sheet.append':763 'sheet.column':799 'sheet.delete':870 'sheet.insert':862 'sheet1':1073,1152,1154 'sheetnam':834 'simpl':1168 'skill':1356,1372 'skill-xlsx-official' 'small':1082 'solid':787 'sourc':310,319,331,342,349,624,1340 'source-sickn33' 'specif':313,696,836,1180,1275,1394 'specifi':178,1258 'spreadsheet':506,617 'standard':57,75,87,159 'start':788,1081 'state':6,78 'statement':1323 'statist':473 'status':688,1122 'stop':1400 'str':1270 'strategi':1080 'string':167,902 'studi':43 'style':49,1295 'substitut':1390 'success':1123,1412 'sum':526,559,578,581,771 'summari':694,1142 'system/document':311 'tabl':308 'task':386,1376 'templat':12,39,42,65,84 'termin':344 'test':283,977,1079,1083,1101,1396 'text':91,106,116,130,166 'timeout':918 'tool':380,631 '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' 'total':523,529,611,1127,1130,1133 'treat':1385 'true':780,1201,1211,1218,1235,1241 'type':698,723,1260 'unintend':293 'unit':179 'unless':4,76 'unnecessari':1311,1321 'unrecogn':727 'updat':41,156,510,1253 'url':315,330,341 'us':347 'use':174,185,216,239,249,404,431,485,491,569,598,664,666,735,811,907,1051,1070,1198,1232,1250,1354,1370 'usecol':1280 'user':9,81,100,362 'valid':1395 'valu':34,245,288,403,489,497,514,560,562,720,861,906,986,1024,1110,1205,1225,1254,1343 'valuat':210 'variabl':1315 'verbos':1314 'verif':966,976 'verifi':261,291,675,982,1057,1092 'visual':427 'warn':1212 'wb':751,826,833,848 'wb.active':754,831 'wb.create':881 'wb.save':804,888 'wb.sheetnames':846 'width':798,802 'within':126 'without':1310 'work':838,959,973,1182,1255 'workbook':128,642,744,752,822,828,1207 'workflow':382,483,628,1362 'worksheet':125 'world':762 'write':474,656,1239,1243,1305 'wrong':511,721,1055 'x':208 'xlsx':2,355,375 'xlsx-offici':1 'year':163 'yellow':140 'zero':19,29,184,191,287,719,1047,1105","prices":[{"id":"7cd730f9-a0f8-4487-a97f-e25ec1d5602e","listingId":"07d1e570-82e3-4d66-ba02-f967671a06e1","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:47:50.383Z"}],"sources":[{"listingId":"07d1e570-82e3-4d66-ba02-f967671a06e1","source":"github","sourceId":"sickn33/antigravity-awesome-skills/xlsx-official","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/xlsx-official","isPrimary":false,"firstSeenAt":"2026-04-18T21:47:50.383Z","lastSeenAt":"2026-04-22T00:52:00.773Z"}],"details":{"listingId":"07d1e570-82e3-4d66-ba02-f967671a06e1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"xlsx-official","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34404,"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-21T16:43:40Z","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":"25770996458c410d1e816d194f10bb98ab3c53bc","skill_md_path":"skills/xlsx-official/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/xlsx-official"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"xlsx-official","description":"Unless otherwise stated by the user or existing template"},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/xlsx-official"},"updatedAt":"2026-04-22T00:52:00.773Z"}}