git-conventions — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited git-conventions (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The Lossless Group's conventions for git commit messages — making history readable, searchable, and useful for future-you.
Status: Initial scaffold (May 2026) — documenting observed patterns from lossless-monorepo.
Two accepted patterns:
Pattern A: Single effort grouping
{action}({effort-grouping}): {narrative description}Pattern B: Multiple effort groupings or chained actions
{action}({effort-1}, {effort-2}): {narrative description}
{action}({effort-1}), {action}({effort-2}): {narrative description}Examples:
feat(theme-system): Add vibrant mode verification checklist
fix(mode-switcher, theme.css): Vibrant mode now dark-based with neon effects
doc(README), skill(astro-knots): Update vibrant mode guidance| Action | When to use |
|---|---|
feat | New feature, new capability |
fix | Bug fix, correction |
doc | Documentation changes |
refactor | Code restructure without behavior change |
style | Formatting, whitespace (no logic change) |
test | Adding/updating tests |
chore | Maintenance, deps, tooling |
skill | Skill file changes (lossless-skills repo) |
changelog | Changelog entry added/updated |
What is an effort grouping? The part of the codebase this commit touches — a package, a site, a system, a concern.
Examples:
skill(theme-system) — changes to theme-system skillfeat(reach-edu-hub) — new feature in reach-edu-hub sitefix(mode-switcher, theme.css) — bug fix touching both files/systemsdoc(README, CANDIDATES) — documentation changes in both filesGuideline: Use the most specific grouping that makes sense. If a commit touches multiple unrelated areas, consider splitting into multiple commits.
Rule: Use paragraph spacing to separate concerns. Do not lump.
Structure:
Anyone (future-you, a new contributor, a stakeholder) should understand what this commit does and why.
What changes does this commit introduce? Focus on what the changes do, not how they're implemented.
Cluster related changes. One paragraph per cluster. Each paragraph explains a cohesive set of changes.
List files changed that align with the header. Makes git log searchable.
Minor changes, formatting tweaks, riders that aren't worth their own commit. Keeps commit history clean.
Example structure:
fix(mode-switcher, theme.css): Vibrant mode now dark-based with neon effects
Problem: Light and vibrant modes were indistinguishable because vibrant
mode only set effect tokens and inherited light mode's white background.
Solution: Vibrant mode now comprehensively overrides all surface/text/border
tokens. Uses color-mix() for glassmorphic surfaces, multi-color neon gradients
(lime → cyan → blue → violet), and high glow opacity (0.55 vs 0.22 in dark).
CSS changes (theme.css):
- Added named tokens for vibrant palette (cyan-bright, violet-deep, lime-terminal)
- Vibrant mode block now sets background, surface, text, border
- Multi-stop gradient definition for headlines
Mode switcher (mode-switcher.js):
- No changes needed — switcher already supported three modes
Files changed:
- src/styles/global.css
- src/pages/brand-kit/index.astro
Also included:
- Fixed typo in README
- Removed debug console.log from Header.astroBefore you commit, CONSIDER (don't assume) two things:
#### Should a changelog be written?
When to write a changelog:
Frequency expectations:
Why this matters:
Common mistake: Rushing to commit without considering if a changelog is needed, then having to make a tiny "oops(changelog): add missing entry" commit or amend+force-push. Causes drag.
#### Do README or context-v files need updating?
Not a hard rule, but worth considering:
context-v/ files.Why this matters:
context-v/ accurate to current thinking and practiceCommon mistake: Same as changelogs — rushing to commit, then realizing context is stale, then making an "oops(context-v): update stale spec" commit.
The discipline: Pause before git commit. Ask:
context-v/ or README.If yes to either, do it in the same commit or before committing. Don't rush.
Sense-making first: The first paragraph should explain what and why in plain language. Assume the reader knows nothing about the context.
Impact over implementation: Explain what changes, not how you changed it. "Vibrant mode now dark-based" (impact) before "Changed --color-surface value" (implementation).
Paragraph spacing matters: Blank lines between concerns makes commits scannable. Lumped paragraphs are hard to parse.
List riders explicitly: If you're sneaking in unrelated changes (typo fix, debug cleanup), list them under "Also included:" so they don't pollute the main narrative.
Affected files consistency: Files listed should match the effort groupings in the header. If the header says (mode-switcher, theme.css), those files should appear in the body.
❌ Rush to commit without considering changelog:
git commit -m "feat: implement new feature"
# Later: "Oh, I should have written a changelog"
# Now: Either make tiny oops commit or amend+force-push✅ Pause, consider, include if needed:
# Write changelog entry if this completes coherent work
vim changelog/2026-05-04_02.md
git add changelog/
git commit -m "feat: implement new feature
See changelog/2026-05-04_02.md for details."❌ Rush to commit with stale context-v:
git commit -m "refactor: change approach"
# Later: "The spec is now wrong"
# Now: Either update separately or amend✅ Update context-v in same commit:
# Update stale spec while making the change
vim context-v/specs/Feature-Spec.md
git add context-v/
git commit -m "refactor: change approach
Updated spec to reflect new implementation strategy."❌ Vague headers:
fix: updates
feat: changes to theme✅ Specific headers:
fix(mode-switcher): Vibrant mode toggle now persists to localStorage
feat(theme-system): Add two-tier token architecture reference❌ Lumped body:
Fixed vibrant mode and also updated docs and added new tokens and fixed a typo in README and changed the mode switcher and...✅ Paragraph-spaced body:
Fixed vibrant mode by making it dark-based instead of light-based.
Theme changes:
- Added cyan-bright, violet-deep, lime-terminal named tokens
- Vibrant mode block now sets all surface/text/border tokens
Documentation:
- Updated setup playbook with vibrant verification checklist
- Added examples to quickstart guide
Also included:
- Fixed typo in READMEWhen git push completes, GitHub may print a remote: banner like GitHub found N vulnerabilities on <repo>'s default branch. Treat this as noise, not signal. Observed on lossless-group repos:
and drifts from it; counts stay pinned for weeks after the underlying lockfile entries are gone.
the lockfile entries has not moved the banner count in practice.
Don't raise it to the user as a follow-up action on an unrelated push (e.g. a marketplace-compliance push). If the user is actively working on dependency hygiene, that's a different conversation.
Commit messages surface publicly via the GitHub commits view, via push-time release notes, via the parent pseudomonorepo's rolled-up changelog feed, and via search engines indexing the commit pages. They carry the same four-audience discipline that changelog-conventions codifies for README.md, changelog entries, and release narratives:
Same principle as the long-form docs: sequence the content from broadest to most-specific so each reader gets dropped at the right station. The pre-commit checklist (§5) and the body-structure conventions (§4) already encode much of this in mechanics; the audience cascade is the framing that makes the why legible.
For the full framing (including the "long files are fine if you stamp a TOC" rule that applies to release narratives), see the changelog-conventions skill, section "These are marketing artifacts, not internal documentation".
references/header-patterns.md — comprehensive action verb + effort grouping catalogreferences/body-structure.md — deep dive on paragraph spacing and impact-first writingreferences/examples.md — 10+ real commit messages from lossless repos annotatedtemplates/commit-message-template.txt — boilerplate for git commit.templateThis skill is being extracted from commit history across:
lossless-skills repoastro-knots monorepoObserved patterns will be documented incrementally.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.