Marble Skill Taxonomy: A traceable graph of children's learning
A JSON graph of children's learning for education products and curriculum designers, with traceable prerequisites instead of a flat standards list.
GitHub withmarbleapp/os-taxonomy Updated 2026-10-20 Branch main Stars 6.1K Forks 1.0K
JavaScript Education data JSON Curriculum standards

🧭 Decision Guide

Try it if you

  • You need to load 1,591 micro-topics in JavaScript and trace prerequisite nodes.
    The README's “Using it” section imports topics.json and dependencies.json and states: “Pure data — no runtime, no dependencies”.
  • Your curriculum product needs to link topics to NGSS or Common Core standards.
    The README's “What this is” section says each micro-topic links to NGSS, Common Core, the UK National Curriculum, and more.
  • You need teaching activities and assessment information for Science or Mathematics topics.
    The README's “Teaching research” section says the research covers 547 Science topics and 504 Mathematics topics.

Skip it if you

  • You require teaching research for every topic, especially English, History, or Computing.
    The README explicitly says the other 540 topics have no research in this release; teaching research currently covers only Science and Mathematics.
  • You require empirically validated teaching interventions or freshly verified sources.
    The README's “Teaching research” section says activities are not empirically validated interventions and sources were not re-fetched or re-verified.
  • You require per-child user data or semantic embeddings.
    The README's “What’s not here” section explicitly excludes per-child/user data and semantic embeddings.

Requirements

  • The data is stored as UTF-8 JSON in the data/ directory.
  • The README says: “Pure data — no runtime, no dependencies”.
  • When using teaching-research.json, account for the approximately 24 MB file and its topicFileSha256 binding.
  • assessmentPrompt contains a {{name}} placeholder that must be substituted or removed before display.

First step (verbatim from README)

node scripts/validate.mjs

Watch out

  • guidanceByTopic.get returns undefined for English topics because English is not covered yet.
    The code comment in the README's “Using it” section explicitly says “undefined: English is not covered yet”.
  • Regenerate the research projection after changing topics.json, even if topic IDs remain unchanged.
    The README's “Teaching research” section says the research file is bound to the exact topics.json bytes and must be regenerated when the canonical topic file changes.
  • Do not display assessmentPrompt unchanged, or the {{name}} child-name placeholder will remain.
    The README's “A topic” section says the field contains {{name}} and should be substituted or stripped before display.
  • Do not treat confidence high or verified true as new evidence ratings for this release.
    The README explicitly says historical verified: true and confidence: high are not new evidence ratings.

Not stated in the README

  • The README does not state the download size of the data files; it only gives approximately 24 MB for teaching-research.json.
  • The README does not state a minimum Node.js version.
  • The README does not provide the concrete JSON Schema constraints or validation failure examples.
  • The README does not state the manual review coverage for 1,591 topics and 3,225 prerequisite edges.
  • The README does not establish whether the current attention is driven by curriculum standards, dataset scale, or the withmarble.com/curriculum visualization, so this cannot be determined from the material.

💡 Deep Analysis

4
No I am building an elementary science and mathematics lesson-planning tool and want to use 1,051 teaching-research records for activities, feedback, and diagnostic prompts. Can these records be used directly as a validated intervention library?
For: An education-product engineer building an elementary science and mathematics lesson-planning tool using 1,051 teaching-research records for activities and diagnostics

No. The records should not be used directly as a validated intervention library because the README explicitly describes the activities as research-informed proposals, not empirically validated interventions.

  • teaching-research.json covers 547 science topics and 504 mathematics topics. Its records include teaching summaries, activities, feedback, assessment guidance, misconception patterns, and sources, making it useful for drafting lesson materials.
  • However, the records were agent-authored or organized, and sources were not re-fetched or re-verified for this release. confidence is not an independent quality score, and historical verified: true is not a new evidence rating.
  • Some activities have no directly linked source claim, and some restricted curriculum text was replaced by references under the publication policy.
  • Another 540 topics have no research record; that absence does not mean the topic cannot be taught.

Use the data as sourced, qualified input for planning—not as evidence that an intervention has been validated.

  • Teaching research: 1,051 records covering 547 Science and 504 Mathematics topics
  • Teaching research: activities are research-informed proposals, not empirically validated interventions
  • Teaching research: sources were not re-fetched or re-verified; confidence is not an independent quality score
  • Teaching research: the other 540 topics have no research
Not stated in the README:The README does not report effect sizes, sample sizes, or replication results for the activities in real classrooms;The README does not state whether every teaching-research record received subject-matter-expert review
No I am building a browser-based parent curriculum navigator. The core graph has 1,591 topics, but the teaching-research file is about 24 MB. Can I load the entire repository during the initial page load?
For: A JavaScript engineer building a browser-based parent curriculum navigator who must control first-load and memory costs for the roughly 24 MB research file

