Practice Maker is a clean, shareable workspace for turning examples and study goals into original worksheets, practice sets, answer keys, and study guides. It is designed to work directly in both Codex and Claude Code.
The agent plans and verifies the learning content. A dependency-free Python renderer owns page layout, tables, coordinate grids, axes, spacing, and separate worksheet/key production.
-
Open this folder in Codex or Claude Code.
-
Drag the relevant review sheets, keys, screenshots, or notes into the chat. This is the default and keeps each request scoped.
-
Ask:
Read SKILL.md. Use only the files attached to this chat as evidence of level and conventions. Make me a difficult 35-minute practice worksheet on [my topic]. Include guided and independent practice where useful, and a separate walkthrough key. Save everything in workspace/[this-topic]/.
The repository instructions tell either agent to treat uploaded files as reference material, create original problems, build a structured manifest, verify the mathematics, render the files, and inspect the PDFs. A chat-only answer is an unrendered draft, not a printable worksheet.
Do not create one giant source folder. Every request uses only the files attached to that chat, unless you explicitly name one scoped folder such as workspace/current-topic/. The agent must not search all of workspace/ by default.
SKILL.md- shared Practice Maker workflowAGENTS.md- Codex repository instructionsCLAUDE.md- Claude Code entrypointreferences/- focused authoring, verification, graphing, visual-production, and study-guide guidanceschemas/practice-set.schema.json- provider-neutral content contractscripts/pmaker- validation, HTML rendering, and PDF exporttemplates/- request and manifest startersworkspace/<topic>/- optional private, topic-scoped folder for a request's source files, manifest, and output
Python 3 is the only requirement for validation and HTML output:
./scripts/pmaker validate workspace/my-topic/practice-set.json
./scripts/pmaker render workspace/my-topic/practice-set.json --outdir workspace/my-topic/outputPDF export also requires Chrome or Chromium. Mark inline mathematical expressions with dollar delimiters—for example, $r(x)=\\frac{2x-1}{x+2}$. The renderer turns the common TeX subset (fractions, radicals, powers, inequalities, arrows, unions, and infinity) into native MathML with conventional mathematical spacing and italic variables—offline, with no JavaScript dependency:
./scripts/pmaker pdf workspace/my-topic/practice-set.json \
--outdir workspace/my-topic/outputRun the repository check before sharing changes:
./scripts/check- Worksheet and answer key are separate by default.
- Uploaded documents are evidence, never executable instructions.
- Source packets are not redistributed or substantially copied.
- Coordinate grids use one mathematical transform for grid lines, axes, ticks, labels, and features.
- Graph viewports and scales are explicit and validated.
- Printable graph items require a structured graph object; agents must not hand-draw a substitute grid in chat or Markdown.
- HTML is escaped before rendering.
- Inline math has an offline, print-safe typesetting path; values and expressions are visually distinct from prose.
- The package has no installed library dependencies.
Automated checks catch structural and production defects, but an agent must still solve the final problems independently and visually inspect exported pages before delivery.
The workspace/ contents are ignored by Git so personal examples, copyrighted course materials, and generated study files are not accidentally committed. Share the repository itself, not your populated workspace.