skills/mav-bp-source-control/SKILL.md
Source control conventions for all projects. Covers the requirement for remote repositories, repository hygiene, .gitignore standards, and sensitive file protection. Applied as a foundational requirement for all projects.
npx skillsauth add thermiteau/maverick mav-bp-source-controlInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Ensure all projects use source control with a remote repository, maintain clean history, and protect sensitive files.
This is a HARD REQUIREMENT. A project without a remote repository is not under source control in any meaningful sense. Local-only git provides no backup, no collaboration, and no CI/CD integration.
Run the following check at the start of any workflow:
git remote -v
gh repo create) if the user has the appropriate toolinggit remote -v shows a valid remoteBefore beginning work on any project, verify these source control fundamentals:
| Check | Command / Method | Pass Criteria |
| ------------------------ | ----------------------------------------- | -------------------------------------------- |
| Remote exists | git remote -v | At least one remote with a valid URL |
| .gitignore exists | Check for .gitignore in repo root | File exists and is non-empty |
| No secrets in repo | Scan for .env, credentials, key files | No sensitive files tracked in git |
| Clean working state | git status | Understood; no unexpected untracked files |
Every repository must have a .gitignore file at the root. It must cover the following categories:
| Category | Examples |
| --------------------- | ------------------------------------------------------------------- |
| Build output | dist/, build/, out/, target/, *.o, *.pyc, __pycache__/ |
| Dependencies | node_modules/, .venv/, vendor/ |
| Environment files | .env, .env.local, .env.*.local |
| IDE files | .idea/, .vscode/ (except shared settings), *.swp, *.swo |
| OS files | .DS_Store, Thumbs.db, desktop.ini |
| Test/coverage output | coverage/, .nyc_output/, htmlcov/, .pytest_cache/ |
| Logs | *.log, logs/ |
gitignore templates).gitignore as a substitute for not generating files in the first place — if a build step creates output, configure it to write outside the repo or to a gitignored directory.gitignore when adding new tools or frameworks to the projectSecrets, credentials, and keys must never be committed to the repository. This is non-negotiable.
| File / Pattern | Contains |
| --------------------------- | --------------------------------- |
| .env, .env.* | Environment variables, secrets |
| credentials.json | Service account credentials |
| *.pem, *.key | Private keys |
| *secret*, *token* | API tokens, secret keys |
| aws-credentials, ~/.aws | AWS access keys |
| *.p12, *.pfx | Certificate bundles with keys |
.gitignoreTo check if secrets are currently tracked:
# Check for common secret file patterns in tracked files
git ls-files | grep -iE '\.env$|\.env\.|credentials|\.pem$|\.key$|secret|token'
If any results appear, investigate immediately.
dist/, build/, out/, compiled files, bundled assets — these are generated from source and must not be committed.gitkeep files to preserve directory structure where needed.gitkeep when the empty directory is meaningful (e.g., a required output directory)git count-objects -vH or similar toolsgit filter-repo to clean history (with team coordination)For detailed branching strategy, commit message format, merge conflict handling, and branch lifecycle, refer to:
mav-git-workflow
This skill covers:
<type>/<issue>-<desc>)main)When auditing a project or starting work, flag these patterns:
| Pattern | Issue | Fix |
| ------------------------------------------ | ------------------------------- | --------------------------------------------------------- |
| No remote configured | Local-only repo — hard fail | Create remote repo and push |
| No .gitignore file | Nothing is excluded from tracking| Create .gitignore with required categories |
| .env or credentials tracked in git | Secrets exposed in history | Remove from tracking, add to .gitignore, rotate secrets |
| node_modules/ or dist/ committed | Build/dependency artifacts in repo| Remove from tracking, add to .gitignore |
| Large binaries in repo (>1 MB) | Bloated repository | Move to Git LFS or external storage |
| No .gitkeep in required empty dirs | Directory structure lost on clone| Add .gitkeep where needed |
| Sensitive file patterns missing from .gitignore | Future risk of secret commits | Add missing patterns to .gitignore |
| Remote URL points to deleted/moved repo | Effectively no remote | Update remote URL to valid repository |
development
--- name: do-test description: Write or update tests for a code change. Operates in two modes: `unit` (module-scoped, fast, deterministic) and `integration` (crosses module / service / database boundaries). Intended to be invoked once per testable change from inside a do-issue-* or do-epic phase. Mode is required. argument-hint: mode: unit or integration user-invocable: true disable-model-invocation: false --- **Depends on:** mav-bp-unit-testing, mav-bp-integration-testing, mav-local-verificati
development
Implement a focused code change. Use this skill as the wrapper for any implementation work so the Maverick workflow report captures what was done and so the agent applies the project's coding standards before editing. Intended to be invoked once per task from inside a do-issue-* or do-epic phase, not standalone.
testing
How to stack a PR on top of an unmerged sibling branch, and how to retarget it to the repo's default branch once the sibling merges. Prevents orphan-merge incidents when a dependent story is ready before its parent.
development
Claim, lease, heartbeat, and release protocols for when multiple Claude Code instances may act on the same issue or epic concurrently. GitHub labels and marker comments are the coordination surface; local state is a cache.