01 Β· Start

CBSE Fractions G3-G8 β€” Knowledge Graph v2

Review surface for the v2 Learning-Objective catalog covering CBSE Mathematics fractions, Grades 3 through 8. Each LO is shown as a card with its full v2 structure (Levels Γ— Facets Γ— Solving Schemas). Use the comment button on any card to flag a concern, suggestion, or verdict.

β€”
Learning Objectives
β€”
Intra-thread edges
β€”
Reusable solving schemas
β€”
Cultural-callout sections
β€”
Cross-thread prereq proposals

How to use this portal

  1. Skim sections 2-4 first β€” they explain the v2 model so the LO cards make sense.
  2. Open section 9 (LO Catalog) β€” 35 LOs grouped by introducing grade. Each card has the canonical statement, Bloom verb, Levels (with grades and scopes), Facets (with assessability), Solving Schema (with variants), source citations, edges, and a comment button.
  3. Section 10 (Interactive Explorer) β€” Cytoscape graph view; click nodes to drill in.
  4. Click "πŸ’¬ Comment on this LO" on any card you want to flag. The button opens a Google Form pre-filled with the LO ID.
  5. Bulk comments β€” use the catch-all form in section 15.
Scope of this review. This is the LO catalog for Fractions G3-G8 only. The full CBSE KG covers 35 threads across G1-G12; Fractions is the v2 pilot. KM Indonesia, CCSS, Cambridge bridges (via the UKG layer) come later.

Quick jump

02 Β· Why

Why we're building a Knowledge Graph (and not just another curriculum doc)

An AI tutor needs to answer three questions on every turn: What does this student already know? What should they learn next? Did this last interaction actually help? A flat curriculum outline can't answer those β€” a structured catalog of atomic skills with dependencies can.

The problem an AI tutor faces

When a 12-year-old student sits with the tutor on a Tuesday evening, the tutor has to decide β€” in real time β€” whether to introduce a new fractions skill, drill an existing one, or back up because a prerequisite is shaky. Doing that well needs three things:

  • A list of the atomic skills in the curriculum, fine enough that "mastered / not mastered" is a meaningful binary for each.
  • The dependencies between them β€” what must be in place before what can be taught.
  • A way to attach every piece of content (every video, every applet, every quiz item) to the specific skill it teaches or tests, so the system can pick the right next thing.

Together, those three are a knowledge graph. Atomic skills are the nodes; prerequisites and other relationships are the edges; content hangs off the nodes as evidence that the skill was taught or assessed.

Why not just use NCERT's competencies?

NCERT's Learning Outcomes 2017 document is excellent β€” but it's written for teachers and policy. Each NCERT learning outcome typically bundles 3-8 distinct cognitive moves into one entry, on purpose. That's right for "did this teacher cover the chapter" reporting. It's wrong for "did this student master comparing unit fractions specifically" runtime decisions.

Our catalog consumes NCERT (and NCF-SE 2023, and CBSE-CBE) via framework_alignments on every LO β€” every entry tells you which NCERT clause it implements. We're not replacing the standard; we're decomposing it into the teaching-level chunks a teacher would actually diagnose independently.

The mental model. Think of NCERT's competency "6.M.LO3 β€” solves problems involving fractions including comparison, addition, subtraction" as a chapter heading. Our catalog has the 8-12 specific skills inside that chapter, each diagnosable separately, each linked to the textbook sections where it's taught. That's the level the AI tutor reasons at.

What this catalog is β€” and isn't

It ISIt is NOT
A persistent, append-only catalog of atomic mathematical skillsA textbook or lesson plan
A scaffold for content tagging β€” every video, applet, quiz tags to its primary skillA question bank or content store (those live elsewhere; this just labels them)
The structure the AI tutor traverses to decide "what to teach next"A curriculum standard (standards are upstream regulatory documents; this is downstream of them)
One per curriculum (CBSE has one; KM Indonesia has its own; CCSS has its own β€” see next section)A global / universal taxonomy (those collapse on contact with curriculum-specific scope and sequence)
Reviewed and ratified by domain experts β€” that's why we're asking youAutogenerated and shipped without review

What we built it for, concretely

  • Byjus.AI β€” pre-launch B2C AI math tutor (India, CBSE Math, G6-G8 first, eventually K-12). This catalog is the spine.
  • CERDAS Indonesia β€” proposed B2G program with Indonesia's Kurikulum Merdeka. Same product, different curriculum KG bridged via the UKG (next section).
  • Future research β€” multi-year longitudinal mastery data per student, sitting as an overlay on this curriculum graph.

Why this matters for your review

Every concern you raise improves the runtime decisions the tutor will make for thousands of students. An LO that's too compound means the tutor can't tell which sub-skill is shaky. A missing prerequisite edge means the tutor introduces a skill before the foundation is ready. A wrongly-scoped Level means the wrong assessable items get assigned. Your domain expertise translates directly into the quality of every personalized session.

03 Β· Why

One catalog per curriculum, federated into a Universal Knowledge Graph

CBSE Math is its own catalog. Kurikulum Merdeka (Indonesia) is its own catalog. Common Core, Cambridge β€” same. The Universal Knowledge Graph (UKG) is what stitches them all together β€” not by collapsing them, but by drawing equivalence edges between LOs that name the same underlying skill.

Universal Knowledge Graph (UKG) β€” federation layer union of all curriculum KGs + cross_curriculum_equivalent edges CBSE KG India Β· G1-G12 35 threads Fractions = pilot YOU ARE HERE KM Indonesia KG Kurikulum Merdeka M10/M11 v1 frozen Re-author later CCSS KG US Β· K-12 Future Cambridge UK Β· IGCSE Future cce cce cce Layer 3: Content (videos Β· applets Β· quizzes Β· worksheets Β· dialogues) Each component tags to a primary LO (1) + 0-2 secondaries. Same applet can serve CBSE and KM via UKG bridge.
cce = cross_curriculum_equivalent edge

Why not one global catalog?

Tempting β€” but it doesn't survive contact with reality. Curricula differ in scope, sequence, and emphasis in ways that aren't pedagogically arbitrary:

  • KM Indonesia introduces unit fractions in Fase B (β‰ˆ G3-G4). CBSE introduces them in G3 too, but the formal denominators 1/100 and 1/200 appear only at G6. Flatten them and you've lost where the difficulty actually lives for each curriculum.
  • CBSE G8 has Compound Interest as a full chapter applied to fractions. KM doesn't teach compound interest until secondary school. There's no shared "G8 fractions" node β€” they teach different things at the same age.
  • CCSS-M has the "Number & Operations β€” Fractions" domain organised by year-by-year clusters; CBSE organises by topical chapters. Forcing them into one taxonomy means choosing whose pedagogy wins.

Federation preserves each curriculum's integrity. The UKG just records: "this LO in CBSE is the same skill as this LO in KM, even if the grade differs."

Where the equivalence edges go

An edge typed cross_curriculum_equivalent connects two LOs in different curriculum KGs that name the same underlying skill. The edge carries a strength field (strong / moderate / weak) and a notes field explaining the bridge.

Example (future): CBSE's cbse-math-compare-unit-fractions would bridge to KM's km-math-bandingkan-pecahan-satuan as strong equivalence. The bridge means: an applet authored once, with two language tracks, serves both curricula.

For this review. You're looking at one curriculum's catalog. The federation matters because it determines whether content investment reused across products. A CBSE applet that has a clean LO tag here can be cross-referenced to KM later. That cross-referenceability is what justifies the careful authoring you're reviewing.

Layer model

LayerWhat lives thereState for Fractions (this catalog)
L1 BackboneCurriculum β†’ Grade β†’ Textbook β†’ Chapter β†’ Section + Strands + Threadsβœ… Done β€” 12 grades, 20 textbooks, 202 chapters, 972 sections, 12 strands, 35 threads
L2 LO catalogLOs anchored to sections; intra-LO edges (this portal)βœ… Pilot done β€” 35 LOs Β· 65 edges Β· 27 schemas (G3-G8). Your review.
L3 Content taggingModules + Components tagged to LOs via 1 primary + 0-2 secondaryDeferred until L2 v2 ratified
04 Β· Why

