Claude Code Plugins

Community-maintained marketplace

Feedback

SAFe development workflow guidance including branch naming conventions, commit message format, rebase-first workflow, and CI validation. Use when starting work on a Linear ticket, preparing commits, creating branches, writing PR descriptions, or asking about contribution guidelines.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name safe-workflow
description SAFe development workflow guidance including branch naming conventions, commit message format, rebase-first workflow, and CI validation. Use when starting work on a Linear ticket, preparing commits, creating branches, writing PR descriptions, or asking about contribution guidelines.

SAFe Workflow Skill

📋 TEMPLATE: This skill uses {TICKET_PREFIX} as a placeholder. Replace with your project's ticket prefix (e.g., WOR, PROJ, FEAT).

Trigger Conditions

Invoke this skill when:

  • User mentions starting work on a ticket (e.g., "I'm starting {TICKET_PREFIX}-447")
  • User is about to create a commit
  • User is creating or naming a branch
  • User asks about PR workflow or contribution guidelines
  • User references CONTRIBUTING.md or workflow process
  • User asks "how should I commit this?" or similar

Branch Naming Convention

Required Format: {TICKET_PREFIX}-{number}-{short-description}

Rules

  • MUST start with {TICKET_PREFIX}- followed by ticket number
  • Use lowercase letters and hyphens for description
  • Keep description short but meaningful (max 50 chars total)
  • Never include personal names or dates

Examples

{TICKET_PREFIX}-447-create-safe-workflow-skill
{TICKET_PREFIX}-123-fix-login-redirect
{TICKET_PREFIX}-234-add-stripe-checkout

Anti-Patterns (Do NOT use)

feature/add-dark-mode       (missing ticket number)
fix/broken-login            (missing ticket number)
john-new-feature            (personal naming)
WIP                         (not descriptive)

SAFe Commit Message Format

Required Format: type(scope): description [{TICKET_PREFIX}-XXX]

Types (Required)

Type When to Use
feat New feature
fix Bug fix
docs Documentation only
style Formatting (no logic changes)
refactor Code restructuring (no feature/bug)
test Adding or updating tests
chore Maintenance, dependencies
ci CI/CD pipeline changes

Scope (Optional)

Common scopes: payments, auth, ui, api, db, harness, rls

Ticket Reference (MANDATORY)

Every commit MUST end with [{TICKET_PREFIX}-XXX] referencing the ticket.

Examples

feat(harness): create safe-workflow skill [{TICKET_PREFIX}-447]
fix(auth): resolve login redirect issue [{TICKET_PREFIX}-57]
docs: update API documentation [{TICKET_PREFIX}-123]
refactor(db): optimize query performance [{TICKET_PREFIX}-234]
chore: upgrade dependencies [{TICKET_PREFIX}-337]

Rebase-First Workflow

This project enforces linear history through rebase-first workflow. Never create merge commits.

Workflow Steps

# 1. Start from latest {MAIN_BRANCH}
git checkout {MAIN_BRANCH} && git pull origin {MAIN_BRANCH}

# 2. Create feature branch
git checkout -b {TICKET_PREFIX}-{number}-{description}

# 3. Make commits (SAFe format)
git add .
git commit -m "type(scope): description [{TICKET_PREFIX}-XXX]"

# 4. Keep branch updated during development
git fetch origin
git rebase origin/{MAIN_BRANCH}

# 5. Before pushing - rebase one final time
git fetch origin
git rebase origin/{MAIN_BRANCH}
# Resolve any conflicts locally

# 6. Push with force-with-lease (safe after rebase)
git push --force-with-lease origin {TICKET_PREFIX}-{number}-{description}

# 7. Create PR using template
# Use "Rebase and merge" strategy ONLY

Why --force-with-lease?

  • Safer than --force (won't overwrite unseen remote changes)
  • Required after rebasing to push cleanly
  • Prevents accidental overwrites in team environments

Pre-PR Validation Checklist

Before creating a PR, ALL of these must pass:

1. Code Quality Validation

{CI_VALIDATE_COMMAND}

This runs: type-check, lint, test:unit, format:check

2. Markdown Linting

{LINT_MD_COMMAND}

3. Git Status Check

git status
# Must show: nothing to commit, working tree clean

4. Rebase Status

git fetch origin
git rebase origin/{MAIN_BRANCH}
# Must be up-to-date with {MAIN_BRANCH} branch

5. Commit Message Audit

git log origin/{MAIN_BRANCH}..HEAD --oneline
# All commits must follow SAFe format with [{TICKET_PREFIX}-XXX]

Shortcut: Use /pre-pr command to run all validation steps.

Available Slash Commands

Command Purpose When to Use
/start-work Begin work on a ticket Starting any new work
/check-workflow Quick status check Periodically during work
/pre-pr Full validation before PR Before creating PR
/end-work Complete session cleanly End of work session
/quick-fix Fast-track for small bug fixes Minor, isolated fixes

Multi-Team Coordination

High-Risk Files (Announce Before Touching)

File Risk Required Action
prisma/schema.prisma HIGH Announce in Slack BEFORE touching
prisma/migrations/* HIGH Coordinate with all teams
docker-compose*.yml HIGH All teams must restart containers
package.json MEDIUM Run {INSTALL_COMMAND} after sync
.env.template MEDIUM Update local .env files

Before Starting Work

Always sync with latest {MAIN_BRANCH}:

git checkout {MAIN_BRANCH} && git pull origin {MAIN_BRANCH}

Or use /local-sync command for full synchronization.

Authoritative Reference

For complete workflow documentation, see:

  • CONTRIBUTING.md - Full contributor guide (SINGLE SOURCE OF TRUTH)
  • CLAUDE.md - Development commands and architecture
  • .claude/README.md - Harness configuration and commands

Why These Rules Matter

  1. Linear History: Rebase-first prevents merge conflicts between teams
  2. Ticket Traceability: Every commit links to tickets for audit trail
  3. Quality Gates: CI validation catches issues before production
  4. Team Coordination: Branch naming enables automated workflows
  5. SAFe Compliance: Standardized format supports sprint reporting

Customization Guide

Placeholder Description Example
{TICKET_PREFIX} Your ticket/issue prefix WOR, PROJ, FEAT
{MAIN_BRANCH} Main git branch name main, dev
{CI_VALIDATE_COMMAND} CI validation command yarn ci:validate
{LINT_MD_COMMAND} Markdown linting command yarn lint:md
{INSTALL_COMMAND} Package install command yarn install