Prompt file imported from rheged-studio/agent-skills (
.claude/commands/send-it.md). Fill in{{arguments}}before use. Copyright stays with the author.
The all-in-one ship pipeline for this repo. This is the entry point for the
send-it skill — follow that skill end to end.
Done criteria: the run is incomplete until Step 11 (triage-pr) has run, or
you printed an explicit skip/degraded line with a stated reason
(ℹ️ triage chain skipped … or ⚠️ triage-pr not installed …). Opening a draft
PR alone is mid-pipeline, not finished.
It bundles uncommitted work into atomic commits, runs the change-gated lint
preflight, authors or updates the dated
changelog/<ts>-<slug>.md entry (via the
changelog skill), composes a Conventional
Commits PR title (CI + humans; feature PRs land as merge commits and
release-please ranks landed commit subjects for the bump — A-1176), pushes the
branch, opens or updates a PR against main, and transitions linked Linear issues
to In Review (via the linear-sync skill).
It then chains into triage-pr (Step 11) to
drive the PR to merge-ready: the Phase A CI fix loop, the promote-on-proven-green
flip, then Phase B up to triage-pr's human envelope. So a default run is unattended
for roughly 30 minutes and ends on a [y/N] prompt, not a report. --skip-triage
ends the run at the open PR instead.
Process
Follow the send-it skill's steps. It reads
skills/send-it/config.json for the
shippability decision — for this repo, shippablePaths: ["skills/"] and
shippableManifestKeys: ["name", "version", "files", "publishConfig"], base branch
main. The team name / issue keys for the Linear and changelog steps come from the
respective sibling skills' config.json files.
Repo specifics that fall out of the skill's config here:
- Shippable = any change under
skills/, or apackage.jsonchange toname/version/files/publishConfig→ a release-triggeringfeat/fix/feat!title. Everything else (docs,.github/,infrastructure/,.claude/,architecture/, the datedchangelog/itself, release-please config, a lone lockfile bump) is non-shippable → a non-release type (docs:/chore:/ci:/…). - A skill's own
package.json/SKILL.mdmetadata.versionbump lives underskills/, so it is shippable when the skill content changes alongside it. - This repo sets
bundleVersioningin the skill'sconfig.json, so Step 6 runs the per-bundle version-bump check: if askills/<name>/bundle changed but its version didn't, send-it proposes a bump and (on confirmation) edits itspackage.jsonversion+SKILL.mdmetadata.versionin lockstep before composing the title. - The single published package is the root
@rheged-studio/agent-skills; the PR title always describes it (published surfacefiles: ["skills/"], ADR-0002).
This command intentionally does NOT run typecheck, tests, or format checks — CI
handles those. The only gate it runs is the change-gated preflight lint.
Flags
--dry-run— preview the changelog entry, branch, and conventional PR title; make no commits and no push. Chains intotriage-pr --dry-runwhen a PR already exists, so it makes read-onlyghcalls. Exit 0.--branch=<name>— override the auto-derived branch name when onmainwith uncommitted changes.--issue=<ID>— prefix the auto-derived slug with a Linear issue ID (e.g.--issue=ASW-7→asw-7-<slug>, lower-cased). Ignored if--branchis given.--base=<branch>— override themainbase for this run (stacked PRs / non-maintargets); applies to the fetch, the branch diff, and the PR base.--title="<conventional subject>"— set the PR title verbatim instead of deriving it (must stay a valid Conventional Commits subject — CI lints it).--skip-preflight— skip the lint gate entirely (prints a bypass warning).--skip-triage— end the run at the open PR; skip the Step 11triage-prchain. Not a shortcut — see Step 11 for the narrow cases where it applies, and say why in the report.--ci-only/--no-promote/--auto-apply— forwarded verbatim totriage-pr; no effect on send-it's own steps.--ready— open the PR ready-for-review instead of draft (default is draft).--worktree=<branch-or-path>—cdinto a worktree before running. Resolved viagit worktree list --porcelain; errors if it matches no worktree.
--merge-when-ready was removed in send-it 0.8.0 — send-it no longer arms
auto-merge, so a chained triage run can't land the PR while its disposition plan is
still awaiting approval. Merging stays a human action.
Arguments
{{arguments}}
