OpenHarness End-to-End Evals
HKUDS/OpenHarness
Validates OpenHarness features by running real multi-turn agent loops with live LLM calls against an unfamiliar codebase, checking actual tool execution.
This skill should be used when the user asks to write integration tests for a Neovim plugin using the MiniTest (mini.test) framework in Lua.
$ npx skills add kokusenz/deltaview.nvim --skill minitest-integration-lua -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install kokusenz/deltaview.nvim minitest-integration-lua --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/kokusenz/deltaview.nvim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/minitest-integration-lua .claude/skills/minitest-integration-lua && 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 "minitest-integration-lua" agent skill from https://github.com/kokusenz/deltaview.nvim/tree/main/.claude/skills/minitest-integration-lua into .claude/skills/minitest-integration-lua/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minitest-integration-lua", 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/kokusenz/deltaview.nvim/tree/main/.claude/skills/minitest-integration-luaType 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 kokusenz/deltaview.nvim --skill minitest-integration-lua -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install kokusenz/deltaview.nvim minitest-integration-lua --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kokusenz/deltaview.nvim.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/minitest-integration-lua .agents/skills/minitest-integration-lua && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "minitest-integration-lua" agent skill from https://github.com/kokusenz/deltaview.nvim/tree/main/.claude/skills/minitest-integration-lua into .agents/skills/minitest-integration-lua/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minitest-integration-lua", 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 kokusenz/deltaview.nvim --skill minitest-integration-lua -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install kokusenz/deltaview.nvim minitest-integration-lua --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kokusenz/deltaview.nvim.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/minitest-integration-lua .cursor/skills/minitest-integration-lua && 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 "minitest-integration-lua" agent skill from https://github.com/kokusenz/deltaview.nvim/tree/main/.claude/skills/minitest-integration-lua into .cursor/skills/minitest-integration-lua/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minitest-integration-lua", 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/kokusenz/deltaview.nvim.git --path .claude/skills/minitest-integration-lua--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 kokusenz/deltaview.nvim --skill minitest-integration-lua -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install kokusenz/deltaview.nvim minitest-integration-lua --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kokusenz/deltaview.nvim.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/minitest-integration-lua .gemini/skills/minitest-integration-lua && 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 "minitest-integration-lua" agent skill from https://github.com/kokusenz/deltaview.nvim/tree/main/.claude/skills/minitest-integration-lua into .gemini/skills/minitest-integration-lua/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minitest-integration-lua", 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 kokusenz/deltaview.nvim minitest-integration-luaInstalls 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 kokusenz/deltaview.nvim --skill minitest-integration-lua -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/kokusenz/deltaview.nvim.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/minitest-integration-lua .github/skills/minitest-integration-lua && 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 "minitest-integration-lua" agent skill from https://github.com/kokusenz/deltaview.nvim/tree/main/.claude/skills/minitest-integration-lua into .github/skills/minitest-integration-lua/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minitest-integration-lua", 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 kokusenz/deltaview.nvim --skill minitest-integration-lua -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install kokusenz/deltaview.nvim minitest-integration-lua --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/kokusenz/deltaview.nvim.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/minitest-integration-lua .opencode/skills/minitest-integration-lua && 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 "minitest-integration-lua" agent skill from https://github.com/kokusenz/deltaview.nvim/tree/main/.claude/skills/minitest-integration-lua into .opencode/skills/minitest-integration-lua/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "minitest-integration-lua", 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.
minitest-integration-luaThis skill should be used when the user asks to write integration tests for a Neovim plugin using the MiniTest (mini.test) framework in Lua.
Minitest Integration Lua is an agent skill from kokusenz/deltaview.nvim. This skill should be used when the user asks to write integration tests for a Neovim plugin using the MiniTest (mini.test) framework in Lua. Use when the user says things like "add integration tests", "write an integration test for", "test against the real dependency", "end-to-end test", "integration test with fzf/telescope/etc", or "test the full flow".
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.
It sits in Testing & QA, covering Integration testing. It works with Lua and Git. The repository describes itself as: inline/unified diff view in neovim with delta highlighting. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3893d56. 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:
makeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom 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.
Minitest Integration Lua loads about 4.5k tokens when it runs. Until then it costs about 95 tokens; SKILL.md has 839 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 kokusenz/deltaview.nvim at commit 3893d56, republished under its MIT licence (© kokusenz). 839 words, ~4,527 tokens.
.claude/skills/minitest-integration-lua/SKILL.md (or your agent's skills folder).A pattern for writing integration tests for Neovim plugins in Lua using mini.test. Integration tests exercise the full stack with real dependencies — no mocks unless a specific non-happy-path case demands one. They test observable outcomes (buffer state, window layout, keymaps bound, commands that work) rather than internal implementation details.
runtimepath; let the plugin run against them as it would in production.T['FeatureName integration'] set per user-visible feature or command, not per internal function.child.lua using vim.fn.tempname(). Never rely on the test runner's working directory having the right git state.local new_set = MiniTest.new_set
local eq = MiniTest.expect.equality
local child = MiniTest.new_child_neovim()Same shim as unit tests — paste verbatim near the top:
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- Utility
-- usage: add the following to a pre_case hook
-- child.lua(test_logging)
local test_logging = [[
_G.test_logs = {}
_G.captured_prints = {}
local original_print = print
print = function(...)
local args = {...}
local msg = table.concat(vim.tbl_map(tostring, args), ' ')
table.insert(_G.captured_prints, msg)
original_print(...) -- Still call original for child's output
end
]]
-- usage: add the following to the new_set
-- post_case = print_test_logging
local print_test_logging = function()
local captured_prints = child.lua_get('_G.captured_prints')
if captured_prints and #captured_prints > 0 then
print('\n=== Child Neovim Print Statements ===')
for i, msg in ipairs(captured_prints) do
print(string.format('[%d] %s', i, msg))
end
print('=== End Print Statements ===\n')
end
endIntegration tests have a simpler top-level setup than unit tests: restart child, load the plugin (no mocks), install logging. No package.loaded stubs here.
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- Test suite
local T = new_set({
hooks = {
pre_case = function()
child.restart({ '-u', 'scripts/minimal_init.lua' })
child.lua([[M = require('myplugin')]])
child.lua(test_logging)
end,
post_case = print_test_logging,
post_once = child.stop,
},
})Key difference from unit tests: no child.lua([[package.loaded[...] = ...]]) here. The minimal_init.lua already adds real deps to rtp.
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- `:CommandName` integrationUse the full-width ── banner. Label each suite by the user-visible command or feature it exercises.
Integration tests that touch git need a real, isolated git repo. Build one inside a Lua string that is executed with child.lua(...). Store the pattern as a local variable so multiple tests can reuse it.
local setup_tmpdir_git_repo = [[
local tmpdir = vim.fn.tempname()
vim.fn.mkdir(tmpdir, 'p')
vim.fn.system('git -C ' .. tmpdir .. ' init')
vim.fn.system('git -C ' .. tmpdir .. ' config user.email "test@test.com"')
vim.fn.system('git -C ' .. tmpdir .. ' config user.name "Test"')
local f = io.open(tmpdir .. '/test.lua', 'w')
f:write('local x = 1\nlocal y = 2\n')
f:close()
vim.fn.system('git -C ' .. tmpdir .. ' add test.lua')
vim.fn.system('git -C ' .. tmpdir .. ' commit -m "initial"')
-- Make a working-tree change
local f2 = io.open(tmpdir .. '/test.lua', 'w')
f2:write('local x = 1\nlocal y = 99\n')
f2:close()
vim.cmd('cd ' .. tmpdir)
vim.cmd('edit ' .. tmpdir .. '/test.lua')
]]Pass n via the vararg ... so the same fixture can set up repos of different sizes:
local setup_tmpdir_git_repo_n_files = [[
local n = ...
local tmpdir = vim.fn.tempname()
vim.fn.mkdir(tmpdir, 'p')
vim.fn.system('git -C ' .. tmpdir .. ' init')
vim.fn.system('git -C ' .. tmpdir .. ' config user.email "test@test.com"')
vim.fn.system('git -C ' .. tmpdir .. ' config user.name "Test"')
for i = 1, n do
local fname = 'file' .. i .. '.lua'
local f = io.open(tmpdir .. '/' .. fname, 'w')
f:write('local x = ' .. i .. '\n')
f:close()
vim.fn.system('git -C ' .. tmpdir .. ' add ' .. fname)
end
vim.fn.system('git -C ' .. tmpdir .. ' commit -m "initial"')
for i = 1, n do
local fname = 'file' .. i .. '.lua'
local f = io.open(tmpdir .. '/' .. fname, 'w')
f:write('local x = ' .. (i * 10) .. '\n')
f:close()
end
vim.cmd('cd ' .. tmpdir)
]]
-- Usage: child.lua(setup_tmpdir_git_repo_n_files, { 3 })When an integration test targets a specific real-world failure mode, build the exact before/after file content inside the fixture string:
local setup_tmpdir_specific_scenario = [[
local tmpdir = vim.fn.tempname()
vim.fn.mkdir(tmpdir, 'p')
vim.fn.system('git -C ' .. tmpdir .. ' init')
vim.fn.system('git -C ' .. tmpdir .. ' config user.email "test@test.com"')
vim.fn.system('git -C ' .. tmpdir .. ' config user.name "Test"')
local before_lines = {
'local function foo()',
' return 1',
'end',
}
local f = io.open(tmpdir .. '/mod.lua', 'w')
f:write(table.concat(before_lines, '\n') .. '\n')
f:close()
vim.fn.system('git -C ' .. tmpdir .. ' add mod.lua')
vim.fn.system('git -C ' .. tmpdir .. ' commit -m "initial"')
local after_lines = {
'local function foo()',
' return 42', -- changed line
'end',
'',
'local function bar() end', -- added function
}
local f2 = io.open(tmpdir .. '/mod.lua', 'w')
f2:write(table.concat(after_lines, '\n') .. '\n')
f2:close()
vim.cmd('cd ' .. tmpdir)
vim.cmd('edit ' .. tmpdir .. '/mod.lua')
]]Fixture design rules:
user.email and user.name — git refuses to commit without them.vim.cmd('cd ' .. tmpdir) so the plugin's cwd-relative git calls resolve correctly.vim.cmd('edit ...') if the plugin needs a current buffer.io.open + f:write + f:close for file creation — vim.fn.writefile also works.-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- `:MyCommand` integration
T['MyCommand integration'] = new_set({
hooks = {
pre_case = function()
child.lua(setup_tmpdir_git_repo) -- shared fixture for all cases in this suite
end,
},
})
T['MyCommand integration']['happy path: creates buffer with expected state'] = function()
child.cmd('MyCommand HEAD')
local has_data = child.lua_get('vim.b[vim.api.nvim_get_current_buf()].my_data ~= nil')
local buf_on_window = child.lua_get('vim.api.nvim_win_get_buf(0) == vim.api.nvim_get_current_buf()')
local name = child.lua_get('vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf())')
eq(has_data, true)
eq(buf_on_window, true)
eq(name:find('HEAD', 1, true) ~= nil, true)
eq(name:find('test.lua', 1, true) ~= nil, true)
endWhat to assert in integration tests:
vim.b[buf].my_data ~= nil)nvim_win_get_buf)What NOT to assert:
When the plugin has configuration that changes the code path taken (e.g. a threshold that switches between two pickers), set the config before the command and assert the observable difference:
T['MyCommand integration']['picker A path: opens terminal when above threshold'] = function()
child.lua([[M.setup({ picker_threshold = 6 })]])
child.lua(setup_tmpdir_git_repo_n_files, { 7 }) -- 7 files > threshold of 6
child.cmd('MyCommand HEAD')
local has_terminal = child.lua_get([[
(function()
for _, buf in ipairs(vim.api.nvim_list_bufs()) do
if vim.bo[buf].buftype == 'terminal' then return true end
end
return false
end)()
]])
eq(has_terminal, true)
end
T['MyCommand integration']['picker B path: quickselect when below threshold'] = function()
child.lua([[M.setup({ picker_threshold = 6 })]])
child.lua(setup_tmpdir_git_repo_n_files, { 3 }) -- 3 files < threshold of 6
child.cmd('MyCommand HEAD')
child.type_keys('<CR>')
local has_data = child.lua_get('vim.b[vim.api.nvim_get_current_buf()].my_data ~= nil')
eq(has_data, true)
endInline mocks in integration tests are the exception, not the rule. Use them only to:
When you do mock, apply the mock inside the individual test, not in a suite-level hook:
T['MyCommand integration']['failure path: notify called when dependency returns error'] = function()
child.lua([[
_G.fixture.notify_called = false
vim.notify = function(_msg, _level)
_G.fixture.notify_called = true
end
-- Force the failure by making the dependency return an error code
vim.system = function(_cmd, _opts)
return { wait = function() return { code = 128, stdout = '', stderr = 'fatal' } end }
end
]])
child.cmd('MyCommand HEAD')
local notify_called = child.lua_get('_G.fixture.notify_called')
eq(notify_called, true)
endWhen the plugin integrates with a new Neovim plugin (e.g. a picker, a UI library), follow these steps:
Makefile — clone the dep into deps/In the setup and setup-silent targets, add an entry for the new dependency alongside existing ones:
# setup target (verbose)
@if [ ! -d "deps/newdep" ]; then \
echo "Installing newdep for integration tests..."; \
git clone --filter=blob:none https://github.com/author/newdep deps/newdep; \
else \
echo "newdep already installed"; \
fi
# setup-silent target (quiet)
@[ -d "deps/newdep" ] || git clone -q --filter=blob:none https://github.com/author/newdep deps/newdepUse --filter=blob:none on both to avoid downloading full history.
scripts/minimal_init.lua — put it on runtimepath-- newdep
vim.cmd('set rtp+=deps/newdep')Add it after the existing rtp lines, before require('mini.test').setup(). The order matters if dependencies have their own dependencies — put prerequisites first.
Pattern for minimal_init.lua:
-- Add current directory to 'runtimepath' to be able to use 'lua' files
vim.cmd([[let &rtp.=','.getcwd()]])
-- Set up 'mini.test' only when calling headless Neovim (like with `make test`)
if #vim.api.nvim_list_uis() == 0 then
vim.cmd('set rtp+=deps/mini.test')
vim.cmd('set rtp+=deps/existing-dep-1')
vim.cmd('set rtp+=deps/existing-dep-2')
vim.cmd('set rtp+=deps/newdep') -- add here
require('mini.test').setup()
endCreate a new suite in the integration test file. The dependency is now available in the child neovim because minimal_init.lua (loaded via child.restart({ '-u', 'scripts/minimal_init.lua' })) puts it on the rtp:
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- `:MyCommand` with newdep integration
T['MyCommand newdep integration'] = new_set({
hooks = {
pre_case = function()
child.lua(setup_tmpdir_git_repo)
end,
},
})
T['MyCommand newdep integration']['happy path: newdep picker opens'] = function()
-- configure the plugin to use newdep
child.lua([[M.setup({ picker = 'newdep' })]])
child.cmd('MyCommand HEAD')
-- assert something observable about the newdep UI
local picker_open = child.lua_get([[require('newdep').is_open()]])
eq(picker_open, true)
endmake clean && make setup # re-clone deps including new one
make test # full suite
make test-file FILE=tests/myplugin/test_integrations.lua # just integration testslocal new_set = MiniTest.new_set
local eq = MiniTest.expect.equality
local child = MiniTest.new_child_neovim()
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- Utility
local test_logging = [[
_G.test_logs = {}
_G.captured_prints = {}
local original_print = print
print = function(...)
local args = {...}
local msg = table.concat(vim.tbl_map(tostring, args), ' ')
table.insert(_G.captured_prints, msg)
original_print(...)
end
]]
local print_test_logging = function()
local captured_prints = child.lua_get('_G.captured_prints')
if captured_prints and #captured_prints > 0 then
print('\n=== Child Neovim Print Statements ===')
for i, msg in ipairs(captured_prints) do
print(string.format('[%d] %s', i, msg))
end
print('=== End Print Statements ===\n')
end
end
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- Test suite
local T = new_set({
hooks = {
pre_case = function()
child.restart({ '-u', 'scripts/minimal_init.lua' })
child.lua([[M = require('myplugin')]])
child.lua(test_logging)
end,
post_case = print_test_logging,
post_once = child.stop,
},
})
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- `:DiffView` integration
local setup_tmpdir_git_repo = [[
local tmpdir = vim.fn.tempname()
vim.fn.mkdir(tmpdir, 'p')
vim.fn.system('git -C ' .. tmpdir .. ' init')
vim.fn.system('git -C ' .. tmpdir .. ' config user.email "test@test.com"')
vim.fn.system('git -C ' .. tmpdir .. ' config user.name "Test"')
local f = io.open(tmpdir .. '/test.lua', 'w')
f:write('local x = 1\nlocal y = 2\n')
f:close()
vim.fn.system('git -C ' .. tmpdir .. ' add test.lua')
vim.fn.system('git -C ' .. tmpdir .. ' commit -m "initial"')
local f2 = io.open(tmpdir .. '/test.lua', 'w')
f2:write('local x = 1\nlocal y = 99\n')
f2:close()
vim.cmd('cd ' .. tmpdir)
vim.cmd('edit ' .. tmpdir .. '/test.lua')
]]
T['DiffView integration'] = new_set({
hooks = {
pre_case = function()
child.lua(setup_tmpdir_git_repo)
end,
},
})
T['DiffView integration']['happy path: creates diff buffer with data and correct name'] = function()
child.cmd('DiffView HEAD')
local has_data = child.lua_get('vim.b[vim.api.nvim_get_current_buf()].diff_data ~= nil')
local buf_on_window = child.lua_get('vim.api.nvim_win_get_buf(0) == vim.api.nvim_get_current_buf()')
local name = child.lua_get('vim.api.nvim_buf_get_name(vim.api.nvim_get_current_buf())')
eq(has_data, true)
eq(buf_on_window, true)
eq(name:find('HEAD', 1, true) ~= nil, true)
eq(name:find('test.lua', 1, true) ~= nil, true)
end
return Tuser.email and user.namevim.cmd('cd ' .. tmpdir) to set cwdvim.cmd('edit ...') when the plugin needs a current buffersetup and setup-silent Makefile targets with --filter=blob:nonescripts/minimal_init.lua inside the if #vim.api.nvim_list_uis() == 0 then blocktest_logging + print_test_logging) is installed── line'CommandName integration'© kokusenz, 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 .claude/skills/minitest-integration-lua of kokusenz/deltaview.nvim.
Open the folder on GitHubat commit 3893d56
Minitest Integration Lua 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 |
|---|---|---|---|---|---|---|
| Minitest Integration Lua this skillkokusenz/deltaview.nvim | 127 | — | ~4.5k | Automated safety check: Pass | MIT | |
| OpenHarness End-to-End EvalsHKUDS/OpenHarness | 16k | 1 repos | ~2.1k | Automated safety check: Notes | MIT | |
| Fly E2E Testcmpnd-ai/dspy-cli | 137 | — | ~2.3k | Automated safety check: Notes | MIT | |
| Reprovaadin/flow-components | 129 | — | ~1.3k | Automated safety check: Pass | None | |
| Git Facade Test Conventionsruby-git/ruby-git | 1.8k | — | ~4.2k | Automated safety check: Pass | MIT | |
| Workflow Regression Testspurefunctor/purescript-iris | 117 | — | ~1.8k | Automated safety check: Pass | Custom licence |
HKUDS/OpenHarness
Validates OpenHarness features by running real multi-turn agent loops with live LLM calls against an unfamiliar codebase, checking actual tool execution.
cmpnd-ai/dspy-cli
Deploy and test dspy-cli on Fly.io using local changes via temp git branch.
vaadin/flow-components
Reproduce a Vaadin Flow component bug from a GitHub issue in vaadin/flow-components or a component-specific issue in vaadin/flow.
ruby-git/ruby-git
Conventions for writing and reviewing unit and integration tests of Git::Repository facade methods in the ruby-git project, covering setup, cases, grouping and scope.
purefunctor/purescript-iris
Workflow for producing auditable Git or jj history for a known compiler bug fix.
ruby-git/ruby-git
Conventions for writing and reviewing unit and integration tests for Git::Commands:: classes.
kokusenz/deltaview.nvim
This skill should be used when the user asks to write example-based tests, unit tests, or EBT for a Neovim plugin using the MiniTest (mini.test) framework in Lua.
kokusenz/deltaview.nvim
This skill should be used when the user asks to write property-based tests, PBT, or pseudo property-based tests for a Neovim plugin using the MiniTest (mini.test) framework in Lua.
Categories
This skill should be used when the user asks to write integration tests for a Neovim plugin using the MiniTest (mini.test) framework in Lua. nvim.test) framework in Lua.
Minitest Integration Lua fits situations like: asks to write integration tests for a Neovim plugin using the MiniTest (mini.test) framework in Lua; the user says things like add integration tests; write an integration test for; test against the real dependency.
Run `npx skills add kokusenz/deltaview.nvim --skill minitest-integration-lua -a claude-code`. Or copy the skill folder (.claude/skills/minitest-integration-lua in kokusenz/deltaview.nvim) into .claude/skills/minitest-integration-lua in your project. Claude Code loads it when a task matches its description.
Run `npx skills add kokusenz/deltaview.nvim --skill minitest-integration-lua -a codex`. Or copy the skill folder (.claude/skills/minitest-integration-lua in kokusenz/deltaview.nvim) into .agents/skills/minitest-integration-lua 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 kokusenz/deltaview.nvim --skill minitest-integration-lua -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/minitest-integration-lua, .gemini/skills/minitest-integration-lua, .github/skills/minitest-integration-lua and .opencode/skills/minitest-integration-lua in your project.
Going by SKILL.md and its folder, Minitest Integration Lua needs the command-line tools its instructions call (make).
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. 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.
Minitest Integration Lua is published under the MIT licence (the repository's licence). 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 Minitest Integration Lua: OpenHarness End-to-End Evals (HKUDS/OpenHarness, 16k stars), Fly E2E Test (cmpnd-ai/dspy-cli, 137 stars), Repro (vaadin/flow-components, 129 stars) and Git Facade Test Conventions (ruby-git/ruby-git, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
kokusenz (a GitHub user) maintains it in kokusenz/deltaview.nvim, which has 127 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on August 12, 2026.
Source: kokusenz/deltaview.nvim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.