Skip to content

Claude Code workflow improvements from gemicro sessions #17

Description

@evansenter

Overview

Workflow improvement suggestions noticed while working on evansenter/gemicro. These would reduce back-and-forth and increase autonomy.


1. Auto-Approve PR Merge After CI Passes

Problem: Manual "merge" confirmation needed after CI passes, even when already approved.

Solution: Add to global ~/.claude/CLAUDE.md:

### Auto-Merge Rules
When I explicitly say "merge" or approve a PR for merge, proceed with merging once CI passes without waiting for re-confirmation.

Or add to allowed tools in .claude/settings.json:

"Bash(gh pr merge:*)"

2. Streamline PR Branch Updates

Problem: Manual confirmation needed to rebase + force-push when branch is behind main.

Solution: Add to allowed tools:

"Bash(git rebase origin/main)",
"Bash(git push origin * --force-with-lease)"

And add guidance to CLAUDE.md:

### PR Branch Management
When a PR can't merge due to being behind main, automatically rebase and force-push (with --force-with-lease) without asking.

3. Add fetch-then-review Hook for PR Feedback

Problem: /pr-feedback requires manual invocation after CI completes.

Solution: Create ~/.claude/hooks/pr_ci_complete.sh:

#!/bin/bash
# Post-CI hook: auto-fetch PR comments when CI completes

PR_NUM=$(gh pr view --json number -q .number 2>/dev/null)
if [ -n "$PR_NUM" ]; then
    COMMENTS=$(gh api repos/{owner}/{repo}/issues/$PR_NUM/comments --jq 'length')
    if [ "$COMMENTS" -gt 0 ]; then
        echo "PR #$PR_NUM has $COMMENTS comment(s) - consider running /pr-feedback"
    fi
fi

4. Consolidate Duplicate Allowed Commands

Problem: .claude/settings.json has many verbose patterns like:

"Bash(git -C /Users/evansenter/Documents/projects/gemicro commit -m \"$(cat <<'EOF'..."

Solution: Simplify to wildcard patterns:

"Bash(git -C /Users/evansenter/Documents/projects/gemicro commit:*)",
"Bash(git -C /Users/evansenter/Documents/projects/gemicro push:*)",
"Bash(git -C /Users/evansenter/Documents/projects/gemicro rebase:*)"

This reduces settings file bloat significantly and covers all command variants.


5. Add Project-Specific Quality Gate Command

Problem: Have to remember to run tests, clippy, fmt before pushing.

Solution: Add to project CLAUDE.md:

## Quick Commands
- **Full check**: `cargo fmt --all -- --check && cargo clippy --workspace -- -D warnings && cargo test --workspace`

Or create a justfile / Makefile:

check:
    cargo fmt --all -- --check
    cargo clippy --workspace -- -D warnings
    cargo test --workspace

Then add Bash(make check) or Bash(just check) to allowed tools.


6. Enable ralph-wiggum Plugin

Reference: https://github.com/anthropics/claude-plugins-official/tree/main/plugins/ralph-wiggum

Adds personality to responses if desired:

claude plugins install ralph-wiggum

7. Add Timestamp to Session Init

Problem: Hard to track when sessions started for debugging.

Solution: Update session_init hook:

echo "Session started: $(date '+%Y-%m-%d %H:%M:%S')"

Priority

Highest impact:

  1. refactor: Make git pull opt-in and skip unchanged LaunchAgent reload #4 - Consolidate allowed Bash patterns (reduces settings file bloat)
  2. Add dark mode theme switching for btop and iTerm2 #1 - Auto-merge guidance
  3. docs: Add --help flag and fix bootstrap line references #5 - Quality gate command

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions