Dirextalk Deployer
YingSuiAI/dirextalk-deployer
Deploy, resume, verify, update, recover, reset, or destroy production Dirextalk services and nodes on AWS, and wire local agent runtimes.
Squashes multiple commits on the current branch into a single commit with an auto-generated message, then pushes.
$ npx skills add Cybereason-Public/owLSM --skill squash-commits -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Cybereason-Public/owLSM squash-commits --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Cybereason-Public/owLSM.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.cursor/skills/squash-commits .claude/skills/squash-commits && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "squash-commits" agent skill from https://github.com/Cybereason-Public/owLSM/tree/main/.cursor/skills/squash-commits into .claude/skills/squash-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "squash-commits", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Cybereason-Public/owLSM/tree/main/.cursor/skills/squash-commitsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Cybereason-Public/owLSM --skill squash-commits -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Cybereason-Public/owLSM squash-commits --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cybereason-Public/owLSM.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.cursor/skills/squash-commits .agents/skills/squash-commits && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "squash-commits" agent skill from https://github.com/Cybereason-Public/owLSM/tree/main/.cursor/skills/squash-commits into .agents/skills/squash-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "squash-commits", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Cybereason-Public/owLSM --skill squash-commits -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Cybereason-Public/owLSM squash-commits --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cybereason-Public/owLSM.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.cursor/skills/squash-commits .cursor/skills/squash-commits && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "squash-commits" agent skill from https://github.com/Cybereason-Public/owLSM/tree/main/.cursor/skills/squash-commits into .cursor/skills/squash-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "squash-commits", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Cybereason-Public/owLSM.git --path .cursor/skills/squash-commits--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Cybereason-Public/owLSM --skill squash-commits -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Cybereason-Public/owLSM squash-commits --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cybereason-Public/owLSM.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.cursor/skills/squash-commits .gemini/skills/squash-commits && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "squash-commits" agent skill from https://github.com/Cybereason-Public/owLSM/tree/main/.cursor/skills/squash-commits into .gemini/skills/squash-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "squash-commits", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Cybereason-Public/owLSM squash-commitsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Cybereason-Public/owLSM --skill squash-commits -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Cybereason-Public/owLSM.git skills-src && mkdir -p .github/skills && cp -r skills-src/.cursor/skills/squash-commits .github/skills/squash-commits && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "squash-commits" agent skill from https://github.com/Cybereason-Public/owLSM/tree/main/.cursor/skills/squash-commits into .github/skills/squash-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "squash-commits", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Cybereason-Public/owLSM --skill squash-commits -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Cybereason-Public/owLSM squash-commits --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Cybereason-Public/owLSM.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.cursor/skills/squash-commits .opencode/skills/squash-commits && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "squash-commits" agent skill from https://github.com/Cybereason-Public/owLSM/tree/main/.cursor/skills/squash-commits into .opencode/skills/squash-commits/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "squash-commits", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
squash-commitsSquashes multiple commits on the current branch into a single commit with an auto-generated message, then pushes.
Squash Commits is an agent skill from Cybereason-Public/owLSM. Squashes multiple commits on the current branch into a single commit with an auto-generated message, then pushes.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development. It works with Git and Linux. The repository describes itself as: Sigma Rules Engine inside the Linux Kernel using eBPF. Focusing on prevention capabilities. The licence is GPL-2.0.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8e541af. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Squash Commits loads about 2.2k tokens when it runs. Until then it costs about 32 tokens; SKILL.md has 644 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Cybereason-Public/owLSM at commit 8e541af, republished under its GPL-2.0 licence (© Cybereason-Public). 644 words, ~2,173 tokens.
.claude/skills/squash-commits/SKILL.md (or your agent's skills folder).You are a Git workflow assistant that squashes commits on the current branch into a single commit.
| Parameter | Required | Default | Description |
|---|---|---|---|
mode | No | since-branch | How to determine which commits to squash |
base_branch | No | main | For since-branch mode: the branch we branched from |
commit_count | No | - | For count mode: number of commits to squash |
since_commit | No | - | For since-commit mode: squash all commits after this SHA |
since-branch (Default)Squash all commits since branching from a base branch.
Example invocations:
maindevelopfeature/basecountSquash a specific number of recent commits.
Example invocations:
since-commitSquash all commits after a specific commit SHA.
Example invocations:
Before doing anything, verify ALL of the following. If ANY check fails, STOP and report the issue:
.git/rebase-merge, .git/MERGE_HEADorigin remote must be configured (for push)If anything fails after we start modifying history:
git rebase --abort if in rebasegit reset --hard ORIG_HEAD to restore if reset was used# Save current branch name
CURRENT_BRANCH=$(git branch --show-current)
# Verify not on protected branch
case "$CURRENT_BRANCH" in
main|master|develop)
echo "ERROR: Cannot squash commits on protected branch '$CURRENT_BRANCH'"
exit 1
;;
esac
# Save current HEAD for recovery
ORIGINAL_HEAD=$(git rev-parse HEAD)
# Check for uncommitted changes
if ! git diff --cached --quiet || ! git diff --quiet; then
echo "ERROR: You have uncommitted changes. Please commit or stash them first."
exit 1
fiFor since-branch mode (default):
BASE_BRANCH="${USER_SPECIFIED_BASE:-main}"
# Find the merge-base (where this branch diverged from base)
MERGE_BASE=$(git merge-base HEAD "$BASE_BRANCH" 2>/dev/null || \
git merge-base HEAD "origin/$BASE_BRANCH" 2>/dev/null)
if [ -z "$MERGE_BASE" ]; then
echo "ERROR: Cannot find common ancestor with '$BASE_BRANCH'"
exit 1
fi
# Count commits to squash
COMMIT_COUNT=$(git rev-list --count "$MERGE_BASE"..HEAD)For count mode:
COMMIT_COUNT=$USER_SPECIFIED_COUNT
# Verify we have enough commits
TOTAL_COMMITS=$(git rev-list --count HEAD)
if [ "$COMMIT_COUNT" -gt "$TOTAL_COMMITS" ]; then
echo "ERROR: Requested $COMMIT_COUNT commits but branch only has $TOTAL_COMMITS"
exit 1
fi
# Calculate the base commit
MERGE_BASE=$(git rev-parse "HEAD~$COMMIT_COUNT")For since-commit mode:
SINCE_COMMIT=$USER_SPECIFIED_COMMIT
# Verify commit exists and is an ancestor
if ! git merge-base --is-ancestor "$SINCE_COMMIT" HEAD; then
echo "ERROR: Commit '$SINCE_COMMIT' is not an ancestor of current HEAD"
exit 1
fi
MERGE_BASE=$SINCE_COMMIT
COMMIT_COUNT=$(git rev-list --count "$MERGE_BASE"..HEAD)if [ "$COMMIT_COUNT" -lt 2 ]; then
echo "ERROR: Need at least 2 commits to squash. Found: $COMMIT_COUNT"
exit 1
fi
echo "Will squash $COMMIT_COUNT commits into one"
echo "Commits to be squashed:"
git log --oneline "$MERGE_BASE"..HEADAnalyze all commits being squashed and create a meaningful message:
# Collect all commit messages
ALL_MESSAGES=$(git log --format="%s%n%b" "$MERGE_BASE"..HEAD)
# Collect summary of files changed
FILES_CHANGED=$(git diff --stat "$MERGE_BASE"..HEAD)
# Get the branch name for context
BRANCH_CONTEXT=$(echo "$CURRENT_BRANCH" | sed 's/[-_]/ /g')Generate a commit message that includes:
Example generated message:
feat: Add user authentication flow
Squashed commits:
- Add login form component
- Implement JWT token handling
- Add password validation
- Fix login redirect bug
- Update tests for auth flow
Files changed: 12 files, +450/-23 linesMethod: Soft Reset + Commit (simpler than interactive rebase)
# Soft reset to merge base - keeps all changes staged
git reset --soft "$MERGE_BASE"
# Commit with the generated message
git commit -m "$GENERATED_MESSAGE"If this fails:
# Restore original state
git reset --hard "$ORIGINAL_HEAD"
echo "ERROR: Squash failed. Original state restored."
exit 1# Force push with lease for safety
if ! git push --force-with-lease origin "$CURRENT_BRANCH"; then
echo "WARNING: Push failed. Possible reasons:"
echo " - Someone else pushed to this branch"
echo " - Remote branch doesn't exist yet (try: git push -u origin $CURRENT_BRANCH)"
echo ""
echo "Local squash is intact. You can:"
echo " - Retry with: git push --force-with-lease origin $CURRENT_BRANCH"
echo " - Or undo with: git reset --hard $ORIGINAL_HEAD"
fiecho ""
echo "=== Squash Complete ==="
echo "Branch: $CURRENT_BRANCH"
echo "Commits squashed: $COMMIT_COUNT → 1"
echo "New commit: $(git rev-parse --short HEAD)"
echo ""
echo "Original HEAD was: $ORIGINAL_HEAD"
echo "To undo: git reset --hard $ORIGINAL_HEAD && git push --force-with-lease"| Scenario | Action |
|---|---|
| On protected branch (main/master/develop) | STOP immediately |
| Uncommitted changes | STOP: ask user to commit or stash |
| Base branch doesn't exist | STOP: report and suggest alternatives |
| Less than 2 commits | STOP: nothing to squash |
| Reset fails | Restore with git reset --hard ORIG_HEAD |
| Push fails | Report warning, keep local squash, provide recovery command |
Report the following:
{branch_name}{since-branch|count|since-commit}{branch_name|commit_sha}{count}git log --oneline of commits being squashed){success|failed}{success|failed|skipped}--force-with-lease to prevent overwriting others' workWhen generating the commit message, the agent should:
Analyze the branch name — Extract feature/fix/refactor context
feature/user-auth → "feat: User authentication"fix/login-bug → "fix: Login bug"refactor/api-cleanup → "refactor: API cleanup"Scan commit messages — Look for patterns and themes
Keep it concise — Summary line under 72 characters
Preserve history — Include original commit messages in body
Follow conventional commits — Use prefixes like feat:, fix:, refactor:, docs:, test:
© Cybereason-Public, GPL-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .cursor/skills/squash-commits of Cybereason-Public/owLSM.
Open the folder on GitHubat commit 8e541af
Squash Commits next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Squash Commits this skillCybereason-Public/owLSM | 280 | — | ~2.2k | Automated safety check: Pass | GPL-2.0 | |
| Dirextalk DeployerYingSuiAI/dirextalk-deployer | 457 | — | ~7.2k | Automated safety check: Pass | MIT | |
| Tk Impact Analysistonkeeper/tonkeeper-web | 444 | — | ~3.7k | Automated safety check: Pass | Apache-2.0 | |
| Gridbash Panesjasonsuhari/gridbash | 134 | — | ~1.5k | Automated safety check: Pass | MIT | |
| SetupProrise-cool/Claude-Code-Multi-Agent | 306 | — | ~3k | Automated safety check: Notes | None | |
| Commitmanhpham90vn/Deskhub | 133 | — | ~978 | Automated safety check: Pass | MIT |
YingSuiAI/dirextalk-deployer
Deploy, resume, verify, update, recover, reset, or destroy production Dirextalk services and nodes on AWS, and wire local agent runtimes.
tonkeeper/tonkeeper-web
Analyze QA regression impact for Tonkeeper Web by comparing the current branch with the relevant release tag, reviewing sources/Web/regress.txt, and recommending test blocks, missing coverage, extra…
jasonsuhari/gridbash
Coordinate with sibling agent panes from inside a GridBash grid — list panes and their roles, read what a pane is currently doing, prompt one pane or every other pane, and rename pane titles so the…
Prorise-cool/Claude-Code-Multi-Agent
Complete guide to installing Git and performing basic configuration across all platforms (Windows, macOS, Linux, WSL).
manhpham90vn/Deskhub
Write a Deskhub commit message. An agent skill from manhpham90vn/Deskhub.
Prorise-cool/Claude-Code-Multi-Agent
Comprehensive Git configuration guide covering global settings, aliases, performance tuning, credential management, maintenance, .gitattributes, clone shortcuts, and troubleshooting.
Cybereason-Public/owLSM
Comprehensive guide for implementing NetworkPolicy, PodSecurityPolicy, RBAC, and Pod Security Standards in Kubernetes.
Cybereason-Public/owLSM
Comprehensive guidance for creating, organizing, and managing Helm charts for packaging and deploying Kubernetes applications.
Cybereason-Public/owLSM
Expert Kubernetes architect specializing in cloud-native infrastructure, advanced GitOps workflows (ArgoCD/Flux), and enterprise container orchestration.
Cybereason-Public/owLSM
Step-by-step guidance for creating production-ready Kubernetes manifests including Deployments, Services, ConfigMaps, Secrets, and PersistentVolumeClaims.
Cybereason-Public/owLSM
Adds a GitMCP URL for a GitHub repository to the project's MCP configuration (.cursor/mcp.json).
Cybereason-Public/owLSM
Manage GitHub issues - create, edit, close, comment, assign, and delegate to Copilot.
Categories
Squashes multiple commits on the current branch into a single commit with an auto-generated message, then pushes. Squash Commits is an agent skill from Cybereason-Public/owLSM. Squashes multiple commits on the current branch into a single commit with an auto-generated message, then pushes.
Squash Commits fits situations like: development work in your project.
Run `npx skills add Cybereason-Public/owLSM --skill squash-commits -a claude-code`. Or copy the skill folder (.cursor/skills/squash-commits in Cybereason-Public/owLSM) into .claude/skills/squash-commits in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Cybereason-Public/owLSM --skill squash-commits -a codex`. Or copy the skill folder (.cursor/skills/squash-commits in Cybereason-Public/owLSM) into .agents/skills/squash-commits in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Cybereason-Public/owLSM --skill squash-commits -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/squash-commits, .gemini/skills/squash-commits, .github/skills/squash-commits and .opencode/skills/squash-commits in your project.
Going by SKILL.md and its folder, Squash Commits needs the command-line tools its instructions call (git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Squash Commits is published under the GPL-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Squash Commits: Dirextalk Deployer (YingSuiAI/dirextalk-deployer, 457 stars), Tk Impact Analysis (tonkeeper/tonkeeper-web, 444 stars), Gridbash Panes (jasonsuhari/gridbash, 134 stars) and Setup (Prorise-cool/Claude-Code-Multi-Agent, 306 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Cybereason-Public (a GitHub organization) maintains it in Cybereason-Public/owLSM, which has 280 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 8, 2026.
Source: Cybereason-Public/owLSM on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.