Install
openclaw skills install zhizhi-math-coachUse when coaching Chinese primary-school math with persistent local records: grade worksheet photos or wrong questions, infer causes and weak points, update learning memory, align with China grade/semester and textbook scope, explain knowledge points, and generate targeted printable HTML worksheets. Recommended with a vision-capable reasoning model.
openclaw skills install zhizhi-math-coachUse a local evidence loop for every task:
question + student answer + correct answer.need-confirmation.Use these paths in the user's personal learning project unless they provide different names. The project repository may be public or private; do not assume either.
memory/long-term.md: stable student rules, parent preferences, school-entry year, textbook edition, grade overrides.memory/short-term.md: current observations, active priorities, pending checks.memory/local-memory-rules.md: read/write/promotion rules for memory.curriculum/profile.md: student grade, textbook edition, textbook volume, source links, and current scope.curriculum/scope.md: unit-to-knowledge-point map for the current textbook.curriculum/progress.md: school progress, learned/not-yet-learned topics, and exam scope.curriculum/school-calendar.md: China school-year, semester, midterm/final, winter/summer break, and local overrides.knowledge-points/<topic-slug>.md: parent explanation card, student summary, skills, common errors, validation tasks, and mastery evidence.weak-points/<topic-slug>.md: long-lived weak-point records.mistakes/index.md: mistake-book schema, semester ranges, review rules.mistakes/school-mistakes.md: school papers, weekly tests, official homework.mistakes/system-mistakes.md: worksheets generated by this system.records/learning-progress.md: dated progress dashboard.records/YYYY-MM-DD-<source>-diagnosis.md: one diagnosis per paper/photo batch/wrong-question batch.worksheets/YYYY-MM-DD-<topic-slug>/worksheet-spec.json: compact worksheet source.worksheets/YYYY-MM-DD-<topic-slug>/worksheet.html: child-facing printable worksheet.worksheets/YYYY-MM-DD-<topic-slug>/answer-key.md: answers, grading, and next-step rules.If the personal learning project is not initialized yet, run the bundled initializer from the workspace root:
python3 {baseDir}/scripts/init_learning_workspace.py \
--workspace . \
--student-name <nickname> \
--school-entry-year <YYYY> \
--grade <一年级> \
--semester <上学期|下学期> \
--textbook-edition <人教版> \
--textbook-volume <一年级下册>
The initializer creates missing files only by default. Use --force only when the parent explicitly wants to overwrite existing local templates.
Prefer a frontier multimodal reasoning model for this skill. The model should support:
memory/, weak-points/, records/, curriculum/, and worksheet files;Why this matters:
need-confirmation, and when to ask for a clearer photo.memory/, records/, mistakes/, and weak-points/ history.worksheet-spec.json, deterministic HTML, answer keys, and progress records, so structured output reliability matters.Recommended settings:
gpt-5.2 or a newer frontier GPT-5.x model with medium reasoning.This skill is triggered by the user's OpenClaw request, such as $zhizhi-math-coach 批改... or $zhizhi-math-coach 出一张..., while the working directory is the personal learning project.
Always treat the current workspace root as the personal learning project root for memory/, weak-points/, mistakes/, records/, curriculum/, knowledge-points/, worksheets/, and site/. The reusable skill repository only provides instructions, scripts, references, templates, and sanitized examples.
If the current workspace appears to be the reusable source repository zhizhi-math-coach-openclaw (for example it contains docs/openclaw-release.md and examples/student-workspace/), warn before writing student learning data. Do not warn merely because a personal workspace has an installed skills/zhizhi-math-coach/ bundle from ClawHub. Only write student data into the source repository when the user explicitly says it is the intended personal learning workspace or the task is skill development with sanitized examples.
Do not assume background sync. Local files are changed by the current task only:
records/, mistakes/, weak-points/, and evidence-backed memory/ updates;worksheets/<date-topic>/worksheet-spec.json, worksheet.html, and answer-key.md;site/ and worksheets/<date-topic>/publish.json..github/workflows/pages.yml when the parent has chosen a public repository, selected GitHub Actions as the Pages source, and asked OpenClaw to set up publishing.When publishing, rebuild site/index.html as the full worksheet list from worksheets/, sorted by date descending. Include only public-safe metadata: date, practice status, title, topic, grade, item count, and completion summary. Infer status from worksheets/status.md when available; do not expose answers or diagnosis details in site/.
If a worksheet is generated in a workspace that already has public Pages mode configured (.github/workflows/pages.yml, GitHub Pages source set to Actions, and Git preflight passes), automatically publish to Pages: run publish_and_wait_pages.py, wait for GitHub Actions deployment to finish, then reply with the index URL and worksheet URL. If the Actions run fails or times out, return the local paths, pushed commit if available, and Actions/setup guidance.
Do not run git add, git commit, or git push unless the parent explicitly asks to sync, publish, push, commit to GitHub, send a public link, or has enabled automatic Pages publishing for generated worksheets. When sync is requested, read references/github-sync-authorization.md first and run the bundled preflight before committing or pushing. Do not require GitHub CLI or provider-level token configuration; a repository-scoped SSH deploy key is the preferred setup. If authorization is missing, return the local file paths and setup guidance instead of treating generation as failed. If the personal repository is public, warn before committing sensitive learning records or answer keys.
On the first meaningful reply in a personal learning workspace, if GitHub sync is not ready or cannot be confirmed, include a short setup note: OpenClaw can generate a repository-specific public key, send it to the parent through Lark/Feishu when available, and the parent should add it in GitHub repository Settings -> Deploy keys with write access. Do not repeat the full setup on every ordinary grading reply; repeat it when the parent asks to sync/publish or a publish preflight fails.
Skill resources are relative to {baseDir}:
references/grading-diagnosis-rubric.md: grading and diagnosis fields.references/progress-tracking.md: record templates and status values.references/relapse-handling.md: how to handle repeated mistakes after repair.references/curriculum-alignment.md: textbook, China grade/semester, and copyright-safe curriculum alignment.references/school-calendar.md: China school-year, semester, exam window, and holiday phase rules.references/knowledge-point-explanations.md: parent explanation card and student summary rules.references/worksheet-strategies.md: supported paper-generation strategies and confirmation questions.references/worksheet-generation.md: low-token worksheet workflow.references/word-problem-variant-design.md: how to design non-shallow word-problem variants.references/complex-problem-generation.md: complex word-problem and review safeguards.references/geometry-generation.md: deterministic SVG geometry rules.references/automation-openclaw.md: scheduled reminders, channels, and automation boundaries.references/github-pages-publishing.md: public child-facing HTML worksheet publishing rules.references/github-sync-authorization.md: GitHub SSH/token authorization, preflight checks, and sync boundaries.references/worksheet-standards.md: child-facing printable worksheet rules.references/student-profile-template.md: starter profile format.scripts/generate_worksheet.py: generate worksheet HTML and answer key from JSON.scripts/check_git_sync.py: preflight whether the current machine can reach and push the personal GitHub repository.scripts/prepare_github_deploy_key.py: generate a repository-scoped SSH deploy key and public-key setup instructions for GitHub Deploy keys.scripts/setup_github_pages_workflow.py: create .github/workflows/pages.yml for publishing site/ through GitHub Actions.scripts/init_learning_workspace.py: initialize a personal learning repository after the skill is installed.scripts/validate_worksheet_spec.py: validate worksheet JSON without writing outputs.scripts/publish_html_site.py: publish child-facing worksheet HTML into a GitHub Pages site/ directory.scripts/publish_and_wait_pages.py: publish site/, commit/push public-safe files, wait for GitHub Actions Pages deployment, and print ready URLs.assets/worksheet/question-types.json: reusable worksheet item types.assets/worksheet/a4-single.html: printable HTML template.Read:
memory/local-memory-rules.mdmemory/long-term.mdmemory/short-term.mdcurriculum/school-calendar.mdcurriculum/profile.mdcurriculum/progress.mdreferences/grading-diagnosis-rubric.mdreferences/progress-tracking.mdreferences/relapse-handling.mdThen create or update one diagnosis record under records/. Add every wrong or uncertain item to the correct mistake book. Keep school mistakes and system-generated worksheet mistakes separate.
Read the relevant knowledge-points/<topic-slug>.md when it exists. If it does not exist, create the explanation in the same structure and recommend saving it in the user's personal learning project:
Do not use long textbook excerpts. Use textbook scope and terminology, then explain in original words.
Read:
memory/local-memory-rules.mdmemory/long-term.mdmemory/short-term.mdcurriculum/school-calendar.mdcurriculum/profile.mdcurriculum/scope.mdcurriculum/progress.mdweak-points/*.mdknowledge-points/*.mdreferences/worksheet-strategies.mdreferences/worksheet-standards.mdreferences/worksheet-generation.mdreferences/progress-tracking.mdIf the parent only says "出一张练习卷", confirm purpose, content range, length, and output format before generating. If they say "按最近情况出", use a mixed maintenance set weighted by recent mistakes, active weak points, and due spaced reviews.
For word problems, also read references/word-problem-variant-design.md and references/complex-problem-generation.md.
For geometry, also read references/geometry-generation.md; generate structured geometry_spec and deterministic SVG/HTML, not free-form AI images.
Prefer the low-token workflow:
python3 {baseDir}/scripts/validate_worksheet_spec.py \
worksheets/YYYY-MM-DD-topic/worksheet-spec.json
python3 {baseDir}/scripts/generate_worksheet.py \
worksheets/YYYY-MM-DD-topic/worksheet-spec.json
If the workspace has public Pages mode configured and the parent accepts public worksheet links, publish only the child-facing worksheet HTML and wait for deployment:
python3 {baseDir}/scripts/publish_and_wait_pages.py \
worksheets/YYYY-MM-DD-topic \
--workspace <personal-learning-workspace> \
--base-url https://<github-user>.github.io/<repo>
If the parent wants a local-only preview or GitHub sync is not ready, publish local site/ files without pushing:
python3 {baseDir}/scripts/publish_html_site.py \
worksheets/YYYY-MM-DD-topic \
--workspace <personal-learning-workspace> \
--base-url https://<github-user>.github.io/<repo>
When Pages auto-publishing succeeds, reply with the Pages index URL and worksheet URL. Otherwise reply with file paths, item count, target weak point, and setup guidance for publishing. Do not paste full worksheet HTML or full answer keys unless asked.
Default semester rule:
If school_entry_year: 2025, the date 2026-05-18 is normally 一年级下学期. Still check local overrides and actual school progress before deciding scope.
Every wrong or uncertain item should include:
date / school year / grade / semester / term phase / source type / source file / item number / question / student answer / correct answer / error type / likely cause / related knowledge point / related weak point / relapse judgment / re-practice status / follow-up.
For review before midterms or finals, filter by semester first, then group by weak point, recurrence, and re-practice status.
If a similar mistake appears after a weak point was marked understood, consolidating, or mastered, do not create a new isolated weak point. Decide whether it is:
relapse: same cause failed again.transfer-failure: familiar form works, changed wording or mixed context fails.spaced-forgetting: the prior repair faded after a gap.one-off-slip: isolated error with nearby evidence of mastery.Update the old weak-point record with the new evidence and choose practice based on the recurrence type.
Supported strategies:
wrong_question_variant: turn an existing wrong question into meaningful variants.weak_point_drill: focus one weak point.exam_mistake_review: midterm/final review weighted by real mistakes.relapse_repair: repair relapse, transfer failure, or spaced forgetting.spaced_review: small due review for old weak points.transfer_check: changed wording/scenario/condition order.post_explanation_check: 3 to 6 questions after explanation.diagnostic_probe: separate concept, reading, modeling, calculation, and checking causes.mixed_maintenance: current unit plus old weak points plus fluency.fluency_speed: facts and speed when understanding is already stable.contrast_discrimination: similar-looking items with different models.geometry_drill: deterministic geometry items from structured specs.Scheduled OpenClaw tasks should default to reminders and suggestions:
Do not let scheduled tasks automatically change weak-point status, memory, or generate new worksheets unless the parent explicitly asked for that behavior.
Feishu notifications should prefer GitHub Pages worksheet links when configured; keep answer keys and diagnosis records outside published site/ output.
When generating worksheets:
worksheet.html child-facing and answer-free.answer-key.md.worksheet.html may be published to GitHub Pages. Do not publish answer keys, records, memories, weak-point histories, student photos, or textbook files.worksheet-spec.json as the source of truth.assets/worksheet/question-types.json and scripts/generate_worksheet.py.When grading:
confidence: high / medium / low.