rust-config-tree 0.2.2

Recursive include tree utilities for layered configuration files.
Documentation
---
description: "Use when: user asks to commit code, push code, or submit changes. Commits current-theme files only, using conventional English commit message format, then pushes."
argument-hint: "[summary]"
agent: "agent"
---

Inspect the working tree, isolate files that belong to the current theme, draft a commit message in English, commit, and push.

## Commit Message Format (mandatory)

```
<summary line>
- <change item>
- <change item>
```

Rules:

- **Summary line**: one line, English, imperative mood, expresses a single theme. No multi-theme commits. Keep under 72 characters.
- **Change items**: flat bullet list, one per line. Describe what changed and the result. Do not mechanically list file names.
- Common summary prefixes: `Add`, `Fix`, `Refactor`, `Update`, `Remove`, `Consolidate`, `Wire`, `Implement`.

## Workflow

### 1. Inspect the working tree

Run:

```bash
git status --short
git diff --stat
```

Answer:

- What parallel changes exist in the working tree?
- Which files belong to the current theme?
- Which files must NOT enter this commit?

### 2. Isolate the path set

Only stage files that belong to the current theme. Typical scope:

- Source code + corresponding tests + spec/plan backfill → can go in one commit.
- Unrelated modules, unrelated skills, temporary files → exclude.

If the user provides a summary description after the slash command, use it as the commit summary line. Otherwise, derive the summary from the staged changes.

### 3. Draft the commit message

Write the commit message in the required format. Show it to the user for confirmation before committing.

### 4. Commit

```bash
git add <path-set>
git commit -m "<message>"
```

### 5. Push

```bash
git push
```

If the branch has no upstream, use:

```bash
git push --set-upstream origin <current-branch>
```