Contributing Guidelines for the AI for Beginners Repository: CLA, Workflow, and Best Practices
To contribute to the AI for Beginners repository, you must sign the Microsoft Contributor License Agreement (CLA), fork the repository, make your changes to lesson notebooks or translation files, and submit a Pull Request with a clear description of your modifications.
The AI for Beginners repository by Microsoft is an open-source educational curriculum designed to introduce newcomers to artificial intelligence through Jupyter notebooks and markdown lessons. Whether you are correcting a typo in a neural network tutorial or translating content into a new language, following the official contributing guidelines ensures your changes are reviewed and merged efficiently. All potential contributors should start by reviewing the requirements outlined in CONTRIBUTING.md at the root of the repository.
Prerequisites: The Microsoft Contributor License Agreement
Before any code or content can be merged, you must acknowledge the Microsoft Contributor License Agreement (CLA). This legal agreement grants the project rights to use your contributions and is required for all Microsoft-hosted open-source repositories.
When you submit your first Pull Request, an automated CLA-bot checks whether a CLA is on file. If required, the bot will add a comment or label to the PR with instructions on how to sign. This step is completed only once per contributor across all Microsoft repositories, meaning subsequent contributions to AI for Beginners will not require additional CLA paperwork.
Step-by-Step Contribution Workflow
The standard workflow for all contributions follows three concrete steps:
- Fork the repository to your personal GitHub account.
- Make the change by editing files directly in your fork (e.g., correct a typo, fix a broken code cell, or add a translation).
- Open a Pull Request (PR) back to the main branch with a concise description of what was changed and why.
Once submitted, maintainers will review your PR for accuracy, formatting, and adherence to the contribution standards.
Contribution Types and Target Locations
Depending on the nature of your improvement, you will target specific directories within the repository structure.
Fixing Typos and Code Errors
For minor text corrections, bug fixes in Python code, or updates to external links, modify the relevant files under the lessons/ directory. This includes both Jupyter notebooks (*.ipynb) and accompanying markdown files. For example, a spelling correction in the neural networks introduction would target lessons/3-NeuralNetworks/01-Intro/Intro.ipynb.
Submitting Translations
To add support for a new language, create a folder under translations/ using the appropriate language code (e.g., translations/es/ for Spanish). Populate this folder with translated versions of the lesson files, maintaining the original directory structure. For detailed translation-specific conventions, consult etc/CONTRIBUTING.md, which supplements the main guide with localization standards.
Formatting and Documentation Fixes
Improvements to whitespace, markdown heading hierarchy, or list ordering should follow the same workflow as typo fixes. Target any content file under lessons/ or translations/ to ensure consistency across the curriculum.
Writing an Effective Pull Request
A well-structured PR description accelerates the review process. Use the following template, adapted from the repository's standards, when submitting your changes:
### Description
- Fixed typo in **lessons/3-NeuralNetworks/01-Intro/Intro.ipynb** where “perceptron” was misspelled.
- Updated the “References” cell to point to the correct URL.
### Checklist
- [x] Forked the repository
- [x] Created a new branch (`fix‑typo‑perceptron`)
- [x] Ran all cells to ensure the notebook executes without errors
- [x] Updated the changelog (`CHANGELOG.md`) if applicable
Replace the file paths and specific change details with your own modifications. Ensure all notebook cells execute without errors before submitting, as broken code blocks will block merging.
Key Files for Contributors
| File | Purpose |
|---|---|
CONTRIBUTING.md |
Main contribution guide located at the repository root; contains CLA instructions and the general workflow overview. |
etc/CONTRIBUTING.md |
Supplemental guide specifically for translation contributions and localization details. |
README.md |
General project description and quick-start instructions for learners. |
LICENSE |
Legal terms governing the project's open-source usage. |
Summary
- Sign the CLA before your first contribution; the CLA-bot will verify this automatically when you open a PR.
- Fork, edit, and PR is the standard workflow for all changes, whether fixing a typo or adding a full translation.
- Target the correct directory: use
lessons/for curriculum edits andtranslations/<language-code>/for localization work. - Reference
etc/CONTRIBUTING.mdfor specific guidance on translation folder naming and structure. - Provide clear PR descriptions using the provided template to describe what changed and why.
Frequently Asked Questions
Do I need to sign the CLA for every contribution to the AI for Beginners repository?
No, you only need to complete the Microsoft CLA once per GitHub account. After your initial signature is recorded, subsequent Pull Requests to this and other Microsoft repositories will automatically pass the CLA check without further action required.
Where should I place translated lesson files?
Translated content belongs in the translations/ directory at the repository root. Create a new subfolder using the standard ISO language code (e.g., translations/fr/ for French) and mirror the file structure found in the lessons/ directory. Consult etc/CONTRIBUTING.md for additional localization conventions.
Can I contribute new lessons or only fix existing content?
While the primary focus of the current contributing guidelines centers on corrections, translations, and formatting improvements, you may propose new lessons by opening an issue first to discuss the topic with maintainers. New content must align with the curriculum's beginner-focused scope and educational style before a PR is submitted.
How do I know if my PR passes the CLA check?
An automated CLA-bot monitors all incoming Pull Requests. If the check passes, you will see a status indicator on the PR page. If the CLA is missing, the bot will post a comment with a link to sign the agreement electronically. You cannot merge your contribution until this check shows a successful status.
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 →