oma-scm
SCM (software configuration management) and Git — branching, merges, conflicts, worktrees, baselines, audit readiness, plus Conventional Commits and safe staging.
- License 许可
- AGPL-3.0
- 最近更新
- 2026-05-19
- Stars
- ★ 4
- Forks
- 1
01 前言 Front Matter
- name
- oma-scm
- description
- SCM (software configuration management) and Git — branching, merges, conflicts, worktrees, baselines, audit readiness, plus Conventional Commits and safe staging.
02 资源文件 5
- 参考文档config/cm-config.yaml1.1 KB
- 参考文档config/commit-config.yaml880 B
- 参考文档resources/codeowners-playbook.md1.2 KB
- 参考文档resources/conventional-commits.md3.8 KB
- 参考文档resources/onboarding-risk-signals.md2.0 KB
03 SKILL.md 正文
Software configuration management — SCM (oma-scm)
This skill is the single place for configuration management (CM) on a software repo and for Conventional Commits / safe staging.
When to use
- Commits: “commit this”,
/scm, message type/scope, splitting staged changes into multiple commits. - CM / Git: branching (gitflow, GitHub Flow, GitLab Flow, trunk-based), protected branches, merge queue, merge conflicts, rebase, cherry-pick, worktrees, submodules/subtrees, tags and releases.
- Governance: issue/ADR links, breaking-change footers, changelog or release-tool alignment.
- Audit posture: signed commits, CI before merge, secret-sensitive paths.
Configuration
| 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 |
Operating mode (choose first)
Quick Path (commit-focused, default)
Use this when the user intent is mainly "commit this safely."
- Follow Conventional Commits section only
- Stage explicit files only
- Validate message type/scope/length from
commit-config.yaml - Stop after safe commit unless user asks CM/governance operations
Full CM Path (repo governance / risky history operations)
Use this when the user asks about branching strategy, merges, rebase/cherry-pick, worktrees, release refs, CODEOWNERS, or audit posture.
- Run CM workflows in order (Planning -> Identification -> Control -> Status accounting -> Verification)
- Add onboarding risk scan when inheriting or auditing a repository
- Include commit governance from Conventional Commits when creating commits
- For large-scope merge operations, use risk scoring and Ask Gate criteria from
../../workflows/scm.md
CM process map (software)
| 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 workflows (use before risky history operations)
1) Planning
- Read
cm-config.yamland files listed underdocumented_process. - If missing, infer from
CONTRIBUTING.md/README; state assumptions. - Confirm branching model and whether force-push on shared branches is allowed (default: not without explicit approval).
2) Identification
- Canonical refs: default branch, release branches/tags, version sources (
package.json, etc.). .gitattributes/ LFS for binaries and generated assets.- Branch names vs
commit-config.yamlbranch_prefixeswhen the project uses them.
3) Control
- Small, reviewable units; align commits with PR / issue intent.
- Conflicts:
merge-base,git status, resolve markers, tests; suggestrererewhen conflicts repeat. - Worktrees:
git worktree add; merge/rebase from the target branch’s checkout; all worktrees share one object database. - Do not rewrite shared history without maintainer approval; prefer
--force-with-leaseif force-push is unavoidable.
4) Status accounting
git status -sb: branch, remote tracking, ahead/behind, merge state.- Relate last tag / release branch to
CHANGELOGor tooling (semantic-release, release-please, changesets) if present.
5) Verification & audit
- Required CI and
merge_groupwhen merge queue applies. - Never stage/commit secrets (
.env, keys, raw tokens). - Call out signed-commit expectations when the org cares about verification badges.
CODEOWNERS maintenance checklist
- Validate CODEOWNERS file exists (prefer
.github/CODEOWNERS). - Ensure critical paths are explicitly owned (not only fallback
*). - Ensure owners are active and mapped to current teams.
- Confirm branch protection requires CODEOWNERS review where needed.
- Flag overlapping/ambiguous rules that can hide intended owners.
Read change_governance.require_codeowners and ownership.* in cm-config.yaml when present.
6) Onboarding risk scan (optional, recommended)
Use this quick scan when joining or inheriting a repository to identify risky areas before major changes.
- High churn files in
lookbackwindow. - Ownership concentration / bus-factor signals.
- Bug hotspot files from fix-related history.
- Velocity trend by month.
- Revert/hotfix/emergency frequency.
Read thresholds from cm-config.yaml onboarding_metrics when present and cite caveats:
- squash merge teams can distort ownership metrics,
- weak commit labeling reduces hotspot accuracy,
- monorepo commit counts can bias subsystem interpretation.
Conventional Commits
Commit types
| 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/ |
Commit format
<type>(<scope>): <description>
[optional body]
Co-Authored-By: First Fluke <our.first.fluke@gmail.com>
Commit workflow
Step 1: Analyze changes
git status
git diff --staged
git log --oneline -5
Step 1.5: Split by feature (if needed)
If 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.
Step 2: Determine type
- New capability →
feat· Bug fix →fix· Structure-only →refactor· Docs only →docs· Tests →test· Build/config →chore
Step 3: Scope
Use module/component: feat(auth):, fix(api):, or omit: chore: update dependencies
Step 4: Description
≤72 chars (per commit-config.yaml), imperative mood, lowercase start, no trailing period.
Step 5: Execute commit
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.txt
Use HEREDOC by default, and switch to -F for long or flaky terminal sessions.
References
config/commit-config.yamlconfig/cm-config.yamlresources/conventional-commits.mdresources/onboarding-risk-signals.mdresources/codeowners-playbook.md
Important notes
- NEVER
git add -Aorgit add .without explicit user permission. - NEVER commit likely-secret material.
- ALWAYS stage by explicit paths; tie non-trivial CM work to the five CM rows above, even briefly.
04 同仓库更多 Skills
work
Coordinate multiple agents for a complex multi-domain project using PM planning, parallel agent spawning, and QA review
ultrawork
Ultrawork - high-quality 5-phase development workflow with 11 review steps out of 17
tools
Manage MCP tools with natural language commands — list, enable, disable tools and tool groups
stack-set
Auto-detect project tech stack and generate stack-specific references for domain skills
setup
oh-my-agent project setup verification and configuration
scm
SCM workflow for Git operations (branching/merge/conflict/worktree) plus Conventional Commit execution.