No. Loading the entire repository unconditionally on the first page is not suitable because the roughly 24 MB teaching-research file can increase browser startup time and memory pressure.

  • The README separates the data into topics.json, dependencies.json, standards, summaries, and teaching-research.json, so consumers can use the layers independently.
  • The research file is approximately 24 MB, while the core topics and dependency graph can already support topic browsing, prerequisite tracing, and domain navigation.
  • Research covers only 1,051 science and mathematics topics; the other 540 topics have no records. A parent navigator should not pre-download research that does not exist for English, history, computing, and other topics.
  • The project includes 176 parent-friendly domain summaries, making summaries and topic metadata reasonable initial payloads before loading research by subject, age band, or topic.

The README does not provide a chunking API or compression format, so the application must implement the loading and caching strategy.

  • Files: teaching-research.json is about 24 MB; clusters.json contains parent-friendly domain summaries
  • Teaching research: covers 1,051 topics; 540 topics have no research
  • Project insight: loading the full research file in a browser may increase initial load time and memory use
Not stated in the README:The README provides no ready-made browser chunking, compression, caching, or topicId-query interface;The README provides no load-time or memory benchmarks across device classes
Yes I am building a JavaScript adaptive-learning product and need to generate knowledge paths from 1,591 micro-topics and 3,225 prerequisite edges. Can this project serve directly as the curriculum graph data layer?
For: An education software engineer building a JavaScript adaptive-learning product that must process 1,591 micro-topics and 3,225 prerequisite edges

Yes, provided that you treat it as a loadable curriculum dataset rather than a ready-made recommendation service.

  • topics.json supplies the nodes and dependencies.json supplies the directed acyclic graph. The documented meaning is that topicId depends on prerequisiteId; reverse traversal is required to find what a topic unlocks.
  • Each edge has hard or soft strength and a natural-language reason, which supports explainable learning paths.
  • The data is UTF-8 JSON with no runtime, server, or external dependency, so a JavaScript product can load, cache, and traverse it itself.
  • Topics also include approximate age ranges, mastery evidence, assessment prompts, and links to NGSS, Common Core, the UK National Curriculum, and others.

However, the project provides no query API, recommendation algorithm, or per-child data. Mastery prediction and personalized ranking remain your responsibility.

  • What this is: 1,591 micro-topics; 3,225 prerequisite dependencies; directed acyclic graph
  • Files: topics.json; dependencies.json; topicId depends on prerequisiteId
  • Project insight: no runtime, external dependencies, or server
Not stated in the README:The README does not specify browser or Node.js loading APIs, performance benchmarks, or an incremental-update strategy;The README does not state whether the dependency graph was validated against real learner-behavior data
It depends I maintain an elementary curriculum-planning tool aligned with both NGSS and Common Core, and I need to compare science, mathematics, English, and five other subjects. Can this dataset serve as a unified cross-standard mapping layer?
For: A curriculum designer maintaining an elementary planning tool aligned with NGSS and Common Core and comparing coverage across 8 subjects

It depends: the dataset is suitable as an index from micro-topics to standards, but not as an equivalence or compliance-certification layer.

  • Each micro-topic links to the standards from which it was distilled, including NGSS, Common Core, and the UK National Curriculum. This supports traceability, coverage analysis, and filtering.
  • The dataset spans 8 subjects and 1,591 topics, including 547 science, 504 mathematics, and 286 English topics, which is useful for multi-subject navigation.
  • The README explicitly states that a standards mapping indicates an association, not complete coverage of a standard or full equivalence between national curricula.
  • Some quoted curriculum text was replaced by curriculum references under the publication policy, with transformed paths listed in publicationNotes.

Use it when the question is “which standards are associated with this topic?” Do not use it alone to produce a statutory curriculum-compliance conclusion.

  • What this is: curriculum alignment with NGSS, Common Core, and the UK National Curriculum
  • Subjects: 8 subjects; Science 547, Mathematics 504, English 286
  • Teaching research: publicationNotes records paths omitted under the publication policy
  • Project insight: mappings do not mean complete coverage or national-curriculum equivalence
Not stated in the README:The README does not provide coverage rates or mapping confidence for each standard;The README does not specify effective dates or regional applicability for the national standards

✨ Highlights

  • 1,591 micro-topics form a traceable learning graph
  • 3,225 dependency edges form a reasoned DAG
  • Aligns topics with NGSS, Common Core, and other standards
  • Teaching research covers only 1,051 Science and Mathematics records

🔧 Engineering

  • Provides a pure JSON learning graph through topics.json and dependencies.json
  • Uses assessmentPrompt and evidence to describe mastery evidence
  • node scripts/validate.mjs validates structure and checksums

⚠️ Risks

  • 540 topics have no teaching research in this release
  • Research records are agent-authored and sources were not re-verified
  • Activities are research-informed proposals, not validated interventions

👥 For who?

  • JavaScript developers who need to build curriculum graphs from JSON
  • Elementary education teams needing NGSS or Common Core alignment
  • Curriculum designers studying prerequisites in Science and Mathematics