How fine is "fine" β€” calibrating LO grain

A common reaction to this catalog is "this is more granular than NCERT". That's by design. The grain is set by what an AI tutor needs to track independently, not by what fits on a policy document.

Where this catalog sits

ReferenceTheir grainThis catalog (v2)Previous v1 (deprecated)
NCERT Learning Outcomes 2017~17-22 compound competencies per grade. Each clause like "6.M.LO3 classifies triangles by sides and angles" is one bullet covering 4-6 distinct cognitive moves.1 NCERT LO β‰ˆ 1-3 of our LOs (each with internal Levels and Facets capturing the variations).1 NCERT LO β‰ˆ 3-8 v1 LOs (over-decomposed).
NCF-SE 2023 (Middle Stage curricular expectations)Phase-level competencies (e.g., "Middle Stage / Number / CE-3"). Coarser still than NCERT-LO-2017.1 NCF-SE CE β‰ˆ 2-5 of our LOs.1 NCF-SE CE β‰ˆ 8-15 v1 LOs.
CCSS-M K-8 (United States)~360 standards K-8; each standard averages 2-4 verbs per sub-standard.1 CCSS-M standard β‰ˆ 2-3 of our LOs.6-9 v1 LOs (too fine).
Singapore MOE PrimarySub-topic gerund phrases (e.g., "comparing and ordering fractions, denominators ≀ 12") β€” one line per skill family.1 Singapore line β‰ˆ 2-3 of our LOs.6-10 v1 LOs.
Achieve Coherence Map (Zimba)Standard-level nodes with prerequisite edges β€” same grain as CCSS-M.Comparable grain.~10x finer than v2 (over-decomposed).

Why finer than published standards

Standards are written for human teachers, who can read "classify triangles by sides and angles" and mentally expand it into "I'll teach equilateral/isosceles/scalene, then acute/right/obtuse, then combinations". The AI tutor can't do that mental expansion β€” it needs each sub-skill named explicitly to know what to drill, what to assign, and how to score mastery.

So the rule is: the unit of an LO is the smallest distinct teachable skill a teacher would diagnose independently. If a teacher would say "Rahul has the rule for equilateral down but isn't catching when an isosceles is also right" β€” those are two separate LOs in this catalog.

Why coarser than v1

v1's grain was too fine. Three triggers for that, all addressed by v2:

  • Number-range splits. v1 created a separate LO for "Compare unit fractions a,b ≀ 12" and "Compare unit fractions a,b ≀ 200". v2 fuses them as Levels of one LO. A wider scope at a higher grade is a Level, not a new LO β€” unless the procedure changes fundamentally (rare).
  • Representation splits. v1 created separate LOs for "Compare via area model", "Compare via number line", "Compare via verbal share-size reasoning" β€” all linked by equivalent_to edges. v2 fuses these as Facets of one LO. The skill is the same; the representation is a teaching/assessment choice.
  • Compound competency over-split. v1 took NCERT's "classifies triangles" and made 8 LOs for it. v2 has 2-3 LOs and uses Levels and Facets to capture the variations.
94
v1 Fractions LOs (deprecated)
35
v2 Fractions LOs (this catalog)
~2.7Γ—
grain coarsening
66
Levels added across grades
27
reusable solving schemas

What this means for your review

Two failure modes to watch for, in opposite directions:

  • "This LO is still too compound" β€” flag if a single LO bundles cognitive moves that you'd diagnose separately. Example: a hypothetical "Solve word problems involving fraction operations" would be too compound β€” addition, subtraction, multiplication of fractions in word contexts are distinct LOs already; "solve word problems" isn't an LO at all, it's a teaching format.
  • "This LO is unnecessarily split" β€” flag if two LOs name the same cognitive move at different scopes/representations, and could be fused via Levels or Facets. We've tried to catch these in authoring β€” flag any survivors.
05 Β· Spec v2

What we capture in every LO β€” and why

An LO card looks dense at first. Every field on it earns its place β€” each one feeds something concrete downstream (tutor decisions, content tagging, mastery tracking, cross-curriculum bridges). This section walks the card field-by-field, explains the rationale for each design choice, and gives authors the heuristic for picking the right value.

The five criteria β€” what makes something an LO at all

Before any structure: every entry in this catalog must pass five tests. Fail any one and it's not an LO.

#CriterionRuleWhy this criterion
1DemonstrableStates an observable action via a Bloom verb. Banned: understand, know, grasp.If we can't observe it, the tutor can't assess it, and we can't track mastery. "Understand fractions" is not measurable; "compare two fractions with unlike denominators" is.
2AtomicOne cognitive move on one conceptual object. No method clauses (by, via); no multi-verb.If two skills are bundled, the tutor can't tell which one is shaky when a student fails. Atomicity is what makes diagnosis possible.
3Unique by canonical statementSame canonical statement = same LO. Scope and representation variations live INSIDE the LO via Levels and Facets.Two LOs with the same canonical statement is a sign of catalog drift β€” duplicate effort, duplicate edges, ambiguous tagging. Uniqueness is the integrity constraint.
4Scope-bounded at the LevelNumeric scope on Levels; canonical statement names the concept."Compare unit fractions" is the same skill at a/b≀12 and at a/b≀200. The bound is grade-dependent; the skill isn't. Putting bounds in the canonical statement leaks grade-specifics into the LO identity (the v1 mistake).
5Pedagogically meaningfulReflects a skill a teacher would actually test or assign.If no teacher would set a question on it alone, it isn't a teaching unit. Avoids over-decomposition into things like "write the numerator on the line above" (mechanical, not pedagogical).

What's on every LO card β€” annotated

Open any LO in the Catalog (section 9). The card has eight blocks. Here's what each captures, and why:

Block on the cardWhat we captureWhy we capture it
ID + canonical statementA stable slug (cbse-math-compare-unit-fractions) and the one-line action statement.The slug is the immutable handle other systems join on (content tagging, edge targets, Student KG nodes). The canonical statement is what humans read; together they pin the LO's identity for the life of the catalog.
Pills β€” Bloom, concept, threadOne Bloom verb level Β· one concept type Β· one primary thread.Bloom level controls how the tutor frames the question stem. Concept type controls what kind of evidence counts as mastery. Thread is the navigation backbone for the runtime traversal.
Levels1-3 entries: tier (foundational/intermediate/advanced) Γ— role Γ— grade Γ— scope Γ— taught-in sections.Encodes within-LO progression. Tutor uses tier to pick item difficulty; role tells it whether this Level is introducing the skill (don't drill yet) or reviewing it (drill is fine).
Facets1-4 entries: representational form Γ— role (explanatory/assessable).Content tagging picks which Facet a given applet teaches. Tutor rotates Facets across sessions to prevent "I've only ever seen this as bars" failure mode.
Solving Schema (procedural LOs only)One reference to a global schema + variant list.Lets the tutor recognise that two questions on the same relation, with different unknowns, are the same skill in different clothes. Prevents "skill stutter".
Framework alignmentsCitations to NCERT-LO-2017 clauses, NCF-SE 2023 curricular expectations, CBSE-CBE codes.Trace-back to published standards. Lets the SME verify "this LO does implement what NCERT says". Lets policy/compliance check that nothing's missing.
Source provenanceTextbook + chapter + page references for each cited authority.Reviewers should be able to click straight to the page that authorises the LO. Stops "I made this up" / hallucination errors.
Misconceptions + tags + edgesCommon student errors at this LO, free-form tags, in/out prerequisite edges.Misconceptions drive what the tutor probes for on a wrong answer. Tags surface authoring patterns (e.g., all "applied: cooking" LOs). Edges power the runtime traversal.

Why Bloom verbs β€” and why these six

The first word of every canonical statement must come from a fixed Bloom verb vocabulary. This isn't tradition for tradition's sake β€” it controls three downstream things:

  • The kind of question stem the tutor generates. Compute demands a numerical answer slot; justify demands a free-text justification with a rubric. The verb determines the assessment shape.
  • The kind of mastery evidence we accept. Identify can be checked by a single MCQ. Analyse requires multi-step work the tutor can inspect. The verb sets the bar for "mastered".
  • The cognitive load mix per session. A session that's 100% recall verbs is rote; one that's 100% create verbs is exhausting. The tutor balances across Bloom levels per session β€” only possible because every LO carries one.

The six levels we use, in increasing cognitive demand:

Bloom levelSample verbsWhat it asks the student to do
recallidentify, recognise, state, list, nameRetrieve a learned fact or label from memory. "What does the denominator name?"
understanddescribe, classify, explain, interpret, compareMake sense of information β€” relate ideas, paraphrase, give examples. "Explain why β…” and 4/6 are equivalent."
applycompute, calculate, solve, convert, construct, useUse a known procedure on a new instance. The bulk of procedural LOs sit here.
analysecompare (across), differentiate, decompose, examineBreak a situation into parts; see structure. "Decompose 7/12 into a sum of unit fractions."
evaluatejustify, critique, defend, judgeMake and defend a judgement. "Justify whether 3/8 < 5/12 without finding a common denominator."
createcompose, design, construct (novel), formulateProduce something new that meets a constraint. "Compose three fractions whose sum is exactly 1."

Banned: understand, know, grasp, be familiar with, master, appreciate. They name no observable behaviour β€” which means no way to assess, no way to track mastery, no way for the tutor to act.

Why concept types matter

Every LO is one of four concept types (Anderson & Krathwohl). They determine what evidence the tutor accepts as mastery:

Concept typeWhat it namesMastery evidence the tutor looks for
factualDiscrete pieces of information (terms, conventions). "The line in a fraction is called the vinculum."A few correct recall answers, decayed over time β†’ re-probe later.
conceptualRelationships, classifications, principles. "Equivalent fractions name the same point on a number line."Correct explanation + correct examples + correct non-examples β†’ durable.
proceduralMethods, algorithms, multi-step routines. "Compute the sum of two fractions."Correct procedure on multiple variants of the Solving Schema β†’ marks fluency.
metacognitiveStrategy choice, self-monitoring. "Choose whether to find a common denominator or cross-multiply for a given comparison."Correct strategy picks across a mix of cases β€” harder to measure, rarer in this catalog.

Why this matters: a factual LO doesn't need a Solving Schema (no procedure); a procedural LO without a Schema is a linter flag (probably mis-classified); a metacognitive LO almost always pairs with an Applied facet (you can't show strategy choice in pure symbolic form).

