Maintainer agreement¶
Status: draft until both maintainers approve it
This agreement takes effect when both maintainers approve the pull request that adds it. A GitHub approval counts as a signature. It can be changed the same way. It is a working agreement between two friends, not a legal contract.
Maintainers
| Name | GitHub | Current track |
|---|---|---|
| Venkata Sai Karthik | @EVSGoud | Track 2: data backbone |
| Krishna Nandimandalam | @kclectic0501 | Track 1: statistics engine |
Tracks are defined in the work plan.
1. Ownership¶
- We are equal co-owners of EvalHawk: the code, the name, the GitHub organization
evalhawkand the PyPI project. - Both of us are Owners of the GitHub organization and of the PyPI project. Neither of us removes the other or changes the other's access.
- The code is released under the MIT License with both our names on the copyright line. Everything either of us contributes is under the same license.
2. Roles: track owners¶
- Each of us owns a track: responsible for its design, code, tests, docs and dev-log entries, and the first person to ask about it.
- Owning a track is not exclusive. Either of us may change any part of the code, through a pull request that the track owner reviews.
- Tracks rotate. At each new stage we swap or re-split work so that both of us learn every part of the system (see the work plan).
3. How we decide¶
| Kind of decision | Who decides | How |
|---|---|---|
| Inside your own track, easy to reverse | The track owner | In the pull request |
| Affects both tracks, or hard to undo (a "one-way door") | Both | An ADR that both approve |
| New runtime dependency | Both | An ADR |
| Releases, repo settings, PyPI | Both | Agreed in writing (issue or PR) before acting |
When we disagree:
- Each writes the argument down in the PR or ADR, not just in chat.
- If still stuck, a 30-minute call.
- If still stuck: measure where possible (benchmark, simulation, prototype both), and otherwise choose the option that is easier to reverse.
- Nothing contested gets merged until we agree.
4. Workflow¶
- Every task starts as a GitHub issue (from the work plan), assigned to its owner.
- Work on a branch (
feat/…,fix/…,docs/…), never directly onmain. - Open a pull request using the template. CI must be green.
- The other maintainer reviews within 48 hours, or says when they can.
- Squash-merge once approved. The full rules are in the engineering standards.
5. Reviewing¶
- Approving means "I understand this and could explain it." It doesn't mean "looks fine".
- Ask questions freely. "Can you explain this line?" is always a fair review comment.
- Review the tests first: they define what "correct" means.
- Be kind and specific. Critique the code, not the person.
6. Using AI (Claude Code)¶
We both use Claude Code. The shared project instructions are in CLAUDE.md at the repo
root, so both assistants follow the same rules.
- You must be able to explain every line you submit. "The AI wrote it" is not an explanation.
- The human checks the tests. Tests decide what correct means, so read and understand every assertion.
- Say how AI was used in the PR (the template has a section for it).
- Never paste secrets, API keys or private data into an AI tool.
- The AI never pushes or merges on its own. A human reviews first.
- Stay inside your task. If your AI needs to change files in the other track, say so in the PR and tag the other maintainer.
7. Documentation duties¶
| When | What | Who |
|---|---|---|
| Starting a task | The GitHub issue (from the work plan) | Already drafted |
| Every PR | "What I learned" and "How AI was used" sections | The author |
| Every finished task | A short dev-log entry | The task owner |
| Every one-way-door decision | An ADR | Whoever proposes it |
| Every user-visible change | A CHANGELOG line | The author |
8. Communication¶
- Weekly sync, 30 minutes: what's done, what's next, what's blocking.
- Teach-back: after the third task of each track, the owner explains their concepts to the other in 15 minutes.
- Decisions live in GitHub (issues, PRs, ADRs), not only in chat, so we can find them later.
- If you'll be unavailable for more than a week, tell the other in advance.
9. Credit¶
- Both of us may present the whole project in portfolios, CVs and interviews.
- When describing who built what, be accurate: name your own tracks and tasks. The git history and dev log show it anyway.
- The README lists both maintainers equally.
- Joint write-ups (such as the Phase 6 study) name both authors.
10. Time and leaving¶
- Each of us writes down roughly how many hours per week we can give, and updates it when it changes: Karthik: ___ h/week · Krishna: 10 h/week.
- Either of us may step back at any time. Please give notice and hand over open work (push your branch, update the issue).
- Someone who leaves stays credited as a maintainer and author. The code stays MIT. Organization and PyPI access remain with whoever continues, unless we agree otherwise in writing.
11. Money¶
No money is expected. If EvalHawk ever earns anything (sponsorships, a company, paid work based on it), the default is an equal split, and we write a new agreement before accepting any money.
12. Changing this agreement¶
Open a PR that edits this page. It changes when both maintainers approve.
Sign-off¶
- Venkata Sai Karthik approved the PR adding this agreement
- Krishna Nandimandalam approved the PR adding this agreement