# How to Report GitHub Issues for Curriculum Problems in OSSU

> Learn to report OSSU curriculum problems effectively using GitHub issues. Follow our RFC template and structured workflow for accurate reporting and ensure your feedback is addressed.

- Repository: [Open Source Society University/computer-science](https://github.com/ossu/computer-science)
- Tags: how-to-guide
- Published: 2026-02-24

---

**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`](https://github.com/ossu/computer-science/blob/main/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`](https://github.com/ossu/computer-science/blob/main/.github/ISSUE_TEMPLATE/request-for-comment-template.md). This enforces a consistent structure that maintainers use to evaluate proposals against the [`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/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:

```markdown
**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`](https://github.com/ossu/computer-science/blob/main/.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`](https://github.com/ossu/computer-science/blob/main/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`](https://github.com/ossu/computer-science/blob/main/.github/ISSUE_TEMPLATE/request-for-comment-template.md)** – The mandatory RFC template ensuring uniform issue structure
- **[`.github/workflows/delete-empty-issues.yml`](https://github.com/ossu/computer-science/blob/main/.github/workflows/delete-empty-issues.yml)** – The automated quality gate that rejects empty or template-missing issues
- **[`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_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`](https://github.com/ossu/computer-science/blob/main/.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`](https://github.com/ossu/computer-science/blob/main/CONTRIBUTING.md)
- The [`.github/workflows/delete-empty-issues.yml`](https://github.com/ossu/computer-science/blob/main/.github/workflows/delete-empty-issues.yml) action automatically closes any issue missing the required Problem statement or template structure
- Issues are evaluated against the [`CURRICULAR_GUIDELINES.md`](https://github.com/ossu/computer-science/blob/main/CURRICULAR_GUIDELINES.md) to 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`](https://github.com/ossu/computer-science/blob/main/.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`](https://github.com/ossu/computer-science/blob/main/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`](https://github.com/ossu/computer-science/blob/main/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`](https://github.com/ossu/computer-science/blob/main/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.