githubnext / githubnext/gh-aw-workshop

[curriculum-eval] side-quest-17-07-repo-poisoning.md: cognitive_load & active_learning — four security mechanisms stacked before any exercise

Closed Beginner friendly
#3,443 0 comments 0 reactions 0 assignees View on GitHub
curriculum documentation quality
Dominant language
JavaScript
Stars
47
Forks
19
Avg merge
8h 54m
Merged PRs (30d)
50

Description

**File:** `workshop/side-quest-17-07-repo-poisoning.md`
**Overall Score:** `4.97 / 10.0` (corpus mean: `6.14`)

**Flagged Dimensions:**

| Dimension | Score | Benchmark | Delta |
|---|---|---|---|
| word_count | 1224 words | ≤ 800 words | −4.4 (cognitive_load penalty) |
| new_concepts | 23 | ≤ 15 per step | −8 |
| active_learning | 2.7 / 10.0 | activity density ≥ 3 → 10.0 | −7.3 |
| checkpoint_quality* | 0.0 / 10.0 | present + ≥4 items → 10.0 | measurement artifact, see note |

*Note: the page has a real `## :white_check_mark: Checkpoint` with 6 checklist items — `missing_checkpoint` is a false positive from the rubric's emoji-shortcode detection bug (filed separately). This issue focuses on genuine problems: length, concept density, and low activity-to-word ratio.

**Root Cause (≤ 2 sentences):**
This security side quest introduces a dense cluster of security concepts (repository poisoning, content-driven manipulation, `contents: write`/`read`, `toolsets: [everything]`, `safe-outputs: create-pull-request`, `allowed-files`, `protected-files.exclude/policy`, `network.allowed-domains`) across five separate defense mechanisms in a single continuous page, and most of that content is delivered as prose and reference tables rather than as learner-performed steps — only 2 code blocks and 6 checklist items support 1224 words of explanation.

**Evidence (quoted from the file):**
> gh-aw gives you three layers to prevent repository poisoning.
> ### Declare read-only permissions
> ### Route writes through a pull request
> ### Restrict which paths can change
> ### Limit network destinations

Four defense mechanisms (the heading count is inconsistent with the "three layers" claim) are each explained with a code block and prose but only two `:pencil2: Exercise` sections at the very end give the learner anything to actually do with the material.

**Learning Science Rationale:**
Sweller's Cognitive Load Theory predicts that stacking four distinct, technically dense security mechanisms (permissions, safe-outputs, protected-files, network restrictions) in sequence — each with its own YAML syntax — before any hands-on exercise overloads working memory; by the time the learner reaches the "Spot the Dangerous Frontmatter" exercise, they must recall all four mechanisms simultaneously rather than practicing them one at a time. Mayer's segmenting principle suggests breaking this into smaller, learner-paced segments (one mechanism, one micro-exercise, repeat) would improve retention over the current concept-then-concept-then-concept-then-exercise structure.

**Improvement Prompt (for an agent):**
```
Edit workshop/side-quest-17-07-repo-poisoning.md to reduce concept density and add active-learning
checkpoints between concepts:

1. Fix the "three layers" claim to match the actual four subsections (read-only permissions, PR-gated
writes, protected-files restrictions, network allow-listing) — either merge two closely related
subsections (e.g., fold "Restrict which paths can change" into "Route writes through a pull request"
since protected-files is a sub-feature of create-pull-request) to get to three, or update the text to
say "four layers."
2. After each of the (now three or four) defense subsections, add one short inline self-check question
the learner can answer without leaving the page (e.g., after "Declare read-only permissions": "If your
workflow only reads issues and never commits, what should `contents:` be set to?"). This raises
activity_density without adding a full exercise per section.
3. Trim the "Why This Matters" and "The Attack" narrative sections to the minimum needed to motivate the
scenario — aim to cut total word_count from ~1224 toward 900-1000 words.
4. Keep both existing ":pencil2: Exercise" blocks and the "## :white_check_mark: Checkpoint" section with
its 6 checklist items unchanged.
5. Run `npx --yes markdownlint-cli2 "workshop/side-quest-17-07-repo-poisoning.md"` after editing.
```

**Expected Score After Fix:** `7.4 / 10.0` (after also correcting the checkpoint-detection rubric bug)

> Generated by [🔬 Curriculum Quality Evaluator](https://github.com/githubnext/gh-aw-workshop/actions/runs/35098365907) · copilot · auto · 88.8 AIC · ⌖ 13.7 AIC · ⊞ 9.5K · [◷](https://github.com/search?q=repo%3Agithubnext%2Fgh-aw-workshop+is%3Aissue+%22gh-aw-workflow-call-id%3A+githubnext%2Fgh-aw-workshop%2Fcurriculum-evaluator%22&type=issues)
> - [x] expires on Sep 17, 2026, 1:01 PM UTC

Contributor guide

No contributing guide indexed for this repository

Research direction

Open workshop/side-quest-17-07-repo-poisoning.md and compare the opening “three layers” claim with its four defense subsections, exercises, and checkpoint. Keep both :pencil2: exercises and the six-item checkpoint unchanged while adding the requested inline self-checks and trimming the named narrative sections; done means the content is shorter, concept density is reduced, and npx --yes markdownlint-cli2 "workshop/side-quest-17-07-repo-poisoning.md" passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
markdown, yaml
Domain
content, documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
86/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.