Skip to content

[curriculum-eval] curriculum_assessment.py: checkpoint_quality — checkpoint regex misses ✅ shortcode used corpus-wide #3485

Description

@github-actions

File: .github/skills/curriculum-quantitative-assessment/curriculum_assessment.py (tooling bug affecting all 93 workshop files, root cause of all 5 rubric findings)
Overall Score: N/A — this is a scorer defect, not a content defect (corpus mean: 6.14 / 10.0)

Flagged Dimensions:

Dimension Score Benchmark Delta
checkpoint_quality 0.0 (in 88/93 files) 10 if checkpoint present with ≥4 items -10.0

Root Cause (≤ 2 sentences):
CHECKPOINT_RE = re.compile(r"##\s+✅\s*Checkpoint", re.IGNORECASE) in curriculum_assessment.py only matches a literal emoji character, but every workshop step (per repository convention, workshop/00-welcome.md and 87 other files) uses the GitHub Markdown shortcode :white_check_mark: in headings like ## :white_check_mark: Checkpoint. As a result, has_checkpoint is False and checkpoint_quality scores 0.0 for 88 of 93 files — including all 5 files flagged in findings (side-quest-01-02-environment-reference.md, side-quest-17-07-repo-poisoning.md, 04-github-actions-intro.md, side-quest-11-06-anthropic-key.md, 05-agentic-workflows-intro.md) — even though each of these files verifiably has a well-formed ## :white_check_mark: Checkpoint section with a specific, multi-item checklist directly beneath it.

Evidence (quoted from the file):

CHECKPOINT_RE = re.compile(r"##\s+✅\s*Checkpoint", re.IGNORECASE)

Compare against the actual heading used throughout the corpus (e.g. workshop/05-agentic-workflows-intro.md):

## :white_check_mark: Checkpoint

Learning Science Rationale:
This is a measurement-validity problem rather than a curriculum-design problem: the rubric's construct (verifiable checkpoints that support self-assessment and formative feedback, per mastery-learning theory) is present in the actual content, but the instrument fails to detect it due to a shortcode-vs-emoji mismatch. Reporting checkpoint_quality: 0 for pages that do have well-formed checkpoints produces false-negative findings, wastes reviewer/agent effort chasing a non-existent gap, and — because checkpoint_quality carries a 2.0 weight — depresses the overall_score of 88/93 files by roughly 1.5–2.0 points each, systematically skewing the corpus mean, the Part 1/Part 2 summaries, and every trend calculation in score-history.json.

Improvement Prompt (for an agent):

Open .github/skills/curriculum-quantitative-assessment/curriculum_assessment.py and fix
CHECKPOINT_RE so it matches the repository's actual checkpoint heading convention. The
current pattern is:

    CHECKPOINT_RE = re.compile(r"##\s+✅\s*Checkpoint", re.IGNORECASE)

Update it to also match the GitHub Markdown shortcode form used throughout workshop/*.md,
for example:

    CHECKPOINT_RE = re.compile(r"##\s+(?:✅|:white_check_mark:)\s*Checkpoint", re.IGNORECASE)

Re-run the rubric scorer against the workshop/ corpus and confirm has_checkpoint becomes
True for all 88 files using the ":white_check_mark:" heading style (verify with:
grep -rl "^## :white_check_mark: Checkpoint" workshop/*.md | wc -l  → should be 88).
Regenerate corpus-metrics.json, rubric-results.json, and score-history.json (or the
equivalent generation step) so downstream consumers see corrected checkpoint_quality,
overall_score, and corpus mean/stdev values. Do not modify any workshop/*.md content —
the checkpoints themselves are already correct; only the detection regex is wrong.

Expected Score After Fix: Corpus mean rises from 6.14 / 10.0 toward an estimated 7.5–8.0 / 10.0 once checkpoint_quality correctly scores the 88 affected files; each of the 5 originally flagged findings should move from below-threshold (4.935.43) to above the 5.52 threshold once checkpoint_quality is restored (e.g. side-quest-01-02-environment-reference.md from 4.93 to an estimated ~7.4).

Generated by 🔬 Curriculum Quality Evaluator · copilot · auto · 96.3 AIC · ⌖ 12.2 AIC · ⊞ 9.5K ·

  • expires on Sep 18, 2026, 1:02 PM UTC

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions