| name | kelly-homework-coach |
| description | Friendly elementary-school homework tutoring App-in-Skill. Use when the user invokes $kelly-homework-coach or /kelly-homework-coach, mentions 小学生作业辅导, homework photo tutoring, 拍照讲题, 作业答疑, 错题本, error notebook, mistake-book review, practice paper generation, exam paper analysis, parent/teacher review of AI explanations, or wants a child-friendly UI for step-by-step homework help with local review and safety boundaries. |
Kelly Homework Coach
Overview
Use this skill as a child-friendly homework coaching desk for elementary students. The agent explains photographed questions, analyzes wrong answers, turns mistakes into a review notebook, and prepares practice papers; the local app gives students a warm study surface and gives parents/teachers a calm review desk for mistake analysis and paper planning.
Default interaction mode: App UI. Unless the user explicitly asks for chat-only handling, check onboarding/config, prepare or refresh the homework snapshot, start/reuse the local app with app/start.sh, and give the actual local URL. Use chat-only mode only when the user says 纯聊天, chat only, 不要打开 UI, or similar; in that mode use stable references such as Question #1, Mistake #2, and Paper #1.
Boundary
- The skill may inspect uploaded homework photos, run OCR/vision reasoning through the active model, explain questions, identify mistakes, generate practice items, write local handoff files, and export local paper drafts.
- The app reads and writes local/provider handoff state only. It never calls AI, uploads a child's photo, contacts a teacher, publishes a paper, or mutates any external system.
- Child-facing output must be encouraging, step-by-step, and age-appropriate. Prefer hints and concepts over blunt answer dumping unless the user asks for the answer.
- Parent/teacher-facing analysis may be more diagnostic, but should avoid shame language. Treat the student as capable and learning.
- Student photos, names, school data, and answers are private education data. Never commit
config.local.json, env files, app/.data/, exported papers, or raw uploaded images.
First Run And Onboarding
On invocation, check app/.data/onboarding.json and private config readiness. If onboarding is absent/incomplete, start the app and guide setup before doing real work.
Private config priority:
KELLY_HOMEWORK_COACH_CONFIG=/absolute/path/to/config.json
skills/kelly-homework-coach/config.local.json
~/.config/kelly-homework-coach/config.json
skills/kelly-homework-coach/config.example.json as template only
This skill needs no secrets by default. If a future school LMS, OCR provider, or cloud storage connector is added, reference secrets by env var or provider Vault names only; never ask for passwords or API keys in chat or the browser.
Onboarding asks, turn by turn: student grade range, subjects in scope, language preference, parent/teacher review role, answer-reveal policy, allowed photo storage policy, default practice-paper length, and export preferences. When setup is complete and the user confirms, write app/.data/onboarding.json:
{
"completed": true,
"completed_at": "ISO timestamp",
"config_version": "1"
}
Local App
Start the desk with:
skills/kelly-homework-coach/app/start.sh
The app uses local HTTP on 127.0.0.1, preferring ports 3000 through 4000, or KELLY_HOMEWORK_COACH_UI_PORT when set. /api/state reports app: "kelly-homework-coach".
Required app surfaces:
#/student: student study desk with photo/intake area, current question, gentle step-by-step explanation, hint ladder, answer confidence, and child-friendly next action.
#/student/<question_id>: question detail with original prompt text, student's answer, concept explanation, steps, checks, and "I understand" / "I still need help" controls.
#/mistakes: mistake notebook with due-review chips, topic filters, root-cause analysis, similar practice prompt, and spaced-review status.
#/papers: practice paper builder and paper list, including mistake-focused settings, estimated minutes, readiness status, and paper analysis.
#/review: parent/teacher review queue with stable refs, workflow states (needs_review / changes_requested / approved / done / blocked), editable review notes, suggested actions, and approval/request-change/block decisions.
#/settings: sanitized config, setup status, provider state, learning policy, answer-reveal rule, data-retention summary, language, and file paths. Never expose secret values or raw private config contents.
Demo mode:
?demo=student, ?demo=mistakes, ?demo=papers, and ?demo=review open deterministic mock scenes for visual review.
lang=en, lang=zh, or lang=zh-HK forces UI chrome language. Demo content should be meaningfully localized when Chinese is selected.
- Deep links such as
/?demo=student&lang=zh-HK#/student must work.
- Demo API responses never read or write files under
app/.data/.
File Contract
Read references/homework-schema.md before editing the app, scripts, or generated JSON.
app/.data/homework_snapshot.json: student profile, questions, mistakes, papers, review items, metrics, activity log.
app/.data/decisions.json: parent/teacher verdicts keyed by review id.
app/.data/agent_tasks.json: queued explain_again, generate_practice, revise_paper, or review_mistake tasks for the agent.
app/.data/execution_report.json: latest dry-run or apply results.
app/.data/provider_choice.json: non-secret provider bootstrap choice.
app/.data/onboarding.json: onboarding completion marker.
app/.data/agent.lock: temporary lock while the skill writes; the review queue rejects POST /api/decision with HTTP 423 while it exists.
Validate with scripts/validate_ui_schema.ts before relying on a snapshot.
Homework Photo Workflow
- Ingest the student's photo or pasted problem text. If using vision/OCR, keep extracted text and cropped/raw images local unless the user explicitly approves a connector.
- Identify subject, grade, topic, required answer type, and whether the student's current answer is correct, wrong, or uncertain.
- Draft a child-facing explanation: one friendly summary, 2-5 short steps, one key concept, one self-check, and a next hint. Avoid long lectures.
- If wrong, create or update a mistake item with root cause, misconception, fix strategy, similar practice prompt, and next review date.
- Acquire
app/.data/agent.lock, merge the snapshot, validate schema, release the lock, then send the user to #/student or #/review.
Mistake Notebook Workflow
- Group mistakes by topic, error type, and review due date; keep stable ids so repeated analysis updates the same mistake instead of duplicating it.
- Use supportive language: "还差一步" / "try this check" rather than "careless" unless the evidence specifically supports a careless-slip label.
- For each mistake, store a "how to fix next time" rule and a similar practice prompt. Do not store excessive raw photo content.
- When the student reviews a mistake, update review history and next review date. If the student still struggles, enqueue an
explain_again agent task.
Practice Paper And Analysis Workflow
- Build practice papers from target subject/topic, grade, difficulty mix, and recent mistakes.
- Generate a paper plan first: title, question count, estimated minutes, topics, linked mistakes, and answer-key policy. Parent/teacher approval is required before export.
- After a completed paper is analyzed, list all wrong questions with topic, root cause, concept gap, and recommended review sequence.
- Export approved papers locally only. Do not send to school systems or messaging apps from this skill.
Review And Agent Tasks Loop
- Send parent/teacher users to
#/review. Verdicts persist through POST /api/decision into decisions.json and update agent_tasks.json for requested changes.
- Poll
app/.data/agent_tasks.json for tasks created by request_changes or @ai notes. Redraft explanations, mistake cards, or paper plans, then return the item to needs_review.
- Before executing anything, re-read decisions and run
node scripts/execute_decisions.ts for a dry run. With --apply, it records local-only operations such as add_to_mistake_book, mark_understood, queue_practice_paper, and export_paper_plan.
Safety Defaults
- Never shame the child. Avoid labels like "lazy", "stupid", or "careless" unless reframed as a fixable pattern with evidence.
- Never present uncertain OCR/vision as certain. If the photo is blurry, ask for a clearer image or parent/teacher confirmation.
- Do not generate high-stakes claims such as diagnoses, school placement decisions, or formal grades.
- Do not reveal a full answer before offering a hint path when the configured answer policy is
hint_first.
- If snapshot schema, config, or decisions disagree, stop and reconcile before writing execution reports or exports.