Contributing
August 2, 2026 · View on GitHub
Thank you for improving Codex How To.
By participating, you agree to follow the Code of Conduct.
Before you start
- Search existing issues and pull requests for overlapping work.
- Keep changes focused on one learning outcome or reusable workflow.
- Open an issue first for major curriculum changes or new product surfaces.
- Never include private repository content, credentials, or production data.
Ways to contribute
- Fix an unclear instruction, broken example, or outdated official source.
- Add one missing engineering case with a runnable exercise and verification.
- Report sanitized workflow evidence, including negative or inconclusive results.
- Use the edition starter to adapt a focused team, stack, translation, or benchmark fork, then contribute generally useful improvements upstream.
Large stack-specific or organization-specific variants usually belong in a fork. Keep the upstream guide focused on reusable engineering decisions.
Local validation
The repository validator uses only the Python standard library:
python3 scripts/validate_repo.py
python3 -m unittest discover \
-s labs/engineering-playground/backend \
-p "test_*.py"
python3 -m unittest discover \
-s scripts/tests \
-p "test_*.py"
python3 scripts/summarize_engineering_loop.py \
examples/measurements/engineering-loop-runs.csv
python3 skills/maintain-codex-wiki/scripts/wiki_lint.py .
python3 -m compileall -q scripts labs/engineering-playground/backend
For a changed skill, also run the official quick_validate.py bundled with the
Codex skill creator.
Content standard
Every tutorial contribution must include:
- a concrete learner outcome;
- prerequisites;
- an exercise that avoids production credentials and destructive actions;
- a verification step;
- links to authoritative sources for product behavior;
- a “last verified” date for version-sensitive claims.
Prefer runnable examples over broad advice. Label community conventions as opinions rather than product guarantees.
Skill standard
Each skill must:
- use a lowercase, hyphenated folder name;
- contain
SKILL.mdwith onlynameanddescriptionin frontmatter; - use an imperative workflow;
- define workflow boundaries and observable output;
- keep detailed variants in one-level-deep
references/; - avoid embedded secrets, credentials, or destructive defaults;
- pass the repository validator and the official skill validator.
- demonstrate a measured workflow, safety, domain-knowledge, output-contract, or deterministic-tool advantage over a no-skill baseline.
Do not add a README inside a skill folder.
Living-wiki standard
Wiki contributions must:
- reuse or add a stable record in
knowledge/sources.json; - use official sources for current Codex product behavior;
- keep fetched external content in
.wiki-cache/unless redistribution is allowed; - distinguish verified guidance, community practice, experiments, and inference;
- update
knowledge/index.mdandknowledge/log.md; - pass
wiki_lint.py; and - use a pull request for factual changes.
Keep wiki pages as compact evidence maps. Do not duplicate a complete module, skill, or external article.
Pull request checklist
- Product claims are linked to official documentation.
- Examples are safe to copy into a test repository.
- New links are relative where possible.
-
python3 scripts/validate_repo.pypasses. - Playground and measurement tests pass.
- Living-wiki changes pass
wiki_lint.py. - Changed skills pass
quick_validate.py. - The change is described in plain language.
- The final diff contains no generated caches or unrelated edits.
Style
- Use short paragraphs and descriptive headings.
- Explain why a workflow exists before showing configuration.
- Separate stable principles from version-sensitive commands.
- Use “Codex can” only when supported by official documentation.
- Avoid unverified productivity multipliers.
By contributing, you agree that your contribution is licensed under this repository's MIT License.