Correction practice
Skill szsip239/peter-zhou/skills/peter-zhou/correction-practice
Peter Zhou: 周伯通和 Peter Pan 的合体,一个面向学生的超级老师综合 skill
npx -y skills add szsip239/peter-zhou --skill correction-practiceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Generate and print correction practice, then grade returned answer sheets. Use for CorrectionPaper PDFs, PDF/PNG printing, original redo, generated similar practice, PracticeQuestionRecord lifecycle, returned scan/photo/PDF grading, and mastery counters.
SKILL.md
8.2 KB, as published. Nobody here has run it
Correction Practice
Use this subskill when the user wants a correction paper, similar practice, or returned-paper grading.
Core contract:
- Use
scripts/workflow.py start --kind correction_paperfor the normal printable-paper generation path. The workflow selects mistakes, requests printability review when needed, then asks the Agent for one boundedcorrection_practice_candidate.v1; scripts validate and persist it before rendering.--candidate <json>remains a compatibility/testing input. - Use
scripts/workflow.py start --kind agent_chat_reviewfor “今日 10 分钟复习”. It asks one original redo plus 2-3 transfer questions one at a time. Show onlynext_action.question; readagent_context_refprivately, returnagent_chat_item_grading.v1, and resume once with both the natural-language student answer and grading file. The script returns concise feedback and updates the same mastery counters without PDF/HTML generation. The historical answer-then-grading two-resume path remains compatible for existing runs. - If correction selection is empty, accept the workflow's deterministic
completed/no_opresult. Do not ask the Agent to generate practice from an empty list. - Prefer currently non-mastered wrong questions. Questions whose latest original redo is wrong are marked
needs_repeat_correction, selected before ordinary low-score questions, and must receive the original redo plus at least one linked transfer question in the next paper. - Check
scripts/learning_profile.py show --data-dir <dir> --jsonbefore generating personalized practice. Use grade/stage, difficulty preference, and weak subjects when present; if missing, ask/persist the first-use profile only when it materially affects the request. - Use
scripts/correction_practice.py generateto create correction-paper metadata, generated practice records, and printable student PDFs without answers or grading keys. - Before any PDF is rendered, let the normal workflow complete its
printability_reviewAgent task. Check every selected original question against its raw crop, clean stem/context/options, answer basis, and student-facing assets. Returncorrection_printability_review.v1; scripts persist the decision and a content fingerprint throughvisual_asset_repair.py apply-print-review. - Never bypass the printability gate with the compatibility
generatecommand. It rejects unreviewed or stale questions. Rejected questions are excluded from selection; changing the stem, context, formula data, asset metadata, or asset bytes invalidates an earlier approval. - Use
scripts/print_paper.pyas the only printer interface.discoverlists configured queues and Bonjour/IPP printers;setupcreates an explicit driverless IPP queue only when needed;print --dry-runvalidates the asset and returns the A4/one-sided/monochrome plan;printsubmits it through CUPS and returns the job id. - Print only complete
.pdfor full-page.pngassets whose file headers validate. Existing CorrectionPaper PDFs match this contract. Do not print HTML, source scans, raw wrong-question crops, or individualstudent_facing_assets[]as if they were complete papers. - Default to A4, one-sided, monochrome, one copy. Use color or additional copies only when the user explicitly requests them.
- A direct instruction such as “打印这份试卷” authorizes the physical print side effect. Otherwise show the dry-run plan and ask once before submission. Generating a paper never implies printing it.
- Prefer an existing discovered CUPS queue. Do not hard-code a printer hostname, URI, or machine-specific queue name in the skill. Run
setuponly when discovery finds the network printer but no usable queue. - Use
scripts/correction_practice.py render-htmlwhen the user wants an electronic correction paper. The HTML page should save browser drafts and download anAnswerSubmissionBundlewithsubmission_source=correction_paper_html; it must not embed answer keys, solution notes, or raw wrong-question crops. - Render the PDF like a normal practice paper, not like a form table: use a clear paper header, numbered questions, K12-style difficulty sections, and answer areas under each question.
- Do not put raw wrong-question crop screenshots in student PDFs; they can leak original answers or teacher corrections.
- Original redo items must come from clean reconstructed question text. For visual questions, the full stem is
original_question; printable visual data comes fromstudent_facing_assets[]. - Student-facing redo items use the correction paper's own numbering. Do not print the source paper's original question number/section label in the item title or at the start of the stem.
- Question numbers should be followed directly by the question content. Do not print source paper names, page numbers, wrong-question ids, linked-practice ids, or knowledge-tag metadata on student papers.
- When
context_textis present, print it as part of the question content beforeoriginal_question; do not label it as metadata. - Multiple-choice options should render inline with extra spacing when the option group fits on one line. If the stem is long, put the whole option group on the next line while keeping A/B/C/D inline; put A/B/C/D on separate lines only when the option group itself is too long.
- Do not print helper text such as
参考信息:...inside the stem; visual data belongs instudent_facing_assets[]and the student should read the figure/table directly. - The renderer may embed
student_facing_assets[].asset_refimages fromstudent-assets/, but must never embedcrop_image_reffrommistake-crops/. - Student-facing visual assets must come from safe true-image crops first, then reviewed
diagram_spec/SVG redraws for geometry-style figures. Do not use generated-image replication as printable assets. - A file existing under
student-assets/is not proof that it is correct. Native-vision printability review must verify labels, values, geometry relationships, crop completeness, contamination, and consistency with the student-visible stem before the asset can be printed. - If a visual question has no safe
asset_ref, render the textual reconstruction instudent_facing_assets[].content. - When rendering PDFs, beautify common math notation from stored natural text or LaTeX-style snippets:
^/^{}as superscript,_/_{}as subscript,\sqrt{}as radical text,\frac{}{}as compact fractions, and common operators such as<=,>=,\times. - Keep answer areas sized by question type: choice and short-answer items get compact blank space, while calculation, proof, explanation, and visual-data items get more blank working space.
- Store durable correction-paper generated non-original questions as single-subject
PracticeQuestionRecordentries. - Use
scripts/correction_practice.py build-returned-promptbefore reading returned scans/photos/PDFs with model-native vision. - Use
record-original-attemptandrecord-practice-attemptso scripts update attempts and mastery counters. - For electronic HTML submissions or normalized returned scans, stage answers with
scripts/submission_intake.py import, build the agent grading prompt withbuild-grading-prompt, then persist only throughapply-grading. The prompt builder sends submitted answers once and deduplicates minimal canonical grading targets; do not append full mistake-bank or submission records. - All answer sources use
answer_submission_bundle.v1: explanation HTML, knowledge HTML, correction-paper HTML, returned scans, and Agent chat. Failed inbox submissions are preserved withsubmission_intake.py mark-failed; they are never silently discarded. - Original redo and linked transfer answers each award exactly
1.0mastery point when correct. Never calculate or paraphrase points from memory: reportgrading_summary.items[].mastery_changes[]. A wrong latest original redo preserves historical score but derivescurrently_mastered=falseandneeds_repeat_correction=trueuntil a later original redo is correct.