Why Levels are tiered foundational / intermediate / advanced

Three tiers, in order. Naming was deliberate β€” we considered alternatives and rejected them:

Alternative consideredWhy rejected
Number of stars (1β˜… / 2β˜… / 3β˜…)Reads as gamification; SMEs flagged it as patronising.
By grade alone (G3 / G4 / G5)Two grades sometimes share a tier; some tiers span 3 grades. Decoupling tier from grade is what lets the same LO span G3-G8 naturally.
By numeric bound (a,b≀12 / a,b≀100 / a,b≀200)Bound is a property of the Level's scope, not the tier itself. Non-numeric LOs (geometry, justification) need tiers too.
By Bloom level (recall / apply / create)Bloom level is per-LO, not per-Level β€” the same LO doesn't change Bloom level across grades.

The picking heuristic:

  • foundational β€” the first encounter with this skill in any form. Bounded scope, supportive visual, low cognitive load. Often G3-G5 in our catalog.
  • intermediate β€” wider scope, mixed forms, expectation of unaided procedure. The "working" tier where most assessment happens. Often G5-G7.
  • advanced β€” unrestricted scope, mixed with adjacent skills, expected to be near-instant. The "fluency" tier. Often G7-G8 or beyond.

An LO can skip tiers (an LO that's only introduced in G8 might go straight to intermediate). An LO doesn't need all three; one is fine.

Why those five Level roles

Each Level carries a role β€” what the curriculum is asking of this Level at this grade:

RoleWhat the curriculum is doingWhat the tutor does
introducesFirst exposure. Teach, don't yet test under timed conditions.Use explanatory facets heavily; assessable items low-stakes.
extendsWider scope of an already-introduced LO at this Level's tier.Treat as new content for assessment, but reuse known representations.
reviewsRe-encounter as a stepping-stone for a different LO.Quick warm-up only β€” don't re-prove what's already mastered.
appliesNow used inside a higher-order or cross-thread skill.Expect fluency; failure here means the underlying LO regressed.
assessesFormal end-of-stage assessment of this LO.Use assessable facets only; mark mastery state on success.

The 25% reviews-role cap. The linter (section 06, subsection 9b) flags any grade where more than 25% of Levels added are reviews-role. Reason: a grade that's mostly review isn't teaching anything new β€” likely a sign that the LO catalog is over-decomposing prior content rather than adding new skills.

Why exactly these four Facets

Each LO can carry 1-4 Facets across Visual / Symbolic / Verbal / Applied. We considered three / five / six alternatives β€” these four are what we landed on:

  • Visual β€” diagrammatic representations. Area model, bar/strip, number line, set diagram. Why: every fraction concept can be seen before it can be symbolised. SMEs unanimous that visual is non-negotiable.
  • Symbolic β€” formal mathematical notation. Fraction bars, equations, inequalities, schema instances. Why: this is what high-stakes assessment uses. An LO that has no symbolic facet can't be tested in the formal exam track.
  • Verbal β€” natural-language form. "If 3 children share 2 chappatis equally…" Why: real classroom talk lives here. Voice-first AI tutors (Byjus.AI) lean heavily on this facet for first introductions.
  • Applied β€” real-world / contextual. Money, measurement, cooking, sport, recipes. Why: tests transfer. A student who can compute 3/4 + 1/8 symbolically but can't add 3/4 cup + 1/8 cup hasn't actually learned the LO.

Why not three? "Verbal" and "Applied" sometimes look similar but aren't β€” verbal is about linguistic encoding of the math; applied is about domain transfer. Collapsing them loses transfer signal.

Why not five? We tried "Procedural-Visual" (e.g., interactive applet manipulations) as a fifth β€” turned out it always reduced to either Visual + Symbolic interaction or Visual + Applied. Wasn't pulling its weight.

Why facets carry an explanatory vs assessable role

Same Facet, different role, very different implication for the tutor:

  • explanatory β€” shown for teaching / intuition; never used as the test. A visual area-model is often explanatory: it makes "why β…” + ΒΌ β‰  3/7" obvious, but you don't assess by asking students to "draw the area model".
  • assessable β€” usable as the assessment vehicle. The Symbolic facet of "add fractions" is almost always assessable: that's what end-of-chapter tests use.

Rule of thumb: every LO needs at least one assessable Facet (linter flag NO_ASSESSABLE_FACET if not). All-explanatory Facets means the LO can be taught but not tested β€” almost certainly an authoring error.

Why Solving Schemas only on procedural LOs

A Schema is a named mathematical relation with named variables and variants. It only makes sense where a relation exists β€” i.e., procedural LOs. A factual LO ("name the denominator") has no relation to solve; a conceptual LO ("explain why equivalence preserves the value") has no variables. Forcing Schemas onto them would manufacture structure where none exists.

Variants encode which variable is unknown, NOT the question's surface form. Same Schema, three variants:

  • equivalent_fractions relation: a/b = (aΒ·k)/(bΒ·k), variables {a, b, k}
  • Variant find_scaling_factor: given β…” and 4/6, find k.
  • Variant find_equivalent_with_given_denominator: convert β…” to a fraction with denominator 12 β€” find the new numerator.
  • Variant verify_equivalence_symbolic: is β…” = 4/6? Find whether a valid k exists.

The tutor uses variants to scaffold: introduce the easiest variant first; layer in harder variants as mastery deepens. Without variants, a student who's mastered "verify equivalence" gets nominally credited for an LO they can't actually invert.

Other locked vocabularies

VocabularyValuesWhat it controls
Bloom levelsrecall Β· understand Β· apply Β· analyse Β· evaluate Β· createQuestion stem shape; mastery bar; session balance.
Concept typesfactual Β· conceptual Β· procedural Β· metacognitiveWhat evidence counts as mastery; whether the LO needs a Schema.
Lifecycle statesproposed Β· active Β· locked Β· superseded Β· deprecatedWhether content can tag to this LO yet; whether the LO is in runtime use.
Edge types (active)prerequisite_of Β· inverse_of Β· cross_curriculum_equivalentTutor traversal; bridging across curricula.
Edge types (vestigial)scope_extends Β· equivalent_toKept for rare exceptions; not load-bearing.

The 1:1 thread constraint

Every LO has exactly one primary_thread β€” its terminal cognitive skill. Cross-thread USE is expressed via prerequisite_of edges, not multi-thread membership.

Why: an LO with two threads is ambiguous about what it really is. Is "compute fraction of a quantity" a Fractions LO or an Operations LO? If both, content tagging gets two equally-valid primaries β€” and the tutor's "what to teach next" coin-flips. Forcing one thread forces a choice; cross-thread relevance is then explicit (an edge, not a membership).

Cultural / historical content β€” NOT an LO

Reversed from v1 §7.1 A5. Historical attributions (Brahmagupta, Bhāskara II), traditional fraction vocabulary (teen paav, mukkaal, tri-pada), and regional terminology now live on Section.cultural_callouts[] metadata. They are never LOs. See section 12 of this portal.

Why: "Brahmagupta's method for fraction addition" is not a skill a student practises and demonstrates β€” it's curriculum context. Treating it as an LO meant the tutor would try to "assess" it, which is wrong by construction. Moving it to Section metadata means the content team can still surface the history at the right moment, without the runtime trying to test it.

What's NOT on an LO card β€” and why we didn't add it

A few fields were proposed and rejected; worth noting because the rejections are informative:

ProposedWhy we don't capture it
Estimated minutes-to-masteryWildly student-dependent. The Student KG overlay tracks actual time; baking estimates into the catalog would create a false standard.
Difficulty rating (1-10)Tiers (foundational / intermediate / advanced) already encode this categorically; a numeric rating would invite false precision.
Suggested teaching activitiesBelongs in content (Layer 3), not in the LO. Different products may teach the same LO differently β€” locking activities into the LO would over-constrain.
Author / reviewer attributionCatalog is institutional. Individual attribution belongs in git history / audit log, not on the public card.
Pass / fail thresholdsStudent KG overlay manages mastery thresholds per student; baking them into the LO removes adaptivity.
06 Β· Spec v2

How this catalog gets authored β€” the operating manual

If a different person (or another LLM thread) had to recreate this work from scratch, this is everything they would need. The portal so far has shown the catalog (the output) and the spec (the rules). This section is the process β€” the operating procedure an author follows so the output is reproducible, audited, and defensible. Reviewers should read this so they can challenge not just "is this LO right" but "was the right procedure followed to produce it".

Why this section is here at all. An LO catalog that "just appeared" can't be defended. If two authors disagree, or a year from now someone asks "why is X an LO but Y is a Level", the answer can't be "we just decided" β€” it has to point to a rule that was followed. That's what this section is.

1. What you need before you start

#InputWhere it livesWhat it gives you
1Universal LO Definition Spec v2docs/superpowers/specs/2026-06-23-universal-lo-definition-v2.md (1089 lines, 14 sections)The locked rule book β€” every rule cited below traces here.
2NCERT source PDFs~/Desktop/Byjus AI/TextBooks/ (27 folders, 333 PDFs, 1.0 GB) β€” Maths Mela G3-G5, Ganita Prakash G6-G8, plus exemplarsThe authoritative curriculum text. Every LO must trace to specific pages here.
3NCERT-LO-2017 referenceNCERT Learning Outcomes document (PDF) β€” clauses like 6.M.LO3The framework_alignments for each LO. Cite by exact code.
4NCF-SE 2023 curricular expectationsNational Curriculum Framework for School Education 2023Higher-grain framework alignment. Cite the curricular expectation code.
5CBSE-CBE codes (where used)CBSE Competency-Based Education learning outcomesTertiary alignment. Optional but recommended for tested LOs.
6Prior-grade catalog (if any)curriculum/cbse/fractions/v2/fractions_los.json (cumulative state)The catalog you're EXTENDING. Sequential per-grade authoring means G6 builds on G3-G5; never re-author what's there.
7Solving schema librarycurriculum/cbse/fractions/v2/solving_schemas.jsonThe reusable global schemas. Check before authoring a new one β€” promote local β†’ global when shared.
8This portalcurriculum/cbse/fractions/v2/portal/Sections 02-05 explain the WHY behind every design choice. Don't skip them.
9Linter + emittersrun_linter.py Β· generate_cypher.py Β· generate_review_md.pyThree Python scripts that gate quality and emit artifacts. Linter MUST pass before anything ships.

2. The end-to-end author loop

For each new grade (G3 β†’ G4 β†’ … β†’ G8, sequential, not parallel):

  1. Load context. Read Spec v2 Β§0-Β§9. Read this portal sections 02-05. Read the cumulative prior-grade catalog (fractions_los.json) end-to-end. Note every existing LO, Level, Facet, Schema by ID.
  2. Locate the source. Open the NCERT textbook for this grade. Locate the fractions chapter(s). Note the section list with page ranges.
  3. Walk the chapter. For each section, perform the per-section classification (subsection 3 below). This produces a list of candidate proposals: existing-LO updates + new LOs + cultural callouts.
  4. Draft the LOs / Levels / Facets / Schemas / Callouts. Use the naming conventions (subsection 7). For each new LO: canonical statement, Bloom verb, concept type, Level(s), Facet(s), Schema (if procedural), framework_alignments, source_provenance, misconceptions, tags.
  5. Run the linter (subsection 9). Fix every auto-reject before continuing. Review every borderline flag with a human; resolve to "kept" or "split" and record.
  6. Run the per-grade balance audit (subsection 9). If >25% of new Levels for this grade are reviews-role, the grade is over-reviewing β€” revisit and replace with new content where the curriculum actually expects it.
  7. Propose cross-thread prereqs. For any new LO whose prerequisites lie in another thread, draft a proposal with status proposed_pending_human_review. Don't commit cross-thread edges to live; they wait until the target thread is authored.
  8. Regenerate emissions. python3 generate_cypher.py + python3 generate_review_md.py. Both should run clean.
  9. Copy JSONs into the portal. cp ../*.json portal/data/. The portal updates immediately.
  10. Two-author governance gate. A second author reviews. LOs stay proposed until ratified to active.

3. The per-section classification protocol

For every section of every chapter, the author asks: "What is this section asking the student to do, and how does it map to the catalog?" Exactly one of these six outcomes applies (this is from Spec v2 Β§6.3):

OutcomeTriggerActionEvent log entry
A. Existing LO at existing Level/FacetThis section practises a skill already in the catalog at the same scope/representation.Add this section's reference to the Level's taught_in_sections[]. No catalog growth.section_link
B. Existing LO; new LevelSame skill, wider scope or new role at this grade.Add a new Level to the existing LO. Set tier (foundational/intermediate/advanced), role (introduces/extends/reviews/applies/assesses), grade, scope, taught_in_sections.level_extend
C. Existing LO; new FacetSame skill in a new representational form (the LO never had a Visual / Symbolic / Verbal / Applied version before).Add a new Facet to the existing LO with role (explanatory/assessable) and pedagogical notes.facet_add
D. Existing Schema; new variantThis section solves the same underlying relation as an existing procedural LO, but with a different unknown.Add a new variant to the existing Schema. Don't author a new LO.schema_add_variant
E. New LONo existing LO covers this cognitive move on this conceptual object (run the LO-vs-Level decision tree in subsection 4 to be sure).Author a new LO with full structure. Default lifecycle state: proposed.add
F. Cultural / historical / regionalThe section names a mathematician, gives historical context, or introduces regional vocabulary.Add an entry to Section.cultural_callouts[]. Never an LO.callout_add

Walking order within a chapter: sections in published page-order. Within a section: read the full section before classifying β€” don't decide on the first paragraph.

4. The hardest judgement: new LO vs new Level of an existing LO

This is the call authors get wrong most often. The default bias is "new Level, not new LO" (v1's failure mode was the opposite). The decision tree:

QuestionIf YES …If NO …
Is the cognitive move identical? (same verb, same object, same conceptual structure)Probably a new Level. Continue checking.New LO. Different cognitive move = different LO.
Does the wider scope demand a fundamentally different procedure? (e.g., comparing fractions a/b ≀ 12 by drawing area-models VS comparing 1/47 and 1/53 by cross-multiplication β€” the procedure is different)New LO. Per Spec v2 Β§7.1 A11.Probably a new Level.
Would a teacher diagnose "X mastered but Y still shaky" between the two versions independently?New LO. Independent diagnosability is what makes them separate.New Level.
Is the only difference a numeric bound, or the size of the input, or the inclusion of an extra digit?New Level. (This was the v1 over-decomposition trap.)β€”
Is the only difference the representation (area model vs number line)?New Facet, NOT a new Level or LO.β€”
Is the only difference the variant of a procedure (find k vs find new numerator)?New Schema variant, NOT a new Level or LO.β€”
Worked example. G4 introduces "compare unit fractions, a, b ≀ 12, via area model". G6 introduces "compare unit fractions, a, b ≀ 100, via reasoning about denominator size". Same cognitive move (compare unit fractions). Procedure is similar (denominator size still tells you which is larger). Numeric bound differs. β†’ Same LO, two Levels. The G4 Level is foundational/introduces; the G6 Level is intermediate/extends.
Counter-example. G6 introduces "compare two general fractions with unlike denominators via finding a common denominator". Different cognitive move (now you have to LCM the denominators first). Different procedure. A teacher would diagnose "Aisha can do unit-fraction comparison but stumbles on general comparison" independently. β†’ New LO, not a Level of the unit-fraction LO. Linked by prerequisite_of.

5. New LO vs new Facet vs new Schema-variant

The same call, in two more flavours:

  • New Facet, not new LO when the cognitive move and conceptual object are the same but the representational form differs. The skill of "comparing two fractions" is one LO; the area model is a Visual facet, the cross-multiplication argument is a Symbolic facet, the "who eats more pizza" reasoning is a Verbal facet, the recipe-scaling problem is an Applied facet. All four are facets of one LO.
  • New Schema-variant, not new LO when the relation is the same and only the unknown differs. a/b = (aΒ·k)/(bΒ·k): solving for new numerator, solving for new denominator, solving for k, verifying equivalence β€” all variants of equivalent_fractions, one Schema, one LO. The variants live as a list inside the Schema.
  • New Schema, not new variant when the underlying relation is different. a/b + c/d = (ad+bc)/bd is a different relation from a/b = (aΒ·k)/(bΒ·k) β€” a separate Schema, even though both involve fractions.

6. The Bloom verb selection workflow

Given a candidate canonical statement, pick the verb in this order:

  1. Identify the cognitive move the student must perform (not what they read or hear β€” what they DO).
  2. Pick the Bloom level that matches: recall (retrieve) Β· understand (explain/classify) Β· apply (compute/use/solve) Β· analyse (decompose/compare-across) Β· evaluate (justify/critique) Β· create (compose/design).
  3. Pick the verb from the controlled vocabulary for that level (section 05 of this portal has the table).
  4. Rewrite the canonical statement as: [verb] [direct object] [optional qualifier]. No method (by, via, using); no multi-verb (and, or); no numeric bound; no historical attribution.
  5. Run the linter to confirm. If it fails β€” back to step 2 or 3.
Worked example. Candidate: "Students should be able to understand how to add fractions with unlike denominators by finding the LCM".
β†’ Cognitive move: compute a sum. β†’ Bloom level: apply. β†’ Verb: compute. β†’ Canonical: "Compute the sum of two fractions with unlike denominators". β†’ LCM method is a Symbolic Facet on this LO, not part of the canonical statement.

7. Naming conventions

EntityPatternExample
LO ID (slug)cbse-math-{verb}-{object}, kebab-case, lowercasecbse-math-compare-unit-fractions
Section ID{grade}-{subject}-c{ch}-s{sec}g6-math-c7-s2 (G6 Math Ch 7 Sec 2)
Level ID (within LO){lo-id}#L{n}cbse-math-compare-unit-fractions#L1
Facet ID (within LO){lo-id}#F-{facet-name}cbse-math-compare-unit-fractions#F-Visual
Solving Schema namesnake_case, names the relationequivalent_fractions
Schema variant namesnake_case, names what's unknownfind_scaling_factor Β· verify_equivalence_symbolic
Cultural callout typeOne of: historical_attribution Β· cultural_context Β· regional_terminology Β· traditional_vocabularyβ€”
Cross-thread proposal statusAlways proposed_pending_human_review until the target thread is authoredβ€”

Slugs are immutable once an LO ratifies to active. If an LO needs renaming, it's a supersession β€” old LO marked superseded, new LO with new slug links back via supersedes.

8. Citation and provenance protocols

Every LO carries three citation blocks. They are not optional:

BlockFormatExample
framework_alignments[]Array of {framework, code, description}{framework: "NCERT-LO-2017", code: "6.M.LO3", description: "..."}
source_provenance[]Array of {textbook, chapter, section, page_range, edition}{textbook: "Ganita Prakash Class 6", chapter: 7, section: "7.2", page_range: "143-145", edition: "2024 Reprint 2026-27"}
misconceptions[]Array of {description, source}. Sources: NCERT teacher manual, research lit, classroom observation.{description: "Treats numerator as denominator under addition", source: "NCERT Teacher Manual G5 p.34"}

Citation discipline: if you can't cite it, don't include it. Reviewers must be able to verify every claim against a primary source. Hallucinated framework codes (a common LLM failure mode) are caught by linter check UNKNOWN_FRAMEWORK_CODE β€” the code must exist in the loaded framework JSON.

9. Quality gates β€” when to run each

Four gates between "draft" and "ratified". They run in order; nothing skips ahead.

GateHowWhenPass criterion
Hybrid linterpython3 run_linter.pyAfter every authoring pass; before any emission0 auto-rejects Β· all borderline flags reviewed by human
Per-grade balance auditBuilt into the linterEnd of each grade≀ 25% of new Levels at any grade are reviews-role
Two-author reviewHumanBefore proposed β†’ activeSecond author signs off on canonical statement, Levels, Facets, Schema, alignments
Cross-thread prereq validationHumanAfter the target thread is authoredEach proposed_pending_human_review edge confirmed or rejected; status updated

9a Β· Linter β€” auto-reject (mechanical) checks

These are catalog-integrity violations the linter rejects without escalation. Fix and re-run.

CheckTrigger
BANNED_VERBVerbs like understand, know, grasp, be familiar with, master
NON_BLOOM_VERBFirst word of canonical statement not in Β§2.3 vocabulary
MULTI_VERBTwo verbs of action in same statement (multi-skill)
METHOD_CLAUSEPatterns like by …, via …, using … (belongs on a Facet, not the canonical)
NUMERIC_BOUND_IN_CANONICALGrade-specific numbers like (a, b ≀ 12) (belongs on a Level)
HISTORICAL_ATTRIBUTIONYears or names of mathematicians in canonical statement
DUPLICATE_CANONICALExact-match canonical against existing proposed/active LO
NO_LEVELS / NO_FACETSLO without 1+ Level or 1+ Facet
MULTI_THREADprimary_thread as array or comma-separated (violates 1:1)
UNKNOWN_FRAMEWORK_CODEA cited framework code (e.g., 6.M.LO99) not present in the loaded framework JSON β€” anti-hallucination guard

9b Β· Linter β€” borderline flags (human review)

These flag patterns that are often wrong but sometimes intentional. Author resolves each as "kept" or "split" and records the rationale.

CheckTrigger
LONG_CANONICALCanonical statement > 12 words β€” likely compound
BLOOM_CONCEPT_MISMATCHe.g., compute on a factual LO
REVIEWS_ROLE_OVER_25%At a given grade, > 25% of new Levels are reviews-role (Q6, per-grade balance audit)
NO_ASSESSABLE_FACETAll Facets are explanatory β€” almost certainly wrong
PROCEDURAL_NO_SCHEMAProcedural LO without a Solving Schema β€” flag for review

9c Β· Per-grade balance audit β€” this catalog's current state

10. Emissions β€” what gets generated and when

ArtifactGeneratorWhere it landsWhat consumes it
Cypher import (idempotent MERGE)generate_cypher.pyfractions_layer2_import_v2.cypherNeo4j load. Safe to re-run; produces same graph every time.
Human review markdowngenerate_review_md.pyfractions_los_review_v2.mdOffline SME review; printable.
Portal JSONs(copy) cp ../*.json data/portal/data/*.jsonThe fetch() calls in the portal index.html.

Regenerate all three after any catalog change. They're cheap; treat them as ephemeral. The source of truth is the source JSONs in curriculum/cbse/fractions/v2/.

11. Lifecycle and supersession

Lifecycle stateWhat it meansWhat can tag to it
proposedAuthored, linted, awaiting two-author reviewNothing yet β€” content tagging blocked
activeRatified; in production useContent tags freely; tutor traverses
lockedActive and frozen against further edits (rare; for assessment-stable LOs)Content tags freely; no edits without supersession
supersededReplaced by a new LO; kept for historical content tagsOld content tags retained; new content tags target the successor
deprecatedRemoved from active use entirelyNothing new tags here; old tags get migrated or audited

Supersession rule: never rename or rewrite an active LO in place. Mark it superseded; author a new LO with a new slug; declare supersedes on the new LO pointing back. Content team migrates tags on its own clock.

12. Common traps β€” what NOT to do

TrapHow it manifestsWhat to do instead
Over-decomposition by scopeAuthoring "compare fractions a,b≀12" and "compare fractions a,b≀200" as two LOsOne LO, two Levels β€” scope on the Level, not the LO
Over-decomposition by representationAuthoring "compare via area model" and "compare via number line" as two LOs linked by equivalent_toOne LO, two Facets
Over-decomposition by variant"Find equivalent numerator" and "find equivalent denominator" as two LOsOne LO, one Schema, two variants
Under-decomposition"Solve word problems involving fractions" as one LO bundling addition+subtraction+multiplication contextsSplit per operation; "word problems" is a teaching format, not an LO
Multi-thread leakageTagging an LO with primary_thread: [fractions, arithmetic]Pick one thread. Cross-thread USE is a prerequisite_of edge.
Bloom verb churnAuthoring the same skill with identify in one Level and compute in anotherBloom is per-LO. Pick one; if it really changes, it's a different LO.
Method in canonical"Add fractions by finding the LCM""Compute the sum of two fractions". LCM is a Symbolic Facet.
Cultural content as LOAuthoring "Apply Brahmagupta's method" as an LOSection.cultural_callouts[]; the math behind the method is the LO, history is metadata.
Hallucinated framework codeCiting 6.M.LO99 when the document goes up to LO12Open the source. Verify every code. Linter catches this if the framework JSON is loaded.
Author identity in artifactsPutting "Authored by [name]" in the LO JSONCatalog is institutional. Attribution belongs in git history, not in the data.
Skipping prior-grade contextStarting G6 authoring without re-reading G3-G5 catalogSequential per-grade authoring is non-negotiable. Always load the cumulative state first.

13. Worked example β€” one chapter, end to end

Pick G6 Ganita Prakash Chapter 7 (Fractions). Section 7.2 introduces equivalent fractions via Brahmagupta's method. Walking it:

  1. Read the full section. NCERT G6 Ch 7.2, pages 143-145, "Equivalent Fractions and Brahmagupta's Method".
  2. Identify cognitive moves. Three are in play: (a) recognise when two fractions are equivalent; (b) generate equivalent fractions by multiplying numerator and denominator by the same number; (c) reduce a fraction to lowest terms.
  3. Check prior catalog. G5 introduced "recognise equivalent fractions visually" β€” that's an existing LO, cbse-math-recognise-equivalent-fractions, with a Visual Facet.
  4. Classify (a): maps to existing LO. New Symbolic Facet for "verify equivalence by multiplication argument". Outcome C. Event: facet_add.
  5. Classify (b): NEW cognitive move (generate, not recognise). New LO cbse-math-generate-equivalent-fractions. Bloom: apply Β· concept type: procedural Β· Schema: equivalent_fractions (new global). Outcome E. Event: add.
  6. Classify (c): NEW cognitive move (reduce, with the procedure of dividing by GCD). New LO cbse-math-reduce-to-lowest-terms. Bloom: apply Β· concept type: procedural Β· Schema: equivalent_fractions (reuses!) variant find_smallest_equivalent. Outcome E. Event: add.
  7. Cultural callout: "Brahmagupta (628 CE, Brāhmasphuṭasiddhānta) introduced the rule". Add to Section.cultural_callouts[] with type historical_attribution. Outcome F. NOT an LO.
  8. Cross-thread prereq: cbse-math-reduce-to-lowest-terms depends on knowing GCD β€” proposes prerequisite_of edge from cbse-math-find-gcd in the factors_multiples_primes thread (not yet authored) with status proposed_pending_human_review.
  9. Lint. All three canonical statements pass: "Verify whether two fractions are equivalent" (recall→identify? no — uses understanding; verify is in the apply level vocabulary; passes), "Generate an equivalent fraction", "Reduce a fraction to lowest terms". 0 auto-rejects.
  10. Balance audit for G6. 2 new LOs + 1 new Facet on existing. 0 reviews-role Levels. Passes.
  11. Regenerate Cypher + markdown. Copy JSONs into portal/data/. Confirm portal still loads.
  12. Two-author review. Second SME confirms or revises. On confirmation, lifecycle moves proposed β†’ active.

14. What another author should be able to do after reading this

  • Pick a new grade or thread and execute steps 1-10 without further guidance.
  • Defend any catalog decision by citing a numbered rule above plus the source page.
  • Detect when a candidate LO is actually a Level / Facet / Schema-variant (subsections 4-5).
  • Write a canonical statement that passes the linter on the first try (subsection 6).
  • Cite framework alignments and source provenance without hallucination (subsection 8).
  • Avoid the 11 common traps in subsection 12.
  • Reproduce this catalog from the same source PDFs, ending up with the same LOs at the same Levels with the same Facets (modulo minor wording).
The reproducibility test. If two authors follow this manual independently on the same chapter, the resulting LOs should match in structure even if canonical statements differ slightly in wording. If they don't, either the manual has a gap (flag it for revision) or one of the authors broke a rule.
07 Β· Spec v2

From v1 to v2 β€” the nine review comments that reshaped this catalog

An earlier draft of this catalog (Spec v1, authored June 2026) went out for SME review. Nine recurring concerns came back. v2 is the spec that addresses each one β€” and the catalog you're looking at is the first re-authoring under it. This section maps each concern to the rule change it produced, with concrete fractions examples.

Why this section exists. Several reviewers will recognise their own comments here. Showing each one with the resulting rule and the fractions impact is how we close the loop β€” and it builds trust that further comments in this review will land the same way: traced, addressed, documented.

The nine comments at a glance

#Reviewer concern (v1)v2 response
C1Verbs like understand, know, grasp appeared in canonical statements β€” not measurable.Banned-verb list + Bloom controlled vocabulary (Β§2.3); linter auto-rejects.
C2Many LOs bundled multiple skills via and/or β€” e.g., "Compare and order fractions" (two verbs).MULTI_VERB auto-reject; one verb = one LO. Compound competencies decompose into multiple LOs at authoring time.
C3Canonical statements named methods inline β€” "Add fractions by finding the LCM". The method belongs to a Facet, not the LO identity.METHOD_CLAUSE auto-reject for by/via/using patterns. Methods move to Facets (Symbolic / Verbal / Visual variants).
C4Historical attributions baked into canonical statements β€” "Apply Brahmagupta's method (628 CE) for fraction addition".HISTORICAL_ATTRIBUTION auto-reject. Years and mathematician names move to Section.cultural_callouts[] as metadata.
C5Duplicate canonical statements across LOs (text-exact or near-duplicate) β€” sign of catalog drift.DUPLICATE_CANONICAL auto-reject; canonical statements are unique keys within a thread.
C6Numeric bounds in canonical β€” "Add fractions (a, b ≀ 12)". A bound is a grade-specific scope, not part of the skill name.NUMERIC_BOUND_IN_CANONICAL auto-reject. Bounds move to Levels[].scope.
C7Cultural / regional / historical content was being authored AS LOs β€” "Brahmagupta's contribution to fractions", "Traditional Indian terms bhinna / tri-pada". That's curriculum context, not an assessable skill.Cultural callouts move out of LOs entirely; live on Section.cultural_callouts[]. Reversed from v1 Β§7.1 A5 which had treated some as LOs.
C8Representational variants exploded the catalog β€” "Compare via area model" / "Compare via number line" / "Compare via verbal reasoning" were three LOs linked by equivalent_to edges. Same underlying skill, three rows.Facets (R2): one LO carries 1-4 representations (Visual / Symbolic / Verbal / Applied) with explanatory/assessable roles. equivalent_to demoted to vestigial.
C9Scope variants exploded the catalog β€” "Compare unit fractions (a,b ≀ 12)" and "Compare unit fractions (a,b ≀ 200)" were separate LOs linked by scope_extends edges.Levels (R1): one LO carries multiple Levels (foundational/intermediate/advanced Γ— roles introduces/extends/reviews/applies/assesses) capturing within-LO progression. scope_extends demoted to vestigial.

The five core rule changes (R1-R5)

Across the nine comments, five new rules emerged. Each is the load-bearing change that makes v2 different from v1:

R1 β€” Levels (replaces most scope_extends edges)

A single LO carries multiple Levels for grade-by-grade progression. Each Level has a tier (foundational / intermediate / advanced), a role (introduces / extends / reviews / applies / assesses), a grade, and a scope (the bounded version at that grade).

Fractions example. v1 had two LOs: cbse-math-compare-unit-fractions-g4 (a,b≀12, area model) and cbse-math-compare-unit-fractions-g6 (a,b≀200, number line). v2 has ONE LO cbse-math-compare-unit-fractions with two Levels: foundational/G4/introduces (a,b≀12) and intermediate/G6/extends (a,b≀200). Plus two Facets for the two representations. Catalog goes from 2 nodes + 1 edge β†’ 1 node + 2 internal Levels + 2 internal Facets.

R2 β€” Facets (replaces most equivalent_to edges)

A single LO carries 1-4 Facets across the four representational forms: Visual (diagrams, area models, number lines), Symbolic (formal notation, equations), Verbal (story / share-size reasoning), Applied (real-world contexts: paratha, chikki, recipe scaling). Each Facet has an explanatory or assessable role. An LO needs at least one assessable Facet.

Fractions example. "Identify equivalent fractions" was four LOs in v1: visual (area model), symbolic (Γ—k/Γ—k rule), verbal (same-share argument), applied (recipe doubling). v2: ONE LO with four Facets. The visual one is explanatory (teaching aid); the symbolic one is assessable (the diagnostic check); verbal + applied serve as teaching variations.

R3 β€” Solving Schema (procedural LOs only)

A procedural LO declares its underlying mathematical relation as a Solving Schema: a named relation with named variables, plus variants for which variable is unknown. Schemas are reusable across LOs and live in a hybrid library (global + per-LO local promoted on review). Conceptual / factual LOs have no Schema.

Fractions example. The schema equivalent_fractions declares a/b = (aΒ·k)/(bΒ·k) with variables {a, b, k} and variants: "find k", "find new numerator", "find new denominator", "verify equivalence". It's referenced by LOs cbse-math-generate-equivalent-fractions, cbse-math-reduce-to-lowest-terms, and cbse-math-cross-multiply-compare-fractions. Authoring a new variant once benefits all three LOs.

R4 β€” Strict canonical-statement linter (hybrid mode)

Every proposed LO runs through the linter (section 06, subsection 9). Auto-reject on mechanical violations β€” multi-verb, method clauses, banned verbs, numeric bounds in canonical, historical attribution, duplicate canonical. Flag for human review on borderline cases β€” long canonical, missing assessable facet, procedural LO without schema, >25% reviews role at a grade.

This catalog's linter run. 0 auto-rejects across all 35 LOs. 5 borderline LONG_CANONICAL flags β€” all reviewed by human and kept (they're already minimal given the cognitive content).

R5 β€” Sequential per-grade authoring + hard 1:1 LO-to-Thread

v2 is authored G3 β†’ G4 β†’ G5 β†’ G6 β†’ G7 β†’ G8 in order, each grade receiving the cumulative prior catalog as context. New LOs can extend prior LOs (via new Levels/Facets) rather than duplicate. Every LO belongs to exactly one Thread; cross-thread USE relationships are prerequisite_of edges, not multi-thread membership.

Fractions example. G6's cbse-math-add-fractions doesn't re-author G5's understanding of equivalent fractions β€” it declares a prerequisite_of edge from cbse-math-generate-equivalent-fractions. When the arithmetic_operations thread is authored later, G7's fraction-multiplication LOs will declare prerequisite_of from multiply-whole-numbers in that thread.

The compression in numbers

94 β†’ 35
Fractions LOs (v1 β†’ v2)
192 β†’ 65
Intra-thread edges
5 β†’ 3
Active edge types
+ 66
Levels added (new internal structure)
+ 81
Facets added (new internal structure)
+ 27
Reusable Solving Schemas

Net effect: fewer rows, richer rows. Each v2 LO encodes what 2-3 v1 LOs used to encode β€” but with explicit, structured internal progression instead of brittle cross-LO edges. Easier to maintain, easier for the tutor to traverse, easier for SMEs to review (you read one card, not three).

What stayed the same

  • Layer model (L1 backbone β†’ L2 LOs β†’ L3 content tagging) β€” unchanged.
  • Anchoring of every LO to specific NCERT sections via taught_in_sections β€” unchanged (and now per-Level, more precise).
  • framework_alignments to NCERT-LO-2017, NCF-SE 2023, CBSE-CBE β€” unchanged in shape, every LO carries them.
  • One catalog per curriculum, federated via UKG β€” unchanged (see Section 03).
  • Two-author governance gate (status: proposed β†’ active) β€” unchanged.
For your review. If a comment you raised on v1 doesn't appear here under one of C1-C9, it either fell into a rare class we deferred, or we missed it. Flag it. The whole point of this section is that the loop closes.
Thread:
08 Β· Catalog

CBSE curriculum map (Fractions thread)

The fractions thread spans G3-G8 across NCERT's Maths Mela (G3-G5) and Ganita Prakash (G6-G8). The chapter taxonomy below is the Layer 1 backbone; LOs anchor to specific sections within each chapter.

GradeTextbookChapterTitleNotes
G3Maths MelaCh 8Fair ShareFoundational fraction intuition β€” halves, quarters
G4Maths MelaCh 5Sharing and MeasuringSymbolic 1/n notation; non-unit fractions; equivalence intro
G5Maths MelaCh 2FractionsFormal equivalence; 4 comparison methods; improper fractions; number line
G6Ganita PrakashCh 7FractionsBrahmagupta's method; addition/subtraction; lowest terms; mixed fractions
G7Ganita Prakash Pt 1Ch 8Working with FractionsMultiplication, division, reciprocals; situation tables
G7Ganita Prakash Pt 2Ch 3Finding Common GroundHCF/LCM (extends G6 add/subtract LOs to LCM method)
G8Ganita Prakash Pt 2Ch 1Fractions in DisguisePercentages bridge: FDP trio, % of quantity, profit/loss, compound interest

Strand and Thread

Every Fractions LO in this catalog has:

  • primary_strand: number
  • primary_thread: fractions

Cross-thread dependencies (e.g., to arithmetic_operations, factors_multiples_primes, decimals_and_rationals, geometry) are expressed via prerequisite_of edges β€” see section 13 of this portal.

09 Β· Catalog

LO catalog β€” 35 LOs (G3-G8)

Each card is an LO. Levels show within-LO progression across grades; Facets show representational forms with assessability. Click "πŸ’¬ Comment" on any LO to leave a structured comment in the Google Form.

β€”
Loading LO catalog…
10 Β· Catalog

Interactive Knowledge-Graph explorer

Cytoscape view of the catalog. Click any node to drill into its details. Open in new tab for full-screen exploration.

β†— Open explorer in new tab

11 Β· Catalog

Solving Schema library

Reusable global schemas referenced by procedural LOs. Each schema has a canonical relation and a set of variants (which variable is unknown).

Loading…
12 Β· Catalog

Section cultural callouts

Per Spec v2 Β§5.6 (and Β§7.1 A5 reversed) β€” historical attributions, traditional fraction vocabulary, regional terminology live on Section.cultural_callouts[] metadata. They are not LOs.

Loading…
13 Β· Catalog

Cross-thread prerequisite proposals

Per Spec v2 Β§8.4 β€” LLM-proposed prerequisite edges to LOs in other threads. Each requires human approval once the target thread's catalog is authored. Until then, the edges live as proposals.

Loading…
14 Β· Downstream

What this catalog unlocks downstream

An LO catalog by itself is just structured rows in a database. Its value comes from what it enables in the layers above and around it. Four downstream uses depend on this catalog being clean β€” that's why your review matters.

L2: This LO Catalog 35 LOs Β· 65 edges Β· 27 schemas L3: Content tagging videos Β· applets Β· quizzes 1 primary LO + 0-2 secondary ~10k components for G1-G9 AI Tutor runtime "what to teach next" prereq traversal Byjus.AI Β· live early build Student KG overlay per-student mastery progress against LOs future UKG bridge cross-curriculum reuse CBSE↔KM Outcomes β€” for the student and for the business Personalized sessions Β· evidence of mastery Β· cross-product content reuse Β· longitudinal research

1. Layer 3 content tagging (the "1 + 2" model)

Every piece of content built for the product β€” every applet, video, quiz item, worksheet, MAX/Spark dialogue script β€” must declare what it teaches. The Layer 3 rule: each component tags to exactly one primary LO (the skill it directly assesses or teaches) plus up to two secondary LOs (other skills it incidentally reinforces).

This means the LO catalog is the labelling vocabulary for content. A clean catalog β†’ clean labels β†’ the AI tutor can pick the right component for the right moment. A muddled catalog β†’ ambiguous labels β†’ the tutor either picks the wrong content or picks nothing.

Concrete impact. A content team builds, say, a 5-minute Brahmagupta-method addition applet. With clean LOs, it tags primary = cbse-math-add-fractions, secondary = cbse-math-generate-equivalent-fractions + cbse-math-reduce-to-lowest-terms. When the tutor needs to teach addition, it has a clear pick. With v1's over-decomposed LOs, the same applet would have ambiguous tagging across 6 candidate "primaries" β€” and the tutor's "which next?" logic would coin-flip.

2. AI tutor runtime traversal

The Byjus.AI runtime maintains, per student, a real-time view of which LOs are mastered, which are in-progress, and which are not yet attempted. On every turn it traverses the LO graph to answer "what should we work on this session?":

  • Going forward β€” find the nearest not-yet-attempted LO whose prerequisites are all mastered. Edge type: prerequisite_of.
  • Backing up β€” if a student fails an assessment at LO X, follow prerequisite_of edges backward and find the deepest prereq that's still uncertain. Drill there.
  • Within an LO β€” Levels and Facets choose how to present the next item: foundational tier first for new exposure, advanced tier for review; visual Facet for first introduction, symbolic Facet for assessment.
  • Avoiding "skill stutter" β€” Solving Schemas ensure that variants of the same underlying relation aren't presented as if they're brand-new each time. Two questions sharing the equivalent_fractions schema are recognised as the same skill in different clothes.
Why edge quality matters. If prerequisite_of edges are missing or wrong, the tutor introduces skills before foundations are ready (frustration) or drills foundations that are already solid (boredom). Your review of the catalog's edge structure is direct insurance against both failure modes.

3. Student Knowledge Graph β€” the per-student overlay (future)

The catalog you see is the shared curriculum graph β€” the same one every student sees. Layered on top, one per student, is the Student KG: a copy of the catalog where each LO node carries that student's mastery state (not-attempted / introduced / practising / mastered / overlearned), assessment evidence (which items, when, scored what), and timestamps of every interaction with that LO.

Over time, this per-student overlay accumulates into a longitudinal record β€” not a test score, but a continuous mastery trace across every LO the student has touched. This is the substrate for:

  • Parent reports β€” "Aisha's mastered 18 of 22 fractions LOs this term; the four open ones are X, Y, Z, W with the following symptoms."
  • Teacher dashboards β€” class-level mastery heatmaps; same vocabulary as the parent report; same vocabulary as the tutor's runtime logic.
  • Research β€” multi-year retention studies, dependency-edge validation ("does mastering A actually unblock B?"), pedagogy A/B (does Facet ordering Vβ†’Sβ†’A outperform Sβ†’Vβ†’A?).

None of this is possible if the LOs aren't atomic and stable. If the catalog churns, every prior mastery state is unmoored.

4. Cross-curriculum content reuse via the UKG

An applet that teaches "add fractions with unlike denominators" should serve a CBSE student in India AND a KM student in Indonesia. The way to make that work is the federation we covered in Section 03: each curriculum has its own catalog; cross_curriculum_equivalent edges bridge equivalent LOs across them.

When CBSE's cbse-math-add-fractions is bridged to KM's km-math-jumlah-pecahan, the applet authored once (with two language tracks) can be reused under both curricula's runtimes. The bridge is what justifies the content investment.

Business model implication. CERDAS (Indonesia B2G) and Byjus.AI (India B2C) share content infrastructure. A well-tagged applet in either system is reusable in the other. The cleaner this CBSE catalog is, the easier it is to draw equivalence edges when the KM v2 catalog is authored β€” and the larger the reusable content pool gets. This catalog directly affects content unit-economics across both programs.

The chain of dependencies

If this catalog is …Then downstream …
Clean & stableContent tagging is unambiguous; AI tutor traversal is accurate; Student KG overlay accumulates clean mastery traces; cross-curriculum bridges are easy.
Muddled & churningContent gets re-tagged every revision; tutor decisions get flaky; Student KG history loses meaning every catalog rev; cross-curriculum reuse stalls.

How your review feeds the loop

  1. You leave per-LO and bulk comments (Section 15).
  2. Each comment maps to either a catalog edit (split / level_extend / facet_add / add / deprecate) or a rationale reply preserved with the LO.
  3. Two-author governance gate stamps the LO proposed β†’ active.
  4. Once the catalog is ratified, L3 content tagging unblocks. Until then, content production for this thread holds.
So when you ask "should this LO exist?" you're really asking β€” should the AI tutor reason about this skill independently, should content get authored against it, should student mastery be tracked at this grain, should an Indonesian curriculum bridge to it. Those four questions answer together. Your judgement on each LO is your judgement on all four.
15 Β· Feedback

How to leave feedback

Two ways to comment: per-LO (recommended) or bulk.

Per-LO comments

On any LO card in section 9, click πŸ’¬ Comment on this LO β€” opens the Google Form with the LO ID and canonical statement pre-filled.

Bulk / general comments

Use this form for cross-cutting feedback (e.g., "the entire G7 multiplication treatment feels too procedural"):

Open comment form

What to comment on

Comment typeWhat you flag
Verdict"This LO is sound" / "This LO should be removed" / "This LO should split into N"
Concern"The canonical statement is ambiguous" / "Level scopes overlap" / "Facet roles wrong"
Suggestion"Add a Level for ..." / "The Solving Schema needs variant X" / "Wrong source page"
Question"Why is this in fractions thread and not arithmetic_operations?"

What we'll do with your feedback

  1. All comments collect into the linked Google Sheet β€” Vinay monitors.
  2. Each comment triggers either a catalog edit (per Spec v2 Β§8.6 governance: split / level_extend / facet_add / add / deprecate) or a "rationale" reply preserved with the LO.
  3. Two-author review remains the gate (status: proposed β†’ active).

Reviewers

TBD β€” list to be filled in once SMEs are confirmed.

Working over context, not the standards. This catalog operates at a level finer than published curriculum standards (CCSS-M, NCERT-LO-2017) β€” by design. Our LOs consume standards via framework_alignments; they don't replace them. Comments about "this is more granular than NCERT" are expected; comments about "this misrepresents NCERT" need action.