docs+feat: migrate Day 1 and Day 2 autograding to workflows#202
Conversation
- Delete legacy classroom/autograding-day1.json and autograding-day2.json (workflows in learning-room/.github/workflows/autograder-*.yml are now the only source of truth for what each automated check verifies) - Update all facilitator docs (admin/classroom/, classroom/, GO-LIVE, runbook) to instruct leaving the GitHub Classroom autograding tests area empty for both Day 1 and Day 2 assignments - Document autograder-watchdog.yml behavior accurately in admin/classroom/autograding-setup.md (workflow_run-triggered fallback that only fires when a sibling autograder reports conclusion=failure and no challenge result comment was posted) - Extend scripts/classroom/Test-LearningRoomTemplate.ps1 to assert all twelve required workflow files exist in the smoke-test repo (catches half-finished template syncs) - Sync admin/qa-bundle/ copies from canonical sources so the QA pack matches the new flow
- Add autograder-issue-filed.yml: acknowledges first issue (Challenge 2) with a friendly comment and a count-based follow-up on later issues - Add autograder-branch-commit.yml: verifies at least one commit on a non-default branch (Challenge 5) on push events - Add autograder-pr-link.yml: verifies the PR body contains a closing keyword followed by an issue number (Challenge 6) - Extend autograder-watchdog.yml workflow_run listener and the in-job challengeMarkers array to cover Challenges 2, 5, and 6 alongside the existing 7, 10, 14, and 16 entries All three new workflows post deterministic, hard-coded English feedback as PR/issue comments (no AI, no Copilot subscription required) and use a marker-based update-in-place pattern so the comment thread stays readable for screen readers.
Regenerates html/ via 'npm run build:html' so the rendered pages and
search-index.json match the corrected source markdown:
- classroom/assignment-day{1,2}-*.html: drop the deprecated
'Autograding: See autograding-day{1,2}.json' metadata line
- classroom/grading-guide.html, classroom/index.html: reflect the new
workflow-based check list
- admin/classroom/autograding-setup.html: now describes the
workflow-based flow and watchdog fallback
- admin/LEARNING-ROOM-E2E-QA-RUNBOOK.html and qa-bundle copies: pick
up the same edits
- search-index.json: removes all stale 'autograding-day{1,2}.json'
references from indexed bodies (the only remaining mentions are
intentional historical references in autograding-setup.md)
Generated by 'npm run build:html'. No hand-edits.
|
Hi! I am Aria. Here is my review of your pull request: Report StatusValidation Needs Attention [ACTION REQUIRED] Required Checks
Learning ResourcesBased on your changes, these guides might help: Automated validation by Learning Room Bot. Aria generated this review. Last updated: 2026-05-12T19:33:37.199Z |
Learning Room Validation ReportGreat work. Your changes look good. Resources |
Peer Review AssignedHi @accesswatch! Your PR has been automatically paired with @taylorarndt for peer review. For @taylorarndt:This is a great opportunity to practice code review skills! Here's what to look for: Content Quality:
Accessibility:
Documentation:
Review Guidelines:
Resources: Pairing by Learning Room Grouping Engine |
There was a problem hiding this comment.
Pull request overview
Migrates Day 1/Day 2 autograding off GitHub Classroom’s test-case UI and into first-class GitHub Actions workflows shipped in the Learning Room template, plus updates facilitator/student documentation and regenerates the static HTML site to match.
Changes:
- Adds new autograder workflows for Challenges 2/5/6 and wires them into the autograder watchdog.
- Removes legacy Classroom autograding JSON files and updates facilitator runbooks/docs to leave Classroom “Autograding tests” empty.
- Updates smoke/template validation scripts to assert the full required workflow set is present; regenerates HTML docs.
Reviewed changes
Copilot reviewed 57 out of 58 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/classroom/Test-LearningRoomTemplate.ps1 | Expands smoke verification to assert all required workflow files exist in a freshly created template-based repo. |
| admin/qa-bundle/scripts/classroom/Test-LearningRoomTemplate.ps1 | QA-bundle copy of the expanded smoke verification workflow list. |
| learning-room/.github/workflows/autograder-issue-filed.yml | New Challenge 2 workflow posting issue feedback when a student opens an issue. |
| learning-room/.github/workflows/autograder-branch-commit.yml | New Challenge 5 workflow posting PR feedback verifying commits are on a non-default branch. |
| learning-room/.github/workflows/autograder-pr-link.yml | New Challenge 6 workflow posting PR feedback verifying closing keywords + #N exist in PR body. |
| learning-room/.github/workflows/autograder-watchdog.yml | Updates watchdog to listen for the new workflows and recognize their comment markers. |
| classroom/autograding-day1.json | Deletes legacy Classroom autograding definitions for Day 1. |
| classroom/autograding-day2.json | Deletes legacy Classroom autograding definitions for Day 2. |
| README.md | Removes references to deleted classroom/autograding-day{1,2}.json. |
| classroom/README.md | Updates facilitator setup instructions to skip Classroom autograding UI and rely on template workflows. |
| classroom/grading-guide.md | Updates grading guidance to reflect workflow-based automated checks (not JSON test cases). |
| classroom/assignment-day1-you-belong-here.md | Updates assignment header + wording to reflect workflow-based checks and no Classroom autograding configuration. |
| classroom/assignment-day2-you-can-build-this.md | Updates assignment header + wording to reflect workflow-based checks and no Classroom autograding configuration. |
| admin/classroom/autograding-setup.md | Replaces the old “enter these tests into Classroom” guide with a deprecation notice + workflow mapping. |
| admin/classroom/live-facilitation-flow.md | Replaces “configure autograding” steps with “verify workflows exist; leave tests empty” steps. |
| admin/classroom/README.md | Updates admin classroom pack docs to reflect workflow-based autograding and updated facilitation checklist. |
| GO-LIVE-QA-GUIDE.md | Updates go-live checklist to validate workflow-based autograding and new enrollment/release signals. |
| admin/LEARNING-ROOM-E2E-QA-RUNBOOK.md | Updates end-to-end QA steps for “no Classroom autograding UI” and assignment-link registration model. |
| admin/qa-bundle/GO-LIVE-QA-GUIDE.md | QA-bundle copy of the updated go-live checklist. |
| admin/qa-bundle/README.md | Removes references to deleted autograding JSONs in the QA bundle docs listing. |
| admin/qa-bundle/classroom/README.md | QA-bundle copy of the updated Classroom setup instructions (leave tests empty). |
| admin/qa-bundle/classroom/grading-guide.md | QA-bundle copy of the updated grading guide (workflows instead of JSON). |
| admin/qa-bundle/classroom/assignment-day1-you-belong-here.md | QA-bundle copy of assignment text updates for workflow-based checks. |
| admin/qa-bundle/classroom/assignment-day2-you-can-build-this.md | QA-bundle copy of assignment text updates for workflow-based checks. |
| admin/qa-bundle/admin/classroom/autograding-setup.md | QA-bundle copy of the deprecated autograding setup doc (now points to workflows). |
| admin/qa-bundle/admin/classroom/live-facilitation-flow.md | QA-bundle copy of the updated live facilitation flow. |
| admin/qa-bundle/admin/classroom/README.md | QA-bundle copy of the updated admin classroom README. |
| admin/qa-bundle/admin/LEARNING-ROOM-E2E-QA-RUNBOOK.md | QA-bundle copy of the updated end-to-end QA runbook. |
| html/README.html | Regenerated static HTML reflecting removal of autograding JSON references. |
| html/REGISTER.html | Regenerated static HTML adding “new student fast path” enrollment content and updated automation notes. |
| html/GO-LIVE-QA-GUIDE.html | Regenerated static HTML reflecting workflow-based autograding + assignment-link registration checks. |
| html/classroom/index.html | Regenerated static HTML reflecting “leave autograding tests empty” setup steps and workflow verification text. |
| html/classroom/grading-guide.html | Regenerated static HTML reflecting workflow-based automated checks. |
| html/classroom/assignment-day1-you-belong-here.html | Regenerated static HTML reflecting workflow-based automated checks wording. |
| html/classroom/assignment-day2-you-can-build-this.html | Regenerated static HTML reflecting workflow-based automated checks wording. |
| html/admin/REGISTRATION-QUICKSTART.html | Regenerated static HTML reflecting assignment-link registration model (no org invite token). |
| html/admin/REGISTRATION-ADMIN.html | Regenerated static HTML reflecting assignment-link registration architecture and verification/rollback steps. |
| html/admin/QUICK_START_SETUP.html | New static HTML quick-start page for assignment-link registration setup. |
| html/admin/IMPLEMENTATION_SUMMARY.html | New static HTML implementation summary for registration/classroom integration changes. |
| html/admin/GITHUB_CLASSROOM_ARCHITECTURE.html | New static HTML architecture doc for the assignment-link registration + dashboard model. |
| html/admin/FINE_GRAINED_TOKEN_SETUP.html | New static HTML documenting the current token/variable setup expectations. |
| html/admin/ENROLLMENT_SETUP_CHECKLIST.html | New static HTML checklist for enrollment setup/configuration. |
| html/admin/classroom/index.html | Regenerated static HTML reflecting updated admin classroom guidance and new “source of truth”. |
| html/admin/classroom/live-facilitation-flow.html | Regenerated static HTML reflecting “verify workflows; no Classroom autograding UI config” steps. |
| html/admin/classroom/autograding-setup.html | Regenerated static HTML reflecting deprecation of Classroom test-case setup and workflow mapping. |
| html/admin/CLASSROOM_INTEGRATION_GUIDE.html | New static HTML guide for assignment-link based Classroom integration and facilitator workflows. |
| html/admin/qa-bundle/index.html | Regenerated static HTML reflecting removal of autograding JSONs. |
| html/admin/qa-bundle/GO-LIVE-QA-GUIDE.html | Regenerated static HTML reflecting updated go-live checklist content. |
| html/admin/qa-bundle/classroom/index.html | Regenerated static HTML reflecting updated Classroom setup guidance. |
| html/admin/qa-bundle/classroom/grading-guide.html | Regenerated static HTML reflecting workflow-based automated checks. |
| html/admin/qa-bundle/classroom/assignment-day1-you-belong-here.html | Regenerated static HTML reflecting workflow-based automated checks wording. |
| html/admin/qa-bundle/classroom/assignment-day2-you-can-build-this.html | Regenerated static HTML reflecting workflow-based automated checks wording. |
| html/admin/qa-bundle/admin/classroom/index.html | Regenerated static HTML reflecting updated admin classroom pack guidance and “source of truth”. |
| html/admin/qa-bundle/admin/classroom/live-facilitation-flow.html | Regenerated static HTML reflecting updated facilitation flow steps. |
| html/admin/qa-bundle/admin/classroom/autograding-setup.html | Regenerated static HTML reflecting autograding deprecation and workflow mapping. |
| workflow_run: | ||
| workflows: | ||
| - "Challenge 2: Issue Filed Check" | ||
| - "Challenge 5: Branch Commit Check" | ||
| - "Challenge 6: PR Linked to Issue Check" | ||
| - "Challenge 7: Merge Conflict Resolution Check" | ||
| - "Challenge 10: Local Commit Check" | ||
| - "Challenge 14: Issue Template Validation" |
| COMMITS=$(git log --oneline origin/main..HEAD | wc -l) | ||
| else | ||
| BRANCH="${GITHUB_REF#refs/heads/}" | ||
| COMMITS=$(git log --oneline origin/main..HEAD 2>/dev/null | wc -l || echo 0) | ||
| fi |
| on: | ||
| push: | ||
| branches-ignore: | ||
| - main | ||
| pull_request: | ||
| types: [opened, synchronize, reopened] | ||
| branches: | ||
| - main | ||
|
|
Replaces the JSON-file validation block with workflow-file assertions
that match the new autograding model:
- Drop validateAutogradingJson and its four tests that opened the now-
deleted classroom/autograding-day{1,2}.json files.
- Add four workflow-file tests that verify, for every Day 1 and Day 2
challenge (2, 5, 6, 7, 10, 14, 16):
- the corresponding autograder-*.yml exists in the learning-room
template
- each workflow posts a '## Challenge N:' marker comment so the
update-in-place and watchdog logic can identify it
- autograder-watchdog.yml references every primary marker so the
fallback notice covers all seven checks
- Add the three previously-missing autograder workflows
(issue-filed, branch-commit, pr-link) plus autograder-watchdog.yml
to the template-readiness file list.
- Update the file-header comment and the section-2 banner to describe
workflows instead of JSON.
All 98 automation tests pass locally.
Learning Room Validation ReportGreat work. Your changes look good. Resources |
|
Hi! I am Aria. Here is my review of your pull request: Report StatusValidation Needs Attention [ACTION REQUIRED] Required Checks
Learning ResourcesBased on your changes, these guides might help: Automated validation by Learning Room Bot. Aria generated this review. Last updated: 2026-05-12T19:43:53.116Z |
|
Hi! I am Aria. Here is my review of your pull request: Report StatusValidation Needs Attention [ACTION REQUIRED] Required Checks
Learning ResourcesBased on your changes, these guides might help: Automated validation by Learning Room Bot. Aria generated this review. Last updated: 2026-05-12T19:46:34.446Z |
Progress UpdateGreat work, @accesswatch! Current Level: Explorer Available Challenges:
Keep going! |
Summary
Migrates Day 1 and Day 2 autograded checks off the broken GitHub Classroom test-case UI and onto plain GitHub Actions workflows that live in the Learning Room template. Skips the Classroom autograding step entirely for both assignments.
Why
Classroom's test-case modal intermittently fails to save (the modal closes silently and the list comes back empty). Re-running setup for every cohort is fragile. Workflows in the template repo are copied into every student repo automatically and produce richer, more accessible feedback than the Classroom test runner.
Commits in this PR
docs: migrate Day 1 and Day 2 autograding to workflows-- doc updates, delete legacyclassroom/autograding-day{1,2}.json, sync qa-bundle, extendTest-LearningRoomTemplate.ps1to assert all twelve required workflow filesfeat(autograder): add Challenge 2/5/6 workflows and extend watchdog-- the three previously-missing Day 1 check workflows, plus watchdog wiring for thembuild(html): regenerate static site to reflect autograding migration--npm run build:htmloutput sosearch-index.jsonand rendered pages match the new docsStudent-facing feedback model
Every workflow posts deterministic, hard-coded English feedback as a PR or issue comment, updates in place using a stable marker (
## Challenge N:), and has an in-job error handler plus a watchdog fallback. No AI, no Copilot subscription required for the autograder.What facilitators do differently
When creating Day 1 and Day 2 assignments in GitHub Classroom:
Full details in admin/classroom/autograding-setup.md.
Test plan
npm run test:automation(workflow readiness tests)scripts/classroom/Test-LearningRoomTemplate.ps1against a freshly-created repo from the templateCloses #N, confirms three comments appearRelated
Follow-up tracked in #204 (Challenge Coach podcast transcripts refresh after this migration lands).