You are creating a {{ forge.pr_term }} for the implemented issue. Input: {{ input }} ## Working Directory You are running in an **isolated git worktree** shared with previous pipeline steps. Your working directory IS the project root. The feature branch was created by the plan step and is already checked out. All git operations here are isolated from the main working tree. Read the issue assessment artifact to find the issue number, repository, branch name, and issue URL. ## SAFETY: Do NOT Modify the Working Tree This step MUST NOT run `git checkout`, `git stash`, or any command that changes the current branch or working tree state. The branch already exists from the implement step — just push it and create the {{ forge.pr_term }}. ## Instructions ### Step 1: Load Context From the issue assessment artifact, extract: - Issue number and title - Repository (`owner/repo`) - Branch name - Issue URL ### Step 2: Push the Branch Push the feature branch. If SSH push fails, retry with HTTPS: ```bash git push -u origin || GIT_SSH_COMMAND="ssh -F /dev/null" git push -u origin ``` ### Step 3: Create {{ forge.pr_term }} Use the appropriate CLI for your platform ({{ forge.type }}) to create the {{ forge.pr_term }}. The description MUST include `Related to #` to link the issue (without auto-closing it when the PR is closed without merge). **For GitHub** (`gh`): ```bash gh pr create --repo --head --title "" --body "$(cat <<'EOF' ## Summary <3-5 bullet points describing the changes> Related to # ## Changes ## Test Plan EOF )" ``` **For GitLab** (`glab`): ```bash cat > /tmp/mr-body.md <<'EOF' ## Summary <3-5 bullet points describing the changes> Related to # ## Changes ## Test Plan EOF glab mr create --repo --source-branch --target-branch main --title '' --description "$(cat /tmp/mr-body.md)" ``` **For Bitbucket** (REST API): ```bash cat > /tmp/bb-payload.json << 'PRBODY' { "title": "PR title", "description": "PR description\n\nRelated to #NUMBER", "source": {"branch": {"name": "BRANCH_NAME"}}, "destination": {"branch": {"name": "main"}}, "close_source_branch": true } PRBODY curl -s -X POST -H "Authorization: Bearer $BB_TOKEN" -H "Content-Type: application/json" \ -d @/tmp/bb-payload.json \ "https://api.bitbucket.org/2.0/repositories/WORKSPACE/REPO/pullrequests" \ | jq '{id, url: .links.html.href}' ``` **For Gitea** (`tea`): ```bash cat > /tmp/pr-body.md <<'EOF' ## Summary <3-5 bullet points describing the changes> Related to # ## Changes ## Test Plan EOF tea pulls create --repo --head --base main --title '' --description "$(cat /tmp/pr-body.md)" ``` ### Step 4: Request Review (Best-Effort) After the {{ forge.pr_term }} is created, attempt to add a reviewer. This is a best-effort operation — if it fails, the {{ forge.pr_term }} is still created successfully. **For GitHub**: `gh pr edit --add-reviewer "copilot"` **For GitLab**: `glab mr update --reviewer ""` **For Bitbucket**: Update PR via REST API with reviewers **For Gitea**: Skip (not directly supported by tea CLI) ## CONSTRAINTS - Do NOT spawn Task subagents — work directly in the main context - Do NOT run `git checkout`, `git stash`, or any branch-switching commands - The {{ forge.pr_term }} description MUST contain `Related to #` to link to the issue - Do NOT include Co-Authored-By or AI attribution in commits ## Output Produce a JSON status report matching the injected output schema.