How riscv/learn works
1. This repo is a curated documentation/catalog project, not an application runtime. The architecture is centered on a single canonical index, README.md, which acts as the published front page and table of contents for all learning resources.
2. The content model is taxonomy-based. README.md is organized into major sections by learner level and resource type: beginner and intermediate learning resources, software/tools, open RISC-V implementations, hardware boards/dev kits, and articles/presentations. Each section is presented as maintained markdown tables with metadata like author, description, access link, and date added.
3. The primary data flow is editorial rather than computational: contributors discover a resource, propose it through GitHub issues or pull requests, maintainers review it, and then update the curated tables in README.md. That makes the README the authoritative source of truth for downstream readers and links.
4. contributing.md defines the contribution boundary and expectations. It is the human workflow guide for what qualifies as a resource addition or correction and how entries should be formatted, helping keep the catalog consistent.
5. The .github/ISSUE_TEMPLATE directory provides structured intake for two main contribution types: general requests and new tutorial/resource submissions. This suggests the repo uses GitHub Issues as one front door for community-supplied content, not just pull requests.
6. The .github/workflows directory shows the quality gates. action.yml is the markdown link-check workflow used to validate that catalog links remain live, and linkcheck.yml plus mlc_config.json indicate automated link verification configuration. This is important because the repo’s value depends heavily on external URLs staying accurate.
7. The .github/scripts/stamp_readme.py script is a small automation utility for maintaining README metadata, likely stamping or updating generated content markers in the main document. It reinforces that the README is maintained as a structured artifact, not hand-edited freeform prose alone.
8. The articles/ folder is the only substantive content asset directory. It currently contains a PDF on x264 SAD optimization with the RISC-V Vector extension, which is linked from the articles/presentations section in the README. This is a separate binary document boundary rather than embedded inline markdown.
9. The roadmap/ directory is present as a planned/optional visual learning path, but in the README it is commented out. Architecturally, that makes it a dormant content area rather than an active part of the published navigation.
10. External services are part of the presentation layer, not the repo’s core logic: GitHub Actions for CI, link-checking services, and third-party destination sites for courses, tools, boards, and papers. The repo mostly references them rather than hosting them.
11. The repo has a strong governance layer for consistency: alphabetical sorting notes in tables, date-added columns, and separate beginner/intermediate groupings. Those conventions matter for diagramming because they show the content is managed as a structured registry.
12. Overall, the architecture is a lightweight community-maintained knowledge base: contributors feed curated metadata into markdown, automation guards link integrity, and the README serves as the distribution surface for learners exploring the RISC-V ecosystem.
Main entry points: README.md README · workflows Workflows · ISSUE_TEMPLATE Issue templates · contributing.md Contributing
Components 14
Catalog
Published learning index and curated content
- README · Main curated table of contents and source of truth
README.md - External resources · Courses, tools, boards, papers, and destinations referenced by the catalog
Governance
Contribution guidance and intake
- Contributing · Rules for submissions, formatting, and review
contributing.md - Issue templates · Structured GitHub issue entry points for requests and resources
.github/ISSUE_TEMPLATE - General request · Template for catalog requests and corrections
.github/ISSUE_TEMPLATE/general_request.yml - Resource submit · Template for new tutorial or resource submissions
.github/ISSUE_TEMPLATE/new_tutorial_resource.yml
Automation
Validation and maintenance workflows
- Workflows · GitHub Actions used to keep links and catalog metadata healthy
.github/workflows - Link check · Automated validation for live external links
.github/workflows/linkcheck.yml - MLC config · Configuration for markdown link checking
.github/workflows/mlc_config.json - Link action · Markdown link-check action definition
.github/workflows/action.yml - Stamp README · Utility that updates README markers and structured metadata
.github/scripts/stamp_readme.py
Connections 14
- Issue templates → General request: includes · Issue intake uses structured request forms
- Issue templates → Resource submit: includes · Issue intake includes resource submission form
- Contributing → Issue templates: routes via · Contribution guide points users to issue-based intake
- Contributing → README: updates · Contributor workflow ultimately changes the canonical index
- Stamp README → README: maintains · Automation updates structured README content
- Workflows → Link check: runs · Workflow set contains link validation job
- Workflows → Link action: defines · Reusable action for markdown link checks
- Workflows → MLC config: configures · Link checking uses repository-specific configuration
- Workflows → README: validates · CI protects the published catalog links
- README → External resources: references · README points to off-repo learning resources
- README → Articles: links to · README exposes bundled article assets
- Articles → x264 PDF: contains · Articles folder currently holds a PDF resource
- README → Roadmap: hides · Roadmap exists but is not actively published in navigation
- Issue templates → README: proposes changes · Community submissions feed catalog curation