OpenROAD Bug Fixer
The-OpenROAD-Project/OpenROAD
Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.
Competitive programming debugging mastery covering stress testing with random test generators, systematic edge case identification, time and memory optimization techniques, common bug patterns in…
$ npx skills add FerroxLabs/wayland --skill competitive-debugging-master -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FerroxLabs/wayland competitive-debugging-master --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/FerroxLabs/wayland.git skills-src && mkdir -p .claude/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master .claude/skills/competitive-debugging-master && 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 "competitive-debugging-master" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master into .claude/skills/competitive-debugging-master/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitive-debugging-master", 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/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-masterType 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 FerroxLabs/wayland --skill competitive-debugging-master -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FerroxLabs/wayland competitive-debugging-master --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .agents/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master .agents/skills/competitive-debugging-master && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "competitive-debugging-master" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master into .agents/skills/competitive-debugging-master/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitive-debugging-master", 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 FerroxLabs/wayland --skill competitive-debugging-master -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FerroxLabs/wayland competitive-debugging-master --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master .cursor/skills/competitive-debugging-master && 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 "competitive-debugging-master" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master into .cursor/skills/competitive-debugging-master/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitive-debugging-master", 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/FerroxLabs/wayland.git --path src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master--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 FerroxLabs/wayland --skill competitive-debugging-master -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FerroxLabs/wayland competitive-debugging-master --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master .gemini/skills/competitive-debugging-master && 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 "competitive-debugging-master" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master into .gemini/skills/competitive-debugging-master/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitive-debugging-master", 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 FerroxLabs/wayland competitive-debugging-masterInstalls 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 FerroxLabs/wayland --skill competitive-debugging-master -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .github/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master .github/skills/competitive-debugging-master && 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 "competitive-debugging-master" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master into .github/skills/competitive-debugging-master/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitive-debugging-master", 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 FerroxLabs/wayland --skill competitive-debugging-master -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FerroxLabs/wayland competitive-debugging-master --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FerroxLabs/wayland.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master .opencode/skills/competitive-debugging-master && 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 "competitive-debugging-master" agent skill from https://github.com/FerroxLabs/wayland/tree/main/src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master into .opencode/skills/competitive-debugging-master/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitive-debugging-master", 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.
competitive-debugging-masterCompetitive programming debugging mastery covering stress testing with random test generators, systematic edge case identification, time and memory optimization techniques, common bug patterns in…
Competitive Debugging Master is an agent skill from FerroxLabs/wayland. Competitive programming debugging mastery covering stress testing with random test generators, systematic edge case identification, time and memory optimization techniques, common bug patterns in contest code, binary search on test cases, and strategies for debugging under contest time pressure. Use when the user asks about competitive debugging master, related techniques, best practices, or needs guidance in this domain. Do NOT use when the request is outside the scope of competitive debugging master or requires…
Its SKILL.md is about 4.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, covering Debugging, Load testing and Test generation. The repository describes itself as: Wayland - The AI Agent That Perceives. Reasons. Acts. Evolves. 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 4c030c7. 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 cpp, bash, python and template).
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.
Competitive Debugging Master loads about 4.2k tokens when it runs. Until then it costs about 145 tokens; SKILL.md has 442 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 FerroxLabs/wayland at commit 4c030c7, republished under its Apache-2.0 licence (© FerroxLabs). 442 words, ~4,203 tokens.
.claude/skills/competitive-debugging-master/SKILL.md (or your agent's skills folder).You are an expert competitive programmer specializing in debugging contest solutions. You systematically find bugs using stress testing, identify edge cases that break solutions, optimize code for tight time limits, and apply disciplined debugging strategies that work under contest pressure.
Use this skill when:
Do NOT use when:
Symptom?
├── Wrong Answer (WA)
│ ├── Fails on samples? → Logic error, re-read problem statement
│ ├── Passes samples, fails on submit?
│ │ ├── Build stress test → Find smallest failing case
│ │ ├── Check edge cases (N=0, N=1, all same, max values)
│ │ └── Check integer overflow, off-by-one, array bounds
│ └── Passes most but not all?
│ └── Likely corner case or overflow on large inputs
│
├── Time Limit Exceeded (TLE)
│ ├── Wrong complexity? → Rethink algorithm
│ ├── Right complexity but slow constant? → Optimize I/O, data structures
│ └── Borderline? → Constant factor optimization (see section below)
│
├── Runtime Error (RE)
│ ├── Array out of bounds → Check array sizes, loop bounds
│ ├── Division by zero → Add guards
│ ├── Stack overflow → Increase stack or convert recursion to iteration
│ └── Null/invalid access → Check edge cases (empty input)
│
└── Memory Limit Exceeded (MLE)
├── Too many allocations → Use arrays instead of vectors/maps
├── Oversized array → Reduce dimensions or use sparse structure
└── Recursion depth → Convert to iterative// stress_test.cpp -- Find smallest failing test case
#include <bits/stdc++.h>
using namespace std;
// Your optimized solution
int solve(vector<int>& a) {
// ... your algorithm ...
}
// Brute force (definitely correct, possibly slow)
int brute(vector<int>& a) {
// ... O(N^2) or O(N^3) simple approach ...
}
// Random test generator
vector<int> generate(mt19937& rng, int maxN, int maxVal) {
int n = rng() % maxN + 1;
vector<int> a(n);
for (int& x : a) x = rng() % (2 * maxVal + 1) - maxVal;
return a;
}
int main() {
mt19937 rng(42); // fixed seed for reproducibility
for (int test = 1; test <= 1000000; test++) {
vector<int> a = generate(rng, 10, 100); // small cases first
int expected = brute(a);
int actual = solve(a);
if (expected != actual) {
cout << "FAILED on test " << test << endl;
cout << "Input: ";
for (int x : a) cout << x << " ";
cout << endl;
cout << "Expected: " << expected << endl;
cout << "Actual: " << actual << endl;
return 1;
}
if (test % 10000 == 0) {
cerr << "Passed " << test << " tests" << endl;
}
}
cout << "All tests passed!" << endl;
}#!shell-interpreter
# stress-test script - compare two solutions
g++ -O2 solve.cpp -o solve
g++ -O2 brute.cpp -o brute
g++ -O2 gen.cpp -o gen
for i in $(seq 1 10000); do
./gen $i > input.txt # seed = test number
./solve < input.txt > out1.txt
./brute < input.txt > out2.txt
if ! diff -q out1.txt out2.txt > ./dev/null 2>&1; then
echo "MISMATCH on test $i"
echo "Input:"
cat input.txt
echo "Expected:"
cat out2.txt
echo "Got:"
cat out1.txt
exit 1
fi
done
echo "All tests passed!"// gen.cpp - takes seed as command-line argument
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char* argv[]) {
mt19937 rng(atoi(argv[1]));
// Array of integers
int n = rng() % 10 + 1;
cout << n << "\n";
for (int i = 0; i < n; i++)
cout << (rng() % 201 - 100) << " \n"[i == n-1];
// Tree (random parent for each node)
int n = rng() % 10 + 2;
cout << n << "\n";
for (int i = 2; i <= n; i++) {
int parent = rng() % (i - 1) + 1;
cout << parent << " " << i << "\n";
}
// Random permutation
int n = rng() % 10 + 1;
vector<int> perm(n);
iota(perm.begin(), perm.end(), 1);
shuffle(perm.begin(), perm.end(), rng);
cout << n << "\n";
for (int x : perm) cout << x << " ";
cout << "\n";
// Random graph (N nodes, M edges, no self-loops, no multi-edges)
int n = rng() % 8 + 2, m = rng() % (n*(n-1)/2) + 1;
set<pair<int,int>> edges;
while ((int)edges.size() < m) {
int u = rng() % n + 1, v = rng() % n + 1;
if (u != v) edges.insert({min(u,v), max(u,v)});
}
cout << n << " " << m << "\n";
for (auto [u,v] : edges) cout << u << " " << v << "\n";
}□ N = 0 (empty input)
□ N = 1 (single element)
□ N = 2 (minimum for pairwise operations)
□ All elements identical
□ Already sorted (ascending)
□ Reverse sorted (descending)
□ Maximum values (1e9, 1e18)
□ Minimum values (negative, zero)
□ Negative numbers (if allowed)
□ Answer is zero
□ Answer requires 64-bit integerArrays:
□ Single element array
□ Two elements (swap needed?)
□ All same values
□ Sorted / reverse sorted
□ Maximum size with extreme values
Trees:
□ Single node
□ Linear chain (degenerate tree, depth = N)
□ Star graph (one root, N-1 leaves)
□ Complete binary tree
□ Disconnected (if not guaranteed connected)
Graphs:
□ No edges (isolated nodes)
□ Complete graph
□ Single path
□ Self-loops (if allowed)
□ Disconnected components
□ Negative weight edges/cycles
Strings:
□ Empty string
□ Single character
□ All same character ("aaaa")
□ Palindrome
□ Maximum lengthInteger overflow checkpoints:
□ Multiplication of two 32-bit ints → need 64-bit (>2e9)
□ Sum of N values each up to 1e9, N up to 2e5 → need 64-bit (>2e14)
□ Square of distance (1e9 squared = 1e18, fits in long long)
□ Product of three values → may need __int128 or modular arithmetic
Modular arithmetic:
□ Subtraction can go negative: use (a - b + MOD) % MOD
□ Division requires modular inverse, not regular division
□ Intermediate products can overflow before mod: use (ll)a * b % MOD
Floating point:
□ Comparison: use eps = 1e-9, not ==
□ Large values lose precision: 1e15 + 1.0 == 1e15 in double
□ atan2(0, 0) is defined but may cause issues// ALWAYS include these in competitive programming
ios::sync_with_stdio(false);
cin.tie(nullptr);
// For very large I/O (>1MB), use custom reader:
inline int readInt() {
int x = 0, c = getchar_unlocked();
bool neg = false;
while (c < '0') { neg = (c == '-'); c = getchar_unlocked(); }
while (c >= '0') { x = x * 10 + c - '0'; c = getchar_unlocked(); }
return neg ? -x : x;
}
// Printf is faster than cout for formatted output
printf("%d\n", answer); // faster than cout << answer << "\n";// Prefer array over vector when size is known
int a[200005]; // faster than vector<int> a(n)
// Prefer array over map/unordered_map
int cnt[1000005] = {}; // faster than map<int,int> .// Reserve vector capacity
vector<int> v;
v.reserve(n); // avoid reallocations
// Use emplace_back instead of push_back for objects
v.emplace_back(x, y); // construct in-place
// Sort comparison: pass by const reference
sort(a.begin(), a.end(), [](const auto& x, const auto& y) {
return x.first < y.first;
});// Binary search instead of linear search: O(N) → O(log N)
// Two pointers instead of nested loops: O(N^2) → O(N)
// Prefix sums instead of range queries: O(NQ) → O(N+Q)
// Sparse table instead of segment tree for static RMQ: lower constant
// Avoid unnecessary copies
for (const auto& x : vec) { ... } // reference, not copy
// Not: for (auto x : vec) { ... } // copies each element
// Short-circuit evaluation
if (expensive_check && cheap_check) ... // BAD
if (cheap_check && expensive_check) ... // GOOD
// Bitset for boolean arrays (64x speedup for AND/OR/COUNT)
bitset<100005> visited;
// Instead of: bool visited[100005];// Cache-friendly access (iterate by rows, not columns)
// BAD: for (j) for (i) a[i][j] -- cache miss every access
// GOOD: for (i) for (j) a[i][j] -- sequential access
// __builtin functions (single CPU instruction)
__builtin_popcount(x); // count bits
__builtin_clz(x); // leading zeros (for log2)
__builtin_ctz(x); // trailing zeros
// Pragmas for auto-vectorization (GCC)
#pragma GCC optimize("O2,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,popcnt")// 1. Integer overflow
int n = 200000;
int result = n * n; // OVERFLOW! 4e10 > INT_MAX
long long result = (long long)n * n; // correct
// 2. Off-by-one in binary search
// Wrong: while (lo < hi) with hi = n (should be n-1, or use lo <= hi)
int lo = 0, hi = n - 1;
while (lo <= hi) {
int mid = lo + (hi - lo) / 2; // avoid overflow in (lo+hi)/2
if (check(mid)) hi = mid - 1;
else lo = mid + 1;
}
// 3. Uninitialized variables / arrays
memset(dp, -1, sizeof dp); // initialize DP array
// Or: fill(dp, dp + n, -1);
// 4. Wrong modular arithmetic
int ans = (a - b) % MOD; // can be negative!
int ans = ((a - b) % MOD + MOD) % MOD; // correct
// 5. Array size too small
int a[100005]; // N up to 1e5? Use 1e5 + 5 for safety
// Common mistake: graph with M edges needs adj list of size N, not M
// 6. skipping to reset between test cases
int t; cin >> t;
while (t--) {
// MUST reset all global state here
fill(visited, visited + n + 1, false);
for (int i = 0; i <= n; i++) adj[i].clear();
}
// 7. Wrong comparison in sort
// Must be strict weak ordering: never return true for equal elements
sort(a, a+n, [](int x, int y) { return x <= y; }); // WRONG (undefined behavior)
sort(a, a+n, [](int x, int y) { return x < y; }); // correctWhen you have a failing test case that's too large to debug:
1. Verify it actually fails: run and confirm WA/RE
2. Binary search on input size:
- Take first N/2 elements → still fails? Recurse on smaller
- Doesn't fail? Take first 3N/4 elements → ...
3. For structured input (trees, graphs):
- Remove leaf nodes one at a time
- Remove edges one at a time
- Check if failure persists after each removal
4. Goal: find the SMALLEST input that triggers the bug# Automated test case minimizer
import subprocess
def run_solution(input_data):
result = subprocess.run(['./solve'], input=input_data,
capture_output=True, text=True, timeout=5)
return result.stdout.strip()
def run_brute(input_data):
result = subprocess.run(['./brute'], input=input_data,
capture_output=True, text=True, timeout=30)
return result.stdout.strip()
def minimize(elements):
"""Binary search to find minimal failing subset."""
if len(elements) <= 1:
return elements
mid = len(elements) // 2
left = elements[:mid]
right = elements[mid:]
# Try just left half
test_input = format_input(left)
if run_solution(test_input) != run_brute(test_input):
return minimize(left)
# Try just right half
test_input = format_input(right)
if run_solution(test_input) != run_brute(test_input):
return minimize(right)
# Need elements from both halves -- try removing one at a time
for i in range(len(elements)):
reduced = elements[:i] + elements[i+1:]
test_input = format_input(reduced)
if run_solution(test_input) != run_brute(test_input):
return minimize(reduced)
return elements # all elements neededIn a contest, if your solution gets WA:
Minute 0-1: Re-read the problem statement carefully
- Did you misunderstand the output format?
- Are there constraints you missed?
- 1-indexed vs 0-indexed?
Minute 1-3: Check the obvious
- Integer overflow (use long long everywhere if unsure)
- Array bounds (add +5 to all array sizes)
- Uninitialized variables
- Multiple test cases: are you resetting state?
Minute 3-5: Run stress test
- Write 30-second brute force
- Write 30-second generator
- Run 10,000 small cases
- If mismatch found, print minimal failing case and debug
If no bug found in 5 minutes: MOVE TO ANOTHER PROBLEM
Come back with fresh eyes later.// template.cpp -- compile with: g++ -O2 -Wall -Wextra -DLOCAL
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#define dbg(x) cerr << #x << " = " << (x) << endl
#define dbgv(v) { cerr << #v << " = ["; for(auto& x:v) cerr << x << ","; cerr << "]" << endl; }
#else
#define dbg(x)
#define dbgv(v)
#endif
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
// Solution here
// Use dbg(variable) freely -- stripped in submission
return 0;
}## Competitive Debugging Master Analysis
### Assessment
[Key findings and observations]
### Recommendations
1. [Primary recommendation]
2. [Secondary recommendation]
3. [Additional suggestions]
### Action Items
- [ ] [First action step]
- [ ] [Second action step]
- [ ] [Follow-up task]Input: "Help me with competitive debugging master for my current situation"
Output:
Based on your situation, here is a structured approach to competitive debugging master:
© FerroxLabs, 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 src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master of FerroxLabs/wayland.
Open the folder on GitHubat commit 4c030c7
Competitive Debugging Master 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 |
|---|---|---|---|---|---|---|
| Competitive Debugging Master this skillFerroxLabs/wayland | 608 | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| OpenROAD Bug FixerThe-OpenROAD-Project/OpenROAD | 3.2k | — | ~784 | Automated safety check: Pass | BSD-3-Clause | |
| State Snapshot InstrumenterArabelaTso/Skills-4-SE | 253 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Feature ContractFastLED/FastLED | 7.5k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Devnpc-live/clawfirm | 156 | — | ~642 | Automated safety check: Pass | None | |
| Code Repair Generation ComboArabelaTso/Skills-4-SE | 253 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 |
The-OpenROAD-Project/OpenROAD
Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.
ArabelaTso/Skills-4-SE
Instrument programs (Python, C/C++, Java) to capture snapshots of key program states at runtime, including variables, memory, and call stacks.
FastLED/FastLED
Generate a structured implementation contract before making any code changes to FastLED.
npc-live/clawfirm
Software development workflow dispatcher. An agent skill from npc-live/clawfirm.
ArabelaTso/Skills-4-SE
Automatically repair buggy code and generate comprehensive tests for Python, Java, and C++ programs.
JasonMa0012/MooaToon
A skill your agent uses when writing or modifying UE automated tests (Automation, CQTest, Functional, Gauntlet, LowLevel) with Rider MCP available.
FerroxLabs/wayland
Install, start, connect, and troubleshoot visualization companion projects for Aion/OpenClaw, with Star-Office-UI as the default recommendation.
FerroxLabs/wayland
OpenClaw usage expert: Helps you install, deploy, configure, and use OpenClaw personal AI assistant.
FerroxLabs/wayland
Set up TVControl end to end: install the connector, start TradingView Desktop with its control port open, load a watchlist export, add the indicators they use, and leave a working chart.
FerroxLabs/wayland
End-to-end guide for designing, running, and analyzing A/B tests including experiment design, statistical significance, sample size calculation, common pitfalls, and advanced testing patterns.
FerroxLabs/wayland
Complete academic writing guide covering thesis and dissertation structure, journal article format using IMRaD, literature review methodology, citation management, the peer review process, and…
FerroxLabs/wayland
Web accessibility expertise covering WCAG 2.2 conformance, audit methodology, ARIA patterns, keyboard navigation, screen reader testing, focus management, form accessibility, and automated vs manual…
Categories
Competitive programming debugging mastery covering stress testing with random test generators, systematic edge case identification, time and memory optimization techniques, common bug patterns in…. Competitive Debugging Master is an agent skill from FerroxLabs/wayland. Competitive programming debugging mastery covering stress testing with random test generators, systematic edge case identification, time and memory optimization techniques, common bug patterns in contest code, binary search on test cases, and strategies for debugging under contest time pressure.
Competitive Debugging Master fits situations like: the user asks about competitive debugging master; related techniques; needs guidance in this domain; the request is outside the scope of competitive debugging master.
Run `npx skills add FerroxLabs/wayland --skill competitive-debugging-master -a claude-code`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master in FerroxLabs/wayland) into .claude/skills/competitive-debugging-master in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FerroxLabs/wayland --skill competitive-debugging-master -a codex`. Or copy the skill folder (src/process/resources/skills-library/bodies/skills/emerging-tech/competitive-debugging-master in FerroxLabs/wayland) into .agents/skills/competitive-debugging-master 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 FerroxLabs/wayland --skill competitive-debugging-master -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/competitive-debugging-master, .gemini/skills/competitive-debugging-master, .github/skills/competitive-debugging-master and .opencode/skills/competitive-debugging-master in your project.
SKILL.md names no scripts, command-line tools or credentials: Competitive Debugging Master is instructions for the agent only. Our summary lists: Python 3.
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.
Competitive Debugging Master 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.2k tokens (SKILL.md is roughly 17k 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 Competitive Debugging Master: OpenROAD Bug Fixer (The-OpenROAD-Project/OpenROAD, 3.2k stars), State Snapshot Instrumenter (ArabelaTso/Skills-4-SE, 253 stars), Feature Contract (FastLED/FastLED, 7.5k stars) and Dev (npc-live/clawfirm, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FerroxLabs (a GitHub user) maintains it in FerroxLabs/wayland, which has 608 GitHub stars. The repository holds 1,194 skills in this directory. The repository was last updated on October 6, 2026.
Source: FerroxLabs/wayland on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.