Skip to main content

send-it

Stage changes, run pre-commit hooks, and optionally commit, push, create a PR, and monitor CI. Use when the user says "send it".

Source facts

Repository
cognitedata/toolkit
Last source activity
October 15, 2026 at 14:02
Detected SKILL.md language
English
Stars
24
Forks
7

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
send-it
description
Stage changes, run pre-commit hooks, and optionally commit, push, create a PR, and monitor CI. Use when the user says "send it".
# Send It / Stage It When the user says **"send it"**: ## 1. Stage and pre-commit - Run `git status` to see all changed and untracked files. - Only stage files that were **created or modified as part of this task**. Use `git add <file>...` with explicit paths. - If there are unstaged changes in files **not related to this task**, list them and ask the user what to do (stage them too, ignore, stash, etc.). Do not silently include unrelated changes. - Run `uv run pre-commit run --all-files` to validate staged changes. - If pre-commit hooks fail, fix every reported issue, re-stage the fixes, and re-run. Repeat until all hooks pass. ## 2. Ask: stage only or commit? Use the **AskQuestion** tool to ask the user: > **"All pre-commit hooks pass. What would you like to do?"** > > - **Stage only** — leave changes staged for local review > - **Commit and push** — commit, push, and open/update a PR If the user chose **Stage only**, stop here. ## 3. Commit - Run `git diff --cached` and `git log --oneline -5` to review staged changes and match the repo's commit style. - Write a concise commit message summarizing the changes. - Run `git commit` with that message. ## 4. Sync and push - Run `git pull origin main` to merge latest main into the branch. - Run `git pull origin` to sync the current branch (ignore errors if the remote branch doesn't exist yet). - Run `git push -u origin HEAD` to push (sets upstream if needed). ## 5. PR creation (if needed) - Check if a PR exists: `gh pr view --json url --repo cognitedata/toolkit 2>/dev/null`. - **If no PR exists**, suggest creating one: - Ask the user for the Jira ticket ID. - Propose a title: `[TICKET-ID] Description of changes`. - Draft a body by reading `.github/pull_request_template.md` and filling it in using `git log main..HEAD --oneline`. - **Do not include Jira ticket IDs in the Changelog entries** — they have no public interest and clutter the changelog. The ticket ID belongs only in the PR title. - **Always ask the user which bump type applies** using the AskQuestion tool: > **"What bump type should this PR use?"** > - **Patch** — backwards-compatible bug fix or small improvement > - **Skip** — no version bump (e.g. docs, CI, test-only changes) - Reflect the answer in the PR body's Bump section: check the chosen option, leave the other unchecked. Both checkboxes must always be present: `- [x] Patch` / `- [ ] Skip` or `- [ ] Patch` / `- [x] Skip`. - Show the proposed PR title and body, and **ask for confirmation** before creating it. - If the user confirms, create the PR as a **draft**: ```bash gh pr create --title "..." --body "..." --base main --draft --repo cognitedata/toolkit ``` - After creation, verify the PR body doesn't contain "Made with Cursor". If it does, suggest the user disable this in Cursor settings: **Settings > General > uncheck "Include 'Made with Cursor' in PRs"**. - Comment "/gemini review" on the PR to request a review from Gemini. ## 6. Monitor CI CI monitoring is **non-blocking**. Never wait on CI in the foreground, never poll with `AwaitShell`, and never sleep. - Start the watcher with the **Shell** tool, using `block_until_ms: 0` so it runs in the background, and `notify_on_output` with `pattern: "CI_DONE"` and `reason: "CI checks finished"`: ```bash gh pr checks --watch --repo cognitedata/toolkit > /dev/null 2>&1; echo "CI_DONE exit=$?" ``` - Then **end the turn immediately**. Tell the user the PR link and that CI is being watched in the background. The user is free to keep working or start other tasks. - When the `CI_DONE` notification arrives, run `gh pr checks --repo cognitedata/toolkit` and report back: **green** (all passing) or **red** (with names of failed checks). - **If all checks pass**, mark the PR as ready for review: `gh pr ready --repo cognitedata/toolkit`. - **If checks fail:** - For each failed check, fetch its logs with `gh pr checks --repo cognitedata/toolkit` and `gh run view <run-id> --log-failed --repo cognitedata/toolkit`. - **Transient failures** (network timeouts, flaky tests, rate limits, runner issues): re-run the failed job once with `gh run rerun <run-id> --failed --repo cognitedata/toolkit`. - **Non-transient failures** (lint errors, test assertions, type errors, build failures): read the logs, fix the underlying code issue, then run the full "send it" flow again (stage, commit, push, monitor).
View on GitHub