git-dev-feature

Start a new feature development workflow by creating an issue and feature branches across the main repo and submodules.

5 stars

Best use case

git-dev-feature is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Start a new feature development workflow by creating an issue and feature branches across the main repo and submodules.

Teams using git-dev-feature should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/git-dev-feature/SKILL.md --create-dirs "https://raw.githubusercontent.com/bluredengine/blured/main/.claude/skills/git-dev-feature/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/git-dev-feature/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How git-dev-feature Compares

Feature / Agentgit-dev-featureStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Start a new feature development workflow by creating an issue and feature branches across the main repo and submodules.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# git-dev-feature

Start a new feature development workflow by creating an issue and feature branches across the main repo and submodules.

## Invocation

User-invocable skill. Triggers when:
- User says `/git-dev-feature <description>`
- User says "start feature", "new feature", "implement feature"

## Parameters

Takes a sentence describing the feature to implement.

Example:
```
/git-dev-feature add dark mode toggle to settings page
```

## Repository Layout

- **Main repo** (`g:/blured-engine`): `origin` → `github.com:bluredengine/blured.git`, base branch `main`
- **godot/** submodule: `origin` → `github.com:bluredengine/godot.git`, base branch `main`
- **opencode/** submodule: `origin` → `github.com:bluredengine/opencode.git`, base branch `main`

## Workflow

### Step 1: Create GitHub Issues

Create a new issue on **each repo** (main repo + submodules). Each repo gets its own issue with cross-references.

#### 1a. Main repo issue

```bash
cd "g:/blured-engine"
gh issue create --repo bluredengine/blured --title "<description>" --body "## Description

<description>

## Related Issues

- godot: bluredengine/godot#<godot-issue-number>
- opencode: bluredengine/opencode#<opencode-issue-number>

## Created by

git-dev-feature skill

## Status

- [ ] Implementation in progress
"
```

#### 1b. godot submodule issue

```bash
cd "g:/blured-engine/godot"
gh issue create --repo bluredengine/godot --title "<description>" --body "## Description

<description>

## Related Issues

- blured-engine: bluredengine/blured#<main-issue-number>
- opencode: bluredengine/opencode#<opencode-issue-number>

## Created by

git-dev-feature skill

## Status

- [ ] Implementation in progress
"
```

#### 1c. opencode submodule issue

```bash
cd "g:/blured-engine/opencode"
gh issue create --repo bluredengine/opencode --title "<description>" --body "## Description

<description>

## Related Issues

- blured-engine: bluredengine/blured#<main-issue-number>
- opencode: bluredengine/opencode#<opencode-issue-number>

## Created by

git-dev-feature skill

## Status

- [ ] Implementation in progress
"
```

**Note**: Create all 3 issues first, then go back and update their bodies with the correct cross-reference issue numbers.

### Step 2: Create Feature Branches

Use the **main repo issue number** in the branch name across all three repos. Create from each repo's base branch.

Branch naming: `feature/<main-issue-number>-<short-slug>` (e.g. `feature/58-add-dark-mode-toggle`)

#### 2a. Main repo (from `main`)

```bash
cd "g:/blured-engine"
git fetch origin
git checkout main
git pull origin main
git checkout -b feature/<main-issue-number>-<slug>
git push -u origin feature/<main-issue-number>-<slug>
```

#### 2b. godot submodule (from `main`)

```bash
cd "g:/blured-engine/godot"
git fetch origin
git checkout main
git pull origin main
git checkout -b feature/<main-issue-number>-<slug>
git push -u origin feature/<main-issue-number>-<slug> --no-verify
```

#### 2c. opencode submodule (from `main`)

```bash
cd "g:/blured-engine/opencode"
git fetch origin
git checkout main
git pull origin main
git checkout -b feature/<main-issue-number>-<slug>
git push -u origin feature/<main-issue-number>-<slug> --no-verify
```

### Step 3: Overwrite CLAUDE.local.md

Overwrite the current workspace status to CLAUDE.local.md:

```markdown
## Current Work Session

**Issue**: #<main-issue-number> - <description>
**Branch**: feature/<main-issue-number>-<slug>
**Started**: <timestamp>
**Status**: In Progress

### Repos
| Repo | Base Branch | Feature Branch | Issue |
|------|-------------|----------------|-------|
| blured-engine | main | feature/<main-issue-number>-<slug> | #<main-issue-number> |
| godot | main | feature/<main-issue-number>-<slug> | bluredengine/godot#<godot-issue-number> |
| opencode | main | feature/<main-issue-number>-<slug> | bluredengine/opencode#<opencode-issue-number> |

---

```

If CLAUDE.local.md doesn't exist, create it with this content.

### Step 4: Confirm to User

Output:
```
Created issues:
  blured-engine: #<main-issue-number>
  godot:           bluredengine/godot#<godot-issue-number>
  opencode:        bluredengine/opencode#<opencode-issue-number>

Branch: feature/<main-issue-number>-<slug> (created in all 3 repos)

  blured-engine: main   → feature/<main-issue-number>-<slug>
  godot:           main   → feature/<main-issue-number>-<slug>
  opencode:        main   → feature/<main-issue-number>-<slug>

Workspace logged in CLAUDE.local.md

Ready to implement! When done, use /git-dev-merge to merge back.
```

## Important Rules

1. Always fetch and pull base branches before creating feature branches
2. Use lowercase and hyphens for branch slug
3. Keep branch name under 50 characters
4. Use `--no-verify` when pushing submodules (upstream hooks may fail on forks)
5. Create an issue on **each repo** (main + submodules) with cross-references between them
6. Use the **main repo issue number** in the branch name across all three repos for consistency
7. Don't start implementation — just set up the workspace
8. If a submodule has no changes expected, still create the branch (can be deleted later)

Related Skills

worldbuilding

5
from bluredengine/blured

Build the game world's foundation before generating concept art. Use when starting a new game project, when user says "build world", "worldbuilding", "world design", or before art direction. Guides the user through 3 questions to establish the world's unique identity.

ui-production

5
from bluredengine/blured

Create polished player-facing UI from whitebox to final assets. 5-step workflow from UI mockup to deployed game UI. Do NOT use for whitebox/prototype UI.

ui-layout-replicate

5
from bluredengine/blured

Replicate a UI layout from a cornerstone reference image into a pixel-perfect .tscn scene. Use when user says "replicate UI layout", "build layout from reference", "1:1 UI copy", or has a cornerstone UI image to turn into a scene.

polish

5
from bluredengine/blured

Systematic polish pass — add juice, screen effects, audio, transitions, UI animations, and game feel improvements. Use when user says "polish", "add juice", "make it feel better", "add effects", or similar.

analyze-screenshot

5
from bluredengine/blured

Analyze game screenshots for visual design issues, UI problems, and art consistency. Automatically triggers when a screenshot is attached.

add-level

5
from bluredengine/blured

Guided level design — create a new level with purpose, environment, layout, enemies, and auto-generated assets. Use when user says "add a level", "new level", "create a stage", or similar.

tech-debt

5
from bluredengine/blured

Clean up tech debt - remove obsolete files, temporary files, unused code, dead imports, and other cruft. Use when user wants to clean up the codebase, remove unused code, or reduce tech debt.

start-blured

5
from bluredengine/blured

Start the Blured Engine (OpenCode AI server + Godot editor)

package-blured

5
from bluredengine/blured

Package the Blured Engine into a distributable directory

git-pushing

5
from bluredengine/blured

Stage, commit, and push git changes with conventional commit messages. Use when user wants to commit and push changes, mentions pushing to remote, or asks to save and push their work. Also activates when user says "push changes", "commit and push", "push this", "push to github", or similar git workflow requests.

git-dev-merge

5
from bluredengine/blured

Merge feature branches back to their base branches across the main repo and submodules. Use when user says "merge feature", "finish feature", "merge back", or invokes /git-dev-merge.

build-blured

5
from bluredengine/blured

Build the Blured Engine (OpenCode + Godot)