skills/docx-to-pdf/SKILL.md
Use to convert a Word .docx file to PDF and/or verify its page count. Triggers on: converting docx to pdf, rendering a document, checking how many pages a docx produces, or asserting a page-count constraint (e.g. a resume must stay 2 pages). Wraps LibreOffice headless conversion.
npx skillsauth add dtsong/my-claude-setup docx-to-pdfInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Convert a .docx to PDF via LibreOffice headless and report the rendered page count. Reusable from any project (e.g. resume-tailor uses it to enforce a 2-page resume).
.docx.LibreOffice must be installed (provides soffice):
brew install --cask libreoffice # macOS
The script auto-locates soffice on PATH or at the standard macOS app path.
node ~/.claude/skills/docx-to-pdf/scripts/docx2pdf.js <input.docx> [outdir]
outdir defaults to the input file's directory.{"pdf":"<path>","pages":<n>}.0 success, 1 conversion error, 2 bad args, 3 LibreOffice missing.$ node scripts/docx2pdf.js output/Alan_Yu_Resume.docx /tmp
{"pdf":"/tmp/Alan_Yu_Resume.pdf","pages":2}
Parse the pages field and compare. Example (fail if a resume exceeds 2 pages):
PAGES=$(node scripts/docx2pdf.js "$DOCX" /tmp | node -e "process.stdin.on('data',d=>console.log(JSON.parse(d).pages))")
[ "$PAGES" -le 2 ] || { echo "Resume is $PAGES pages (max 2)"; exit 1; }
/Type /Page), which matches LibreOffice output reliably..docx; it never modifies the input.development
Security audit checklist for web applications. Use when reviewing, auditing, or hardening a web app's security posture. Covers rate limiting, auth headers, IP blocking, CORS, security middleware, input validation, file upload limits, ORM usage, and password hashing. Triggers on requests like "review security", "harden this app", "security audit", "check for vulnerabilities", or when building/reviewing API endpoints.
development
Interactive wizard to craft effective prompts using Claude Code best practices
tools
Use when batch labeling, prioritizing, and assigning GitHub issues during triage sessions.
tools
Use when creating and pushing semantic version tags for a release cut.