com um clique
com um clique
Land a local PR by resolving conflicts and squash-merging the feature
Merge local `main` into the current branch and resolve merge conflicts
Use the local `tasks` CLI to read/write `tasks.json` — the offline-demo replacement for Linear. Covers reading issues, posting/editing comments, transitioning issue state, attaching local PRs, and creating follow-up issues. Use when working a ticket through Symphony in offline mode.
Create well-formed git commits from current changes. Use when staging and committing work-in-progress on the issue branch.
| name | push |
| description | Finalize the local feature branch and create or update a local PR record on |
There is no origin remote in this demo. "Push" means: make sure the branch
is in a clean reviewable state and record a local PR entry on the issue via
the tasks CLI so the human reviewer can drag the issue to Merging when
ready.
commit skill).{{ issue.identifier }}
for the agent that invoked you, but you can also re-read it from the
workpad).symphony/<identifier> — that's what the
after_create hook set up.Identify branch: branch=$(git branch --show-current).
Verify the working tree is clean and committed:
git status --porcelain
If anything is unstaged, commit it first via the commit skill.
Resolve the issue identifier. If your branch is named symphony/eng-3,
the identifier is the suffix uppercased: ENG-3. If you're unsure, check
the workpad header you stamped earlier.
Build the PR body. If the workpad has a clean summary, reuse it; otherwise write a concise outcome-focused note covering:
tasks://{{ issue.identifier }})Write it to a file:
cat > /tmp/pr_body.md <<'EOF'
## What
...
## Why
tasks://IDENT — see issue body.
## How
...
## Validation
...
EOF
Check whether a local PR already exists for this issue:
tasks pr-view IDENT --json
null or (no PR) — create one:
tasks pr-create IDENT \
--branch "$branch" \
--title "<clear PR title>" \
--body-file /tmp/pr_body.md \
--label symphony
OPEN — update it in place:
tasks pr-update IDENT \
--title "<clear PR title>" \
--body-file /tmp/pr_body.md \
--label symphony
MERGED or CLOSED — that PR is final. Create a fresh one
(the tasks CLI will refuse to create over an OPEN PR but accepts a new
one over a closed/merged one):
tasks pr-create IDENT \
--branch "$branch" \
--title "<clear PR title>" \
--body-file /tmp/pr_body.md \
--label symphony
Confirm the local PR is recorded:
tasks pr-view IDENT
Capture the PR number — it's pr.number in the JSON output.
The branch lives only on this machine. Do NOT call git push and do NOT
call gh — neither will work. The branch is the artifact; the local PR
record points at it.
git push, gh pr ..., or any remote-touching command. There
is no remote.--force anything; there's nothing to force against.pr field
is the canonical view, accessible via tasks pr-view IDENT.