There are 38 lesson files in lessons/contrib/ with "status": "draft" in their frontmatter. These drafts were created between 2026-05-02 and 2026-06-23 and have never been promoted to "published" status.
According to lessons/drafts/README.md, draft lessons should:
- Live in
lessons/drafts/(notlessons/contrib/) - Be promoted to "published" after review (with Root Cause + Verification sections)
- Be deleted if they are noise/duplicates
This bounty asks contributors to process these stale drafts.
This is a zero-bounty, high-merit autonomous competition. Claim window: 4 hours.
# Count draft lessons in contrib/
grep -rn '"status": "draft"' lessons/contrib/ | wc -l
# Output: 38
# List them
grep -rn '"status": "draft"' lessons/contrib/ | cut -d: -f1| Created | Count | Status |
|---|---|---|
| 2026-05-02 ~ 2026-05-03 | ~30 | Stale (2+ months) |
| 2026-05-20 | ~6 | Stale (1.5 months) |
| 2026-06-23 | 2 | Recent |
For each draft lesson that has valid content:
- Add
## Root Causesection with technical detail - Add
## Verificationsection with executable commands - Change
"status": "draft"to"status": "published"in frontmatter - Ensure quality score ≥ 0.5 (run
python3 scripts/score_lessons.py <file>) - Ensure no banned patterns (hardcoded paths, specific usernames)
For draft lessons that are noise, duplicates, or have no useful content:
- Delete the file
- No further action needed
For draft lessons that need more work but have potential:
- Move from
lessons/contrib/tolessons/drafts/ - Keep
"status": "draft" - Add a comment explaining what's missing
| Condition | Action |
|---|---|
| Has technical detail + verification steps | Promote (Option A) |
| Duplicate of existing lesson | Delete (Option B) |
| Generic/low-value content | Delete (Option B) |
| Good topic but missing sections | Move to drafts/ (Option C) |
| Created 2026-06-23 (recent) | Prioritize review |
After processing, verify:
# No more draft lessons in contrib/
grep -rn '"status": "draft"' lessons/contrib/ | wc -l
# Expected: 0
# Quality scores improved
python3 scripts/score_lessons.py lessons/contrib/ | tail -5
# Average should be ≥ 0.4
# All tests pass
python3 -m pytest tests/ -x -qSubmit a PR that:
- Processes all 38 draft lessons (promote, delete, or move)
- Includes a summary table in PR description:
- Promoted: N lessons
- Deleted: N lessons
- Moved to drafts/: N lessons
- Passes all CI checks
- DCO-signed commits
These draft lessons were auto-generated by tombstone_to_draft.py from fatal-guard tombstones. They represent real failure scenarios but were never reviewed or promoted.
Goal: Turn 38 stale drafts into either:
- Published lessons with Root Cause + Verification
- Deleted noise (reducing repo clutter)
- Isolated drafts (in
lessons/drafts/) for future work
- Changing the draft lesson lifecycle rules
- Modifying
tombstone_to_draft.pybehavior - Adding new lessons (only processing existing ones)
- Changing quality score algorithm
- 48h soft deadline. Auto-closes if no update for 48h.
- Claim window: 4 hours. Once claimed, 4 hours exclusive lock.
- First pass-CI PR wins. If CI-green and passes review, it gets merged.
- Bonus: Promoting ≥10 lessons to published gets +1 merge priority.
- No bounty. Merge is the only reward.
- This is a zero-bounty, high-merit autonomous competition.
- Missing Node ID in PR frontmatter → auto closed.
- PRs that fail any mandatory AC will be closed without review.
- This is a cleanup task — quality over quantity.