بنقرة واحدة
conventional-commit
Conventional Commits format plus atomic, monorepo-aware commit composition rules.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Conventional Commits format plus atomic, monorepo-aware commit composition rules.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Run the canonical build plus all nine per-project test commands from docs/TESTING.md. Never uses solution-level dotnet test.
Create or re-baseline lean, repository-grounded implementation plans and persistent dev docs when users ask for an implementation plan, technical plan, feature plan, refactor plan, or dev-docs workstream.
Senior CTO review workflow for repository-grounded implementation-plan workstreams used before coding.
Apply project EF Core conventions for repositories, DbContext setup, query filters, migrations, and seeded lookup data.
Create a self-contained HTML artifact focused on a high-quality SVG architecture or system diagram with minimal supporting prose.
Create a pragmatic self-contained HTML plan that organizes the user's plan content visually without expanding the scope unnecessarily.
| name | conventional-commit |
| description | Conventional Commits format plus atomic, monorepo-aware commit composition rules. |
| type | convention |
| enforcement | enforce |
| priority | high |
ABOUTME: Conventional Commits convention with monorepo scope refinement. ABOUTME: Enforces atomic, intent-matched commit composition and messages.
Monorepo-Aware Commit Convention
Based on Conventional Commits v1.0.0. Extends the spec with a project-scoped convention for this monorepo.
Enforce a consistent, parseable commit message format that:
git commit, git_add_or_commit, gitlens_commit_composer)gitkraken-cli skill is active (auto-loads this skill for composition and formatting)type(project/module): description
[optional body]
[optional footer(s)]
type is always the first word — no project prefix before the type.(project/module) — slash-separated, in parentheses.BREAKING CHANGE:, issue refs (Closes #123), co-authors.| Type | When to Use |
|---|---|
feat | New feature or capability |
fix | Bug fix |
refactor | Code change that neither fixes a bug nor adds a feature |
docs | Documentation only |
test | Adding or correcting tests |
chore | Build, CI, tooling, dependency updates |
style | Formatting, whitespace (no logic change) |
perf | Performance improvement |
ci | CI/CD pipeline changes |
build | Build system or external dependency changes |
revert | Reverts a previous commit |
The first segment of scope identifies the project boundary:
| Scope Prefix | Maps To |
|---|---|
api | Explore.API/ — REST endpoints, middleware, filters |
blazor | Explore.Blazor/ + Explore.Blazor.Client/ — UI layer |
app | Explore.Application/ — CQRS handlers, DTOs, validators |
domain | Explore.Domain/ — entities, value objects, invariants |
persistence | Explore.Persistence/ — EF Core, migrations, repositories |
infra | Explore.Infrastructure/ — external services, email, storage |
apphost | Explore.AppHost/ — Aspire orchestration |
test | All test projects |
docs | Documentation, skills, agents |
config | Solution-level config, CI/CD, .Codex/ |
The second segment (after /) is the module or feature area. Keep it short — a noun, not a sentence.
feat(api/taxonomy): implement category CRUD endpoints
fix(persistence/events): correct soft-delete filter on EventQuery
refactor(app/rsvp): extract validation into specification
docs(config/skills): add conventional-commit skill
test(api/events): add integration tests for event creation
chore(apphost): upgrade Aspire SDK to 9.2
style(blazor/components): fix inconsistent BEM class names
perf(persistence/queries): add covering index for event listing
Commit composition is part of this skill, not a tool-specific workflow. Before staging or committing, split the working tree by intent, scope, and work unit. The question is not "can these files compile together?" but "would reverting this commit revert exactly one coherent change?"
Default expectation: when a working tree contains more than one independently understandable change, the result should be multiple atomic commits. A single large commit that regroups everything is a failure unless the changes are demonstrably one indivisible work unit.
Every commit must pass all of these checks:
Split into separate commits whenever any of these are true:
feat + fix, refactor + docs, etc.).Large file count is a warning sign, not an automatic failure. A broad commit is allowed only when every file is required for the same indivisible work unit (for example, a coordinated rename or generated migration plus its model change). Otherwise, split it.
Never stage all changes merely because they are present. Never use an AI commit composer as permission to create a mixed commit; its output must still satisfy the Atomicity Gate above.
Prefer these splits:
feat(api/events): add event publish endpoint
test(api/events): cover event publish authorization
docs(api/events): document publish endpoint behavior
Over this mixed commit:
feat(api/events): add publish endpoint and tests and docs
Prefer these splits:
refactor(app/organizations): extract membership policy
fix(blazor/organizations): preserve selected organization filter
Over this partially related commit:
refactor(app/organizations): update organization handling
Append ! after the scope, and include a BREAKING CHANGE: footer:
feat(api/events)!: replace EventDto with EventResource
BREAKING CHANGE: EventDto removed. All consumers must use EventResource.
feat(api/events) not api feat(events).project/module — both segments required unless the change is project-wide (then just project).BREAKING CHANGE: in footer — not just the ! suffix alone.If a change necessarily spans projects (e.g., adding a new API endpoint with its handler):
feat(api/taxonomy): add category endpoints
Handler and DTOs added in Application layer.
Repository method added in Persistence layer.
Use the outermost/entrypoint project as the scope. Prefer splitting into separate commits when possible, but do not split a single indivisible vertical slice merely to satisfy project boundaries.
.agents/skills/gitkraken-cli/SKILL.md — uses this skill for commit composition and formattingdocs/CONTRIBUTING.md — contributor workflowEnforcement Level: ENFORCE