Repositories, accounts and free quotas¶
1. Atul's direction (11 Oct)¶
- One GitHub and one GitLab repository per project, structured after deliberation on the issues.
- Claude works on GitHub only; ChatGPT on both.
- ChatGPT's scheduler and connectors are available on free accounts too; choose which account runs which schedule.
- Different users for different projects.
- Gemini API orchestrators in the cloud, with several developer accounts so each project uses its own free quota.
- GitLab compute minutes are per group, not per user. There are 4 user accounts today; group access rules need thought.
- GitHub's minutes logic is still to be evaluated.
- Claude works at the macro level once the others have contributed at the micro level.
- More credits or users once projects earn.
2. What the vendors' rules say (checked 11 Oct)¶
| Vendor | Quota unit | What the terms allow | Risk if stretched |
|---|---|---|---|
| GitHub | Actions minutes are charged to the repository owner (personal account or organisation). Each owner has its own quota: Free 2,000 minutes a month for private repos; Free organisations the same; Pro 3,000. Public repos run free on standard runners. Self-hosted runners free per GitHub's billing page | One free personal account per person plus at most one free machine account per person, "used exclusively for performing automated tasks". Organisations are shared workspaces; several are allowed, each owned by a personal account | Extra personal accounts for one person break the terms. Organisations per project are a normal structure |
| GitLab | Compute minutes per top-level group (namespace): 400 a month on Free, shared by all its projects | Groups are a normal way to structure work. Free allows 5 users per top-level group. Free accounts may need payment-card verification to run CI on shared runners (GitLab's anti-abuse measure since 2021) | Groups created mainly to multiply minutes resemble the abuse GitLab polices; keep groups tied to real projects or verticals |
| Gemini API | Rate limits per Cloud project; free tier per project | Free (unpaid) tier: Google uses submitted content to improve its products and human reviewers may read inputs and outputs; "Do not submit sensitive, confidential, or personal information". In July 2026 Google restricted a developer's project for "attempts to circumvent quota restrictions by operating multiple projects as a single project" | High: several free projects or accounts serving one workload can be read as quota circumvention, and private repo content on the free tier is exposed to training and human review |
| ChatGPT | Per account and plan | The Terms of Use bar efforts to "circumvent any rate limits or restrictions". Free accounts may use conversations for training unless "Improve the model for everyone" is switched off | Separate accounts for separate people or seats are normal; several accounts for one person to multiply limits are the risk |
| Claude | One shared allowance per account (5-hour window and weekly cap) | Extra users or credits are bought | — |
In short: separate accounts are fine when each one is a genuine seat, person, or automation account with its own purpose. Splitting one workload across free accounts to get more quota is what the vendors restrict. The real cost of a violation is losing the main accounts. Free tiers also carry a data cost: no private or client content on free Gemini, and switch off training on free ChatGPT accounts.
3. Proposed structure: GitLab for code, GitHub for work¶
The two repositories per project can do different jobs, and that also solves repository protection for free:
| GitLab repo: code | GitHub repo: work | |
|---|---|---|
| Holds | Source code, tests, CI pipelines, deployment config | Specs, decisions, evidence, handovers, the issues that drive the work (Work Requests), labels, and MCL's view |
| Protection | Protected main on GitLab Free: agent accounts as Developer can't merge; Atul (Maintainer) merges |
Not needed for documents (GitHub Free can't protect private repos); labels and detection apply |
| Who works there | The project's coder and reviewer (ChatGPT, Codex, people) | Lead/PM, ChatGPT, Claude (macro level), MCL |
| CI | GitLab CI: 400 minutes per group (one group per vertical) | GitHub Actions: 2,000 minutes per owner, for MCL and documentation checks |
| Claude's view of the code | A read-only push mirror from GitLab to GitHub (push mirroring is available on GitLab Free), so Claude can review code without working on GitLab | — |
Existing repos map onto this as follows: - the MMDEP orchestrator stays on GitHub for now (its own exception, ADR-005 draft); - Portfolio Engine and MCRM are on GitHub today; moving their code to GitLab is a project decision; - the website, API and MM-Cron are already on GitLab.
4. Accounts: a lawful layout¶
| Purpose | GitHub | GitLab | Gemini | ChatGPT |
|---|---|---|---|---|
| Atul (approver) | Personal account | Owner/Maintainer | Billing owner | Plus (main) |
| Agents (automation) | One machine account per person: with 4 people, up to 4, each assigned to a vertical | One account per agent role, added as Developer in the groups it works in (counts towards the 5 users per group) | One paid project per vertical (cheap with Flash-Lite); free projects only for public or synthetic work, and not used to split one workload | Separate accounts only for genuine seats (SEAT-WPDEV, SEAT-API), with training switched off |
| Organisation / group | One GitHub organisation per vertical if needed (its own 2,000 minutes) | One top-level group per vertical (its own 400 minutes) | — | — |
Access rules per group (Atul's open point): a group's members and roles apply to every project in it. Keep verticals with different people or different rules (production vs development) in separate groups, and give agents Developer, never Maintainer.
5. Claude's place¶
Claude works on the GitHub work repos and the read-only code mirrors at the macro level: the daily judgement, architecture, cross-project decisions and the PM role. Micro-level work (coding, first reviews, evidence, shaping) goes to ChatGPT, Codex and Gemini first. This matches MCL's stages (S1–S3 others, S4 Claude).
6. Decisions for Atul¶
- Adopt "GitLab for code, GitHub for work", with read-only mirrors for Claude?
- Account layout as in §4: machine accounts within GitHub's limit; paid Gemini projects per vertical rather than several free accounts?
- The verticals that become GitLab groups and GitHub organisations (to settle in the projects discussion)?