Skip to content
Back to skills

Plans

ASecurity

A skill for updating your current branch with upstream changes, with intelligent conflict resolution.

  • 10 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added February 9, 2026
toolsbashgit

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 21 files and shows the line behind each finding

Scanned February 12, 2026

npx -y skills add technicalpickles/pickled-claude-plugins --skill plans --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Plans?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Plans
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/technicalpickles-plans/badge)](https://www.skillsdirectory.com/skills/technicalpickles-plans)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
# Design: `git:update` Skill

## Overview

A skill for updating your current branch with upstream changes, with intelligent conflict resolution.

**Trigger phrases:** "update", "sync", "pull in latest", "merge main"

**Primary use case:** You're the author of a PR that has conflicts and needs updating.

**Philosophy:**
- Merge (not rebase) to preserve history
- Resolve conflicts thoughtfully by understanding intent
- Show results for approval before committing

## Workflow: Detection & Merge

### Step 1: Detect upstream branch

```bash
# Try tracking branch first
git rev-parse --abbrev-ref @{upstream}

# If not set, check if we're on a PR branch
gh pr view --json baseRefName -q '.baseRefName'

# If neither, ask user
```

### Step 2: Fetch and merge

```bash
git fetch origin
git merge origin/{upstream-branch}
```

### Step 3: Branch on outcome

| Outcome | Action |
|---------|--------|
| Clean merge | Commit message auto-generated, push to remote |
| Conflicts | Proceed to conflict resolution workflow |
| Already up to date | Report "Already up to date" |

## Workflow: Conflict Resolution

### Step 1: Inventory conflicts

```bash
git diff --name-only --diff-filter=U
```

### Step 2: For each conflicted file, gather context

- Read the file with conflict markers
- Use `git log --oneline -5 -- {file}` on both branches to understand recent changes
- Look at the PR description or commit messages for intent

### Step 3: Analyze and resolve

For each conflict:

1. Identify what "ours" was trying to do (your branch's changes)
2. Identify what "theirs" was trying to do (upstream's changes)
3. Determine if changes are:
   - **Independent** - Both can coexist (e.g., different functions added)
   - **Overlapping** - Same area modified for different reasons (needs blending)
   - **Contradictory** - Mutually exclusive changes (needs decision)

4. Apply resolution, preferring to preserve both intents when possible

### Step 4: Present for approval

```markdown
## Conflict Resolution Summary

### file.ts
**Ours:** Added validation for email field
**Theirs:** Refactored form helpers to new pattern
**Resolution:** Applied your validation using the new helper pattern

[Show diff of resolved version]

---

Does this resolution look correct?
(A) Yes, commit and push
(B) Let me adjust manually
(C) Show me more context
```

## Workflow: Verification & Completion

### Step 1: Basic verification (always)

- Ensure no conflict markers remain (`<<<<<<<`, `=======`, `>>>>>>>`)
- Check files parse correctly (syntax check where tooling exists)

### Step 2: Contextual verification (when practical)

- If `package.json` was conflicted, run `npm install` / `yarn` to verify lockfile
- If tests are fast and local, offer to run them
- Check for any pre-commit hooks that would catch issues

### Step 3: Commit and push

```bash
git add {resolved-files}
git commit -m "Merge {upstream-branch} into {current-branch}

Resolved conflicts in:
- file1.ts
- file2.ts"

git push
```

### Step 4: Report completion

```markdown
## Update Complete

Merged `main` into `feature/my-branch`
Resolved 2 conflicts
Pushed to origin

PR should now be mergeable.
```

## Edge Cases

| Situation | Handling |
|-----------|----------|
| No upstream configured and no PR | Ask: "Update from which branch?" |
| Merge conflict too complex to auto-resolve | Present what was understood, offer manual resolution |
| Binary file conflicts | Flag for manual resolution, don't attempt auto |
| Submodule conflicts | Flag for manual resolution with guidance |
| User is on someone else's PR | Warn: "This is @{author}'s branch. Continue?" |

Files in this skill

  • 2025-01-02-slack-url-routing-design.md3.9 KB
  • 2025-01-12-buildkite-builder-support-design.md5.9 KB
  • 2025-01-12-buildkite-builder-support.md50.6 KB
  • 2025-01-12-tmp-file-collision-fix-design.md4.3 KB
  • 2025-01-22-auto-versioning-design.md4.4 KB
  • 2025-01-28-git-plugin-implementation.md14.8 KB
  • 2025-01-28-git-plugin-redesign.md4.2 KB
  • 2025-01-29-git-update-implementation.md11.7 KB
  • 2025-01-29-git-update-skill.md3.5 KB
  • 2025-02-01-hk-skill-design.md4 KB
  • 2025-02-01-semantic-versioning-automation.md5.4 KB
  • 2025-11-12-claude-skills-plugin-extraction-implementation.md20.3 KB
  • 2025-11-13-plugin-marketplace-restructure-design.md6 KB
  • 2025-11-13-plugin-marketplace-restructure.md20.9 KB
  • 2025-11-17-tool-routing-hook-design.md4.4 KB
  • 2025-12-03-tool-routing-plugin-design.md8.1 KB
  • 2025-12-03-tool-routing-plugin-implementation.md55.6 KB
  • 2025-12-05-plugin-restructure-implementation.md22.3 KB
  • 2025-12-05-plugin-restructure-with-skill-routes-design.md5.1 KB
  • 2025-12-05-reflect-command-design.md4.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.