Skip to content

feat: add make-pdf as a 6th skill in skills/ (Markdown → styled PDF)#51

Merged
time-attack merged 13 commits into
mainfrom
restore-make-pdf
Jul 24, 2026
Merged

feat: add make-pdf as a 6th skill in skills/ (Markdown → styled PDF)#51
time-attack merged 13 commits into
mainfrom
restore-make-pdf

Conversation

@time-attack

@time-attack time-attack commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Restores the old-way Markdown→styled-PDF pipeline as a tool skill at skills/make-pdf/, installed with the main tree (npx skills add time-attack/gstack/skills). 5 judgment dispatchers unchanged in body; module headers re-add the P=make-pdf launcher binding (parity re-pinned, blessed). test:gstack2 green, parity 4367, 180 make-pdf unit tests pass, styled-PDF render proven.


Summary by cubic

Adds make-pdf as a standalone tool skill (Markdown → publication‑quality PDF) that ships with the canonical skills tree. The system now exposes six discoverable skills; the five judgment dispatchers are unchanged.

  • New Features

    • New skills/make-pdf tool skill with a compiled make-pdf CLI (generate|preview|setup) supporting PDF/HTML/DOCX, cover/TOC, diagrams (Mermaid/Excalidraw), image policy with auto‑landscape, smart typography, and print CSS.
    • Gated under the Browser capability and shipped via the runtime payload/launcher; parity manifests and docs updated to include the sixth skill.
    • Restored and expanded tests: unit + e2e gates for copy‑paste via pdftotext, diagrams, emoji rendering, and landscape promotion.
    • Dev script: bun run dev:make-pdf.
  • Migration

    • Install/update skills: npx skills add time-attack/gstack/skills (now surfaces make-pdf).
    • Ensure the Browser capability is installed; run make-pdf setup to verify Chromium and pdftotext.
    • Use make-pdf generate <input.md> [output.pdf] (add --to html|docx as needed).

Written for commit 6d90174. Summary will update on new commits.

Review in cubic

claude added 13 commits July 24, 2026 12:04
Restores the Markdown to styled/publication PDF pipeline removed in 9053324.
Source recovered from bb57306: 13 src files + tests + SKILL template.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- build.sh: compile make-pdf/src/cli.ts -> make-pdf/dist/pdf + .version
- package.json: restore dev:make-pdf script
- runtime/install.js: make-pdf/dist/pdf ships in the core component with a
  `make-pdf` capability launcher (resolves $GSTACK_HOME/bin/make-pdf)
- ensure-runtime-payloads.ts: require the make-pdf launcher payload

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…skill

- render-legacy.ts: re-add P=$GSTACK_BIN/make-pdf to the shared runtime
  bindings block (B kept; D/gstack-design and diagram stay removed)
- generate-skill-tree.ts: exclude make-pdf from the dispatcher legacy
  inventory (it is a standalone tool skill, not a specialist input) and map
  the make-pdf runtime helper to make-pdf/dist/pdf like browse
- run-parity.ts: re-pin EXPECTED_PARITY_CHECKS 4359 -> 4361 for the P binding
- resolvers/make-pdf.ts: standalone SKILL.md also resolves the managed
  runtime launcher at $GSTACK_HOME/bin/make-pdf

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Regenerated output from the P-binding re-add and make-pdf skill discovery:
43 legacy modules gain the $GSTACK_BIN/make-pdf binding, provenance/parity
docs updated, make-pdf/SKILL.md generated, proactive-suggestions registers it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
make-pdf drives the browse daemon's Chromium print round-trip, so it is
useless without the browser capability. Gate it exactly like the browse
binary: compiled by the core build step, but installed only when `browser`
is selected (CAPABILITY_PATH_PREFIXES + capabilityForLauncher). A headless-
only or core-only install skips its ~65MB. Tests updated accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
make-pdf is a standalone tool skill, not a legacy invocation migrated to a
dispatcher, so it has no compat alias in compat/migration-map.json.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
New skill on disk requires a SKILL_COVERAGE entry. make-pdf's render/e2e
behavior has its own suite under make-pdf/test/; the registry references the
free structural floor check (same shape as the browse entry).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The canonical generator now writes make-pdf's host-neutral SKILL surface into
skills/make-pdf/ (SKILL.md + runtime reference closure) so it installs with the
main tree via npx skills add time-attack/gstack/skills. The five judgment
dispatchers are unchanged; make-pdf is a tool skill, not a mode dispatcher.
Parity now expects six discoverable skills and verifies make-pdf's freshness.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cursor

cursor Bot commented Jul 24, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@time-attack
time-attack merged commit 4796e88 into main Jul 24, 2026
7 of 17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants