Commits with Gitsmith
skillgendev asks every contributor for Conventional Commits:
feat:, fix:, docs:, test:, refactor:, chore:, one small change per commit.
Gitsmith is an open-source commit CLI from the same
maintainer that makes this easy. It is optional: skillgendev does not depend on it, and any way of
writing a correct message is fine.
What Gitsmith does
Facts below are from Gitsmith's published README (version 0.2.1, MIT licence, Node.js 20 or newer).
- It prompts you through your project's commit format, defined in one
.commitconfig.jsonthat it finds by walking up from the current folder. - It validates the config and reports clear errors.
- It checks that you are in a git repository and have staged files.
- It shows a preview of the message and asks for confirmation before it runs
git commit. - Optionally, it suggests a message from a plain description of what you did, using a free NVIDIA AI API key. Only the text you type is sent; source code and diffs are not. Without a key, or with AI disabled, it falls back to the manual prompts.
Set it up for skillgendev
npm install -g gitsmith
cd skillprinter
gitsmith init # creates .commitconfig.json with a Conventional Commits default
Then edit .commitconfig.json so its types match the ones skillgendev uses. A config that fits
this repository, with scopes named after its packages:
{
"types": ["feat", "fix", "docs", "test", "refactor", "chore"],
"askScope": true,
"scopes": ["routes", "graph", "analyze", "compile", "generate", "probe", "export", "cli", "docs", "website"],
"askTicket": false,
"askBreaking": true,
"format": "{type}({scope}): {message}",
"headerMaxLength": 72
}
The format tokens are {type}, {scope}, {ticket}, {message} and {breaking} (! when
the change is breaking). Scoped messages such as feat(analyze): … and refactor(probe): …
already appear in the repository's history.
gitsmith init writes the config into the current folder. Whether to commit a
.commitconfig.json to the repository is the maintainers' call; until then, keep yours local
(for example, list it in .git/info/exclude).
Commit
git add src/skillgen/routes/paths.py tests/test_paths.py
gitsmith
Gitsmith asks for the type, scope, message and whether the change is breaking, shows the final header, and commits on confirmation:
fix(routes): refuse Windows paths that Git Bash makes of /routes
With AI suggestions
gitsmith key:set # save an NVIDIA API key (free at build.nvidia.com)
gitsmith --ai # describe what you did; pick or edit the suggestion
gitsmith --no-ai # skip the AI prompt for this run
key:show, key:status and key:remove manage the saved key. In CI or scripts, set
GITSMITH_AI_KEY instead; it overrides the saved key.
Why it fits skillgendev
- Clean history makes
skillgendev check --sinceeasier to use. Small, well-labelled commits make it clear which change made a skill stale, and which commit to compare against. - Same rule, less friction. The contribution rules ask for Conventional Commits and small commits; Gitsmith turns that into a prompt instead of a checklist.
- Docs pull requests too. Changes to this site are commits like any other: use the
docstype and thewebsitescope.