Android Clean Architecture
affaan-m/ECC
Applies Clean Architecture to Android and Kotlin Multiplatform projects: module layout, dependency rules, UseCases, Repositories and data layer patterns.
Drive a PR to a clean review (Greptile 5/5, zero open threads) — ships if needed, keeps it mergeable against staging, re-triggers both Greptile and cubic, fixes real findings, replies to and…
$ npx skills add simstudioai/sim --skill babysit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install simstudioai/sim babysit --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/simstudioai/sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/babysit .claude/skills/babysit && 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 "babysit" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/babysit into .claude/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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/simstudioai/sim/tree/main/.agents/skills/babysitType 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 simstudioai/sim --skill babysit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install simstudioai/sim babysit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/babysit .agents/skills/babysit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "babysit" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/babysit into .agents/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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 simstudioai/sim --skill babysit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install simstudioai/sim babysit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/babysit .cursor/skills/babysit && 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 "babysit" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/babysit into .cursor/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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/simstudioai/sim.git --path .agents/skills/babysit--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 simstudioai/sim --skill babysit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install simstudioai/sim babysit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/babysit .gemini/skills/babysit && 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 "babysit" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/babysit into .gemini/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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 simstudioai/sim babysitInstalls 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 simstudioai/sim --skill babysit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/babysit .github/skills/babysit && 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 "babysit" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/babysit into .github/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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 simstudioai/sim --skill babysit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install simstudioai/sim babysit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/babysit .opencode/skills/babysit && 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 "babysit" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/babysit into .opencode/skills/babysit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "babysit", 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.
babysitDrive a PR to a clean review (Greptile 5/5, zero open threads) — ships if needed, keeps it mergeable against staging, re-triggers both Greptile and cubic, fixes real findings, replies to and…
Babysit is an agent skill from simstudioai/sim. Drive a PR to a clean review (Greptile 5/5, zero open threads) — ships if needed, keeps it mergeable against staging, re-triggers both Greptile and cubic, fixes real findings, replies to and resolves every thread, and loops until clean
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Sim is the collaborative workspace to build, deploy, and monitor AI agents and workflows. Used by 100,000+ builders. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 546d4e7. 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:
ghgitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh and 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.
Babysit loads about 2.9k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 1,634 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 simstudioai/sim at commit 546d4e7, republished under its Apache-2.0 licence (© simstudioai). 1,634 words, ~2,897 tokens.
.claude/skills/babysit/SKILL.md (or your agent's skills folder).Owns a PR end-to-end through review: ship it, wait for the automatic review round, and if it
isn't already clean, drive fix → reply → resolve → re-review cycles until Greptile reports 5/5
and there are zero open comment threads, keeping the branch mergeable against staging along the
way. Two bots review this repo — Greptile and cubic — and they behave differently; see
"Two reviewers" below. Designed to be run under /loop (no fixed interval — let it self-pace on review latency)
so it survives across multiple wakeups in the same session.
/ship when the user wants the review loop automated rather than
manually re-triggering reviews and answering comments themselvesNeeds a PR number. If none is given and there's no open PR for the current branch, run /ship
first (which includes the origin/staging sync check — see .agents/skills/ship/SKILL.md) to
create one.
Both post inline threads that count toward "clean", and they need re-triggering separately:
Greptile (greptile-apps) | cubic (cubic-dev-ai) | |
|---|---|---|
| Verdict | Confidence Score: X/5 in a summary comment | no score — only inline threads |
| Summary comment | edited in place across rounds | fresh review per run |
| Re-trigger | @greptile | @cubic-dev-ai review this PR |
| Latency | 1–3 min | 1–3 min |
Post both after every push, as two separate comments. Triggering only Greptile is the easy mistake: the PR then shows 5/5 with cubic's threads still open from an earlier commit, and its findings never get re-checked against the fix.
@cubic-dev-ai review this PR is the documented wording — @cubic alone does not trigger it.
cubic reviews the commit that was HEAD when its run started, so a thread can describe code the next commit already changed. Before treating a cubic finding as real, check whether the current HEAD still has the problem — a stale round is a reply-and-resolve, not a fix.
All three must hold:
reviewThreads (GraphQL, see below) has zero threads with isResolved: false, from
either botgh pr checks <n> shows no fail and no
pending. A red run is not clean no matter what the reviewers say, and the lint/audit jobs
routinely catch what a local run misses. A pending one is not clean either: it has not
reported yet, and treating "not failing" as "passing" reports the PR clean before CI has
had its say. Wait for it — the step-10 stop condition covers a check that never settles.Do not stop early on "no new comments this round" alone — a thread can be open from an earlier round, and cubic often lands its first threads a round after Greptile's. Always check all three conditions freshly after every push.
Check current state before doing anything, including whether the PR is still mergeable:
gh pr view <n> --json mergeable
gh pr checks <n> | grep -v skipping
gh pr view <n> --json comments -q '[.comments[] | select(.author.login=="greptile-apps")] | last | .body'
gh api graphql -f query='
query { repository(owner: "<owner>", name: "<repo>") { pullRequest(number: <n>) {
reviewThreads(first: 50) { pageInfo { hasNextPage endCursor } nodes { id isResolved path line
comments(first: 5) { nodes { id databaseId author { login } body } } } } } } }'The score is a line inside the body of Greptile's latest comment (| last | .body), which
it edits in place across rounds.
reviewThreads(first: 50) is a single page — check pageInfo.hasNextPage. If true, don't
stop yet: re-run the same query with after: "<endCursor>" and keep paging until
hasNextPage is false before evaluating "clean." A PR with more than 50 threads is rare but
stopping on a partial page would silently miss unresolved ones past the cutoff.
The query returns both bots' threads. A ReviewThread has no author of its own — identity
lives on its comments, so read the opener's at comments.nodes[0].author.login and do not
add an author field at the thread level, which makes the query fail to compile.
If mergeable is CONFLICTING, fix that first (step 2). If a check is failing, fix that too
— treat it exactly like a review finding. If a check is still pending, do not evaluate
"clean" at all: go to step 9 and wait for it. Otherwise, if Greptile is 5/5, every thread
across all pages has isResolved: true, and every check has finished and passed, stop —
report the outcome (see "Reporting" below) and skip the rest of this list.
If the PR has a merge conflict, rebase rather than merge (step 6's rebase would discard a
merge commit): git fetch origin staging && git rebase origin/staging, resolve each conflict
and git rebase --continue until the rebase finishes. Then run step 6 (the sync check and the
/ship gates), then steps 7–8: push with --force-with-lease and re-trigger review.
If no review has run yet (fresh PR, no bot comments): both run automatically on PR open —
confirm via gh pr checks <n> (look for Greptile Review and cubic · AI code reviewer) and
wait for both before doing anything else. They finish at different times, so a PR that looks
clean because only one has reported is not clean yet.
If a review round has landed and it isn't clean: for every thread where
isResolved: false, triage the finding on its own merits — this is the part that requires
judgment, not a mechanical loop:
validateUrlWithDNS/secureFetchWithPinnedIP
pattern the rest of the codebase already uses for that exact situation — grep for a sibling
integration solving the same problem first). Never patch around a finding with a
workaround, a broad try/catch, or a suppression comment — fix the actual cause.Reply to every thread individually before resolving it — never resolve silently:
gh api repos/<owner>/<repo>/pulls/<n>/comments/<databaseId>/replies -f body="<what was done and why>"Then resolve via GraphQL (needs the thread id from step 1, not the comment id):
gh api graphql -f query='mutation { resolveReviewThread(input: {threadId: "<threadId>"}) { thread { isResolved } } }'Before pushing, re-run the full sync check from /ship step 2 — not just the log command,
the whole check-and-recover flow (stash WIP pinned by SHA as /ship step 2 shows, rebase, verify the rebase didn't just
cleanly replay stray commits, cherry-pick rebuild if it did or if it conflicted). A babysit
loop spanning a long session is exactly the scenario where a branch can drift, and pushing
review fixes on top of undetected drift is how an oversized PR happens even after the branch
was fixed once. Then run /ship steps 4–6 on this round's diff — the cleanup and test gates,
migration safety, and the regenerate + audit phases. A review-fix round is still a code change
and can trip any of them just as easily as the original commit did.
Commit and push the round's fixes as one commit — --force-with-lease whenever step 6's
sync check rewrote history, which includes a plain git rebase origin/staging that completed
with no conflicts, not only the cherry-pick rebuild path; both rewrite commits already
published to the remote, so a plain git push can be rejected either way — then run /ship
step 9's post-push verify — not just before the first push, every push in the loop:
git fetch origin staging && git log --oneline --reverse origin/staging..HEAD
gh pr view <n> --json commits -q '.commits[].messageHeadline'These two lists must describe the same commits. A review loop runs many pushes across many rounds; checking sync only before the push (step 6) and never after is how a bad push or a PR whose commit history quietly went stale between rounds goes unnoticed.
Re-trigger both reviewers, each as its own PR comment — a combined comment does not reliably trigger both:
gh pr comment <n> --body "@greptile"
gh pr comment <n> --body "@cubic-dev-ai review this PR"Then confirm both actually picked it up before waiting — gh pr checks <n> should show
Greptile Review and cubic · AI code reviewer as pending. If one stayed pass from the
previous round, its trigger did not land; re-post that one.
Wait for the new round, then go back to step 1. Pace the wait with ScheduleWakeup using
a fallback delay of ~300s — both bots take 1–3 minutes, and CI is usually the slowest of the
three — never busy-poll in a sleep loop. Pass the same /loop babysit PR <n> prompt on each wakeup so the loop
resumes correctly.
Stop conditions: clean state reached (see above), or the same unresolved finding or merge conflict survives two consecutive rounds with no new information (surface it to the user instead of looping forever), or the user interrupts.
When the loop ends, summarize: how many rounds it took, what was actually fixed (one line each), what was pushed back on as a false positive and why, and the final state — Greptile score, open thread count across both bots, and whether every check finished and passed.
Every reply, comment and commit you post here is public and permanent, and review bots quote
your replies back, so a leak propagates. /ship's "What to Omit" (the category list and the
pre-publish grep) applies to every post in this loop. Triaging a finding often means pasting
evidence gathered from prod — that is exactly the moment it gets violated. Run the grep on the
reply before posting, not after: editing a comment does not unsend its notification email.
pending before you start waiting./ship-style sync check before every push in the loop, not just the first.© simstudioai, Apache-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 .agents/skills/babysit of simstudioai/sim.
Open the folder on GitHubat commit 546d4e7
Babysit 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 |
|---|---|---|---|---|---|---|
| Babysit this skillsimstudioai/sim | 30k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Android Clean Architectureaffaan-m/ECC | 275k | 4 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Feishu Driveopenclaw/openclaw | 392k | — | ~375 | Automated safety check: Pass | MIT | |
| Zero Trustsickn33/agentic-awesome-skills | 47k | 2 repos | ~3.2k | Automated safety check: Pass | MIT | |
| Babysitnubjs/nub | 4.4k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Cleanbergside/awesome-design-skills | 3.1k | 1 repos | ~918 | Automated safety check: Pass | MIT |
affaan-m/ECC
Applies Clean Architecture to Android and Kotlin Multiplatform projects: module layout, dependency rules, UseCases, Repositories and data layer patterns.
openclaw/openclaw
Feishu cloud-storage and comment workflows. An agent skill from openclaw/openclaw.
sickn33/agentic-awesome-skills
Implement zero-trust network architecture. An agent skill from sickn33/agentic-awesome-skills.
nubjs/nub
Bring one nubjs/nub pull request to merge-readiness — pull the inline reviews, verify each finding against the code, re-verify every fix round locally, fix CI, and loop.
bergside/awesome-design-skills
Simplicity-focused design with ample whitespace, legible typography, and a limited color palette to reduce visual clutter.
brycewang-stanford/Auto-Empirical-Research-Skills
Clean and transform messy data for analysis in Python, R, or Stata
simstudioai/sim
Install, upgrade, and operate the Sim Helm chart on Kubernetes.
simstudioai/sim
Add a new table column type to Sim — registry entry, icon, storage shape, coercion, and the behavioral hooks the grid and API read.
simstudioai/sim
Add a code-defined table enrichment (registry entry) under apps/sim/enrichments/ backed by an ordered provider cascade, ensuring every provider tool it calls has hosted-key support.
simstudioai/sim
Add hosted API key support to a tool so Sim provides the key (metered and billed to the workspace) when a user has not brought their own.
simstudioai/sim
Add or upgrade a curated, immutable managed CLI for Sim Function sandboxes, including client-safe catalog metadata, a pinned server-only installation recipe, checksum and executable verification…
simstudioai/sim
Add or update a Sim dynamic selector using the shared manifest, server attachment, and selectors.execute path.
Drive a PR to a clean review (Greptile 5/5, zero open threads) — ships if needed, keeps it mergeable against staging, re-triggers both Greptile and cubic, fixes real findings, replies to and…. Babysit is an agent skill from simstudioai/sim.
Babysit fits situations like: both Greptile and cubic; fixes real findings; replies to and resolves every thread; loops until clean.
Run `npx skills add simstudioai/sim --skill babysit -a claude-code`. Or copy the skill folder (.agents/skills/babysit in simstudioai/sim) into .claude/skills/babysit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add simstudioai/sim --skill babysit -a codex`. Or copy the skill folder (.agents/skills/babysit in simstudioai/sim) into .agents/skills/babysit 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 simstudioai/sim --skill babysit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/babysit, .gemini/skills/babysit, .github/skills/babysit and .opencode/skills/babysit in your project.
Going by SKILL.md and its folder, Babysit needs the command-line tools its instructions call (gh and git).
SKILL.md contains no URLs. Its commands use gh and 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.
Babysit is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k 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 Babysit: Android Clean Architecture (affaan-m/ECC, 275k stars), Feishu Drive (openclaw/openclaw, 392k stars), Zero Trust (sickn33/agentic-awesome-skills, 47k stars) and Babysit (nubjs/nub, 4.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
simstudioai (a GitHub organization) maintains it in simstudioai/sim, which has 29,792 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 8, 2026.
Source: simstudioai/sim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.