[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GB8ADRGKXTXRWDKAC1FCWA":3,"skill-same:01M6GB8ADRGKXTXRWDKAC1FCWA":89},{"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":31,"publishedAt":51,"linkOnly":52,"markdownContent":53,"markdownBody":54,"frontMatter":55,"refName":67,"commitSha":68,"skillDirectory":69,"forksCount":70,"repositoryHtmlUrl":71,"repositoryHomepageUrl":6,"ownerHtmlUrl":72,"ownerBlogUrl":6,"ownerDescription":73,"updatedAt":74,"install":75,"resources":88},"01M6GB8ADRGKXTXRWDKAC1FCWA","docx",null,"Create, read, edit, template, and review Word .docx files.","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F96\u002F9678b14d5e7841d588b969f6a4696cd46bcc46c3e4ac1479edc7656a051aa5ff\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000004","电子表格",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[5,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50],"office","comments","nous research","files","edit","read","Word","template","templates","productivity","create","powerpoint","documents","windows","research","linux","review","xlsx","PDF","2026-11-10 10:12:30",false,"---\nname: docx\ndescription: Create, read, edit, template, and review Word .docx files.\nversion: 1.1.0\nauthor: Nous Research\nlicense: MIT\nplatforms: [linux, macos, windows]\nmetadata:\n  hermes:\n    tags: [word, docx, documents, office, templates, revisions, comments]\n    category: productivity\n    related_skills: [pdf, xlsx, powerpoint]\n---\n\n# Docx Skill\n\nCreate, read, edit, and template Microsoft Word `.docx` files with\npython-docx via small CLIs. It handles text, styles, lists, tables,\nimages, headers\u002Ffooters, `{{token}}` templating, tracked changes\n(list\u002Faccept\u002Freject), comments (list\u002Fadd\u002Fdelete), TOC and page-number\nfields, and package health checks. It does not render documents itself\n(PDF needs LibreOffice — see Converting to PDF) or edit legacy `.doc`.\n\n## When to Use\n\n- The user asks to generate a Word document (report, letter, contract).\n- You need the text, outline, styles, or embedded images of a `.docx`.\n- You must change an existing `.docx`: replace text, edit table cells,\n  insert\u002Fdelete paragraphs, apply styles, merge fragmented runs.\n- You have a `.docx` template with `{{placeholders}}` to fill from data.\n- The document has tracked changes to review, accept, or reject.\n- You need to read reviewers' comments, or add\u002Fdelete comments.\n- A `.docx` won't open or behaves oddly and you need corruption triage.\n- The document needs a table of contents or \"Page X of Y\" footers.\n- Not for: `.doc` (legacy), `.odt`, or WYSIWYG layout work.\n\n## Prerequisites\n\n- Python 3.10+ with `python-docx` installed:\n  `pip install python-docx` (import name is `docx`; lxml comes with it).\n- Comments `add` uses the native API on python-docx >= 1.2 and an XML\n  fallback on older versions — both are automatic.\n- For image blocks: the image files must exist locally (PNG\u002FJPEG).\n\n## How to Run\n\nAll helpers live in `scripts\u002F` next to this file. Run them with the\n`terminal` tool; each supports `--help` and prints JSON to stdout.\n\n```bash\npython scripts\u002Fdocx_create.py spec.json out.docx\npython scripts\u002Fdocx_read.py out.docx --text\npython scripts\u002Fdocx_edit.py replace out.docx --find old --replace new\npython scripts\u002Fdocx_template.py tpl.docx values.json filled.docx\npython scripts\u002Fdocx_revisions.py list out.docx\npython scripts\u002Fdocx_comments.py list out.docx\npython scripts\u002Fdocx_validate.py out.docx\n```\n\n## Quick Reference\n\n| Task | Command |\n| --- | --- |\n| Create from JSON spec | `docx_create.py spec.json out.docx` |\n| Full text (body+tables+headers\u002Ffooters) | `docx_read.py f.docx --text` |\n| Heading outline + table shapes | `docx_read.py f.docx --structure` |\n| Styles actually used | `docx_read.py f.docx --styles` |\n| Extract embedded images | `docx_read.py f.docx --images outdir\u002F` |\n| Detect tracked changes\u002Fcomments | `docx_read.py f.docx --revisions` |\n| Find\u002Freplace (formatting kept) | `docx_edit.py replace f.docx --find A --replace B -o out.docx` |\n| Set a table cell | `docx_edit.py set-cell f.docx --table 0 --row 1 --col 2 --text X` |\n| Insert paragraph before index N | `docx_edit.py insert f.docx --index N --text X --style Normal` |\n| Delete paragraph N | `docx_edit.py delete f.docx --index N` |\n| Apply style to paragraph N | `docx_edit.py style f.docx --index N --style \"Heading 1\"` |\n| Merge equal-format adjacent runs | `docx_edit.py normalize f.docx -o out.docx` |\n| Insert TOC field before para N | `docx_edit.py toc f.docx --index N -o out.docx` |\n| \"Page X of Y\" footer fields | `docx_edit.py page-numbers f.docx` |\n| Fill `{{tokens}}` | `docx_template.py tpl.docx values.json out.docx --strict` |\n| List revisions (id\u002Fauthor\u002Fdate\u002Ftext) | `docx_revisions.py list f.docx` |\n| Accept \u002F reject all revisions | `docx_revisions.py accept-all f.docx -o out.docx` (or `reject-all`) |\n| Accept \u002F reject one revision | `docx_revisions.py accept f.docx --id 3 -o out.docx` |\n| List comments (+anchored text) | `docx_comments.py list f.docx` |\n| Add comment anchored to text | `docx_comments.py add f.docx --target \"phrase\" --text \"note\" --author You` |\n| Delete comment by id | `docx_comments.py delete f.docx --id 0` |\n| Health-check the package | `docx_validate.py f.docx` (exit 1 on errors) |\n\n## Procedure\n\n1. **Create.** Write a JSON spec with `write_file`, then run\n   `scripts\u002Fdocx_create.py`. The spec supports: `page` (size + margins in\n   mm), `header`\u002F`footer` strings, `footer_page_numbers` (adds a\n   \"Page X of Y\" field footer), `styles` (custom paragraph styles with\n   font, size, bold\u002Fitalic, hex `color`), and `blocks` — `heading`\n   (level 1-9), `paragraph` (either `text` or a `runs` list where each run\n   may set `bold`\u002F`italic`\u002F`underline`), `bullet_list`, `numbered_list`,\n   `table` (`header` row rendered bold, `rows`, optional built-in table\n   `style` such as `Table Grid`), `image` (`path`, optional `width_mm`),\n   `toc` (Table of Contents field), and `page_break`. The full spec\n   format is documented at the top of `scripts\u002Fdocx_create.py`.\n2. **Read.** Use `scripts\u002Fdocx_read.py` with exactly one mode flag.\n   `--text` returns body paragraphs, all table cell text, and\n   header\u002Ffooter text as JSON. `--structure` returns the heading outline\n   plus paragraph\u002Ftable\u002Fsection counts. `--images DIR` copies every file\n   under `word\u002Fmedia\u002F` out of the package.\n3. **Edit.** Use `scripts\u002Fdocx_edit.py`. `replace` walks body, tables\n   (nested included), headers and footers, and preserves run formatting;\n   add `--body-only` to skip headers\u002Ffooters. Pass `-o out.docx` to keep\n   the original; omit it to edit in place. Paragraph indices for\n   `insert`\u002F`delete`\u002F`style`\u002F`toc` refer to `--structure`\u002F`--text` body\n   order. Run `normalize` first on documents that came out of heavy Word\n   editing — it merges adjacent runs with identical formatting so later\n   find-replace matches reliably.\n4. **Review revisions.** `docx_revisions.py list` reports every `w:ins`\n   and `w:del` (id, author, date, affected text) anywhere in body,\n   tables, headers, or footers. `accept-all` \u002F `reject-all` resolve them\n   in bulk; `accept`\u002F`reject --id N` handles a single revision. Accept\n   keeps insertions and drops deleted text; reject does the reverse.\n5. **Comments.** `docx_comments.py list` returns each comment's id,\n   author, date, body text, and the document text it is anchored to.\n   `add --target \"some phrase\"` anchors a new comment to the first\n   occurrence of that phrase (runs are split as needed; formatting is\n   preserved). `delete --id N` removes the comment and its markers\n   without touching document text.\n6. **Template.** Put `{{name}}`-style tokens in the document. Run\n   `scripts\u002Fdocx_template.py` with a JSON object of values. Use\n   `--strict` to fail when tokens remain unfilled; the JSON output lists\n   `filled` counts and `unfilled_tokens` either way.\n7. **Verify** (always): re-read the output with `--text` or\n   `--structure`, and run `docx_validate.py` on anything you produced\n   via revision\u002Fcomment surgery.\n\n## Converting to PDF\n\nNo script needed. When LibreOffice is installed, convert headlessly:\n\n```bash\nsoffice --headless --convert-to pdf --outdir outdir\u002F file.docx\n```\n\nCheck availability first (`command -v soffice || command -v\nlibreoffice`). If neither exists, tell the user PDF conversion is\nunavailable in this environment rather than improvising — python-docx\ncannot render PDFs, and layout fidelity requires a real renderer.\n\n## Pitfalls\n\n- **Tokens split across runs.** Word often fragments text into several\n  runs. The replace helpers collapse matched runs (replacement inherits\n  the first run's formatting); running `docx_edit.py normalize` first\n  reduces fragmentation for all later edits.\n- **Revision coverage.** `docx_revisions.py` resolves run-level\n  insertions and deletions (the overwhelming majority). Paragraph-mark\n  and table-row revisions, format-change records, and moves are detected\n  by `--revisions` but not auto-resolved — see\n  `references\u002Frevisions-and-comments.md` and hand those to Word.\n- **Comment threading.** Replies and \"resolved\" status live in\n  `commentsExtended.xml`, which this skill ignores; comments it adds are\n  plain top-level comments.\n- **Field results are computed by Word.** `toc`, `page-numbers`, and the\n  `toc`\u002F`footer_page_numbers` spec options write *field codes*.\n  Word\u002FLibreOffice populates the actual entries and numbers when the\n  file is opened (Word may prompt to update fields); python-docx never\n  computes them, so placeholder text shows until then.\n- **Validation is a health check, not schema validation.**\n  `docx_validate.py` verifies the zip, required parts, relationship\n  targets, image magic bytes, and referenced styles. It is NOT XSD\n  validation — a file can pass and still contain XML Word dislikes.\n- **Style names must exist.** Applying a style that isn't defined in the\n  document raises `KeyError`. Built-ins like `Heading 1`, `List Bullet`,\n  `List Number`, `Table Grid` exist in the default template; custom\n  styles must be declared in the create spec first.\n- **Numbered lists restart.** `List Number` relies on Word's default\n  numbering; separate lists in one document may continue numbering\n  instead of restarting. Warn users needing precise multi-list numbering.\n- **Cell writes replace formatting.** `set-cell` uses `cell.text = ...`,\n  which resets runs in that cell to plain formatting.\n- **Encoding.** All JSON specs\u002Fvalues files are read as UTF-8 explicitly;\n  never rely on locale defaults when writing your own glue code.\n- **Don't unzip-and-sed the XML.** Edit through the scripts (or\n  python-docx); raw text substitution in `document.xml` corrupts files\n  easily. Use `patch`\u002F`write_file` only for the JSON inputs, never on the\n  `.docx` itself.\n\n## Verification\n\n- After create\u002Fedit\u002Ftemplate, run `docx_read.py out.docx --text` and\n  check the expected strings appear (and old strings are gone).\n- After accept\u002Freject, `docx_revisions.py list` should return `[]` (or\n  only the ids you intentionally left); after comment surgery,\n  `docx_comments.py list` should reflect the change and `--text` output\n  must be unchanged.\n- `docx_validate.py out.docx` exits 0 with `\"ok\": true` on a healthy\n  package — run it after any revision\u002Fcomment\u002Ffield manipulation.\n- For templates run with `--strict`, or check `unfilled_tokens == []`.\n- Structure checks: `--structure` should show the expected heading\n  outline and table shapes; `--styles` confirms custom styles applied.\n","# Docx Skill\n\nCreate, read, edit, and template Microsoft Word `.docx` files with\npython-docx via small CLIs. It handles text, styles, lists, tables,\nimages, headers\u002Ffooters, `{{token}}` templating, tracked changes\n(list\u002Faccept\u002Freject), comments (list\u002Fadd\u002Fdelete), TOC and page-number\nfields, and package health checks. It does not render documents itself\n(PDF needs LibreOffice — see Converting to PDF) or edit legacy `.doc`.\n\n## When to Use\n\n- The user asks to generate a Word document (report, letter, contract).\n- You need the text, outline, styles, or embedded images of a `.docx`.\n- You must change an existing `.docx`: replace text, edit table cells,\n  insert\u002Fdelete paragraphs, apply styles, merge fragmented runs.\n- You have a `.docx` template with `{{placeholders}}` to fill from data.\n- The document has tracked changes to review, accept, or reject.\n- You need to read reviewers' comments, or add\u002Fdelete comments.\n- A `.docx` won't open or behaves oddly and you need corruption triage.\n- The document needs a table of contents or \"Page X of Y\" footers.\n- Not for: `.doc` (legacy), `.odt`, or WYSIWYG layout work.\n\n## Prerequisites\n\n- Python 3.10+ with `python-docx` installed:\n  `pip install python-docx` (import name is `docx`; lxml comes with it).\n- Comments `add` uses the native API on python-docx >= 1.2 and an XML\n  fallback on older versions — both are automatic.\n- For image blocks: the image files must exist locally (PNG\u002FJPEG).\n\n## How to Run\n\nAll helpers live in `scripts\u002F` next to this file. Run them with the\n`terminal` tool; each supports `--help` and prints JSON to stdout.\n\n```bash\npython scripts\u002Fdocx_create.py spec.json out.docx\npython scripts\u002Fdocx_read.py out.docx --text\npython scripts\u002Fdocx_edit.py replace out.docx --find old --replace new\npython scripts\u002Fdocx_template.py tpl.docx values.json filled.docx\npython scripts\u002Fdocx_revisions.py list out.docx\npython scripts\u002Fdocx_comments.py list out.docx\npython scripts\u002Fdocx_validate.py out.docx\n```\n\n## Quick Reference\n\n| Task | Command |\n| --- | --- |\n| Create from JSON spec | `docx_create.py spec.json out.docx` |\n| Full text (body+tables+headers\u002Ffooters) | `docx_read.py f.docx --text` |\n| Heading outline + table shapes | `docx_read.py f.docx --structure` |\n| Styles actually used | `docx_read.py f.docx --styles` |\n| Extract embedded images | `docx_read.py f.docx --images outdir\u002F` |\n| Detect tracked changes\u002Fcomments | `docx_read.py f.docx --revisions` |\n| Find\u002Freplace (formatting kept) | `docx_edit.py replace f.docx --find A --replace B -o out.docx` |\n| Set a table cell | `docx_edit.py set-cell f.docx --table 0 --row 1 --col 2 --text X` |\n| Insert paragraph before index N | `docx_edit.py insert f.docx --index N --text X --style Normal` |\n| Delete paragraph N | `docx_edit.py delete f.docx --index N` |\n| Apply style to paragraph N | `docx_edit.py style f.docx --index N --style \"Heading 1\"` |\n| Merge equal-format adjacent runs | `docx_edit.py normalize f.docx -o out.docx` |\n| Insert TOC field before para N | `docx_edit.py toc f.docx --index N -o out.docx` |\n| \"Page X of Y\" footer fields | `docx_edit.py page-numbers f.docx` |\n| Fill `{{tokens}}` | `docx_template.py tpl.docx values.json out.docx --strict` |\n| List revisions (id\u002Fauthor\u002Fdate\u002Ftext) | `docx_revisions.py list f.docx` |\n| Accept \u002F reject all revisions | `docx_revisions.py accept-all f.docx -o out.docx` (or `reject-all`) |\n| Accept \u002F reject one revision | `docx_revisions.py accept f.docx --id 3 -o out.docx` |\n| List comments (+anchored text) | `docx_comments.py list f.docx` |\n| Add comment anchored to text | `docx_comments.py add f.docx --target \"phrase\" --text \"note\" --author You` |\n| Delete comment by id | `docx_comments.py delete f.docx --id 0` |\n| Health-check the package | `docx_validate.py f.docx` (exit 1 on errors) |\n\n## Procedure\n\n1. **Create.** Write a JSON spec with `write_file`, then run\n   `scripts\u002Fdocx_create.py`. The spec supports: `page` (size + margins in\n   mm), `header`\u002F`footer` strings, `footer_page_numbers` (adds a\n   \"Page X of Y\" field footer), `styles` (custom paragraph styles with\n   font, size, bold\u002Fitalic, hex `color`), and `blocks` — `heading`\n   (level 1-9), `paragraph` (either `text` or a `runs` list where each run\n   may set `bold`\u002F`italic`\u002F`underline`), `bullet_list`, `numbered_list`,\n   `table` (`header` row rendered bold, `rows`, optional built-in table\n   `style` such as `Table Grid`), `image` (`path`, optional `width_mm`),\n   `toc` (Table of Contents field), and `page_break`. The full spec\n   format is documented at the top of `scripts\u002Fdocx_create.py`.\n2. **Read.** Use `scripts\u002Fdocx_read.py` with exactly one mode flag.\n   `--text` returns body paragraphs, all table cell text, and\n   header\u002Ffooter text as JSON. `--structure` returns the heading outline\n   plus paragraph\u002Ftable\u002Fsection counts. `--images DIR` copies every file\n   under `word\u002Fmedia\u002F` out of the package.\n3. **Edit.** Use `scripts\u002Fdocx_edit.py`. `replace` walks body, tables\n   (nested included), headers and footers, and preserves run formatting;\n   add `--body-only` to skip headers\u002Ffooters. Pass `-o out.docx` to keep\n   the original; omit it to edit in place. Paragraph indices for\n   `insert`\u002F`delete`\u002F`style`\u002F`toc` refer to `--structure`\u002F`--text` body\n   order. Run `normalize` first on documents that came out of heavy Word\n   editing — it merges adjacent runs with identical formatting so later\n   find-replace matches reliably.\n4. **Review revisions.** `docx_revisions.py list` reports every `w:ins`\n   and `w:del` (id, author, date, affected text) anywhere in body,\n   tables, headers, or footers. `accept-all` \u002F `reject-all` resolve them\n   in bulk; `accept`\u002F`reject --id N` handles a single revision. Accept\n   keeps insertions and drops deleted text; reject does the reverse.\n5. **Comments.** `docx_comments.py list` returns each comment's id,\n   author, date, body text, and the document text it is anchored to.\n   `add --target \"some phrase\"` anchors a new comment to the first\n   occurrence of that phrase (runs are split as needed; formatting is\n   preserved). `delete --id N` removes the comment and its markers\n   without touching document text.\n6. **Template.** Put `{{name}}`-style tokens in the document. Run\n   `scripts\u002Fdocx_template.py` with a JSON object of values. Use\n   `--strict` to fail when tokens remain unfilled; the JSON output lists\n   `filled` counts and `unfilled_tokens` either way.\n7. **Verify** (always): re-read the output with `--text` or\n   `--structure`, and run `docx_validate.py` on anything you produced\n   via revision\u002Fcomment surgery.\n\n## Converting to PDF\n\nNo script needed. When LibreOffice is installed, convert headlessly:\n\n```bash\nsoffice --headless --convert-to pdf --outdir outdir\u002F file.docx\n```\n\nCheck availability first (`command -v soffice || command -v\nlibreoffice`). If neither exists, tell the user PDF conversion is\nunavailable in this environment rather than improvising — python-docx\ncannot render PDFs, and layout fidelity requires a real renderer.\n\n## Pitfalls\n\n- **Tokens split across runs.** Word often fragments text into several\n  runs. The replace helpers collapse matched runs (replacement inherits\n  the first run's formatting); running `docx_edit.py normalize` first\n  reduces fragmentation for all later edits.\n- **Revision coverage.** `docx_revisions.py` resolves run-level\n  insertions and deletions (the overwhelming majority). Paragraph-mark\n  and table-row revisions, format-change records, and moves are detected\n  by `--revisions` but not auto-resolved — see\n  `references\u002Frevisions-and-comments.md` and hand those to Word.\n- **Comment threading.** Replies and \"resolved\" status live in\n  `commentsExtended.xml`, which this skill ignores; comments it adds are\n  plain top-level comments.\n- **Field results are computed by Word.** `toc`, `page-numbers`, and the\n  `toc`\u002F`footer_page_numbers` spec options write *field codes*.\n  Word\u002FLibreOffice populates the actual entries and numbers when the\n  file is opened (Word may prompt to update fields); python-docx never\n  computes them, so placeholder text shows until then.\n- **Validation is a health check, not schema validation.**\n  `docx_validate.py` verifies the zip, required parts, relationship\n  targets, image magic bytes, and referenced styles. It is NOT XSD\n  validation — a file can pass and still contain XML Word dislikes.\n- **Style names must exist.** Applying a style that isn't defined in the\n  document raises `KeyError`. Built-ins like `Heading 1`, `List Bullet`,\n  `List Number`, `Table Grid` exist in the default template; custom\n  styles must be declared in the create spec first.\n- **Numbered lists restart.** `List Number` relies on Word's default\n  numbering; separate lists in one document may continue numbering\n  instead of restarting. Warn users needing precise multi-list numbering.\n- **Cell writes replace formatting.** `set-cell` uses `cell.text = ...`,\n  which resets runs in that cell to plain formatting.\n- **Encoding.** All JSON specs\u002Fvalues files are read as UTF-8 explicitly;\n  never rely on locale defaults when writing your own glue code.\n- **Don't unzip-and-sed the XML.** Edit through the scripts (or\n  python-docx); raw text substitution in `document.xml` corrupts files\n  easily. Use `patch`\u002F`write_file` only for the JSON inputs, never on the\n  `.docx` itself.\n\n## Verification\n\n- After create\u002Fedit\u002Ftemplate, run `docx_read.py out.docx --text` and\n  check the expected strings appear (and old strings are gone).\n- After accept\u002Freject, `docx_revisions.py list` should return `[]` (or\n  only the ids you intentionally left); after comment surgery,\n  `docx_comments.py list` should reflect the change and `--text` output\n  must be unchanged.\n- `docx_validate.py out.docx` exits 0 with `\"ok\": true` on a healthy\n  package — run it after any revision\u002Fcomment\u002Ffield manipulation.\n- For templates run with `--strict`, or check `unfilled_tokens == []`.\n- Structure checks: `--structure` should show the expected heading\n  outline and table shapes; `--styles` confirms custom styles applied.\n",{"name":5,"author":56,"license":15,"version":57,"metadata":58,"platforms":65,"description":7},"Nous Research","1.1.0",{"hermes":59},{"tags":60,"category":41,"related_skills":63},[61,5,44,32,40,62,33],"word","revisions",[64,49,43],"pdf",[47,66,45],"macos","main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002F96\u002F9678b14d5e7841d588b969f6a4696cd46bcc46c3e4ac1479edc7656a051aa5ff",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":76,"prompt":86,"zipAvailable":87},[77,80,83],{"tool":78,"command":79},"npx","npx skills add zapabob\u002FSkills --skill docx",{"tool":81,"command":82},"bunx","bunx skills add zapabob\u002FSkills --skill docx",{"tool":84,"command":85},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill docx","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F96\u002F9678b14d5e7841d588b969f6a4696cd46bcc46c3e4ac1479edc7656a051aa5ff\u002FSKILL.md",true,[],[90,121,155,182,209,226],{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":105,"publishedAt":51},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[96,99,102],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":103,"categoryName":104,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师",[92,106,66,107,108,47,45,109,110,111,112,113,114,115,116,117,67,118,119,120],"openclaw","cli","github","official","search","https","social-media","api","Media","hermes","hermes agent","twitter","social","via","post",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":138,"publishedAt":51},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[127,130,133,134,135],{"categoryNo":128,"categoryName":129,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":131,"categoryName":132,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":103,"categoryName":104,"taxonomyType":29,"taxonomyTypeDesc":30},{"categoryNo":136,"categoryName":137,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000036","内容创作者",[139,140,141,142,66,48,47,143,45,144,145,146,147,148,149,150,151,152,153,154],"writing","writing plans","plans","design","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":164,"publishedAt":51},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[161],{"categoryNo":162,"categoryName":163,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[157,66,47,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":183,"name":184,"nameZh":6,"description":185,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":186,"categories":187,"keywords":191,"publishedAt":51},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[188],{"categoryNo":189,"categoryName":190,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[192,66,193,194,45,195,196,197,198,199,200,172,201,202,203,204,205,206,207,208],"weights and biases","tensorflow","experiments","pytorch","visualization","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":213,"categories":214,"keywords":216,"publishedAt":51},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[215],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},[211,66,217,108,47,218,219,220,221,222,223,115,116,224,225],"terminal","automation","http","monitoring","cron","json","rss","devops","with",{"skillNo":227,"name":228,"nameZh":6,"description":229,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":230,"categories":231,"keywords":234,"publishedAt":51},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[232,233],{"categoryNo":97,"categoryName":98,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":103,"categoryName":104,"taxonomyType":29,"taxonomyTypeDesc":30},[235,236,237,47,46,165,238,239,240,168,241,113,242,243,244,245,246,247,248,249],"llms","vLLM","serving llms vllm","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]