feat: the team's shared tooling: one sign-in, forge.py for every repository, the team chat, test requests and the agents' skills #1
No reviewers
Labels
No labels
ci: approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Tooling!1
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/Tooling:feat/shared-tooling"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Every MagicBeanDev repository uses the same sign-in,
forge.py, team chat and agent skills, but they live in Longshot, so LongshotLauncher, Beanstalk and Site send people to "run it in a Longshot checkout", and the release skill is copied into two repositories and has drifted. This puts one copy here, which every repository's AGENTS.md and CONTRIBUTING.md points to, and agents clone beside their checkout and pull each session.What changed
The shared scripts, their tests, docs/forge.md and two skills move here from Longshot (main @ f637b42d) unchanged except as below; what is Longshot's own (test requests, the request-testing and testing skills, its PR rules) stays there. The repositories point here in Longshot#915, LongshotLauncher#114, Beanstalk#14 and Site#20; merge this first.
scripts/forge.pyworks for any repository: the repository is the one the checkout it runs in is of (the remote pointing atMagicBeanDev/<name>:forge,origin,upstream, then any), or--repo MagicBeanDev/<name>/MAGICBEAN_REPO. Forks, PRs and issues go there. A repository's own PR rules are itsscripts/check_pr_description.py, loaded from that checkout (Longshot's); without one,scripts/pr_description.pygives the title check and Forgejo's WIP prefixes only, and the description starts from the repo's.forgejo/pull_request_template.mdif any.credential,whoamiandlogoutdon't look at the checkout (git callscredentialinsidejj git push). Hints print the path it was actually run as, and the fork's remote by its name (fork, not alwaysforge-fork).pr createrefuses a branch that changes a file under the rules'GAME_PATHS(Longshot's:gpu/,host/,nx2/,assets/,third_party/), or whose files it can't read locally, until--tested-in-game "where it ran and what you saw", which it posts as the PR's first comment.--forceopens it anyway (agents: only when the person they work for asks).--forceno longer needs--ready.skills/): team-updates and release (one copy for Longshot and the launcher, with the launcher's newer rc wording); they run the scripts aspython -I ../Tooling/scripts/...and say togit -C ../Tooling pull --ff-onlyfirst. The repository is a Claude Code plugin marketplace (.claude-plugin/):/plugin marketplace add https://git.magicbean.dev/MagicBeanDev/Tooling.git,/plugin install magicbean@magicbean, then/magicbean:team-updatesand/magicbean:release.tests/test_forge_pr.pynow against Longshot's rules from a../Longshotcheckout (LONGSHOT=; skips without one), with new cases for the in-game rule, the repository detection and theno branchhint naming the fork's actual remote;tests/run_all.pyruns them all.Testing
forge.py forkin this checkout foundMagicBeanDev/Toolingfromoriginand made the fork, and this PR was opened with this branch'sforge.py pr create(generic rules, no template); so were the four PRs above, each from its own checkout, Longshot's through its forwarder with Longshot's rules loaded (a docs and scripts branch, so no--tested-in-gameasked).python -I -B tests/run_all.pywith a checkout of Longshot#915 beside this one (by hand: it needsGAME_PATHSfrom that PR'scheck_pr_description.py).Risks
scripts/forge.py; Longshot's PR keeps a forwarder there, so nothing breaks, and the nextloginpoints git here.forge.py,team_chat.pyormagicbean_login.py(#905, #891, #831, #640, #310, #298) will need to move here once this merges.~/.config/longshot/) and their format are unchanged.🤖 Generated with Claude Code
48d5047be9tobd05c59834Longshot-specific parts stay in Longshot: test_requests.py, its test and the request-testing and testing skills moved back there (Longshot#915). Also: the no-branch hint names the fork's actual remote. The four repositories' PRs are linked in the description.
WIP: feat: the team's shared tooling: one sign-in, forge.py for every repository, the team chat, test requests and the agents' skillsto feat: the team's shared tooling: one sign-in, forge.py for every repository, the team chat, test requests and the agents' skills