Safety Guard
affaan-m/ECC
Guard against destructive operations with three modes: Careful intercepts dangerous commands (rm -rf, git push --force, DROP TABLE) for confirmation, Freeze locks writes to one directory, and Guard…
Correctness-first: forces writing the function contract, loop invariant, termination argument, and edge cases BEFORE code.
$ npx skills add sickn33/agentic-awesome-skills --skill invariant-guard -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install sickn33/agentic-awesome-skills invariant-guard --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/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/invariant-guard .claude/skills/invariant-guard && 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 "invariant-guard" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/invariant-guard into .claude/skills/invariant-guard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invariant-guard", 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/sickn33/agentic-awesome-skills/tree/main/skills/invariant-guardType 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 sickn33/agentic-awesome-skills --skill invariant-guard -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install sickn33/agentic-awesome-skills invariant-guard --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/invariant-guard .agents/skills/invariant-guard && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "invariant-guard" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/invariant-guard into .agents/skills/invariant-guard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invariant-guard", 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 sickn33/agentic-awesome-skills --skill invariant-guard -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install sickn33/agentic-awesome-skills invariant-guard --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/invariant-guard .cursor/skills/invariant-guard && 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 "invariant-guard" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/invariant-guard into .cursor/skills/invariant-guard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invariant-guard", 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/sickn33/agentic-awesome-skills.git --path skills/invariant-guard--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 sickn33/agentic-awesome-skills --skill invariant-guard -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install sickn33/agentic-awesome-skills invariant-guard --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/invariant-guard .gemini/skills/invariant-guard && 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 "invariant-guard" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/invariant-guard into .gemini/skills/invariant-guard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invariant-guard", 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 sickn33/agentic-awesome-skills invariant-guardInstalls 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 sickn33/agentic-awesome-skills --skill invariant-guard -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/invariant-guard .github/skills/invariant-guard && 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 "invariant-guard" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/invariant-guard into .github/skills/invariant-guard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invariant-guard", 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 sickn33/agentic-awesome-skills --skill invariant-guard -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install sickn33/agentic-awesome-skills invariant-guard --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/invariant-guard .opencode/skills/invariant-guard && 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 "invariant-guard" agent skill from https://github.com/sickn33/agentic-awesome-skills/tree/main/skills/invariant-guard into .opencode/skills/invariant-guard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "invariant-guard", 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.
invariant-guardCorrectness-first: forces writing the function contract, loop invariant, termination argument, and edge cases BEFORE code.
Invariant Guard is an agent skill from sickn33/agentic-awesome-skills. Correctness-first: forces writing the function contract, loop invariant, termination argument, and edge cases BEFORE code. Catches Boyer-Moore, leftmost binary search, QuickSelect traps.
Its SKILL.md is about 4.5k 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: AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400+ agentic skills. Includes… The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit b84d35a. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Invariant Guard loads about 4.5k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 2,186 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 sickn33/agentic-awesome-skills at commit b84d35a, republished under its Apache-2.0 licence (© sickn33). 2,186 words, ~4,519 tokens.
.claude/skills/invariant-guard/SKILL.md (or your agent's skills folder).The model knows what a loop invariant is. It knows recursion needs a base case. It knows about empty lists, integer overflow, and the difference between < and ≤. It just does not write these down before producing code, so it ships subtle correctness bugs that tests do not catch.
invariant-guard fixes the behavior. State the invariants. State the base case. State the termination argument. State the edge cases. Then write the code — and verify that the code maintains what you stated.
Violating the letter of these rules is violating the spirit of the skill. "I know this algorithm" is the exact rationalization that ships off-by-one and missing-postcondition bugs.
Use invariant-guard when writing or reviewing algorithms where the obvious implementation is subtly wrong:
Pairs with lemmaly (picks the algorithm) and mathguard (picks the math). Load invariant-guard after the algorithm has been chosen and before the loop body is written.
NO LOOP OR RECURSION WITHOUT A WRITTEN INVARIANT AND TERMINATION ARGUMENTIf you cannot write the invariant in one sentence, you have not designed the loop. Write code anyway and you are coding by guess — and the bug will be in the case you did not enumerate.
Every loop gets a one-line invariant. Before writing any loop, state in one sentence what is true at the top of every iteration. Examples:
result contains the sum of a[0..i)."lo ≤ target_position ≤ hi."seen contains every element processed so far; dups contains every element that appeared at least twice."If you cannot write the invariant in one sentence, you have not designed the loop yet.
Every loop gets a one-line termination argument. Name the quantity that strictly decreases (or strictly increases toward a bound) on every iteration. Examples:
hi − lo strictly decreases each iteration."i increases by 1 and is bounded above by n."stack.length strictly decreases each pop; nothing pushes inside this branch."No termination argument, no loop.
Every recursion gets an explicit base case and a measure. Before writing a recursive function, state:
len(xs), hi − lo, depth, n).No base case + measure, no recursion. (Mutual recursion: state the measure across the cycle.)
List edge cases before writing, not after. For every function operating on a collection or number, list which of these apply and how they behave:
[], "", null, undefined, None).[x]).-0, denormals (for floats).The cases that apply must each have a one-phrase expected behavior written down.
Make illegal states unreachable, not just unhandled. Prefer encoding constraints in types and structure so the wrong state cannot be constructed:
Loading | Loaded(data) | Error(msg) not {loading, data, error}).UserId vs OrderId).If the language cannot encode it, write the invariant as a comment and assert it at the boundary.
Before producing non-trivial code that has loops, recursion, or non-trivial state, your message must contain — in this order:
If any of 1–6 is missing, do not emit code.
This is the canonical "the trap is in the contract, not the loop body" case.
Naive baseline (what gets shipped without the skill):
function findMajority(arr: number[]): number | null {
if (arr.length === 0) return null;
let candidate = arr[0], count = 0;
for (const x of arr) {
if (count === 0) candidate = x;
if (x === candidate) count++; else count--;
}
return candidate; // BUG: returns the candidate even when no majority exists
}This implementation fails on [1,2,3] (returns 3, expected null) and [2,2,1,1] (returns 1, expected null). The voting loop is correct; the postcondition is wrong.
Why the protocol catches it. Writing step 1 (function contract) forces the postcondition in plain language:
Returns
xiffcount(x, arr) > arr.length / 2; elsenull.
Then writing step 2 (loop invariant) forces the invariant of the voting pass:
If a strict majority element exists in
arr, it equalscandidatewhen the loop exits.
These two statements are not equivalent. The loop invariant guarantees "if a majority exists, it is the candidate" — not "the candidate is a majority." Once you write both down, the gap is visible: you need a second pass to verify, or the postcondition is unmet.
Correct implementation that survives the protocol:
function findMajority(arr: number[]): number | null {
if (arr.length === 0) return null;
// Pass 1: vote.
let candidate = arr[0], count = 0;
// inv: if a strict majority exists in arr, it equals candidate at every count===0 reset.
for (const x of arr) {
if (count === 0) candidate = x;
if (x === candidate) count++; else count--;
}
// Pass 2: verify — the voting invariant is strictly weaker than the postcondition.
let tally = 0;
// inv: tally = count of candidate in arr[0..i).
for (const x of arr) if (x === candidate) tally++;
return tally * 2 > arr.length ? candidate : null;
}Pattern to generalize. The same trap appears in:
In every case: write the postcondition first; write the loop invariant second; check that the second implies the first. If not, you are missing a pass, a check, or an auxiliary state.
Most "I know binary search" implementations are written for "find any match." The trap is the postcondition.
Problem. Given a sorted array with duplicates, return the index of the leftmost occurrence of target, or -1.
function leftmost(a: number[], target: number): number {
let lo = 0, hi = a.length - 1;
while (lo <= hi) {
const mid = (lo + hi) >> 1;
if (a[mid] === target) return mid; // returns ANY occurrence
if (a[mid] < target) lo = mid + 1; else hi = mid - 1;
}
return -1;
}
// leftmost([1,2,2,2,3], 2) → may return 2, not 1The loop invariant ("target lies in a[lo..hi] if anywhere") is satisfied. But the postcondition ("returned index is the smallest i with a[i] === target") is strictly stronger. The loop body's early return abandons the search before reaching the leftmost.
function leftmost(a: number[], target: number): number {
// contract:
// pre: a is sorted ascending
// post: returns smallest i with a[i] === target, or -1 if absent
let lo = 0, hi = a.length; // half-open [lo, hi)
// inv: every index < lo has a[i] < target; every index ≥ hi has a[i] > target OR is past leftmost match
// term: hi - lo strictly halves each iteration
while (lo < hi) {
const mid = (lo + hi) >> 1;
if (a[mid] < target) lo = mid + 1; else hi = mid;
}
// exit: lo === hi, and by invariant lo is the leftmost index where a[lo] >= target
return lo < a.length && a[lo] === target ? lo : -1;
}Same loop shape. The difference is the contract was written first — and the loop body was chosen to maintain an invariant that implies the postcondition.
| Loop / algorithm shape | Canonical invariant | Termination |
|---|---|---|
| Linear scan accumulating | acc = f(a[0..i)) at top | i increases by 1, bounded by n |
| Two-pointer (sorted) | target (if any) lies in a[lo..hi] | hi − lo strictly decreases |
| Binary search | target (if present) ∈ a[lo..hi] and a[lo..hi] non-empty | hi − lo strictly halves |
| Sliding window | window [l..r) satisfies the constraint; answer ≥ best so far | r advances at least once per outer iter |
| BFS | every node at distance < d has been popped; queue contains some at distance d | strict node count decrease per pop |
| DFS / recursion on tree | result for subtree rooted at v = combine(children results) | depth (or remaining nodes) strictly decreases |
| Divide and conquer | result on a[lo..hi] = combine(results on the two halves) | hi − lo strictly halves |
| Greedy with priority queue | extracted item is globally optimal for the remaining problem | heap size strictly decreases per extract |
| Union-Find op | find(x) always returns the canonical root of x's component | tree height bounded by O(log n) (with rank) |
| In-place partition | a[0..i) < pivot; a[i..j) ≥ pivot; a[j..n) unseen | n − j strictly decreases |
| Input shape | Cases to check |
|---|---|
| Array / list | empty, singleton, all-equal, sorted, reversed, with duplicates |
| String | empty, single char, all whitespace, unicode (surrogates, combining), bytes vs code points |
| Integer | 0, 1, −1, MIN, MAX, MAX − 1, near overflow in arithmetic, division by 0 |
| Float | 0.0, −0.0, NaN, ±Inf, denormal, exact comparison should be ε-based |
| Map / dict | empty, missing key (default vs error), key collision semantics |
| Tree / graph | empty, single node, cycle (if undirected), self-loop, multigraph, disconnected |
| Stream / iterator | empty, infinite, single yield, exception mid-iteration |
| Time / date | DST transition, leap second/day, timezone offset, epoch boundary |
| Concurrent | empty contention, single thread, max contention, cancellation mid-op |
Code you emit must:
// inv: or # inv:).lemmaly first; pick the algorithm, then state its invariants here.mathguard; invariants for approximate algorithms include ε-bounds, not equality.| Excuse | Reality |
|---|---|
| "I know this algorithm — single pass, done." | Knowing the loop ≠ knowing the contract. The trap usually lives in the postcondition the loop does not enforce. |
| "I traced it in my head, it works." | Mental tracing skips edge cases. Write the invariant; check it implies the postcondition. |
| "Edge cases are obvious." | Then write them down in 30 seconds. If they are obvious, the table is cheap. If they are not, the table just saved you. |
| "Tests will catch it." | Tests catch the examples you thought of. The trap is the example you did not. Postconditions catch all examples. |
| "The postcondition is implied." | If it were, the natural loop invariant would equal it. When they differ (Boyer–Moore, leftmost search, QuickSelect), you need a second pass, an extra check, or auxiliary state. |
| "Adding a verification pass feels redundant." | Boyer–Moore voting + verification is still O(n). "Feels redundant" is the rationalization that ships the bug. |
while (...) without having stated what is true on entry.if (i === n − 1) or if (i === n) — boundary suspicious, restate the invariant.// TODO: handle empty — handle it now or change the type so empty is impossible.== on floats.Before claiming the function is correct:
// inv: comment in code.Cannot check every box? The code is example-correct, not behavior-correct. Either fill the gap or downgrade the function's claimed contract.
Tests verify examples. Invariants verify behavior. AI assistants ship example-correct, behavior-wrong code by default. invariant-guard makes them reason about behavior first.
lemmaly — algorithm choice must be settled before invariants; load lemmaly first if the algorithm family is unclear.mathguard — ε-bounded postconditions for approximate / randomized algorithms.complexity-cuts — if 3+ optimization transformations have failed tests, the bug is a missing contract, not a missing optimization — escalate here.© sickn33, 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 skills/invariant-guard of sickn33/agentic-awesome-skills.
Open the folder on GitHubat commit b84d35a
We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sickn33/agentic-awesome-skills, which our catalogue first saw on October 7, 2026.
Invariant Guard 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 |
|---|---|---|---|---|---|---|
| Invariant Guard this skillsickn33/agentic-awesome-skills | 47k | 1 repos | ~4.5k | Automated safety check: Pass | Apache-2.0 | |
| Safety Guardaffaan-m/ECC | 276k | 2 repos | ~554 | Automated safety check: Notes | MIT | |
| Guard Modegarrytan/gstack | 136k | — | ~1k | Automated safety check: Notes | MIT | |
| Correctcursor/plugins | 11k | 3 repos | ~612 | Automated safety check: Pass | None | |
| CorrectionNxcoreAI/EverRoom | 3k | — | ~290 | Automated safety check: Pass | Custom licence | |
| Azure Functionsdavila7/claude-code-templates | 33k | 2 repos | ~344 | Automated safety check: Pass | MIT |
affaan-m/ECC
Guard against destructive operations with three modes: Careful intercepts dangerous commands (rm -rf, git push --force, DROP TABLE) for confirmation, Freeze locks writes to one directory, and Guard…
garrytan/gstack
Switches on full safety by combining warnings before destructive commands with a block on edits outside one directory you choose, for work on production or live systems.
cursor/plugins
Find the mistakes agents keep repeating in this repo and make each one impossible.
NxcoreAI/EverRoom
Compute Room overview corrections—citation corrections as per-claim edits and general corrections as a single proposal.
davila7/claude-code-templates
Expert patterns for Azure Functions development including isolated worker model, Durable Functions orchestration, cold start optimization, and production patterns.
affaan-m/ECC
本番システムでの作業時や、エージェントを自律的に実行する際に破壊的な操作を防ぐためにこのスキルを使用してください. An agent skill from affaan-m/ECC.
sickn33/agentic-awesome-skills
Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.
sickn33/agentic-awesome-skills
Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.
sickn33/agentic-awesome-skills
Keeps project decisions, research and verified results available across coding-agent sessions through LWC memory, a document Wiki graph and a CodeGraph code index.
sickn33/agentic-awesome-skills
Guides an agent through assessing its own owner for cofounder fit, publishing an approved profile, and ranking complementary profiles other agents published for their owners.
sickn33/agentic-awesome-skills
Integracao com WhatsApp Business Cloud API (Meta). An agent skill from sickn33/agentic-awesome-skills.
sickn33/agentic-awesome-skills
Acts as a proxy for the Cline CLI, dispatching coding tasks one at a time, monitoring runs by hard evidence, relaying decisions to you and learning per-project preferences.
Correctness-first: forces writing the function contract, loop invariant, termination argument, and edge cases BEFORE code. Invariant Guard is an agent skill from sickn33/agentic-awesome-skills. Correctness-first: forces writing the function contract, loop invariant, termination argument, and edge cases BEFORE code.
Run `npx skills add sickn33/agentic-awesome-skills --skill invariant-guard -a claude-code`. Or copy the skill folder (skills/invariant-guard in sickn33/agentic-awesome-skills) into .claude/skills/invariant-guard in your project. Claude Code loads it when a task matches its description.
Run `npx skills add sickn33/agentic-awesome-skills --skill invariant-guard -a codex`. Or copy the skill folder (skills/invariant-guard in sickn33/agentic-awesome-skills) into .agents/skills/invariant-guard 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 sickn33/agentic-awesome-skills --skill invariant-guard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/invariant-guard, .gemini/skills/invariant-guard, .github/skills/invariant-guard and .opencode/skills/invariant-guard in your project.
SKILL.md names no scripts, command-line tools or credentials: Invariant Guard is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Invariant Guard is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.5k tokens (SKILL.md is roughly 18k 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 Invariant Guard: Safety Guard (affaan-m/ECC, 276k stars), Guard Mode (garrytan/gstack, 136k stars), Correct (cursor/plugins, 11k stars) and Correction (NxcoreAI/EverRoom, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
sickn33 (a GitHub user) maintains it in sickn33/agentic-awesome-skills, which has 47,405 GitHub stars. The repository holds 1,497 skills in this directory. The repository was last updated on October 9, 2026.
Source: sickn33/agentic-awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.