Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .agents/skills/git-workflow/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,10 @@ ______________________________________________________________________
Based on the user's request, load exactly one workflow doc:

| User intent | Load |
| ----------------------------------------------- | -------------------------------- |
|-------------------------------------------------|----------------------------------|
| Commit work, save changes, stage and commit | [docs/commit.md](docs/commit.md) |
| Create a branch, start a feature branch | [docs/branch.md](docs/branch.md) |
| Create/open/draft a PR, submit the current work | [docs/pr.md](docs/pr.md) |

When intent is ambiguous, prefer the more complete workflow. If the user says "commit and open a PR", load `docs/pr.md` — it covers the full lifecycle including commit and branch.
When intent is ambiguous, prefer the more complete workflow. If the user says "commit and open a
PR", load `docs/pr.md` — it covers the full lifecycle including commit and branch.
6 changes: 4 additions & 2 deletions .agents/skills/git-workflow/docs/branch.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,8 @@ ______________________________________________________________________

## Goal

Create a properly named branch for the current work based on inferred change intent, then switch to it.
Create a properly named branch for the current work based on inferred change intent, then switch to
it.

## Branch naming format

Expand Down Expand Up @@ -51,7 +52,8 @@ Examples:

## Branch-specific safety

If a branch with the same name already exists, append a short numeric suffix (e.g. `-2`) rather than overwriting it.
If a branch with the same name already exists, append a short numeric suffix (e.g. `-2`) rather than
overwriting it.

See also [Safety Rules](../shared/safety-rules.md) for general constraints.

