A-Level Study Coach

by virbird
5
4
3
2
1
Score: 51/100

Description

focus on Alevel study. Use AI to help study.

Reviews

No reviews yet.

Stats

0
stars
36
downloads
0
forks
8
days
1
days
4
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
121
commits

Latest Version

5 days ago

Changelog

0.1.6 — Learning-Method Enhancements 学习方法增强(Q1–Q4)

DeepTutor-inspired learning-method layer, all local & zero extra LLM calls: retrieval practice, metacognitive calibration, attention focusing, interleaving. / 借鉴 DeepTutor 学习方法层的四项增强全部落地,纯本地统计、零新增 LLM 调用。

New / 新功能

  • Q1 Blind redo with session attachment / 附件式盲重做 — the wrong-answer "Practice" button now attaches the original session archive and prefills a 3-step retrieval-practice flow: attempt blind first → contrast with your past mistake → then walk to the standard approach. Falls back to the old prefill when the session file is missing. / 错题「去练」自动挂上原会话存档并预填三步检索练习流:先盲做 → 再对照当时的错误 → 最后到标准做法;会话缺失时降级为旧预填。
  • Q2 Self-rating instrumentation / 自评埋点 — the closing self-rating (1–5) is now stored: sessionTag gains selfRating, the question log grows a 6th column (read lenient, write full). / 结题自评 1–5 落库:sessionTag 新增 selfRating,提问记录台账扩为 6 列(旧行宽容读取)。
  • Q2 Calibration flags / 自评校准旗标 — per mark-loss code: self-rating avg ≥4 but the code recurred ≥2× within 30 days (min 3 rated samples) → "overconfident code" line appended to the subject section of 记录/weakness-profile.md with evidence dates; reverse case → "underestimated" (display only). Weekly snapshot gains an overconfident-code-count column (old 5-column tables migrate leniently). / 按失分码聚合自评与实际复发:自评均 ≥4 但 30 天内复发 ≥2 次(样本 ≥3)→「过度自信码」进入弱点画像科目节尾(带证据日期);反向为「低估码」仅展示。周快照新增「过度自信码数」列(旧 5 列表宽容迁移)。
  • Q3 This week's top 3 / 本周三件事 — home tab shows an action card with the 3 items to clear first (2 due mark-loss entries + oldest open wrong answer), each with a one-line reason and a direct practice button. / 首页顶部行动卡:本周最该清的 3 条(到期失分前 2 + 最旧未订正错题),各带一句理由和直达「去练」。
  • Q4 Interleaved review sheet / 复习单交错编排 — when section ② has ≥6 items across ≥2 subjects, items are arranged by subject round-robin (desirable difficulty); fingerprint is now order-independent. / 复习单②节条目 ≥6 且跨 ≥2 科目时按科目轮转排列(合意难度);源指纹改为顺序无关。

Fixes / 修复

  • Topic names containing non-breaking spaces (U+A0, common in AI sessionTag output) are normalized before cross-ledger matching — calibration links no longer silently fail. / 考点名中的不换行空格(U+A0,AI 打标输出常见)在跨台账匹配前归一,校准关联不再静默失效。
  • Review tab ① empty state explains not-yet-due entries; review cards show readable ID · subject · topic layout; subject column normalized to a whitelist (mark-loss log); closing confirmation cards stay visible until handled.(已随 dev 合入)

Notes / 说明

  • All features are local statistics — no new model calls, no new settings; thresholds are fixed and documented in docs/学习方法增强设计.md. / 全部为本地统计,无新增模型调用与设置项;阈值固定并记录于设计文档。
  • Calibration flags need a few weeks of self-rating data to appear — instrumentation starts from this version. / 校准旗标需积累数周自评数据后才会出现,埋点自本版开始。
  • 512/512 UT+FVT passed. / 512/512 测试全绿。

README file from

Github

A-Level Study Coach (Obsidian Plugin)

中文版本:README.zh.md

An assistive A-Level study coach for Obsidian: learning stays offline-first — open the plugin only when you need help: an unclear concept, a problem you're stuck on, or essay grading. Every request is logged so weaknesses surface over time. Targets: A-Level all A*, IELTS 7.5+.

