Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- AGENTS.md -->
# AGENTS.md

## Scope
Expand Down Expand Up @@ -46,10 +47,15 @@ Record the exact commands and their results in the pull request description.

## Branch and Merge Policy

- Branch from the current `main` and target pull requests to `main`.
- Use `dev` only when an explicitly approved release plan reactivates it.
- Follow `CONTRIBUTING.md` for branch naming, pull request content, and the
contributor workflow.
- Branch from the current `dev` using `feature/<name>` or `fix/<name>`, and
target pull requests to `dev`.
- Keep pull requests in draft until local validation is complete and recorded.
- Merge with a merge commit only after CI passes and review feedback is resolved.
- Squash-merge feature and fix pull requests into `dev` only after CI passes and
review feedback is resolved.
- Promote a verified `dev` branch to `main` with a merge commit. Do not squash
the `dev` to `main` release promotion.
- Never merge or enable auto-merge without explicit maintainer approval.

## Compatibility and Architecture
Expand Down
16 changes: 15 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- CONTRIBUTING.md -->
# Contributing

Pythonlings is actively developed and **open to contributors** — beginners welcome.
Expand Down Expand Up @@ -39,8 +40,21 @@ reference solution** (`tests/integration/test_solution_verify.py` enforces this)

## Pull Requests

- Use focused branches named `feature/<name>` or `fix/<name>`.
- Create focused branches from the current `dev` branch, named
`feature/<name>` or `fix/<name>`.
- Open pull requests against `dev`. Feature and fix pull requests are
squash-merged after CI passes and review feedback is resolved.
- Reference the issue you're closing (`Closes #NN`).
- Include a short description, test output (`python -m pytest -q`), and
screenshots/GIFs for TUI changes.
- Keep PRs scoped to one issue where possible.

## Release Flow

```text
feature/<name> or fix/<name> -> dev -> main -> vMAJOR.MINOR.PATCH
```

Maintainers promote a verified `dev` branch to `main` with a merge commit, not
a squash merge. The release tag is created from the exact promoted commit on
`main`; see [RELEASE.md](RELEASE.md) for the release checklist.
Loading