[ t128n ]

Conventional

Collection of conventional practices.

Conventional practices make project communication easier to read, search, automate, and review.

Conventional Commits

Conventional Commits define a structured commit message format.

Format

<type>[optional scope][optional !]: <description>
[optional body]
[optional footer(s)]

Examples

feat(search): support GitHub repository inputs
fix(package-json): show not-found message for missing package.json
refactor(api)!: remove legacy package lookup endpoint
BREAKING CHANGE: package lookup now requires a PURL-compatible input.

Reference

PartMeaningExample
typeKind of changefeat, fix, docs
scopeArea affected by the changesearch, api, ui
!Marks a breaking changefeat(api)!:
descriptionShort imperative summaryadd package scanner
bodyOptional explanationWhy the change was needed
footerOptional metadataRefs: #123

Common types

TypeUse for
featNew user-facing or API feature
fixBug fix
docsDocumentation only
styleFormatting, whitespace, lint-only changes
refactorCode change without feature or bug fix
perfPerformance improvement
testTests only
buildBuild system or dependency changes
ciCI/CD configuration
choreMaintenance work
revertReverting a previous change

SemVer mapping

CommitRelease impact
fix:Patch
feat:Minor
! or BREAKING CHANGE:Major

Conventional Branches

Conventional Branches define a structured branch naming format.

Format

<type>/<description>

Examples

feat/support-github-purl-inputs
fix/package-json-not-found-message
chore/update-dependencies

Reference

PartMeaningExample
typeKind of workfeat, fix, chore
/Separator between type and descriptionfeat/search-input
descriptionShort kebab-case summarysupport-github-purl-inputs

Common branch types

TypeUse for
feat/New feature
fix/Bug fix
bugfix/Bug fix, long form
hotfix/Urgent production fix
release/Release preparation
chore/Maintenance work

Rules of thumb

Examples with issue numbers:

feat/69-support-purl-inputs
fix/70-package-json-error-state
chore/71-update-ci-cache

Conventional Comments

Conventional Comments define a structured format for review feedback.

Format

<label> [optional decorations]: <subject>
[optional discussion]

Examples

suggestion: Extract this parser into a small helper.
That would keep the route handler focused on request handling.
issue (blocking): This changes the fallback behavior for scoped npm packages.
Please add a regression test before merging.
nitpick (non-blocking): The variable name could be more specific.
Maybe `normalizedPackageInput` instead of `value`.

Reference

PartMeaningExample
labelType of feedbacksuggestion, issue, nitpick
decorationsExtra context or priority(blocking), (non-blocking)
subjectMain feedbackThis can return null.
discussionOptional reasoning or next stepExplanation, context, alternative

Common labels

LabelUse for
praisePositive feedback
nitpickTiny preference, usually non-blocking
suggestionProposed improvement
issueConcrete problem
todoSmall required follow-up
questionClarification request
thoughtNon-blocking idea
choreProcess task
noteHelpful context
typoSpelling or wording issue
polishMinor quality improvement
quibbleVery minor preference

Common decorations

DecorationMeaning
(blocking)Must be resolved before merge
(non-blocking)Should not block merge
(if-minor)Only fix if the change is small
(security)Security-related concern
(test)Test-related concern
(ux)User-experience concern

Traceable comments (Beyond Conventional Comments Spec)

Comments should optionally reference an issue or owner when the feedback should remain traceable.

Keep the main comment readable. Put issue references or ownership metadata at the bottom of the comment.

Format

<label> [optional decorations]: <subject>
[optional discussion]
[optional reference]
[optional owner]

Examples

issue (blocking): This changes the fallback behavior for missing package.json files.
The UI should distinguish “file not found” from “file found but invalid”.
Refs: #70
suggestion (non-blocking): Normalize GitHub repository URLs before routing.
That would keep `github.com/owner/repo` and `https://github.com/owner/repo` behavior consistent.
Refs: e18e/replacements.fyi#70
todo: Revisit the zero fallback once callers can distinguish unresolved data from zero values.
Owner: @serhalp
Refs: #123

Reference styles

FormatUse for
Refs: #123Issue in the same repository
Refs: owner/repo#123Issue in another GitHub repository
Refs: https://...External tracker, discussion, or non-GitHub issue
Owner: @usernamePerson with context or follow-up responsibility

Prefer issue-bound references over user-bound references. Issues are more durable than people, usernames, or team assignments.