Product design: docs/产品设计.md (v0.3). Prompt system from the chat-2 coach pack; tech base simplified-forked from AI Study Buddy.

Feature Overview

Coach Sessions

Feature Description
Per-subject sessions Each subject keeps its own session; switching saves/restores automatically; concluding closes it
Auto session start A session opens instantly when you enter a subject — no button needed; sessions with no user input are never recorded
Opening mode menu The opening is rendered locally from the prompt's ```opening fence (zero API call): Concept Drill A–G (blind write / decomposition / colloquial rewrite / logic chain / drill / F concept relation map — chapter-level: includes learned + not-yet-learned concepts, the latter marked as preview with a short auto-explanation, mermaid with keyword edges / G keyword recall — reproduce the whole map from keywords); Economics A–D; IELTS A–D. Reply with a letter to pick a mode, jump anytime, or let the AI guide by context
Concept map After a chapter-level F map, a confirm card registers concepts to 记录/概念地图.md (chapter/concept/status); preview/pending concepts are auto-injected into the drill prompt so they switch to detailed mastery when actually learned, and become “learned” after confirmation; the records center shows the ledger
Conclude flow Conclude = self-review, scrutiny, error-log rows, session tagging; then auto-archive and auto-reopen a fresh session
Problem solving & correction (unified) Being stuck on a new problem and correcting a wrong one share one flow: any problem request enters it (with your attempt → compare; stuck → first ask how far you got); attempt images auto-transcribed; three-tier baseline for the correct answer (official / model solution verified by you / pending); locate the divergence and guide the correction; after conclude, a confirm card registers to the wrong-answer ledger and unmastered entries are auto-injected into later sessions
Session extras SSE streaming output, image attachments (vision models; more than 4 images are auto-batched for recognition with per-batch progress and resume-on-failure, transcripts merged into the session record), session-wide doc references, resume from history
Think-first timer In-session countdown; sending is blocked before the threshold; finishing adds a "thinking credit" note to the next message

Context & Models

Feature Description
Global model selector Top-bar dropdown applies to every AI call; the settings page manages models as a list per provider (add / test individually / set default / delete)
Context management Usage shown under the input box ("x / y (n%)"); auto-compress threshold is configurable (default 80%); over-limit turns red with a "force compress" button; compression is long-running and always shows progress notices

Records & Review

Feature Description
Error log ledger 13-column main table; recurrence auto +1; review in 7 days (3 if recurring); status flows unresolved → observing → resolved
3-way routing Specific losses → ledger; question-type habits → practice focus; vague claims → weakness impressions
Records center One tab shows all ledgers: A-Level error log + IELTS grades + expression library + question log (data files stay separate — zero information loss)
Review reminders The Review tab shows today's full due list in four queues: error-log points (per item: variant question / passed / recurred), term drills, expression sentence drills, wrong-answer follow-up (per-item "mastered after redo"); you can also practice offline — report results in natural language for batch parsing, or give per-item feedback directly; plus status-bar badge and one gentle daily notice
Wrong-answer ↔ session backlink Every wrong-answer entry records the session it occurred in; one click opens the original conversation from the records center / review queue, and "redo" prefills your mistake-at-the-time plus the session link
Mastery progress badges Each status shows the distance to the next state (e.g. "1 spot-check away from stable"); per-row "practice" buttons jump to the coach with a prefilled request (term spot-check / wrong redo / variant)
Weakness profile (L2) A compressed per-subject profile with ledger-ID backlinks, auto-refreshed after each conclude; injected instead of full tables when many entries are open (saves tokens); the manual-notes section survives regeneration
Review sheet One click compiles the four due queues into a single printable note (term flashcards / wrong redo / expression sentences); fingerprint drift detection flags a stale sheet for regeneration
Trend charts Local SVG (no deps): overall-score sparklines for writing/speaking, 30-day mark-loss code bars in Records
Answer rewrite diff After the English review step, a Compare button opens a word-level before/after diff of the student's own two versions
Quick capture One natural-language sentence → AI suggests a category → accept / edit / discard

