PRD 0047: Git-gate manifest redesign #162

Merged
didericis merged 6 commits from prd-0047-git-gate-manifest-redesign into main 2026-06-03 00:05:48 -04:00
Collaborator

Closes #160.

PRD: 02d61e337f/docs/prds/0047-git-gate-manifest-redesign.md

Summary

  • Proposes replacing git.remotes with a top-level git-gate.repos section so it's clear the config is specifically for git-gate routing, not generic git or SSH config.
  • Renames all entry fields from PascalCase (Name, Upstream, IdentityFile, KnownHostKey) to snake_case (url, identity, host_key), with the local repo name promoted to the YAML key.
  • Moves git.user into git-gate.user; removes git as a top-level key entirely.
  • Old git.* shape is rejected at parse time with errors pointing to the new keys.

Changes (2 commits)

  • docs(prd): add git-gate manifest redesign plan — adds docs/prds/0047-git-gate-manifest-redesign.md as a Draft PRD.
  • docs(prd): consolidate git.user into git-gate per review — moves user under git-gate, removes git as a top-level key.
Closes #160. PRD: https://gitea.dideric.is/didericis/bot-bottle/src/commit/02d61e337f0e3108bb01b15c94072b0ce4064efc/docs/prds/0047-git-gate-manifest-redesign.md ## Summary - Proposes replacing `git.remotes` with a top-level `git-gate.repos` section so it's clear the config is specifically for git-gate routing, not generic git or SSH config. - Renames all entry fields from PascalCase (`Name`, `Upstream`, `IdentityFile`, `KnownHostKey`) to snake_case (`url`, `identity`, `host_key`), with the local repo name promoted to the YAML key. - Moves `git.user` into `git-gate.user`; removes `git` as a top-level key entirely. - Old `git.*` shape is rejected at parse time with errors pointing to the new keys. ## Changes (2 commits) - `docs(prd): add git-gate manifest redesign plan` — adds `docs/prds/0047-git-gate-manifest-redesign.md` as a Draft PRD. - `docs(prd): consolidate git.user into git-gate per review` — moves `user` under `git-gate`, removes `git` as a top-level key.
Owner

Move user into git-gate and remove git as a top level key

Move user into `git-gate` and remove `git` as a top level key
Author
Collaborator

Done — updated. git is gone as a top-level key; git-gate now carries both user and repos. Agent manifests move from git.user to git-gate.user (with repos still rejected at the agent level). PRD updated in 02d61e3.

Done — updated. `git` is gone as a top-level key; `git-gate` now carries both `user` and `repos`. Agent manifests move from `git.user` to `git-gate.user` (with `repos` still rejected at the agent level). PRD updated in 02d61e3.
didericis approved these changes 2026-06-02 23:59:28 -04:00
didericis added 6 commits 2026-06-02 23:59:38 -04:00
PRD 0047 proposes replacing git.remotes with a top-level git-gate.repos
section and snake_case field names to make clear the config is
specifically for git-gate routing, not generic git or SSH config.

Closes #160
Move git.user under git-gate and remove git as a top-level key
entirely, so all git configuration lives under a single section.
- BOTTLE_KEYS and AGENT_KEYS_OPTIONAL: "git" → "git-gate"
- GitEntry: remove from_dict/from_remote_dict; add from_repos_entry
  parsing url/identity/host_key with repo name as the dict key
- GitUser.from_dict: error messages updated to git-gate.user
- _parse_git_config → _parse_git_gate_config; repos/user subkeys
- Bottle.from_dict: reads git-gate key; "git" key raises a migration error
- Agent.from_dict: reads git-gate key; repos rejected at agent level
- manifest_extends: _child_declares_git_remotes → _child_declares_git_gate_repos
- manifest_loader: threads git-gate frontmatter key into agent_dict
- fixtures.py: fixture_with_git_dict uses git-gate.repos + url/identity/host_key
- test_manifest_git: rewrite to use git-gate.repos; replace duplicate-name
  test (names = dict keys, always unique) with two-repos-different-hosts test
- test_manifest_git_user: _manifest → git-gate.user; update error message assertions
- test_manifest_agent_git_user: git → git-gate throughout; repos rejection test
- test_manifest_extends: git.remotes/git.user → git-gate.repos/git-gate.user
- test_provision_git: IP test updated — no host alias, single insteadOf
- test_compose: git.remotes → git-gate.repos + new field names
- test_docker_provision_git_user: git.user → git-gate.user
- test_git_gate: inline manifest dict updated to git-gate.repos
- test_smolmachines_provision: git_json → git_gate_json; remove _remote_host
bot-bottle.demo.json: git array → git-gate.repos with url/identity/host_key
examples/agents/implementer.md: git.user → git-gate.user
docs(prd): activate git-gate manifest redesign
test / unit (pull_request) Successful in 41s
test / integration (pull_request) Successful in 1m10s
test / unit (push) Successful in 39s
test / integration (push) Successful in 54s
3e50079bcc
PRD 0047 is now shipped to main.
didericis force-pushed prd-0047-git-gate-manifest-redesign from 9cd2272498 to 3e50079bcc 2026-06-02 23:59:38 -04:00 Compare
didericis merged commit 3e50079bcc into main 2026-06-03 00:05:48 -04:00
didericis deleted branch prd-0047-git-gate-manifest-redesign 2026-06-03 00:05:49 -04:00
Sign in to join this conversation.