Expand Down
9 changes: 6 additions & 3 deletions .agents/skills/git-workflow/docs/commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,17 +25,20 @@ Create a commit representing the user's current working changes using a conventi
[optional footer(s)]
```

The description must immediately follow the colon and space. Scope is wrapped in parentheses when present: `feat(parser): add CSV support`.
The description must immediately follow the colon and space. Scope is wrapped in parentheses when
present: `feat(parser): add CSV support`.

For breaking changes, append `!` after the type/scope and/or include a `BREAKING CHANGE:` footer. See [Conventional Types](../shared/conventional-types.md) for details.
For breaking changes, append `!` after the type/scope and/or include a `BREAKING CHANGE:` footer.
See [Conventional Types](../shared/conventional-types.md) for details.

## Workflow

1. Inspect repository status
2. Identify all modified files
3. Stage all user-modified files (see [File Inclusion Policy](../shared/file-inclusion-policy.md))
4. Exclude only obvious junk artifacts
5. Infer `<type>` and `<scope>` (see [Conventional Types](../shared/conventional-types.md) and [Scope Detection](../shared/scope-detection.md))
5. Infer `<type>` and `<scope>` (see [Conventional Types](../shared/conventional-types.md)
and [Scope Detection](../shared/scope-detection.md))
6. Generate and create the commit

## Output
Expand Down
27 changes: 18 additions & 9 deletions .agents/skills/git-workflow/docs/pr.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,27 +45,31 @@ Create a new branch if:

If already on a feature branch, use the current branch.

Branch naming follows `<type>/<scope>-<short-description>` (or `<type>/<short-description>` when no scope applies). See [Branch Workflow](branch.md) for full naming rules.
Branch naming follows `<type>/<scope>-<short-description>` (or `<type>/<short-description>` when no
scope applies). See [Branch Workflow](branch.md) for full naming rules.

______________________________________________________________________

## Execution flow

### 1 — Inspect repository

Determine: current branch, whether HEAD is detached, git status, modified files, diff summary, and commit history against the base branch.
Determine: current branch, whether HEAD is detached, git status, modified files, diff summary, and
commit history against the base branch.

### 2 — Infer metadata

Determine: PR type, optional scope, short description, PR title, branch name.

### 3 — Prepare branch

If on `main` or detached `HEAD`, create a new branch and switch to it. Otherwise stay on the current branch.
If on `main` or detached `HEAD`, create a new branch and switch to it. Otherwise stay on the current
branch.

### 4 — Commit work

Stage all user-modified files per [File Inclusion Policy](../shared/file-inclusion-policy.md). Exclude only obvious junk. Create commit. Skip if nothing to commit.
Stage all user-modified files per [File Inclusion Policy](../shared/file-inclusion-policy.md).
Exclude only obvious junk. Create commit. Skip if nothing to commit.

### 5 — Push branch

Expand All @@ -75,7 +79,8 @@ Push to origin. Set upstream if necessary.

Load `../templates/pull-request-template.md` and adapt it to the actual change.

Treat the template as a default outline, not a rigid contract. Prioritize reviewer scanability and signal quality over filling every heading.
Treat the template as a default outline, not a rigid contract. Prioritize reviewer scanability and
signal quality over filling every heading.

Required information:

Expand All @@ -86,16 +91,19 @@ Required information:
Default outline (adapt as needed):

- Summary - 2-4 sentences covering what changed and why
- Changes - grouped in the way that makes the diff easiest to review (for example by concern, subsystem, workflow, or user impact)
- Changes - grouped in the way that makes the diff easiest to review (for example by concern,
subsystem, workflow, or user impact)
- Validation - concrete tests, manual verification, and confidence signals
- Breaking Changes - include only when applicable
- Related Issues - include only when applicable; do not invent issue numbers
- Release Notes - include only for user-visible or package-relevant changes
- Notes for Reviewers - include when review guidance, risks, tradeoffs, follow-up context, or requested feedback focus would help; for UI changes, include screenshots/video links when useful
- Notes for Reviewers - include when review guidance, risks, tradeoffs, follow-up context, or
requested feedback focus would help; for UI changes, include screenshots/video links when useful

Review mode:

- open as draft when implementation is incomplete, checks are pending, or early feedback is requested
- open as draft when implementation is incomplete, checks are pending, or early feedback is
requested
- when draft, state what is incomplete and what feedback is being requested

Rules:
Expand All @@ -107,7 +115,8 @@ Rules:

### 7 — Create PR

Create the pull request using the generated title and body, as draft or ready-for-review based on the review mode rules above.
Create the pull request using the generated title and body, as draft or ready-for-review based on
the review mode rules above.

______________________________________________________________________

Expand Down
10 changes: 7 additions & 3 deletions .agents/skills/git-workflow/examples/feature-example.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ Current work adds automatic PR template loading and branch creation when running

## 📋 Summary

> Adds automation for branch preparation and PR generation when opening a pull request from the current repository state. This removes manual branch setup when starting from `main` and keeps PR metadata generation consistent with inferred change intent.
> Adds automation for branch preparation and PR generation when opening a pull request from the
> current repository state. This removes manual branch setup when starting from `main` and keeps PR
> metadata generation consistent with inferred change intent.

______________________________________________________________________

Expand All @@ -42,11 +44,13 @@ ______________________________________________________________________
## 🧪 Validation

- Build/test status: Not explicitly verified by the agent
- Manual verification performed: Reviewed repository status, branch behavior, and generated PR content paths
- Manual verification performed: Reviewed repository status, branch behavior, and generated PR
content paths
- Edge cases checked: Existing feature branch path and detached `HEAD` path

______________________________________________________________________

## 💬 Notes for Reviewers

> Please focus on branch creation guardrails and metadata inference fallbacks, especially when repository state is ambiguous.
> Please focus on branch creation guardrails and metadata inference fallbacks, especially when
> repository state is ambiguous.
2 changes: 1 addition & 1 deletion .agents/skills/git-workflow/shared/conventional-types.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Valid `<type>` values:

| Type | Description | SemVer impact |
| ---------- | ----------------------------------------------------------------- | ------------- |
|------------|-------------------------------------------------------------------|---------------|
| `feat` | Introduces a new feature | MINOR |
| `fix` | Patches a bug | PATCH |
| `build` | Changes to the build system or external dependencies | — |
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/git-workflow/shared/scope-detection.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Infer scope from the folder containing the majority of the changes.

| Folder | Scope |
| ----------------------------- | ------------------- |
|-------------------------------|---------------------|
| `.github/workflows` | `github` |
| `src/Core` | `core` |
| `src/Abstractions` | `abstractions` |
Expand Down
14 changes: 12 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ version: 2
updates:
- package-ecosystem: "nuget"
directory: "/"
labels:
- "dependabot"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
Expand Down Expand Up @@ -32,7 +34,9 @@ updates:
- "5.3.0"

- package-ecosystem: "github-actions"
directoSystem.Text.Jsonry: "/"
directory: "/"
labels:
- "dependabot"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
Expand All @@ -50,6 +54,8 @@ updates:

- package-ecosystem: "npm"
directory: "/"
labels:
- "dependabot"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
Expand All @@ -65,6 +71,8 @@ updates:

- package-ecosystem: "dotnet-sdk"
directory: "/"
labels:
- "dependabot"
schedule:
interval: "weekly"
commit-message:
Expand All @@ -74,6 +82,8 @@ updates:

- package-ecosystem: "pip"
directory: "/"
labels:
- "dependabot"
schedule:
interval: "weekly"
open-pull-requests-limit: 10
Expand All @@ -85,4 +95,4 @@ updates:
minor-and-patch:
update-types:
- "minor"
- "patch"
- "patch"
45 changes: 17 additions & 28 deletions .github/release-drafter.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,82 +4,73 @@ tag-template: 'v$RESOLVED_VERSION'
autolabeler:
- label: 'type: feat'
title:
- '/feat(\([^)]*\))?:/i'
- '/^feat(\([^)]*\))?:/i'
- label: 'type: fix'
title:
- '/fix(\([^)]*\))?:/i'
- '/^fix(\([^)]*\))?:/i'
- label: 'type: docs'
title:
- '/docs(\([^)]*\))?:/i'
- '/^docs(\([^)]*\))?:/i'
- label: 'type: refactor'
title:
- '/refactor(\([^)]*\))?:/i'
- '/^refactor(\([^)]*\))?:/i'
- label: 'type: test'
title:
- '/test(\([^)]*\))?:/i'
- '/^test(\([^)]*\))?:/i'
- label: 'type: chore'
title:
- '/chore(\([^)]*\))?:/i'
- '/^chore(\([^)]*\))?:/i'
- label: 'type: ci'
title:
- '/ci(\([^)]*\))?:/i'
- '/^ci(\([^)]*\))?:/i'
- label: 'type: revert'
title:
- '/^revert(\([^)]*\))?:/i'
- label: 'breaking-change'
body:
- '/BREAKING CHANGE/i'
title:
- '/^(feat|fix|docs|refactor|test|chore|ci|revert)(\([^)]*\))?!:/i'

categories:
- title: '🚀 Features'
labels:
- 'type: feat'
- 'feature'
- title: '🐛 Bug Fixes'
labels:
- 'type: fix'
- 'bug'
- 'bugfix'
- title: '📚 Documentation'
labels:
- 'type: docs'
- 'documentation'
- title: '⚡ Performance'
labels:
- 'type: perf'
- 'performance'
- title: '🔄 Refactoring'
labels:
- 'type: refactor'
- 'refactor'
- title: '✅ Tests'
labels:
- 'type: test'
- 'test'
- title: '🔧 Maintenance'
labels:
- 'type: chore'
- 'type: ci'
- 'chore'
- 'ci'
- 'type: revert'
- title: '⚠️ Breaking Changes'
labels:
- 'breaking'
- 'breaking-change'

version-resolver:
major:
labels:
- 'breaking'
- 'breaking-change'
minor:
labels:
- 'type: feat'
- 'feature'
patch:
labels:
- 'type: fix'
- 'type: docs'
- 'type: refactor'
- 'type: test'
- 'type: chore'
- 'type: ci'
- 'bug'
- 'type: revert'
default: patch

template: |
Expand All @@ -99,9 +90,7 @@ include-labels:
- 'type: test'
- 'type: chore'
- 'type: ci'
- 'feature'
- 'bug'
- 'breaking'
- 'type: revert'
- 'breaking-change'

exclude-labels:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/docs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
- 'pyproject.toml'
- 'uv.lock'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
types: [ opened, synchronize, reopened, ready_for_review ]
branches: [ main ]
paths:
- 'docs/**'
Expand Down Expand Up @@ -38,22 +38,22 @@ jobs:
uses: actions/checkout@v6
with:
fetch-depth: 0

- name: Install pngquant
run: sudo apt-get update && sudo apt-get install -y pngquant

- name: Setup Python
uses: actions/setup-python@v6
with:
python-version-file: "pyproject.toml"

- name: Install uv
uses: astral-sh/setup-uv@v7
with:
enable-cache: true

- name: Install the project
run: uv sync --locked --all-extras --dev
run: uv sync --all-extras --dev

- name: Setup Pages
id: pages
Expand Down
Loading
Loading