docs(rules): tea pr create must omit --repo (T-1102)
An explicit --repo slug makes tea skip local-repo setup, but pr create unconditionally needs the local repo handle and dies with 'local repository required' — the documented 'all flags explicit' rule was the trap. Root-caused shipping PR #175. tea-cli.md + pr-process template fixed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -24,21 +24,28 @@ tea issue list --login schweitz --repo jpmschweitzer/settled-reach --state open
|
|||||||
|
|
||||||
## Key rules
|
## Key rules
|
||||||
|
|
||||||
- **All flags must be explicit** — omitting `--login` or `--repo` triggers interactive prompts that crash in Claude Code (no TTY)
|
- **All flags must be explicit** — omitting `--login` or `--repo` triggers interactive prompts that crash in Claude Code (no TTY). **One exception: `tea pr create` must OMIT `--repo`** — see Pull requests below.
|
||||||
- **Use `--output simple`** for machine-readable output (no table borders)
|
- **Use `--output simple`** for machine-readable output (no table borders)
|
||||||
- **For comments, use `tooling/tea-comment <number> @/tmp/file.md`** for long comments (write to file first, then pass `@filepath`). Short inline strings also work: `tooling/tea-comment <number> "body"`. The `@filepath` form avoids `$()` subshells which break permission matching.
|
- **For comments, use `tooling/tea-comment <number> @/tmp/file.md`** for long comments (write to file first, then pass `@filepath`). Short inline strings also work: `tooling/tea-comment <number> "body"`. The `@filepath` form avoids `$()` subshells which break permission matching.
|
||||||
- **`tea pr reject` does not work on your own PRs** — use `tea comment` instead
|
- **`tea pr reject` does not work on your own PRs** — use `tea comment` instead
|
||||||
- **Run `tea` from the main checkout, never a linked worktree** — its go-git can't read a worktree's `.git` *file* and errors with "local/remote repository required". `tea pr create`/`close`/`comment` all take explicit `--login`/`--head`/`--base`, so cwd only needs to be the main repo, not the branch's worktree.
|
- **Run `tea` from the main checkout, never a linked worktree** — its go-git can't read a worktree's `.git` *file* and errors with "local/remote repository required". `tea pr close`/`comment` take explicit `--login`/`--repo` so cwd barely matters for them, but `tea pr create` resolves the repo from the **local checkout's remote** (see below) — that is why it must run from the main repo.
|
||||||
- **Never delete protected branches:** `main`, `maintenance`, `server`, `client`, `copy`, `audio`, `visual`, `ci` are protected on Gitea. Do not use `tea pr clean`, `git push --delete`, or `git branch -D` on these branches.
|
- **Never delete protected branches:** `main`, `maintenance`, `server`, `client`, `copy`, `audio`, `visual`, `ci` are protected on Gitea. Do not use `tea pr clean`, `git push --delete`, or `git branch -D` on these branches.
|
||||||
|
|
||||||
## Pull requests
|
## Pull requests
|
||||||
|
|
||||||
**Use `tea` (Gitea CLI), not `gh` (GitHub CLI).** The remote is Gitea at `git.schweitz.internal`.
|
**Use `tea` (Gitea CLI), not `gh` (GitHub CLI).** The remote is Gitea at `git.schweitz.internal`.
|
||||||
|
|
||||||
Always provide all required flags to ensure non-interactive execution:
|
`tea pr create` is the one command that must **omit `--repo`**: an explicit
|
||||||
|
`--repo <slug>` makes tea skip local-repo setup, but `pr create` unconditionally
|
||||||
|
needs the local repo handle (it checks whether the head branch is pushed) and
|
||||||
|
dies with `local repository required` — the flag *causes* the failure it
|
||||||
|
suggests fixing. Run it from the **main checkout** and let tea infer the repo
|
||||||
|
from `origin`'s URL. (This inference is also why the login's `ssh_host` in
|
||||||
|
`~/.config/tea/config.yml` must match the remote host — currently
|
||||||
|
`git.schweitz.net`.)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
tea pr create \
|
tea pr create \
|
||||||
--repo jpmschweitzer/settled-reach \
|
|
||||||
--login schweitz \
|
--login schweitz \
|
||||||
--title "feat(scope): short description" \
|
--title "feat(scope): short description" \
|
||||||
--description "PR body here" \
|
--description "PR body here" \
|
||||||
|
|||||||
@@ -285,8 +285,10 @@ git diff --stat main...<branch>
|
|||||||
Draft title (`<type>(<scope>): <summary>`, max 70 chars) and description.
|
Draft title (`<type>(<scope>): <summary>`, max 70 chars) and description.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
# NB: omit --repo — an explicit slug makes tea skip local-repo setup and
|
||||||
|
# pr create dies with "local repository required". Run from the MAIN checkout;
|
||||||
|
# tea infers the repo from origin. (.claude/rules/tea-cli.md)
|
||||||
tea pr create \
|
tea pr create \
|
||||||
--repo jpmschweitzer/settled-reach \
|
|
||||||
--login schweitz \
|
--login schweitz \
|
||||||
--title "<title>" \
|
--title "<title>" \
|
||||||
--description "## Summary ..." \
|
--description "## Summary ..." \
|
||||||
|
|||||||
Reference in New Issue
Block a user