SCM (software configuration management) and Git — branching, merges, conflicts, worktrees, baselines, audit readiness, plus Conventional Commits and safe staging.
59
67%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./benchmarks/runs/oma/.agents/skills/oma-scm/SKILL.mdoma-scm)Manage Git and software configuration management safely: commits, branches, merges, worktrees, releases, baselines, audit posture, CODEOWNERS, and Conventional Commits.
This skill is the single place for configuration management (CM) on a software repo and for Conventional Commits / safe staging.
/scm, message type/scope, splitting staged changes into multiple commits.oma-debugoma-qaoma-pmconfig/commit-config.yaml, config/cm-config.yaml, Conventional Commit references, onboarding-risk and CODEOWNERS playbooks| Action | SSL primitive | Evidence |
|---|---|---|
| Read Git state | READ | git status, diff, log, config |
| Select SCM path | SELECT | Quick Path vs Full CM Path |
| Compare change scopes | COMPARE | Split by type/scope/feature |
| Validate commit/governance rules | VALIDATE | Config and CM controls |
| Stage explicit files | CALL_TOOL | git add <specific-files> |
| Commit or manage refs | CALL_TOOL | Git commit/branch/merge/rebase/tag |
| Write audit notes | WRITE | Commit message or CM report |
| Report result | NOTIFY | Final SCM summary |
git status -sb
git diff --staged
git log --oneline -5Stage and commit only explicit paths:
git add <specific-files>
git commit -m "$(cat <<'EOF'
<type>(<scope>): <description>
[optional body]
EOF
)"| Scope | Resource target |
|---|---|
CODEBASE | Tracked files, diffs, conflicts, CODEOWNERS |
LOCAL_FS | Git metadata, config files, commit message temp files |
PROCESS | Git commands and verification commands |
CREDENTIALS | Secret-sensitive files must not be staged or committed |
config/commit-config.yaml and config/cm-config.yaml before applying project-specific commit or CM rules.| File | Role |
|---|---|
config/commit-config.yaml | Conventional Commit types, branch prefixes, message rules |
config/cm-config.yaml | CM pointers — documented process, branching model, baselines, changelog |
Use this when the user intent is mainly "commit this safely."
commit-config.yamlUse this when the user asks about branching strategy, merges, rebase/cherry-pick, worktrees, release refs, CODEOWNERS, or audit posture.
../../workflows/scm.md| CM function | Intent | Typical artefacts / actions |
|---|---|---|
| Management & planning | Agreed rules | CONTRIBUTING.md, SECURITY.md, cm-config.yaml |
| Configuration identification | What is managed, naming | Branch/tag rules, version files, .gitattributes, LFS |
| Configuration control | Reviewed change | PRs, checks, issue links, BREAKING CHANGE footers |
| Status accounting | As-built truth | main / release refs, CHANGELOG, tags, CI status |
| Verification & audit | Evidence | CI logs, signed commits, lockfiles / SBOM policy |
cm-config.yaml and files listed under documented_process.CONTRIBUTING.md / README; state assumptions.package.json, etc.)..gitattributes / LFS for binaries and generated assets.commit-config.yaml branch_prefixes when the project uses them.merge-base, git status, resolve markers, tests; suggest rerere when conflicts repeat.git worktree add; merge/rebase from the target branch’s checkout; all worktrees share one object database.--force-with-lease if force-push is unavoidable.git status -sb: branch, remote tracking, ahead/behind, merge state.CHANGELOG or tooling (semantic-release, release-please, changesets) if present.merge_group when merge queue applies..env, keys, raw tokens)..github/CODEOWNERS).*).Read change_governance.require_codeowners and ownership.* in cm-config.yaml when present.
Use this quick scan when joining or inheriting a repository to identify risky areas before major changes.
lookback window.Read thresholds from cm-config.yaml onboarding_metrics when present and cite caveats:
| Type | Description | Branch Prefix |
|---|---|---|
| feat | New feature | feature/ |
| fix | Bug fix | fix/ |
| refactor | Code improvement | refactor/ |
| docs | Documentation changes | docs/ |
| test | Test additions/modifications | test/ |
| chore | Build, configuration, etc. | chore/ |
| style | Code style changes | style/ |
| perf | Performance improvements | perf/ |
<type>(<scope>): <description>
[optional body]
Co-Authored-By: First Fluke <our.first.fluke@gmail.com>git status
git diff --staged
git log --oneline -5If changes span multiple features/domains, split commits by feature.
Split when: different scopes, different types, logically independent work.
Do not split when: one feature, few files (≤5), or user asked for a single commit.
feat · Bug fix → fix · Structure-only → refactor · Docs only → docs · Tests → test · Build/config → choreUse module/component: feat(auth):, fix(api):, or omit: chore: update dependencies
≤72 chars (per commit-config.yaml), imperative mood, lowercase start, no trailing period.
Show the message, then commit with explicit paths:
git add <specific-files>
git commit -m "$(cat <<'EOF'
<type>(<scope>): <description>
[optional body]
EOF
)"If HEREDOC is unstable in your shell (or body is long), use file-based commit input:
git add <specific-files>
cat > /tmp/oma-commit-msg.txt <<'EOF'
<type>(<scope>): <description>
[optional body]
EOF
git commit -F /tmp/oma-commit-msg.txtUse HEREDOC by default, and switch to -F for long or flaky terminal sessions.
config/commit-config.yamlconfig/cm-config.yamlresources/conventional-commits.mdresources/onboarding-risk-signals.mdresources/codeowners-playbook.mdgit add -A or git add . without explicit user permission.032c988
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.