Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add hutzelmann/thesis-proposal-skills --skill proposal-publishgit clone --depth 1 https://github.com/hutzelmann/thesis-proposal-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hutzelmann/thesis-proposal-skills/proposal-publish)<a href="https://agentmods.dev/skills/hutzelmann/thesis-proposal-skills/proposal-publish"><img src="https://agentmods.dev/badge/skills/hutzelmann/thesis-proposal-skills/proposal-publish/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hutzelmann/thesis-proposal-skills/proposal-publish"><img src="https://agentmods.dev/badge/skills/hutzelmann/thesis-proposal-skills/proposal-publish.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00100 | $0.01985 |
| Opus 5 | $0.00050 | $0.00992 |
| Sonnet 5 | $0.00020 | $0.00397 |
| Haiku 4.5 | $0.00010 | $0.00198 |
Grade A, and why
proposal-publish scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 90 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Proposal Publish
Builds a PDF from a proposal file — compact layout, typst first, pandoc as the fallback — and can also produce a stripped hand-in export.
Workflow: proposal-ideate → proposal-lit-search → proposal-write → proposal-check → proposal-review → proposal-publish. Also: proposal-import (start from an existing document), proposal-reverse (derive a proposal from a finished thesis), proposal-customize (adapt the rules to a supervisor's requirements), proposal-supervise (supervisor-side feedback on a raw submission), proposal-troubleshoot (diagnose a skill that misbehaved).
Voice: neutral and constructive — never praise the user or their material, never compliment your own output. Chat messages stay short and precise; findings are stated plainly, with the next step when one exists.
Publishing is optional — a proposal markdown file is an acceptable hand-in on its own. Never pressure the user into installing anything; offer the paths and their costs.
Build
Run the build script (stdlib-only, ≥3.11):
python3 ${CLAUDE_SKILL_DIR}/scripts/publish.py <proposal.md> # PDF via best available engine
python3 ${CLAUDE_SKILL_DIR}/scripts/publish.py <proposal.md> --handout # stripped markdown export instead
${CLAUDE_SKILL_DIR} is substituted by the host with this skill's install directory; on a host that leaves it unexpanded, the script really lives in scripts/ next to this SKILL.md, so use that path — but keep running the command from the working directory: the fallback changes where the script is found, never where you work or write. The proposal lives in the workspace's proposal location — the working directory, unless the workspace guidelines.md sets [paths] proposals to a subdirectory — and its outputs and any workspace build definition sit beside it. If you cannot find it, say the script did not run and name what is therefore unverified — never present your own reading of the file as the script's result.
The script resolves the best pipeline automatically: typst (preferred) → LaTeX engine → docx (last resort, no PDF), using the skill's templates/ (compact layout, RQ n: styling, citeproc). Outputs land next to the proposal; the script also ensures the workspace .gitignore covers build artifacts (shared rule: whichever skill first creates an ignorable artifact adds the entry).
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- evals/evals.json 599 B
- references/structure.json 9.1 KB
- scripts/publish.py 15 KB runs code
- templates/author-intext.lua 3.1 KB
- templates/cite-split.lua 485 B
- templates/compact-numeric.csl 2.7 KB
- templates/latex-header.tex 5.1 KB
- templates/proposal.typ 5.1 KB
- templates/rq-filter.lua 1.9 KB
- templates/subtitle-filter.lua 2.1 KB
- templates/todo-filter.lua 8.2 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago Changed · +2 lines 58271c2933da
- 10d ago First seen · 88 lines · 100 tokens per session scan A a5caa32b9ddc
proposal-publish is a skill published in the GitHub repository hutzelmann/thesis-proposal-skills (7 stars, last pushed 7d ago), licensed MIT. It adds 100 tokens to every session and 1,985 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
skill-doc-delivery
Convert markdown to DOCX, PPTX, XLSX, PDF office documents — use when you need exportable deliverables.
compile-latex
Compile a Beamer LaTeX slide deck with XeLaTeX (3 passes + bibtex). Use when user says "compile", "build the slides", "rebuild the PDF", "run latex", "render the tex", or asks why a .tex file isn't producing a PDF. Operates on Slides/.tex.
ccs-submission
Use when auditing an ACM CCS submission for HotCRP readiness, dual-cycle abstract registration and full-paper deadlines, the 12-page ACM sigconf body, anonymization, the ethics considerations appendix, artifact-availability posture, dual-submission policy, per-cycle submission caps, desk-reject triggers, and…
acmmm-camera-ready
Use when preparing the ACM MM (ACM Multimedia) camera-ready version of record — de-anonymizing safely, completing the ACM rights form and CCS concepts, meeting ACM sigconf requirements, releasing code/data/media artifacts and any earned reproducibility badge, registering, and planning the oral/poster presentation in…
pdf-design
Designs PDF reports and proposals from HTML with previews and branding. Use to create, export, or securely upload a PDF.
document-design
Creates print-ready HTML that exports to PDF. Use to make a proposal, report, one-pager, newsletter, slides, or flyer.