Weakness Analysis

Feature Description
Insight engine Question hotspots × recurrence hotspots × expression-code trends × term/review backlogs; pure local stats; a suggestion needs ≥3 hits on one signal
Suggestion cards Persisted under 建议/; view/disagree feedback loop; study advice is generated once, only after consent (no schedules)
Weekly report 周报/{ISO-week}.md with six stat blocks (help, losses & recurrence, reviews, terms, IELTS, suggestions)
Advanced corner Stage-based advanced-exam roadmap (G10 UKMT → G11 MAT/TMUA → G12 STEP/PAT/ESAT) with one-click thinking-problem sessions and auto timer

IELTS

Feature Description
Unified entry Coach "IELTS Writing": A full grading / B paragraph commentary / C discussion & dispute / D targeted practice — freely mixed and switchable mid-session
Grade any note Open any note (task + essay, images included); six-part output written to ## AI 批改; re-grading archives the previous version for comparison
Score ledger Every grade appends overall + TR/CC/LR/GRA to 雅思/批改记录.md — your improvement trajectory
Expression library High-score expressions auto-collected (deduplicated) with simplified SM-2 intervals 1→3→7→14→30→60 days and due sentence drills
Speaking training Coach "IELTS Speaking": A full mock exam (Part 1→2→3) / B single-part focus / C free practice / D discussion & review; delayed & limited corrections, first-session calibration with staged targets (stepwise path to 7.5), evidence-based Band-7 scoring (ranges, no flattery); final scores go to 雅思/口语记录.md alongside the writing trend, speaking mistakes to the existing wrong-answer ledger (SP/GR/VX), upgraded expressions to the library; voice pipeline (Aliyun NLS): 🎤 hold-to-talk ASR with auto-send, examiner replies read aloud sentence-by-sentence via TTS (interruptible), recordings normalized to 16k WAV (optionally saved); falls back to text mode when keys are unset; P-dimension pronunciation eval awaits P5c

Data Locations (all inside the vault, syncable via git / iCloud)

vault/StudyCoach/
├── 档案.md          # student profile (frontmatter, editable in settings)
├── 三年路线图.md    # 3-year roadmap
├── prompts/         # coach prompts (with ```opening fences), directly editable
├── 建议/            # weakness suggestion cards
├── 雅思/            # essays / speaking reports / grade ledger / speaking ledger / expression library
├── 周报/            # weekly reports (idempotent overwrite)
├── 记录/            # error log, wrong-answer ledger, concept map, question log, terms, practice focus, impressions, stats, progress, diary
└── 会话/            # session archives (only written if there was interaction)

Installation

npm install
npm run build
./install.sh /path/to/your/vault

Then in Obsidian: Settings → Community plugins → enable A-Level Study Coach → configure the LLM in plugin settings (OpenAI-compatible endpoint or native Anthropic; the API key stays on your machine).

Development

npm run dev        # esbuild watch
npm run typecheck  # tsc --noEmit
npm test           # full UT + FVT suite (must stay green on every change)

Test suite (test/, obsidian isolated via FakeVault, runs directly in node):

Layer Scope
UT utils / errorlog / services / insight / ielts / report: parsing, ledger rules, state machines, analysis thresholds, grading tolerance, report stats
FVT: session Full help loop: injection → conclude → tagging + ledger → recurrence → archive & resume
FVT: dataflow Cold-start 3-way routing, review flow, analysis cycle
FVT: ielts Grading closed loop: write-back → scores ledger → expression dedup → trend weak spots

Known Limitations (by design)

  • Term/expression drill modals are non-streaming (replies are short)
  • No IELTS listening/reading features (offline-learning scope); speaking voice requires Aliyun keys (text mode otherwise); P-dimension pronunciation eval awaits P5c
  • Reports/radar are plain-text stats; no chart libraries (kept lightweight)
  • Prompt template updates never overwrite existing vault files (user edits win)
  • Streaming relies on fetch; if a provider blocks browser CORS, use an OpenAI-compatible gateway