gpc-train

Installation
SKILL.md

GPC Release Train

When to use

Use this skill when the task involves:

  • Setting up a config-driven staged rollout pipeline
  • Automatically progressing a release through tracks (internal → alpha → production) with time gates
  • Gating progression on crash rate and ANR rate thresholds
  • Pausing, resuming, or aborting an in-flight release train
  • Checking the current stage and gate health of a running train

Inputs required

  • Package name (or configured default in .gpcrc.json)
  • Release train config: stages with tracks, rollout percentages, and time delays
  • Gate thresholds: max crash rate and max ANR rate
  • Whether to pause, resume, or abort the train

Procedure

1) Configure the release train

Add a release-train block to .gpcrc.json in the project root:

{
  "release-train": {
    "stages": [
      { "track": "internal",   "rollout": 100 },
      { "track": "alpha",      "rollout": 100, "after": "2d" },
      { "track": "production", "rollout": 10,  "after": "7d" },
      { "track": "production", "rollout": 100, "after": "14d" }
    ],
    "gates": { "crashes": { "max": 1.5 }, "anr": { "max": 0.5 } }
  }
}

Config keys:

Key Type Description
stages[].track string Target track: internal, alpha, beta, production
stages[].rollout number Rollout percentage for this stage (1–100)
stages[].after string Minimum time to wait before this stage (e.g., 2d, 12h, 30m). Omit for immediate.
gates.crashes.max number Maximum crash rate percentage before pausing progression
gates.anr.max number Maximum ANR rate percentage before pausing progression

Read:

  • references/rollout-pipeline.md

2) Start the train

gpc train start

This reads .gpcrc.json, creates a state file at ~/.cache/gpc/train-<packageName>.json, and begins executing the first stage immediately. Subsequent stages are executed when the after time has elapsed and gates pass.

# Resume a paused train
gpc train start --resume

3) Check train status

gpc train status

Output:

Release Train · com.example.app
  Stage 2 / 4   alpha @ 100%   in progress
  Last progressed: 2026-03-17 11:00 (2 days ago)
  Next stage: production @ 10%   eligible in 5 days

  Gates (last check: 10 minutes ago)
    crashes   0.82%   ✓  (max 1.5%)
    anr       0.19%   ✓  (max 0.5%)
# Resume if paused due to a gate failure
gpc train status --resume

4) Monitor gate health

Before each stage transition, gpc train automatically checks the configured gates:

  • If all gates pass, the stage progresses (subject to the after time having elapsed).
  • If any gate fails, progression is paused and a warning is shown.
  • The user must fix the regression and re-run gpc train start --resume or gpc train status --resume.

Gate checks call the same vitals API as gpc vitals crashes and gpc vitals anr. Data lag of 6–48 hours applies to new releases — avoid configuring gates on the very first stage.

5) Pause a running train

gpc train pause

Pauses automatic progression. Does not halt or change the active rollout on any track. Run gpc train start --resume to continue.

6) Abort the train

gpc train abort

Aborts the train and halts all active rollouts on tracks managed by this train. State file is cleared. Use when a critical regression is found and the release must be stopped immediately.

Verification

  • gpc train status shows the correct current stage and gate health values
  • gpc status confirms rollout percentages on each track match the active stage in the train config
  • Gate values (crashes, ANR) are below configured max thresholds
  • State file at ~/.cache/gpc/train-<packageName>.json reflects the current stage index and last progression timestamp

Failure modes / debugging

Symptom Likely Cause Fix
Gate check fails Crash/ANR rate above configured max Fix the regression in a new release, then gpc train start --resume
Train already running Previous train was not completed or aborted gpc train status to check state; gpc train abort if needed
Stage progression skipped after time has not elapsed gpc train status shows time remaining until next eligible stage
Train aborted unexpectedly Gate threshold breached automatically Check gpc vitals crashes and gpc vitals anr, fix regression, then restart
State file missing Cache directory cleared or different machine Re-run gpc train start — it will re-read .gpcrc.json and restart from stage 1

Read:

  • references/rollout-pipeline.md — full lifecycle: config → start → gate check → progress → complete

Related skills

  • gpc-release-flow: Upload, promote, and manual rollout management
  • gpc-vitals-monitoring: Crash and ANR monitoring used by gate checks
  • gpc-ci-integration: Running gpc train in CI/CD pipelines
Related skills

More from yasserstudio/gpc-skills

Installs
6
First Seen
Mar 19, 2026