尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗Active-recall revision app for CA Final Group 1 (FR · AFM · AAA), Nov 2026 attempt.
Each chapter is a casebook: rule on real cases, hunt the clause, sprint through MCQs, then read the law. Handwritten notes, SM-2 flip cards and typed practice sit alongside.
app/globals.css) from the Ethics Casebook artifact: Bricolage Grotesque, Public Sans, IBM Plex Mono, Special Elite. Light and dark themes, flat hairline surfaces, 44px tap targets, phone bottom bar..hand).npm install
npm run dev
# → http://localhost:3000
git init -b main
git add .
git commit -m "ca-revise: v0.1 with AAA Ch 19"
git remote add origin [email protected]:<you>/ca-revise.git
git push -u origin main
Chapters are data only. No component changes are needed.
npm run new-chapter -- fr 3 "Ind AS 115 Revenue" --casebook
This creates data/fr/ch03-ind-as-115-revenue.json (notes, flip cards, written practice) and,
with --casebook, data/fr/ch03-casebook.json (case drill, provision hunt, MCQs, law library, cheat sheet),
then registers the chapter in lib/registry.ts. Fill in the JSON and it appears on the home page.
Everything chapter-specific lives in the casebook's meta block:
| key | what it controls | example |
|---|---|---|
sources | drill filter pills, [kind, label] | [["rtp","RTP Nov 2026"]] |
verdicts | ruling buttons and stamps; omit for reveal-and-self-mark | [{"label":"Guilty","tone":"bad","hint":"misconduct"}] |
caseNoun / provisionNoun | wording across the app | "case" / "clause", "question" / "standard" |
huntQuestion | Provision Hunt prompt | |
tagline / intro | chapter home headline (*word* is highlighted; {cases} is the case count) | |
scopeTitle / scopeNote / methodTitle | home page section headings |
Provisions with "hunt": true are the answer options in Provision Hunt (all provisions if none are flagged).
A casebook may also carry formulas (a formula bank: families led by a master formula, each formula with its logic,
derivation, exam cue and trap). It adds a Formulas tab to the chapter and feeds the subject-wide bank at /<subject>/formulas.
Every AFM chapter has one.
See data/_CASEBOOK_TEMPLATE.json for the full shape.
Drop the ICAI study-material PDF in inbox/ and ask Claude Code, for example:
"add FR chapter 3, SM is inbox/fr-ch3.pdf". The ca-chapter skill (.claude/skills/ca-chapter/) runs the
same steps every time: extract every illustration and TYK question, verify the attempt's amendments,
collect RTP / MTP / past-paper questions from the ICAI BoS portal, rank topics by exam frequency, write
both data files, validate and build. Its research report lands in research/<chapter-id>.md.
The programs it uses can also be run by hand:
npm run unlock-pdf # inbox/*.pdf -> inbox/unlocked/ (removes copy restrictions)
npm run extract-sm -- inbox/unlocked/sm.pdf work/fr-ch03/sm # text + inventory of illustrations / TYK
npm run assemble -- fr-ch03 # work/fr-ch03/parts/*.json -> data files
npm run validate -- fr-ch03 # schema, links, source labels, coverage
{
"id": "aaa-ch19", // unique across all chapters
"subject": "aaa", // "aaa" | "fr" | "afm"
"number": 19, // ICAI SM chapter number
"title": "Professional Ethics",
"summary": "...", // one line for the list
"currency": "...", // optional — Nov 2026 flag
"sections": [
{
"id": "sch1-part1",
"title": "First Schedule Part I",
"emoji": "📙",
"cards": [
{
"id": "s1p1c11",
"type": "clause", // clause | concept | illustration | mnemonic | section | case
"tags": ["Cl 11", "Reg 190A"],
"front": "Cl 11 — Other business or occupation",
"back": {
"bareText": "engages in any business or occupation…",
"simplified": "Cannot engage in any business…",
"exception": "General list…",
"explanation": "…",
"trap": "25-hour cap…",
"cases": ["Nov 2023: Editor 'Company Audit' → NOT GUILTY"],
"cross": ["Reg 190A", "Sec 2(2)(iv)"]
}
}
]
}
],
"practice": [
{
"id": "q-cl11-editor",
"prompt": "CA X becomes the editor of a professional journal…",
"clauseRef": "Cl 11 Part I 1st Sch",
"hints": ["Reg 190A general list…"],
"modelAnswer": "Step 1 — CITE: …\nStep 2 — RULE: …\nStep 3 — APPLY: …\nStep 4 — CONCLUDE: …",
"markingPoints": ["Cites Clause 11", "Refs Reg 190A", "Concludes: not guilty"]
}
]
}
Casebook modes — available when the chapter registers a casebook JSON (see data/aaa/ch19-casebook.json, shape in lib/casebook.ts):
Core modes — every chapter (from the chapter JSON):
Built for personal revision — Ss ([email protected]). Not for redistribution.
Optional per chapter: data/<subject>/chNN-learn.json, registered with a learn: loader in lib/registry.ts.
Shapes are in lib/learnData.ts; views are components/views/{Path,Compare,Games,Solve}View.tsx.
Adds four menu items (Mastery path, a side-by-side compare, Games, Step solver) and a floating scratch pad (Jotter).
Progress is stored per chapter (ca-revise:v1:learn:<id>) and synced like everything else.
match, sort and order types, all data-driven.Ch 14 is generated from scripts/learn-src/ch14-*.mjs: node scripts/build-learn.mjs aaa-ch14 (recomputes every solver
figure before writing) and node scripts/merge-ch14-additions.mjs (CFA-style and one-line questions, with a figure check).