✨ Add branch front-door command
The branching model assumed a clean, current `main` and a green baseline before any edit, but both were prose, and prose nobody checks silently becomes a suggestion. `npm run branch -- <prefix>/<desc>` asserts the precondition and only then creates the branch, so a later failure is attributable to the change that caused it. Checks run cheap-first (`--porcelain` deliberately catches untracked files, which would otherwise ride onto the new branch) and the suite runs last, so an ineligible tree never pays for it. `main`'s remote is derived from its upstream rather than hardcoded: this repo has both `origin` and `origin_https`, and `main` tracks the latter, so a `git fetch origin main` currency check would compare against a ref that is never updated here. The baseline runs after switching to `main`, so a red `main` restores the starting branch instead of stranding the caller on it. The prefix stays a judgment call: the script validates it against the documented vocabulary instead of inferring it. Prose kept as index only — AGENTS.md points agents at the command from the task workflow, CONTRIBUTING.md owns the model and the bare-script tier (dropping its stale hardcoded count of "two" conveniences).
This commit is contained in:
1 parent
93cb37441d
commit
8efd13b2f4
4 files changed
+140
-2
No files matched your search
@@ -41,7 +41,7 @@ Never start a long-lived / blocking process such as `npm run watch`. It runs unt
|
||||
|
||||
### Working on tasks
|
||||
|
||||
- **Task with subtasks** (a task that has indented children): create a branch off `main` using the prefix inferred from the task content (`feature/…` / `fix/…` / `chore/…`), check it out, work on each subtask with commits, then present a concise handover for the user to review. Use this fixed shape:
|
||||
- **Task with subtasks** (a task that has indented children): create the branch with `npm run branch -- <prefix>/<desc>`, inferring the prefix from the task content (`feature/…` / `fix/…` / `chore/…`) — do not hand-write `git switch -c`, the command enforces the clean-tree / current-`main` / green-baseline precondition. Work on each subtask with commits, then present a concise handover for the user to review. Use this fixed shape:
|
||||
|
||||
```md
|
||||
## Handover — <branch>
|
||||
|
||||
Reference in new issue
Block a user