ron-myers/candid

candid-fast-ship

Fast ship for low-risk changes — runs only the steps you explicitly enable in fastShip config

First seen Apr 25, 2026

Installation

$ npx skills add ron-myers/candid --skill candid-fast-ship

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from ron-myers/candid · top by installs.

npx skills add ron-myers/candid

Browse all from ron-myers/candid

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 20
License LICENSE
Default branch stable
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 7,848 B
  • docs SUMMARY.md 119 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 13 installs

SKILL.md

Candid Fast Ship

A minimal shipping path for low-risk changes. Unlike candid-ship, which runs all steps by default and lets you opt out, candid-fast-ship runs nothing by default — only steps explicitly enabled in the fastShip config block. PR creation always runs.

Step configuration (commands, target branch, issue tracker details) is inherited from the existing ship block. fastShip is purely a set of on/off toggles that sit on top of it.

Workflow

Execute these steps in order. The mechanics for each step are defined in skills/candid-ship/WORKFLOW.md. This file specifies the toggle semantics unique to candid-fast-ship.

Step 1: Pre-Flight Checks

Run the pre-flight checks from WORKFLOW.md → "Pre-Flight Checks".

Step 2: Load Configuration

Read config per WORKFLOW.md → "Load Configuration", with two top-level fields:

  • fastShip.* — the boolean toggles (see CLI Flags table below for the schema)
  • ship.* — command values, target branch, issue tracker config (inherited)

When loading from project config, output: Using fastShip settings from project config. From user config: Using fastShip settings from user config.

Parse CLI Flags

Flag Description Default
--auto-merge Enable auto-merge (overrides fastShip.autoMerge) from config
--no-auto-merge Disable auto-merge (overrides fastShip.autoMerge) from config
--dry-run Show plan without executing false

If both --auto-merge and --no-auto-merge are provided, --no-auto-merge wins.

Resolve targetBranch

Priority: fastShip.targetBranch → ship.targetBranch → first mergeTargetBranches entry → "main". Then run target-branch verification and branch-state validation per WORKFLOW.md → "Resolve targetBranch" / "Validate Branch State".

Classify Diff Risk

Execute skills/candid-ship/WORKFLOW.md → "Classify Diff Risk" with the fast-ship escalation: HIGH risk aborts (Risk class HIGH ([signals]): use /candid-ship for this change.) unless fastShip.review and fastShip.tests are both enabled and their ship commands are configured. Display Diff risk: [class] ([signals]) below the Branch: line in the plan. This is the enforcement behind the "low-risk changes" promise in this skill's description.

Step 3: Display Plan

A step is enabled only when its fastShip toggle is true AND the underlying ship config is present:

Toggle Required ship config
fastShip.review (none — always runnable when enabled)
fastShip.install ship.installCommand
fastShip.build ship.buildCommand
fastShip.tests ship.testCommand
fastShip.issueTracker ship.issueTracker with supported provider
fastShip.autoMerge (none)
fastShip.postMergeCommand ship.postMergeCommand AND fastShip.autoMerge: true

Calculate totalSteps = 1 (PR creation) + count of enabled steps. Renumber displayed step rows so disabled steps don't take a number.

Render the plan per skills/candid-ship/WORKFLOW.md → "Display Plan": header Candid Fast Ship Plan, statuses [ENABLED | SKIPPED — not enabled | SKIPPED — not configured].

If all optional steps are disabled, append (All optional steps disabled — only PR creation will run).

If --dry-run: Output Dry run complete. No changes made. and exit.

Otherwise: Use AskUserQuestion: "Proceed with this fast ship plan?" with options "Yes, ship it" / "No, cancel". On "No, cancel": exit with Fast ship cancelled.

Step 4: Run Review

Skip if fastShip.review is false → Skipping review (not enabled in fastShip config). Otherwise execute WORKFLOW.md → "Run Review (candid-loop)". Use ship.additionalPrompt if set.

Steps 5-7: Install, Build, Tests

For each of install/build/tests: skip if its fastShip.[step] toggle is false → Skipping [step] (not enabled in fastShip config); skip if the toggle is true but the corresponding ship command (installCommand/buildCommand/testCommand) is unset → Skipping [step] ([commandField] not configured in ship); otherwise execute the matching WORKFLOW.md section ("Install Dependencies", "Run Build", "Run Tests").

Step 7.5: Pre-PR Confidence Gates

Always runs — these are read-only checks, not toggleable steps, and are not counted in totalSteps. Execute skills/candid-ship/WORKFLOW.md → "Map Tests to Changes", "QA Findings Gate", then "Ship Confidence Report". Steps disabled in fastShip config appear as SKIPPED rows in the report — the PR records exactly how little was verified, which is the honest cost of a fast ship.

Step 8: Create Pull Request

Always runs. Execute WORKFLOW.md → "Create Pull Request". Footer should read Shipped with candid-fast-ship.

Step 9: Update Issue Tracker

Skip if fastShip.issueTracker is false → Skipping issue tracker (not enabled in fastShip config). Skip if ship.issueTracker is absent → Skipping issue tracker (issueTracker not configured in ship).

Otherwise execute WORKFLOW.md → "Update Issue Tracker", using ship.issueTracker.* for provider, state, prompt, and team prefixes.

Note: fastShip.issueTracker: true acts as the enable toggle — ship.issueTracker.enabled is ignored in fast-ship mode.

Step 10: Auto-Merge

Skip if fastShip.autoMerge is false → Auto-merge: disabled (manual merge required). Otherwise execute WORKFLOW.md → "Auto-Merge".

Step 11: Post-Merge Command

Skip if fastShip.postMergeCommand is false → Skipping post-merge command (not enabled in fastShip config). Skip if ship.postMergeCommand is not set → Skipping post-merge command (postMergeCommand not configured in ship). Skip if fastShip.autoMerge is false → Skipping post-merge command (auto-merge not enabled). Skip if auto-merge failed in Step 10 → Skipping post-merge command (auto-merge failed). Otherwise execute WORKFLOW.md → "Post-Merge Command".

Step 12: Summary

Execute WORKFLOW.md → "Display Summary" with header Candid Fast Ship Complete.

Configuration

fastShip Config Block

Add to .candid/config.json alongside the ship field:

{
  "fastShip": {
    "review": false,
    "install": false,
    "build": false,
    "tests": false,
    "issueTracker": false,
    "autoMerge": false,
    "postMergeCommand": false,
    "targetBranch": "stable"
  }
}

All fields are optional. Boolean fields default to false. targetBranch defaults to ship.targetBranch → mergeTargetBranches[0] → "main".

For full validation rules see skills/candid-review/CONFIG.md (the fastShip section).

Examples

Minimal — just create a PR:

{ "fastShip": {} }

Install + build + auto-merge:

{
  "ship": {
    "installCommand": "pnpm install",
    "buildCommand": "pnpm build"
  },
  "fastShip": {
    "install": true,
    "build": true,
    "autoMerge": true
  }
}

CLI Examples

# Fast ship with fastShip config defaults
/candid-fast-ship

# Override auto-merge flag
/candid-fast-ship --auto-merge
/candid-fast-ship --no-auto-merge

# Preview plan without executing
/candid-fast-ship --dry-run

Remember

candid-fast-ship is opt-in by default — nothing runs unless you explicitly enable it in fastShip config. Use it for low-risk changes where the full candid-ship review cycle would be overkill: hotfixes, docs updates, config changes, dependency bumps.

For anything that needs review, use /candid-ship or enable fastShip.review: true.