From sorah-guides
Crafts git commit messages and pull request titles/descriptions using conventions for <50-char imperative subjects, component prefixes (e.g., ClassName:), specific verbs (fix, add, extract), and explanatory bodies.
npx claudepluginhub sorah/config --plugin sorah-guidesThis skill uses the workspace's default tool permissions.
Conventions for writing git commit messages and pull request descriptions. Project-specific conventions always take priority.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Conventions for writing git commit messages and pull request descriptions. Project-specific conventions always take priority.
fix, add, remove, use, avoid, ensure, adjust, allow, enable, extract, introduce, show, move, rollavoid enlarging small images, avoid double-save on withdrawconfig.x.asset_file_uploadable, event_submission_open?ops-lb: rknw -> rknetTechniques when the subject runs long:
add when the subject already names the primary new thing: site-sessions: SiteSession model not … add SiteSession model — keep add when supplementing existing code (specs, logging)site-sessions: SiteSessionIssuance service not … service and background jobs — mention omitted parts in the body& over and: PrimarySession & User changessite-sessions: PrimarySession & User changes not … for site sessionsPrefer specific verbs over generic ones:
avoid or address over fix for preventive changesextract over refactor when pulling out a concern/classintroduce over add when creating a new concept/abstractionreflect over update when syncing with external stategains for new capabilities (component as subject): SponsorEvent: gains hero image uploadlearns for new options/parameters: TitoApi: learns v3.1 paginationno longer for behavioral removals: event_submission_open? no longer gates asset uploadsroll for dependency updates and referenced image/git tag updates, releng for release engineering, trigger for CI/build triggersFormat: prefix: rest of subject — use when the commit targets a specific component.
Prefix types vary by what is being changed:
SponsorEventAssetFilesController: fix set_asset_file authorization, SiteSessionRenewal: just propagate errorsSponsorEventsController#destroy: avoid double-save on withdrawbroadcasts/show: sort recipients alphabeticallyevent-assets: begin validation, site-sessions: SiteSession modelDockerfile: build minimal libvips, CI: install libvips-toolstf/k8s: ..., radius: ..., grafana: ...Omit prefix when:
Extract GithubInstallation from GenerateSponsorsYamlFileJobroll latest dependencies, trigger build for 3.2.10typo, wip, oopsThe most important role of the body is to explain background and context that is NOT obvious from the diff. The diff shows what changed; the body explains why it was changed, what problem it solves, or what non-obvious behavior motivated the change.
- when enumerating multiple specificsCloses #NExamples:
sponsor_events: wrap asset file update in transaction
Prevent data loss when replacing a hero image and the subsequent
update fails validation. The old asset file destroy is now rolled
back if the event update doesn't succeed.
SponsorEventsController#destroy: avoid double-save on withdraw
withdrawn! saves immediately, creating one editing history record,
then save! creates a second one with no meaningful diff. The job
was enqueued with the second history, missing the status change
and skipping YAML regeneration.
Apply the same subject line conventions to PR titles (under 70 chars).
Never include test procedures, test plans, QA checklists, task lists, or TODO checkboxes in PR descriptions.
git -C <path> — it invalidates pre-approved permissions in Claude Code. Always cd to the target directory first, then run git commands.