尚未偵測到更新。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).