npx skills add ...
npx skills add bagisto/agent-skills --skill bagisto-git-workflow
Use when branching, committing, writing a CHANGELOG entry or opening a pull request against a Bagisto repository. Trigger phrases include "branch", "commit", "commit message", "PR", "pull request", "changelog", "merge", "conventional commits", "release notes".
npx skills add bagisto/agent-skills --skill bagisto-git-workflow
The conventions this repository actually follows, read from its history rather than from a generic Git guide.
<author>/<topic> or <author>/<type>/<topic>, lowercase and hyphenated:
Branch from the release line you are targeting — 2.4 for 2.4 work, master
for the next major — and open the pull request against that same branch. Never
commit directly to 2.4 or master.
Conventional Commits, lowercase subject, imperative or descriptive. Across the
last 200 commits: fix: 66, feat: 21, chore: 9, chore(deps): 5,
test: 3, refactor(shop): 1, docs: 1.
A scope is optional and used sparingly — refactor(shop):, chore(deps):.
Write a body only when the subject cannot carry the reason — 12 of the last 100 non-merge commits have one. The body explains why, not what the diff shows — and it is the right home for anything you were tempted to write as a comment in the code, since this codebase does not take comments inside method bodies.
Never add AI or tool attribution. No Co-Authored-By for an assistant, no
"Generated with", no robot emoji. There are none in this repository's history
and none should appear.
CHANGELOG.md opens with ## Unreleased, then one section per release:
Entries are - prefixed with a blank line between them, and are prose written
for the person upgrading: the user-visible effect, in full sentences. Not a
commit subject, not a diff summary.
Fixed the mega search leaving you on an empty tab when another tab had results, which read as nothing being found. It now opens the first tab that matched.
Every entry is at most two lines — clear and to the point. This is a hard ceiling, and it applies to both shapes:
| Shape | When |
|---|---|
- <prose> | A feature or a change with no reported issue |
- #11432 [fixed] - <prose> | A fix for a reported issue |
State the user-visible effect and stop. The cause, the internal mechanism and the history are not CHANGELOG material — they belong in the commit message or the pull request, which is where anyone investigating the change will look. If an entry does not fit in two lines, it is carrying explanation that should move there.
Add the entry under ## Unreleased. Do not invent a version heading or a date —
releases are cut separately.
Merged with GitHub's default subject, which is what the history shows:
The description states what changed and why, and names anything a reviewer cannot see in the diff — a config default, a migration, a follow-up left out. Run the verification gates before opening it, and say in the description which ran and which were skipped.
--force onto a shared branch, and never rewrite published history..env, credentials, vendor/, node_modules/, or build
output under public/themes/*/build/.REQUIRED SUB-SKILL: Use bagisto-change-verification before calling any change done.
- Fixed the admin product listing repeating a product once for every channel it is carried by.- Fixed the admin product listing repeating a product once for every channel it is carried by, so a
store with three channels listed it three times. The PostgreSQL work had widened the grouping from
the product to every selected column, which made the channel part of the group; it now picks one
row per product. ← the cause belongs in the commit message, not hereMerge pull request #11426 from devansh-webkul/themes-improvements