Add a Flutter-docs curator with first-class version metadata #12
No reviewers
Labels
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority/Critical
Priority/High
Priority/Low
Priority/Medium
Reviewed/Confirmed
Reviewed/Duplicate
Reviewed/Invalid
Reviewed/Won't Fix
Status/Abandoned
Status/Blocked
Status/Need More Info
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
project-halkyon/halkyon-curator!12
Loading…
Reference in a new issue
No description provided.
Delete branch "refs/pull/12/head"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
First step toward a dedicated, public Flutter studyset curated from docs.flutter.dev. This adds the curator that turns a hand-authored JSON file into a Halkyon archive — the same proven "note-plus-derived-flashcards" pipeline as the grammar curator.
What
lib/src/flutter_docs_lessons.dart— input model. Top-level studyset metadata (title,license,license_holder,source_version,curated_at), alessonsarray (each:title,body,tags, optionalsourceURL,cards), and anannouncementsarray for the "What's new" section.lib/src/flutter_docs_curator.dart—FlutterDocsCurator: emits one studyset carrying the first-classsourceVersion+curatedAt; each lesson → a note (its body, with aSource:line when a URL is given) + its front/back cards tagged by topic; each announcement → a note (summary + source link) + cards taggedwhats-newand a per-releaseflutter-<version>tag.bin/flutter_docs.dart— CLI (--input/--output/--title), mirroringbin/grammar.dart.example/flutter_docs.sample.json+ tests.source_version+curated_atto the curator'sArchiveStudyset(snake_case keys matching the halkyon-learn reader; additive, no archive-version bump).Versioning & licensing (the two design points)
source_version("Flutter 3.24") +curated_atride on the studyset so the app can show which release the content reflects (the app-side chip lands in a follow-up PR on halkyon-learn).announcementcan only ever emit an originalsummary+ a link — never the source's text. The README documents this.Tests
test/flutter_docs_curator_test.dart— parse + rejection cases, version metadata round-trip (snake_case keys), source-line attribution, per-announcementwhats-new/version tagging, ordering, and the bundled-example check. Full suite (87 tests) passes;dart analyze lib bin testclean; CLI smoke-tested against the sample.Next steps (separate PRs)
source_version+curated_atcolumns tostudysets.Studyset, Drift (+ migration), both sync serializers, and a version chip in the detail screen.