How to Report GitHub Issues for Curriculum Problems in OSSU
Yes, OSSU uses structured GitHub issues with a mandatory Request for Comment (RFC) template to report curriculum problems, and an automated workflow closes any issues that don't follow the required format.
OSSU (Open Source Society University) maintains its open-source computer science curriculum in the ossu/computer-science repository. When learners encounter gaps in required topics, outdated courses, or duplicated content, the project uses GitHub issues for curriculum problems to manage these changes collaboratively through a standardized RFC process.
When to Open GitHub Issues for Curriculum Problems vs. Pull Requests
According to CONTRIBUTING.md, contributors must first determine whether a change is substantive. Curriculum progression concerns, missing required topics, or course quality discussions belong in GitHub issues. Non-substantive fixes—such as correcting broken URLs or typographical errors—should be submitted directly as pull requests without opening an issue first.
This distinction ensures that the issue tracker remains focused on high-level curriculum architecture rather than minor maintenance tasks.
Structuring GitHub Issues for Curriculum Problems with the RFC Template
Every curriculum issue must follow the Request for Comment template defined in .github/ISSUE_TEMPLATE/request-for-comment-template.md. This enforces a consistent structure that maintainers use to evaluate proposals against the CURRICULAR_GUIDELINES.md.
The template requires five specific sections:
- Problem – A concise one-sentence description of the curriculum gap
- Duration – The expected discussion period (typically ≤ 1 month)
- Background – Detailed context explaining why the current state is problematic
- Proposal – A bulleted list of specific changes, including links to relevant courses or pull requests
- Alternatives – Optional other approaches considered
Example Issue Body
When creating an issue through the GitHub UI, your markdown should follow this exact structure:
**Problem:**
OSSU lists *CS50* as a required course for the "Operating Systems" track, but the course does not cover any OS-level concepts.
**Duration:**
1 month (expected discussion period)
**Background:**
The Operating Systems track expects learners to have a solid foundation in processes, memory management, and concurrency. CS50 focuses mainly on introductory programming and web development, leaving a gap in OS fundamentals. This has caused confusion among learners who expect OS-specific content after completing the prerequisite courses.
**Proposal:**
- Replace CS50 with the free "Operating Systems: Three Easy Pieces" course (https://github.com/ossu/computer-science/blob/master/coursepages/ostep/README.md).
- Update the prerequisite list in the curriculum JSON to reflect the new requirement.
- Add a note in the track description linking to the new course.
**Alternatives:**
- Keep CS50 but add a supplemental OS module (link to a separate repo).
- Use a different introductory OS course such as "Operating Systems Concepts" from Coursera.
Automated Enforcement with delete-empty-issues.yml
The repository uses a GitHub Action defined in .github/workflows/delete-empty-issues.yml to automatically close malformed submissions. This workflow triggers when an issue is opened or edited, verifying that the body contains the required Problem sentence and proper description.
If the issue body is empty or missing the structured template, the bot immediately comments, closes the issue, and directs the author to the RFC template. This automation reduces maintainer overhead and enforces data quality standards across all curriculum discussions.
Key Files in the Issue Architecture
Understanding these source files helps contributors navigate the reporting process effectively:
CONTRIBUTING.md– Defines the decision criteria for opening issues versus pull requests and links to the issue template.github/ISSUE_TEMPLATE/request-for-comment-template.md– The mandatory RFC template ensuring uniform issue structure.github/workflows/delete-empty-issues.yml– The automated quality gate that rejects empty or template-missing issuesCURRICULAR_GUIDELINES.md– The formal criteria document against which all curriculum proposals are judged
Summary
- GitHub issues for curriculum problems in OSSU require the Request for Comment (RFC) template found in
.github/ISSUE_TEMPLATE/request-for-comment-template.md - Substantive curriculum changes (course replacements, missing topics) belong in issues; broken links belong in pull requests per
CONTRIBUTING.md - The
.github/workflows/delete-empty-issues.ymlaction automatically closes any issue missing the required Problem statement or template structure - Issues are evaluated against the
CURRICULAR_GUIDELINES.mdto ensure academic rigor and consistency - Following the five-section format (Problem, Duration, Background, Proposal, Alternatives) ensures your curriculum concern receives prompt maintainer attention
Frequently Asked Questions
What happens if I submit a blank issue to the OSSU repository?
The .github/workflows/delete-empty-issues.yml GitHub Action will automatically detect the missing content, post a comment directing you to the RFC template, and close the issue within seconds of submission. You must reopen a new issue using the proper template structure.
Can I report a broken course link using a GitHub issue?
No. According to CONTRIBUTING.md, broken URLs and other non-substantive changes should be submitted as pull requests directly. The issue tracker is reserved for curriculum architecture discussions, such as replacing courses that no longer cover required topics or adding missing subject matter to degree tracks.
How long should I set the Duration field in an RFC issue?
The standard discussion period is typically one month or less, as specified in the request-for-comment-template.md. This timeframe provides adequate community feedback while preventing curriculum decisions from stalling indefinitely. Complex overhauls may warrant longer periods, but you should justify extended timelines in the issue description.
Where can I find the criteria used to judge my curriculum proposal?
Maintainers evaluate all issues against the CURRICULAR_GUIDELINES.md file in the repository root. This document defines the academic standards, prerequisite relationships, and degree requirements that proposals must satisfy. Reviewing these guidelines before submitting ensures your proposal aligns with OSSU's educational philosophy.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →