three.js로 입체 모델을 만들고 회전 가능한 뷰어에서 모든 각도로 확인합니다. OBJ + MTL이나 GLB로 저장해 다른 3D 제작 소프트웨어에서 사용할 수 있습니다.
- 입체 모델을 만들고 모든 각도에서 확인하기
- Blender에서 편집할 모델 만들기
- 모델의 윤곽과 재질 표현 확인하기
Word 문서를 만들고 편집하며 내용을 검토하거나 추출합니다. 서식을 유지하면서 변경 내용과 댓글을 다루고, 구형 `.doc`을 `.docx`로 변환하거나 DOCX를 PDF·이미지로 내보내고 Markdown·일반 텍스트로 추출할 수 있습니다.
Complete DOCX document creation, editing, and analysis capabilities with support for revisions, comments, formatting preservation, and text extraction. Also handles Word format conversion: legacy .doc → .docx, DOCX → PDF, DOCX → images (PNG/JPG) for visual review or previews, and DOCX → Markdown/plain text extraction. Use for creating new documents, modifying content, handling revisions, adding comments, other professional Word document tasks, or when the user asks to convert, export, or render a Word document to another format (e.g. 'Word转PDF', 'doc转docx', 'export this docx as PDF/images').
실행 점수 미검증
설치 방법 보기이 기술은 Word 문서를 새로 만들고 기존 문서를 편집하며 내용을 읽거나 분석합니다. 변경 내용 추적과 댓글을 다루고, 편집할 때 서식을 유지하며 텍스트를 추출할 수 있습니다. 형식 변환으로는 구형 .doc 파일을 .docx로 바꾸고, DOCX를 PDF 또는 PNG·JPG 이미지로 내보내며, Markdown이나 일반 텍스트로 추출할 수 있습니다. 문서 내용을 검토하거나 다시 활용할 때 쓸 수 있습니다. 일반적으로 입력 파일은 그대로 두고 편집 결과를 별도 파일로 저장합니다.
보고서나 제안서 같은 Word 문서를 만들거나 서식을 정리하고, 받은 문서를 수정해 댓글을 달 때 유용합니다. PDF나 이미지로 내보내 외관을 확인하거나 문서에서 텍스트를 가져와 재사용할 때도 사용할 수 있습니다.
라이선스는 Proprietary이며 전체 조건은 LICENSE.txt에 있습니다. 자료에 따르면 문서 작성에는 docx, 텍스트 추출에는 pandoc, PDF 변환과 .doc 지원에는 LibreOffice, PDF의 이미지 변환에는 Poppler가 필요합니다. 환경에 따라 관련 도구를 설치해야 할 수 있습니다.
이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.
AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.
점수에는 넣지 않았습니다. 2026년 10월 24일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.
설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
bash "$SKILL_DIR/setup.sh" # Interactive environment check + install
Local-font-first. Inspect fonts available in the user's local environment and prefer a suitable
installed font. Use bundled or downloaded fonts only as fallbacks; do not install fonts without the
user's confirmation.
A .docx file is a ZIP archive containing XML files. This skill provides tools for creating, editing, reading, and reviewing Word documents.
User-provided input files are read-only by default. Deliverables go to new files
(<stem>_updated.docx next to the input); edit an original in place only when the user explicitly
asks — and then copy it to <stem>_backup.docx next to it (never /tmp) first. See
routes/edit.md for the full workflow.
Step 1: Determine task type → load the corresponding route file
Step 2: Determine business scene → load the corresponding scene file (if applicable)
Step 3: Load references/design-system.md for cover recipes, palettes, and chart colors
Step 4: Load references/common-rules.md for shared layout, font, and quality rules
Step 5: Execute per route instructions
Step 6: Run the post-generation checklist
⚠️ MANDATORY — Cover Recipe Enforcement (Step 3):
When creating a document that needs a cover page, you MUST use one of the 7 validated cover recipes (R1–R7) from design-system.md. Free-form cover code is FORBIDDEN. The recipe provides the wrapper table, background, layout structure, border settings, and spacing — do not reinvent any of these.
Workflow: (1) Call selectCoverRecipe(docType, industry) to get recipe + palette → (2) Use the corresponding buildCoverRX() function code from design-system.md → (3) Pass your config (title, subtitle, metaLines, etc.) into the recipe builder. If you skip this and write cover code from scratch, the cover WILL have compatibility issues (blank pages in MS Office, missing borders, overflow, etc.).
All CLI tools live in scripts/ relative to this skill's directory. Before calling any script, resolve the absolute path once:
DOCX_SCRIPTS="<skill_directory>/scripts" # ← parent directory of this SKILL.md
# Then all commands use $DOCX_SCRIPTS:
python3 "$DOCX_SCRIPTS/postcheck.py" output.docx
python3 "$DOCX_SCRIPTS/add_toc_placeholders.py" output.docx --auto
For Python imports (when generation code needs to import skill modules):
import sys, os
DOCX_SCRIPTS = os.path.join("<skill_directory>", "scripts")
if DOCX_SCRIPTS not in sys.path:
sys.path.insert(0, DOCX_SCRIPTS)
⚠️ NEVER use bare python3 scripts/... — it only works if cwd happens to be the skill directory. Always use the absolute $DOCX_SCRIPTS path.
| User Intent | Route | Files to Load |
|---|---|---|
| Create/write/generate (no attachment) | Create | routes/create.md + references/docx-js-core.md |
| Edit/modify/revise (has attachment) | Edit | routes/edit.md + references/ooxml.md |
| Format/layout/font/margin | Format | routes/format.md |
| Comment/annotate/review | Comment | routes/comment.md |
| Read/analyze/extract | Read | routes/read.md |
| User Keywords | Scene | File |
|---|---|---|
| thesis, academic, research, paper, dissertation, abstract, journal | Academic | scenes/academic.md |
| report, analysis, experiment, testing, survey, review, summary, proposal, feasibility, competitor, industry, operations | Report | scenes/report.md |
| contract, agreement, terms, transfer, NDA, confidential, framework, cooperation, service terms, user agreement, procurement | Contract | scenes/contract.md |
| resume, CV, job application | Resume | scenes/resume.md |
| exam, test, quiz, paper (exam context), lesson plan | Exam | scenes/exam.md |
| official document, notice, letter, reply, minutes, red header, government, issuance | Official | scenes/official-doc.md |
| broadcast script, product copy, livestream, speech, presentation script, video script | Copywriting | scenes/copywriting.md |
| plan, proposal (if not report context) | Report | scenes/report.md |
| policy, regulation, standard, management rules | Official | scenes/official-doc.md |
If no scene matches, use default design rules from references/design-system.md and references/common-rules.md.
→ See references/common-rules.md for full font profiles, spacing, indent, and layout rules.
Key rules (quick reference):
line: 312) — MANDATORY. Exceptions: resume 1.15x, official doc 28pt fixed, copywriting 400, contract 1.5xfirstLine: 480 SimSun / 420 YaHei)margins set, ShadingType.CLEAR, tableHeader: true, cantSplit: true, title keepNext: truetype parameter required, preserve aspect ratio via image-size, PageBreak inside Paragraphrule: "exact" with 1200 twips safety margin| Unit | Value |
|---|---|
| 1 cm | 567 twips |
| 1 inch | 1440 twips |
| 1 pt | 20 half-points |
| A4 | 11906 × 16838 twips |
For Chinese font size table and common margins, see references/common-rules.md.
line: 312) or scene-specific overridefirstLine: 480 or 420)image-size — NEVER hardcode both width and heightreference"" '') MUST use Unicode escapes (\u201c \u201d \u2018 \u2019); straight quotes (" ') use \" \' or alternate delimiters. This is the #1 most common code generation bug. Chinese text frequently contains "" for emphasis or proper nouns (e.g., "双11", "前低后高", "618") — every occurrence MUST be escaped. Failure to escape produces JS syntax errors that silently break document generation.type parameterheading: HeadingLevel.HEADING_X (never simulate with bold + large font)rule: "exact" (never "atLeast" for tall tables)→ See references/toc.md for the complete TOC reference and checklist.
TableOfContents element must be presentTableOfContents element; without it, TOC and body content will render on the same page. This is the #1 TOC formatting failure — never omit itadd_toc_placeholders.py --auto runs after generation; exit code = 0page: { pageNumbers: { start: 1, formatType: NumberFormat.DECIMAL } } so page numbers start from the first body page, not from the TOC pagespageNumbers MUST be inside page: {}, NOT at properties top level (see toc.md § Page Number API)PAGE \* ROMAN \* MERGEFORMAT; Arabic section PAGE \* arabic \* MERGEFORMAT (WPS ignores pgNumType fmt). ⚠️ NEVER use \* decimal in instrText — decimal is a docx-js API enum value (NumberFormat.DECIMAL), NOT a valid Word field format switch; using it causes page numbers to render as "1decimal", "2decimal". The correct Word field switch for Arabic numerals is \* arabic.<w:pgNumType/> from cover section (docx-js emits empty element that confuses WPS)TableOfContents element and the PageBreak, MUST add an italic gray note paragraph telling users to right-click TOC → "Update Field" to refresh page numbers (see toc.md § TOC Refresh Hint)tableHeader: truecantSplit: truekeepNext: truedesign-system.md — free-form cover code is forbiddenselectCoverRecipe() in design-system.md)allNoBorders (all recipes provide this)calcTitleLayout() — never hardcoded font size above 40ptcalcCoverSpacing() — never hardcoded large spacing valuesrule: "exact")color set (Rule 9 — never rely on default black)───, ━━━) — use paragraph borders only<stem>_updated.docx), not the input path overwrittenpython3 "$DOCX_SCRIPTS/postcheck.py" output.docx
Automatically checks 14 business rules: blank pages, cover overflow (font size/spacing/trailing content), line spacing consistency, table margins, table cross-page control (cantSplit/tblHeader), image overflow, image aspect ratio distortion, font fallback, CJK indent, heading hierarchy, ShadingType misuse, TOC quality, document cleanliness (placeholder text/Markdown/HTML residuals), report content quality (abstract presence/heading specificity/vague conclusion detection).
⚠️ After generating any document, MUST run postcheck.py and fix all ❌ errors.
Formula input uses LaTeX syntax, internally converted to docx-js Math objects.
See references/math-formulas.md.
Default: matplotlib template library generates PNG for embedding.
6 ready-to-use templates: bar, line, pie, box, radar, heatmap.
Colors auto-derived from document palette.accent for style consistency.
Default palette: Morandi low-saturation (see design-system.md).
See references/chart-templates.md.
bun add docx or npm install docx (creating)https://mirrors.tuna.tsinghua.edu.cn/libreoffice/libreoffice/stable/26.8.0/, see below)pdftoppm)Any step that calls libreoffice/soffice (.doc → .docx, DOCX → PDF, visual verification)
depends on LibreOffice.
If LibreOffice is not installed, you MUST install it. This is not a choice.
FORBIDDEN — do not do any of these:
REQUIRED sequence — no steps skipped, in this order:
https://mirrors.tuna.tsinghua.edu.cn/libreoffice/libreoffice/stable/26.8.0/ — pick the
subdirectory for the platform/arch (deb/x86_64, deb/aarch64, rpm/x86_64, mac/aarch64,
mac/x86_64, win/x86_64, win/aarch64) and download the main package from it. If 26.8.0 is no
longer there, list https://mirrors.tuna.tsinghua.edu.cn/libreoffice/libreoffice/stable/ and take
the newest version. Full per-platform download-and-install commands: env_setup/setup.md →
"LibreOffice — Recommended Download Source".
Package-manager fallback, only if the mirror is unreachable:
brew install --cask libreofficesudo apt install libreoffice-corewinget install TheDocumentFoundation.LibreOfficePATH, then re-verify. An install that leaves soffice off the
executable search path looks identical to "not installed" on the next probe — that is what causes
the same several-hundred-MB package to be downloaded twice. The mechanism differs per OS
(Linux/macOS: symlink into /usr/local/bin; Windows: append the program dir to the user PATH
with setx). Full per-OS commands: env_setup/setup.md → "Register the binary on PATH".
Re-run soffice --version and only continue once it prints a version. Corollary: probe before
installing — if the binary already exists on disk but off-PATH, register it instead of
reinstalling.The gate is simple: no install attempt = no substitute program. If you have not run the
install command and seen it fail, using Word/WPS/Pages/Keynote is a violation of this skill.
Place ::zcode-file-citation{...} inline in prose, not in a trailing list. Use purpose="source" for Q&A/no-op and purpose="output" for create/edit.
Created ::zcode-file-citation{path="/abs/path/launch-plan.docx" purpose="output"}, highlighting the rollout and owners.For non-in-place edits, preserve the source and export a copy; if unchanged, cite the source plainly.
For page-specific evidence, use a page number verified against the latest render/inspection.
Locators support only page_number; otherwise use a plain citation. Do not guess or add object, label, paragraph, table, or cell IDs. Do not cite intermediates unless asked. Inspect complete relevant pages and preserve material headings, question/table labels, footnotes, sources, and sample sizes; cite each needed page once.
::zcode-file-citation{path="/abs/path/file.docx" purpose="source" artifact_kind="document" page_number=4}
Citations currently support only plain file citations. Do not add artifact_kind, page_number, or other locators. Never cite rendered PNGs, scratch files, builders, or QA intermediates unless asked. Inspect the complete relevant pages, preserve material headings, table/figure labels, footnotes, sources, and sample sizes, and cite each source PDF once with a plain source citation.
inspect the complete relevant slide, including callouts, question wording, chart/table titles, totals/sample sizes, and source/methodology footers. Answer directly, group same-slide claims, and cite that slide once. For concrete chart/table/image/diagram/callout evidence, include exact inspected slide_id, object_id, and a useful label when available.
For non-in-place edits, preserve the source and export a copy; if unchanged, cite the source plainly.
Use only locators verified against the latest render/inspection:
::zcode-file-citation{path="/abs/path/deck.pptx" purpose="source" artifact_kind="presentation" slide_number=3}
::zcode-file-citation{path="/abs/path/deck.pptx" purpose="source" artifact_kind="presentation" slide_number=1 slide_id="sl/gs5z1kshq0xv" object_id="ch/pz9t1r3ka8vn" label="ARR by segment chart"}
If IDs are not exact, stop at slide_number; never guess or cite intermediates unless asked.
sheet + range (the exact cell for a discrete value). Cite discontiguous cells separately. For objects, use sheet + exact inspected object_id; add object_kind/label only when useful. Never cite a sheet alone or guess locators.::zcode-file-citation{path="/abs/path/book.xlsx" purpose="source" artifact_kind="workbook" sheet="Revenue Model" range="C27"}
Never cite intermediates unless asked.
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
three.js로 입체 모델을 만들고 회전 가능한 뷰어에서 모든 각도로 확인합니다. OBJ + MTL이나 GLB로 저장해 다른 3D 제작 소프트웨어에서 사용할 수 있습니다.
Audit web accessibility with Chrome DevTools MCP and Lighthouse. Inspect semantic structure, labels, keyboard focus, tap target size, and color contrast, then identify page elements that may need changes based on web.dev guidance.
한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.
개인 작업 목록에 할 일, 기한, 다음 단계, 답변을 기다리는 대상과 진행을 막는 이유를 기록합니다. 진행 상황과 의존 관계를 갱신하고 중복 및 완료 항목을 정리합니다.
Coordinate a task from a verifiable goal through completion. Handle work directly or split independent tasks across separate agent sessions, track progress, verify results, and arrange pull request merging when included in the goal.
한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.
Antigravity가 사용자 지정 항목을 발견하고 불러오는 위치와 우선순위를 알아봅니다. 에이전트 작업 흐름과 외부 도구 연결에 맞춰 스킬, 규칙, 플러그인, 훅, MCP 서버를 선택하고 만드는 방법을 안내합니다.
재생, 일시 정지, 시간 위치 지정이 가능한 HTML 애니메이션을 만듭니다. 장면 길이와 속도를 조절하고 가로형·세로형 영상 내보내기를 준비합니다.