Skip to content

Contributing

APEX is an open-source project that welcomes contributions from the community. Whether you improve an agent prompt, add an infrastructure pattern, fix a bug, or improve the docs, your work helps the entire Azure platform engineering community.

AreaWhat to changeBranch prefix
Agent prompts and handoffs.github/agents/*.agent.mdagents/
Skills and domain knowledge.github/skills/*/SKILL.mdskills/
Bicep or Terraform patternsinfra/bicep/ or infra/terraform/infra/
Validation scriptstools/scripts/*.mjs, package.jsontools/scripts/
Published documentationsite/src/content/docs/docs/
Cross-cutting improvementsAny filesfeat/, fix/, chore/
  1. Search open issues — someone may already be working on the same thing.
  2. Open an issue first for non-trivial changes so the idea can be discussed before you invest time.
Terminal window
git clone https://github.com/YOUR-USERNAME/azure-agentic-infraops.git
cd azure-agentic-infraops
git remote add upstream \
https://github.com/jonathan-vella/azure-agentic-infraops.git

Pick the prefix that matches your change domain:

Terminal window
# Cross-cutting feature
git checkout -b feat/add-redis-caching-pattern
# Domain-scoped documentation fix
git checkout -b docs/fix-quickstart-links
# Bug fix
git checkout -b fix/session-state-schema

Install dependencies and run the dev container (or install locally):

Terminal window
npm install # Node.js validators and linting
pip install -r requirements.txt # Python tooling (optional)

Follow these guidelines while working:

  • Bicep — Azure Verified Modules first, CAF naming, uniqueString() suffix pattern
  • Terraform — AVM-TF modules, provider pinned to ~> 4.0, variables in variables.tf with descriptions
  • Markdown — 120-character line limit, fenced code blocks with language tags, no bare URLs
  • Agents and skills — YAML frontmatter required, follow existing patterns in .github/agents/ and .github/skills/

Run the checks that CI will run on your PR:

Terminal window
# Full validation suite
npm run validate:all
# Individual checks
npm run lint:md # Markdown linting
bicep build infra/bicep/*/main.bicep # Bicep (if applicable)
terraform fmt -check -recursive infra/terraform/ # Terraform (if applicable)

This repo enforces Conventional Commits. The commit-msg hook validates your message automatically.

Terminal window
git commit -m "feat(bicep): add diagnostic settings module"

Common types: feat, fix, docs, refactor, chore, ci, test. Add ! after the type for breaking changes (e.g., feat!: new output format).

Terminal window
git push origin feat/add-redis-caching-pattern

Then open a PR against main on GitHub. The following checks run automatically:

CheckWhat it validates
ciMarkdown lint + all Node.js validators
Branch Naming ConventionPrefix matches approved list
Branch Scope CheckFiles stay within the branch domain
Copilot Code ReviewAdvisory AI review on the diff

All required checks must pass before merge. A code-owner review from a maintainer is also required.

Before requesting review, confirm:

  • Changes follow the coding and naming conventions above
  • npm run validate:all passes locally
  • Bicep/Terraform templates validate if you touched infra/
  • No hardcoded secrets, subscription IDs, or tenant IDs
  • Documentation updated if you changed user-facing behavior
TypeWhen to useVersion bump
featNew feature or capabilityMinor
fixBug fixPatch
docsDocumentation onlyNone
refactorCode restructuring without behavior changeNone
choreMaintenance, dependency updatesNone
ciCI/CD workflow changesNone
testAdding or updating testsNone
perfPerformance improvementNone
buildBuild system changesNone
revertReverting a previous commitNone

Be respectful and inclusive. Welcome newcomers. Focus on constructive feedback. No harassment or discrimination.

By contributing, you agree that your contributions will be licensed under the MIT License.