Thanks for contributing. This repository is optimized for AI coding agents first; human contributors follow the same skill-driven workflow and conventions.
- Read
AGENTS.mdand the skill indocs/skills/index.mdmatching your task. - AI agents must query the
projectbluefinMCP server (search_knowledge(query, limit),get_factory_status(),get_work_queue()) before investigating or implementing. - Make the smallest change that solves the problem.
- Run
just validateon every change that touches the element graph.just test-unitruns pytest (needspython3withpytestandpyyaml) and bats; without a localbatsit runs bats from a digest-pinned container throughpodman. - Validate documentation changes with
python3 .github/scripts/docs-checks.py. - Use Conventional Commits (
feat:,fix:,docs:,ci:,chore:). - Attribution trailers are required on all AI-assisted commits:
Assisted-by: <Model> via GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> - Staging audit: never use
git add -Aorgit add .. Audit staged changes usinggit statusandgit diff --cached --name-only. - Remove any TODO or work-in-progress markers before opening a PR.
- Target
main. Keep branches local until ready; no WIP PRs.
Pull requests merge through Prow (.github/workflows/prow.yml), not the merge button:
- An approver listed in
OWNERScomments/lgtmand/approve(Prow accepts both only from accounts inOWNERS). With bothlgtmandapprovedlabels and passing checks, Prow adds the PR to the merge queue. - Use
/holdto block merging and/hold cancelto release it. Add a/kindlabel to classify the PR. OWNERSis generated fromprojectbluefin/.project'smaintainers.yamlby itssync-owners.ymlworkflow. Do not edit it here: changemaintainers.yamlinprojectbluefin/.project.- See
docs/skills/ci-tooling.md("Workflow Structure") for the Prow jobs. - Who sets each label (Prow, the hive, Renovate or a person) and what reads it is in the "Labels" table of
docs/skills/ci-tooling.md.
AGENTS.md— root entry point, hard rules, build matrix, and boundaries.docs/skills/index.md— lazy-load manifest routing to the appropriate skill.docs/skills/skill-improvement.md— guide for creating or refining skills.
By contributing, you agree that your contributions will be licensed under Apache-2.0.