Files
bot-agents/.agents/memory/git-pr-workflow.md
Danny Kim ccfb08f4d5 Document that package.json aliases may target only direct subfolders of src (#21)
Follow-up to #20, which was merged before this landed.

bot-agents has no `package.json` `imports` aliases (`src/` is flat and everything imports relatively), so no code changes. This records the new rule in the docs:

- `.agents/memory/imports-aliases-barrels.md`: aliases may target only a direct subfolder of `src/` (its `index.ts` or a `#x/*` pattern); nothing outside `src/`, not `src/` itself, not deeper folders; such code imports relatively.
- `.agents/memory/tests-layout-vitest.md`: `tests/` reach the public entry through a relative import, not a `#plugin` alias.
- `.agents/skills/migrate-deno-repo/SKILL.md` and `AGENTS.md`: same rule.

`vp check`, `vp test`, and `damem doctor` pass.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Reviewed-on: #21
Reviewed-by: bot <noreply@capsulizers.com>
Co-authored-by: Danny Kim <temeddix@gmail.com>
Co-committed-by: Danny Kim <temeddix@gmail.com>
2026-10-18 14:37:49 +00:00

2.2 KiB

description
description
Work on a branch, plain imperative commits without AI trailers, one PR with the Claude Code footer, review until approved, never merge yourself; squash only

Branches and commits

  • Never push to main. Every change goes through a branch and a PR, even a one-line fix.
  • Commit messages are plain imperative sentences ("Port the import-check rules to an ESLint plugin"). No conventional-commit prefixes, no AI trailers (Co-Authored-By: Claude, "Generated with ..."), no emoji.
  • When several agents share a branch, each works in its own git worktree, runs git pull --rebase before pushing, and retries a rejected push after rebasing. Remove the worktree and temp branch afterwards.
  • vp check, vp test, and the build pass locally before every push.

Pull requests

  • One PR per repo for a migration, everything included (size-rule refactors too).

  • The body covers: summary, what changed, deviations and risks, verification done, and open questions. It ends with exactly this line:

    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
  • Then run the review cycle (skill review-cycle): on Capsulizers Gitea repos that have .gitea/workflows/agents.yml, comment @bot and address the bot account's review; elsewhere, a subagent reviews the diff and posts the review as a PR comment. Repeat until fully approved, then ask the user to review.

Merging

  • Never merge on your own. The user merges, unless they explicitly allow it for one specific PR.
  • GitHub repos are squash-merge only, so a PR lands as one commit titled after the PR.
  • Also never, without the user: publish, archive a repo, or delete a branch the user may still use.

Hosts

  • cunarist and temeddix: GitHub only, CI in .github/workflows, use the gh CLI.
  • Capsulizers: Gitea at git.capsulizers.com (Gitea 1.26), CI in .gitea/workflows, PRs through the Gitea API. Push and open PRs as the user's own account (credentials in the user's environment; source them in a subshell and never print them); bot is a separate review account. The org's codified rules live in the commons/code-rules README.