Contributing
Open Degree is crowdsourced. Every node in the graph started as a file someone wrote, or a stub someone reached for, and someone else reviewed.
Ways to contribute
Section titled “Ways to contribute”- Ask for a concept. Looking for a node that is not there? Add a stub in
src/content/outcomes/withstatus: stub, atitle, your beststatement, adomain, and theprerequisitesyou know. That is a real contribution: it tells everyone where the graph needs to grow, and the next person builds on it. If you cannot write a file, open an issue naming the concept. - Fill a stub. Pick an outcome with
status: stub, addevidence,resources,aliases,alignments, and a body a teacher would find useful, then set it todraft. - Propose an outcome. Add a file in
src/content/outcomes/. Search titles and aliases first so you do not create a duplicate. Follow the outcome rules and declare prerequisites; if a prerequisite does not exist yet, add it as a stub. - Propose a domain. A domain is a broad skill area with a chain of concepts of its own, like Geometry or Data Literacy. Propose one when a subject would not sit naturally inside a domain that already exists; if it is really a handful of nodes, propose those instead. A domain needs a
title, adescription, anicon, anorder, and a body saying why it exists and what its chain runs through. Say who the learner is and what they can do at the end, because that decides the scope of every node in it. - Merge duplicates. Found two nodes for one concept? Keep the better one, add the other’s title to its
aliases, set the other todeprecatedwithsupersededBypointing at the survivor, and re-point any prerequisites. See Governance. - Write or improve a course. Add or edit a file in
src/content/courses/. Free and open resources first. A course is an optional path; put resources on the outcome itself where they stand alone. - Design an assessment. Add a file in
src/content/assessments/with explicit evidence requirements. - Review. Read a proposed change and check it against the principles. Reviews are as valuable as authorship.
- Align. Map existing outcomes to a standard you know (a state framework, an industry competency model) by adding
alignments. - Report. Found a gap, an error, or a broken link? Open an issue.
File conventions
Section titled “File conventions”- One entity per Markdown file, named in kebab-case. The file name is the entity’s id.
- YAML frontmatter, with lists written one item per line (
- item), so files stay compatible with Obsidian. - Reference other entities by id, either plain (
define-geometric-terms) or as a wikilink ("[[define-geometric-terms]]"). - Keep the body useful to a teacher: scope, examples, misconceptions, links. Outcome bodies use
###headings. - New entities start as
status: draftatversion: 0.1.0. A concept you are asking for, not writing, starts asstatus: stub.
Workflow
Section titled “Workflow”- Fork or branch the repository.
- Add or edit files. Run
npm run devto preview andnpm run buildto validate. The build fails on a missing reference or a prerequisite cycle, and tells you where. - Run
npm run backfill:ekgso every new entity and resource gets its identifier, and commit the inserted lines. Never write one by hand. - Open a pull request describing what changed and why. A stub needs only a sentence: what you were looking for and why.
One proposal per pull request: one node with its resources, or one batch of resources for one node. A pull request mixing unrelated nodes is rejected on sight, because each one has to be reviewable, and rejectable, on its own.
There is one exception, for a new domain. A domain seed may carry the domain and the first outcomes of its chain together, because a domain with no nodes says nothing and a node with no domain does not build. Everything after the seed is one proposal per pull request. 5. A maintainer and at least one other reviewer check the change. Once merged, it is live.
By contributing you agree to publish your contribution under CC BY-SA 4.0.
Copyright
Section titled “Copyright”Contribute only what you have the right to publish under CC BY-SA 4.0: writing that is your own, or material whose license allows it, such as public-domain, CC BY or CC BY-SA work, with its source and license recorded. Do not paste in other people’s courses, textbooks, videos or paywalled material. Link to them as a resource instead.
Reporting infringement
Section titled “Reporting infringement”If you believe something on opendegree.org or in its repository infringes your copyright, send a notice to our designated agent:
- Agent: Copyright Agent, Jamnaytac LLC (doing business as eCollective)
- Address: 24A Trolley Square #1752, Wilmington, DE 19806-3334
- Email: copyright@ecollective.org
- Phone: 929-262-1869
Include where the material is (a page URL or a file path), a description of your work, your contact details, and a statement of good-faith belief that the use is not authorized. We remove material that is the subject of a valid notice from the site and from the main branch, and tell the contributor.
Repeat infringers
Section titled “Repeat infringers”When we remove a contribution because of a valid notice, we record it against the contributor. In appropriate circumstances we stop accepting contributions from people who repeatedly infringe copyright: their pull requests are closed and they are blocked from the repository. You may appeal by writing to copyright@ecollective.org.