> webwork-writer
Create, edit, and lint WeBWorK PG/PGML questions following docs/webwork guidance, HTML whitelist constraints, and renderer-based lint checks. Use for tasks like authoring new PGML problems, adjusting randomization or grading, fixing PGML rendering issues, and running renderer API linting.
curl "https://skillshub.wtf/vosslab/vosslab-skills/webwork-writer?format=md"WebWork Question Authoring
Overview
Use this skill to author or adjust PG/PGML problems with the local WebWork renderer, repo rules, and the docs in references/.
Workflow
- Identify the target repo and file, then read the relevant doc references.
- Apply the PGML structure and rules from the WebWork author guide.
- Make edits in the problem file and update docs/CHANGELOG.md in the target repo.
- Render with
-rusing the local renderer API to visually confirm layout and checkbox behavior (prerequisite). - Lint or render with the local renderer API when the change affects PGML output.
Core Rules (from repo docs)
- Use PGML-first structure with inline grading; keep setup, answers, and PGML text in separate sections.
- PGML is single-pass: do not build PGML tag wrappers inside Perl strings. If a variable contains HTML, render it with
[$var]*. - HTML whitelist blocks
table,tr,td; use flexbox divs or niceTables instead. - For matching problems on PG 2.17, use PopUp widgets and HTML-only
MODES(TeX => '', HTML => ...)wrappers for layout. - Prefer local
PGrandomseeded withproblemSeedfor deterministic randomization; avoidSRANDunless you want to reset the global RNG; sort hash keys before random selection. - Avoid MathJax color macros; use HTML spans and CSS for color.
- Always render with
-rto visually confirm layout and checkbox behavior before reporting results.
Reference Files
- Read references/repos.md to locate local repos and paths.
- Read references/docs.md for the required WebWork authoring docs.
- Read references/linting.md to run renderer API linting.
- Check bundled reference docs and examples; render them when needed to confirm renderer capabilities (for example, whether a macro is present).
Notes
- Keep solution text plain when exporting to systems that do not render HTML.
- For matching problems, use the PG 2.17-safe patterns documented in docs/webwork.
> related_skills --same-repo
> unit-test-starter
Generate thorough Python 3 pytest unit tests across a repo by scanning every *.py file and each function, writing one test module per source file while skipping IO/network behavior and documenting gaps.
> skill-writing-guide
Guide for authoring Agent Skills (SKILL.md). Covers the open standard format, required frontmatter, directory layout, progressive disclosure, description writing, and best practices. Use when creating a new skill, improving an existing skill, or learning how skills work.
> readme-fix
Standardize README.md to match repo conventions. Brief purpose, quick start, and links to docs/. Keep content verifiable, concise, and ASCII. Use when README.md drifted or is missing key pointers.
> read-repo-rules
Read specified repo rule files (AGENTS.md, docs/REPO_STYLE.md, docs/PYTHON_STYLE.md, docs/CHANGELOG.md) and return one-sentence summaries in a strict four-line format, including missing-file handling and no recursive listings. For docs/CHANGELOG.md, summarize only the latest dated entry instead of the full file. Use when a prompt asks for structured summaries of repo instruction files with exact output lines or similar constraints.