Ij Debugger
xpinjection/test-driven-spring-boot
Debugger-first runtime root-cause analysis for JVM code in IntelliJ IDEA.
Enforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification.
$ npx skills add KaimingWan/oh-my-kiro --skill omk-coding -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install KaimingWan/oh-my-kiro omk-coding --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/KaimingWan/oh-my-kiro.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/omk-coding .claude/skills/omk-coding && 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 "omk-coding" agent skill from https://github.com/KaimingWan/oh-my-kiro/tree/main/skills/omk-coding into .claude/skills/omk-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "omk-coding", 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/KaimingWan/oh-my-kiro/tree/main/skills/omk-codingType 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 KaimingWan/oh-my-kiro --skill omk-coding -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install KaimingWan/oh-my-kiro omk-coding --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KaimingWan/oh-my-kiro.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/omk-coding .agents/skills/omk-coding && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "omk-coding" agent skill from https://github.com/KaimingWan/oh-my-kiro/tree/main/skills/omk-coding into .agents/skills/omk-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "omk-coding", 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 KaimingWan/oh-my-kiro --skill omk-coding -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install KaimingWan/oh-my-kiro omk-coding --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KaimingWan/oh-my-kiro.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/omk-coding .cursor/skills/omk-coding && 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 "omk-coding" agent skill from https://github.com/KaimingWan/oh-my-kiro/tree/main/skills/omk-coding into .cursor/skills/omk-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "omk-coding", 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/KaimingWan/oh-my-kiro.git --path skills/omk-coding--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 KaimingWan/oh-my-kiro --skill omk-coding -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install KaimingWan/oh-my-kiro omk-coding --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KaimingWan/oh-my-kiro.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/omk-coding .gemini/skills/omk-coding && 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 "omk-coding" agent skill from https://github.com/KaimingWan/oh-my-kiro/tree/main/skills/omk-coding into .gemini/skills/omk-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "omk-coding", 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 KaimingWan/oh-my-kiro omk-codingInstalls 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 KaimingWan/oh-my-kiro --skill omk-coding -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/KaimingWan/oh-my-kiro.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/omk-coding .github/skills/omk-coding && 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 "omk-coding" agent skill from https://github.com/KaimingWan/oh-my-kiro/tree/main/skills/omk-coding into .github/skills/omk-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "omk-coding", 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 KaimingWan/oh-my-kiro --skill omk-coding -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install KaimingWan/oh-my-kiro omk-coding --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/KaimingWan/oh-my-kiro.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/omk-coding .opencode/skills/omk-coding && 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 "omk-coding" agent skill from https://github.com/KaimingWan/oh-my-kiro/tree/main/skills/omk-coding into .opencode/skills/omk-coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "omk-coding", 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.
omk-codingEnforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification.
Omk Coding is an agent skill from KaimingWan/oh-my-kiro. Enforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification. Trigger when writing code, modifying source files, fixing bugs, refactoring, optimizing code, entering a worktree or submodule, or when user says 'write code', 'implement', 'fix this', 'fix PR', 'add feature', 'add field', 'refactor', 'optimize', 'modify', 'change this', 'update code', 'apply feedback', 'apply review', '改代码', '修复', '加个', '改一下', '优化'. Also trigger when…
Its SKILL.md is about 2.4k 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 Test-driven development, React components and Refactoring. It works with Vue.js and Java. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ba228be. 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:
gitmvnFrom 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.
Omk Coding loads about 2.4k tokens when it runs. Until then it costs about 169 tokens; SKILL.md has 687 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 KaimingWan/oh-my-kiro at commit ba228be, republished under its MIT licence (© KaimingWan). 687 words, ~2,440 tokens.
.claude/skills/omk-coding/SKILL.md (or your agent's skills folder).Writing code without discipline creates debt. This skill enforces quality at the point of creation.
Core principle: Every code change must be minimal, tested, verified, and self-reviewed before claiming done.
Before writing any code in a worktree or submodule:
1. Initialize LSP for semantic analysis:
/code init
2. Get project overview:
generate_codebase_overview
3. Detect language & build system:
- Java → find pom.xml / build.gradle → note test command (mvn test / gradle test)
- TypeScript/JS → find package.json → note test command (npm test / vitest / jest)
- Python → find pyproject.toml / pytest.ini → note test command (pytest)
- Rust → Cargo.toml → cargo test
- Go → go test ./...
4. Run existing tests to establish baseline:
<detected test command>
Record: N tests, M passing, K failingIf LSP init fails: Retry with /code init -f. If still fails, log to plan Errors and continue with grep fallback — but note degraded analysis quality.
This phase is NOT optional. Even for "simple" changes, you MUST complete it before writing any code. Research shows: the most expensive failure mode is code that is "correct in isolation but breaks the surrounding system" (Boris Tane). Agents only explore dependencies 42% of the time when left to decide on their own (CodeCompass). This phase forces the other 58%.
1. goto_definition — navigate to the code you'll change, read it deeply (not skim)
2. find_references — map ALL callers and dependents of the symbols you'll modify
Output: list of files and functions that call/use the target code
3. get_document_symbols — understand the internal structure of files you'll modify
Output: key types, functions, constants in each file
4. Read adjacent code — other files in the same module/package
Look for: naming conventions, error handling patterns, test patterns, shared utilities
5. get_diagnostics — record current state (zero new errors allowed after your change)
6. Synthesize a Codebase Understanding summary (output this explicitly):
Codebase Understanding:
- Module role: [what this module does in the system]
- File structure: [key symbols in the files you'll modify]
- Callers: [who calls the code you'll modify]
- Dependencies: [what the target code depends on]
- Conventions: [code style, naming, error handling patterns]
- Impact scope: [which other files/modules could be affected by your change]
7. Signal completion:
touch /tmp/omk-coding-deep-read-doneIf you cannot answer any field in the Codebase Understanding summary, you haven't read enough code. Go back and read more before proceeding.
Before modifying any file, confirm you completed Phase 0.5 and that your Codebase Understanding covers the target code.
Rules (Iron Rules — no exceptions):
Step 1: Write failing test FIRST
- Test names: methodName_condition_expectedResult
- One behavior per test
- Run test → must FAIL (red)
Step 2: Write minimal implementation
- Solve ONLY what the test requires
- No speculative features (YAGNI)
- No premature abstraction
Step 3: Run test → must PASS (green)
Step 4: Refactor if needed
- Extract only when duplication is real (not imagined)
- Run tests again → still PASS| Rule | Check |
|---|---|
| Single responsibility | Does this change do exactly one thing? |
| Minimal diff | Can any line be removed without breaking the goal? |
| No drive-by fixes | Unrelated improvements go in separate commits |
| No new dependencies | Unless essential and approved |
| Backward compatible | Existing callers unaffected unless explicitly intended |
| Match existing style | Follow the conventions of the surrounding code, not your ideal. If the codebase is 85/100, write 85–90/100 code — don't chase 100 |
| Don't "fix" old code | Existing code works. Don't refactor, restyle, or "improve" code outside your change scope. If you see a real problem, file it separately |
After implementation, before claiming done:
1. Run full test suite (not just new tests):
<project test command>
→ Must show 0 new failures
2. Run linter/compiler:
get_diagnostics on all modified files
→ Must show 0 new errors/warnings
3. Check diff scope:
git diff --stat
→ Every changed file must be intentional
4. Regression check:
- New test passes? → Revert your fix → test must FAIL → restore fix
- This proves the test actually tests your changeIf any modified file is a frontend file (.tsx/.jsx/.vue/.html/.css/.scss), you MUST verify visually:
1. Ensure dev server is running (check with curl or ps)
2. Use agent-browser to screenshot the affected page:
agent-browser open http://localhost:<port>/<path> && agent-browser wait --load networkidle && agent-browser screenshot --annotate
3. Review the screenshot — does it match the expected behavior?
4. If the visual result is wrong, fix and re-verify. Do NOT claim done without visual confirmation.
5. For style/layout issues, use agent-browser snapshot -i to inspect element structureCRITICAL: Never claim a frontend issue is "fixed" based only on code changes. The browser is the source of truth.
Before committing, review your own diff:
1. git diff (staged or unstaged)
2. For each changed file, check:
□ SRP — one reason to change?
□ No dead code introduced
□ Error paths handled (what if this fails?)
□ Boundary conditions (null, empty, zero, max)
□ No hardcoded values — use constants/config
□ Thread safety (if concurrent context)
3. Ask yourself:
- "What breaks if I revert this?"
- "What breaks if input is unexpected?"
- "Would a new team member understand this?"If any check fails: Fix before committing. Don't leave TODOs for "later."
After self-review, explain your changes in natural language before committing:
1. What did I change and why?
2. How do my changes interact with the callers/dependencies identified in Phase 0.5 (Codebase Understanding)?
3. Are there potential side effects on other modules?If you discover a logical contradiction while explaining → go back to Phase 2 and revisit the implementation. The act of explaining often reveals errors that code review misses (Self-Debugging research: explanation outperforms chain-of-thought for error detection).
# Verify one last time
<test command>
# Commit with descriptive message
git add -p # stage intentionally, not git add .
git commit -m "<type>: <what changed and why>"Commit message types: feat, fix, refactor, test, docs, chore
knowledge/reference/java-coding-standards.md when touching .java filesmvn compile -pl <module> -ammvn clean testany unless justifiedconst over let, never varpytest with -v flag for visibilityexcept: — always specify exception typeAlways when:
Skip Phase 2 (TDD) only when:
| Don't | Do Instead |
|---|---|
| Write code then "add tests later" | Test first, always |
git add . | git add -p — stage intentionally |
| Fix + unrelated cleanup in one commit | Separate commits |
| Trust "it should work" | Run and see output |
| Copy-paste without understanding | Read source, then adapt |
| Add abstraction "for future use" | Solve today's problem |
© KaimingWan, MIT. 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/omk-coding of KaimingWan/oh-my-kiro.
Open the folder on GitHubat commit ba228be
Omk Coding 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 |
|---|---|---|---|---|---|---|
| Omk Coding this skillKaimingWan/oh-my-kiro | 107 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Ij Debuggerxpinjection/test-driven-spring-boot | 112 | — | ~6.4k | Automated safety check: Pass | MIT | |
| React Refactor Tournamentragnar-pwninskjold/tech-snacks | 136 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Tsh Writing HooksTheSoftwareHouse/copilot-collections | 284 | — | ~3k | Automated safety check: Pass | MIT | |
| Test Coveragescott-fryxell/brayness | 124 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Tailwindcss Developmentanonaddy/anonaddy | 4.9k | 10 repos | ~865 | Automated safety check: Pass | MIT |
xpinjection/test-driven-spring-boot
Debugger-first runtime root-cause analysis for JVM code in IntelliJ IDEA.
ragnar-pwninskjold/tech-snacks
Review React/Next.js code against the real vercel-react-best-practices skill, backlog the performance findings keyed to actual rule ids + impact tiers, rank the most over-subscribed tiers, then fix…
TheSoftwareHouse/copilot-collections
Custom hook and composable patterns — naming, composition, stable return shapes, lifecycle cleanup, and testing strategies.
scott-fryxell/brayness
Write Vitest specs for Vue 3 JavaScript (Vite Plus, happy-dom, @vue/test-utils) and analyze V8 coverage + Fallow health to prioritize test-first refactors.
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
langflow-ai/langflow
Refactor high-complexity React components in Langflow frontend.
KaimingWan/oh-my-kiro
Multi-level research: built-in knowledge → web search → Tavily deep research API.
KaimingWan/oh-my-kiro
Code and plan review with multi-angle dispatch. An agent skill from KaimingWan/oh-my-kiro.
KaimingWan/oh-my-kiro
Create high-quality, production-ready skills from scratch. An agent skill from KaimingWan/oh-my-kiro.
KaimingWan/oh-my-kiro
Extract and summarize YouTube video content via subtitle extraction.
KaimingWan/oh-my-kiro
Fetch current library/framework documentation via Context7. An agent skill from KaimingWan/oh-my-kiro.
KaimingWan/oh-my-kiro
Systematic debugging: reproduce → hypothesize → verify → fix.
Categories
Enforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification. Omk Coding is an agent skill from KaimingWan/oh-my-kiro. Enforces coding best practices: deep-read before modify, LSP-first navigation, TDD red-green-refactor, minimal changes, self-review, verification.
Omk Coding fits situations like: modifying source files; optimizing code; entering a worktree; user says write code.
Run `npx skills add KaimingWan/oh-my-kiro --skill omk-coding -a claude-code`. Or copy the skill folder (skills/omk-coding in KaimingWan/oh-my-kiro) into .claude/skills/omk-coding in your project. Claude Code loads it when a task matches its description.
Run `npx skills add KaimingWan/oh-my-kiro --skill omk-coding -a codex`. Or copy the skill folder (skills/omk-coding in KaimingWan/oh-my-kiro) into .agents/skills/omk-coding 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 KaimingWan/oh-my-kiro --skill omk-coding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/omk-coding, .gemini/skills/omk-coding, .github/skills/omk-coding and .opencode/skills/omk-coding in your project.
Going by SKILL.md and its folder, Omk Coding needs the command-line tools its instructions call (git and mvn). Our summary lists: Python 3.
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.
Omk Coding is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.8k 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 Omk Coding: Ij Debugger (xpinjection/test-driven-spring-boot, 112 stars), React Refactor Tournament (ragnar-pwninskjold/tech-snacks, 136 stars), Tsh Writing Hooks (TheSoftwareHouse/copilot-collections, 284 stars) and Test Coverage (scott-fryxell/brayness, 124 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
KaimingWan (a GitHub user) maintains it in KaimingWan/oh-my-kiro, which has 107 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on April 2, 2026.
Source: KaimingWan/oh-my-kiro on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.