Agent skill

Minitest Ebt Lua

by kokusenz in 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.

MITAuto-check passedTesting & QA

Install Minitest Ebt Lua

skills CLI
$ npx skills add kokusenz/deltaview.nvim --skill minitest-ebt-lua -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install kokusenz/deltaview.nvim minitest-ebt-lua --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/kokusenz/deltaview.nvim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/minitest-ebt-lua .claude/skills/minitest-ebt-lua && rm -rf skills-src

Use ~/.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/

Facts

Skill name
minitest-ebt-lua
GitHub stars
127
Token cost
~4k tokens
SKILL.md length
659 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

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.

  • Works in 5 steps: Test functions, not features — one… → Isolation — each suite re-mocks… → Mock external dependencies — stub every… → …
  • Asks to write example-based tests
  • SKILL.md covers Core Principles, File Header, Print Capture Utility and Top-Level Set (T), plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Minitest Ebt Lua is an agent skill from 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. Use when the user says things like "add unit tests", "write example tests", "write tests for", "add mini.test tests", "test this function", or "write a test case for".

Its SKILL.md is about 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 Testing & QA, covering Test generation and Unit testing. It works with Lua. The repository describes itself as: inline/unified diff view in neovim with delta highlighting. The licence is MIT.

When your agent uses it

  • Asks to write example-based tests
  • EBT for a Neovim plugin using the MiniTest (mini.test) framework in Lua
  • The user says things like add unit tests
  • Write example tests

Example prompts

  • “add unit tests”
  • “write example tests”
  • “write tests for”
  • “/minitest-ebt-lua”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Test functions, not features — one T['function_name()'] set per function under test.
  2. Isolation — each suite re-mocks everything it needs in its own pre_case hook. Top-level hooks only handle truly global setup (child…
  3. Mock external dependencies — stub every dependency the function under test calls that is not itself under test. This includes other M.*…
  4. Do NOT mock native Neovim API calls that produce real state (buffer/window creation, cursor manipulation) — let the child process execute…
  5. Capture prints — always install the print-capture shim so debug output is visible on failure.

What it can do on your machine

Read from SKILL.md and the folder at commit 3893d56. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are lua).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Minitest Ebt Lua loads about 4k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 659 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from kokusenz/deltaview.nvim at commit 3893d56, republished under its MIT licence (© kokusenz). 659 words, ~3,999 tokens.

Download SKILL.mdSave it as .claude/skills/minitest-ebt-lua/SKILL.md (or your agent's skills folder).
name
minitest-ebt-lua
description
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. Use when the user says things like "add unit tests", "write example tests", "write tests for", "add mini.test tests", "test this function", or "write a test case for".
version
1.0.0

Example-Based Testing with MiniTest for Neovim Plugins

A pattern for writing example-based unit tests for Neovim plugins in Lua using mini.test. Each test targets a single function, is fully isolated (independent mocks per suite), and stubs all external dependencies so that a change to an unrelated function never breaks this test.

Core Principles

  1. Test functions, not features — one T['function_name()'] set per function under test.
  2. Isolation — each suite re-mocks everything it needs in its own pre_case hook. Top-level hooks only handle truly global setup (child restart, core module load).
  3. Mock external dependencies — stub every dependency the function under test calls that is not itself under test. This includes other M.* functions, vim.system, vim.fn.*, vim.api.* side-effectful calls, and plugin modules loaded via package.loaded.
  4. Do NOT mock native Neovim API calls that produce real state (buffer/window creation, cursor manipulation) — let the child process execute those for real.
  5. Capture prints — always install the print-capture shim so debug output is visible on failure.

File Header

Every test file starts with the same three aliases and one child instance:

lua
local new_set = MiniTest.new_set
local eq = MiniTest.expect.equality

local child = MiniTest.new_child_neovim()

Print Capture Utility

Paste this verbatim near the top of every test file, after the header. It is activated per-suite via child.lua(test_logging) inside pre_case and surfaced via post_case = print_test_logging.

lua
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- 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
end

Top-Level Set (T)

T is the root set. Its pre_case restarts the child neovim, mocks every external dependency that all suites share, then loads the module under test. post_case prints captured output. post_once stops the child.

lua
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- setup

local T = new_set({
    hooks = {
        pre_case = function()
            child.restart({ '-u', 'scripts/minimal_init.lua' })
            child.lua([[
                -- Stub plugin modules that the module under test requires.
                -- Use package.loaded to intercept require() before the real module loads.
                package.loaded['myplugin.utils'] = {
                    some_util = function(_) return {} end,
                }
                package.loaded['myplugin.config'] = {
                    options = { some_option = true },
                }

                -- Stub global dependencies (e.g. a C extension exposed as _G.Lib)
                _G.Lib = {
                    parse = { get_data = function(_) return {} end },
                    compute = function(_a, _b, _opts) return nil end,
                }

                -- Stub vim functions that have side effects or require a real terminal
                vim.fn.expand = function(_) return '/fake/path' end
                vim.fn.systemlist = function(_) return {} end
                vim.system = function(_cmd, _opts)
                    return { wait = function() return { code = 0, stdout = '', stderr = '' } end }
                end
            ]])
            child.lua([[M = require('myplugin.module')]])
            child.lua([[_G.fixture = {}]])
            child.lua(test_logging)
        end,
        post_case = print_test_logging,
        post_once = child.stop,
    },
})

Rules for the top-level pre_case:

  • child.restart(...) must come first.
  • Mock via package.loaded before require(...) so the module sees the stubs.
  • Initialize _G.fixture = {} here so each case starts clean.
  • Install test_logging here.

Suite Separator Comments

Use the following comment line to visually separate each suite. Keep it exactly 96 characters wide.

lua
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- function_name() - example based tests

For mixed files (some suites have property tests, others example tests), use the appropriate suffix: - property based tests or - example based tests.


Suite Structure

Each function under test gets its own T['function_name()'] set. The suite's pre_case hook adds only the mocks that this function needs on top of the top-level stubs.

lua
-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- my_function() - example based tests

T['my_function()'] = new_set({
    hooks = {
        pre_case = function()
            child.lua([[
                -- Stub vim functions called by my_function that are not under test
                vim.fn.expand = function(_) return '/fake/file.lua' end
                vim.api.nvim_get_current_buf = function() return 99 end

                -- Stub other M.* functions called by my_function
                M.helper_a = function(_arg) return {} end
                M.helper_b = function() end
            ]])
        end,
    }
})

If the function needs no extra setup, omit the suite-level hooks entirely:

lua
T['my_simple_function()'] = new_set()

Individual Test Cases

Assign each test as T['suite']['description'] = function() ... end. Follow Arrange / Act / Assert:

lua
T['my_function()']['returns expected value for happy path input'] = function()
    -- Arrange: override specific mocks or set up fixture state for this test only
    child.lua([[
        _G.fixture.captured_args = nil
        M.helper_a = function(arg)
            _G.fixture.captured_args = arg
            return { result = 42 }
        end
    ]])

    -- Act + Assert: run the function and check results
    local result = child.lua_get([[(function()
        local ok, val = pcall(M.my_function, 'input_a', 'input_b')
        if not ok then return nil end
        return val
    end)()]])

    local captured = child.lua_get([[_G.fixture.captured_args]])

    eq(result, 42)
    eq(captured, 'input_a')
end

T['my_function()']['returns nil and does not throw on invalid input'] = function()
    local result = child.lua_get([[(function()
        local ok, val = pcall(M.my_function, nil, 'input_b')
        if not ok then return nil end  -- unexpected throw is a bug
        return val
    end)()]])

    eq(result, vim.NIL)
end

Show full SKILL.md (289 more words)Show less

child.lua vs child.lua_get

UseWhen
child.lua(code)Execute code in the child with no return value needed
child.lua(code, {args})Execute code with args passed via ... vararg
child.lua_get(code)Execute and return the result to the host
child.lua_get(code, {args})Execute with args and return result

Pass args via the second argument (serialized via MiniTest RPC), never by string interpolation. Inside the child, receive them via ...:

lua
child.lua([[
    local winnr, cursor = ...
    vim.api.nvim_win_set_cursor(winnr, cursor)
]], { window_handle, { 2, 3 } })

Mocking Strategy

Three layers of mocks
  1. Top-level pre_case — shared stubs for all suites (module-level dependencies, global _G.Lib, vim.system happy path).
  2. Suite-level pre_case — stubs specific to one function (its direct collaborators on M.*, any vim.fn.* it calls).
  3. Inside individual tests — override a single mock to test a specific code path (failure mode, call counting, spy capture).
Mock external dependencies, not internal state
lua
-- Good: mock a collaborator so this test is only about my_function
M.fetch_data = function(_path) return { lines = { 'a', 'b' } } end

-- Good: mock a vim API with side effects not relevant to this test
vim.notify = function() end

-- Bad: mock vim.api.nvim_create_buf — let neovim do this for real
Spy pattern (capture what was called)
lua
child.lua([[
    _G.fixture.keymap_set_args = {}
    vim.keymap.set = function(modes, lhs, rhs, opts)
        _G.fixture.keymap_set_args[lhs] = { modes = modes, lhs = lhs, rhs = rhs, opts = opts }
    end
    M.my_function()
]])

local modes = child.lua_get([[_G.fixture.keymap_set_args['<Esc>'].modes]])
eq(modes, 'n')
Verifying callbacks are called
lua
child.lua([[
    _G.fixture.callback_called = false
    M.get_callback = function()
        return function() _G.fixture.callback_called = true end
    end
    M.my_function()
]])

-- trigger the callback
child.lua([[_G.fixture.keymap_set_args['q'].rhs()]])
local called = child.lua_get([[_G.fixture.callback_called]])
eq(called, true)

_G.fixture Conventions

Use _G.fixture as the namespace for all shared state inside the child:

lua
_G.fixture = {}                          -- reset at top-level pre_case
_G.fixture.bufnr = <number>              -- buffer handles captured inside child.lua
_G.fixture.winnr = <number>              -- window handles captured inside child.lua
_G.fixture.captured_args = <any>         -- spy captures
_G.fixture.some_flag = false             -- boolean sentinels

Do not pass buffer or window handles from the host — integers differ between host and child. Always create buffers inside child.lua and store the result in _G.fixture:

lua
child.lua([[
    local buf = vim.api.nvim_create_buf(true, true)
    vim.api.nvim_buf_set_lines(buf, 0, -1, false, ...)
    vim.api.nvim_set_current_buf(buf)
    _G.fixture.bufnr = buf
    _G.fixture.winnr = vim.api.nvim_get_current_win()
]], { { 'line1', 'line2', 'line3' } })

Asserting nil Returns

child.lua_get maps Lua nil to vim.NIL on the host side:

lua
eq(result, vim.NIL)   -- function returned nil

Complete Example

lua
local 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

-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- setup

local T = new_set({
    hooks = {
        pre_case = function()
            child.restart({ '-u', 'scripts/minimal_init.lua' })
            child.lua([[
                package.loaded['myplugin.utils'] = {
                    read_lines = function(_) return {} end,
                }
                _G.Lib = {
                    compute = function(_s1, _s2, _opts) return nil end,
                }
                vim.system = function(_cmd, _opts)
                    return { wait = function() return { code = 0, stdout = '', stderr = '' } end }
                end
            ]])
            child.lua([[M = require('myplugin.view')]])
            child.lua([[_G.fixture = {}]])
            child.lua(test_logging)
        end,
        post_case = print_test_logging,
        post_once = child.stop,
    },
})

-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- open_buffer() - example based tests

T['open_buffer()'] = new_set({
    hooks = {
        pre_case = function()
            child.lua([[
                vim.fn.expand = function(_) return '/fake/file.lua' end
                vim.api.nvim_get_current_buf = function() return 99 end
                M.load_content = function(_buf, _path) end
                M.setup_keymaps = function(_buf) end
            ]])
        end,
    }
})

T['open_buffer()']['binds escape key to close'] = function()
    child.lua([[
        _G.fixture.keymap_set_args = {}
        vim.keymap.set = function(modes, lhs, rhs, opts)
            _G.fixture.keymap_set_args[lhs] = { modes = modes, rhs = rhs, opts = opts }
        end
        M.open_buffer('HEAD')
    ]])

    local modes = child.lua_get([[_G.fixture.keymap_set_args['<Esc>'].modes]])
    local silent = child.lua_get([[_G.fixture.keymap_set_args['<Esc>'].opts.silent]])
    eq(modes, 'n')
    eq(silent, true)
end

T['open_buffer()']['returns nil when file is not readable'] = function()
    child.lua([[
        vim.fn.filereadable = function(_) return 0 end
    ]])

    local result = child.lua_get([[(function()
        local ok, val = pcall(M.open_buffer, 'HEAD')
        if not ok then return nil end
        return val
    end)()]])

    eq(result, vim.NIL)
end

-- ──────────────────────────────────────────────────────────────────────────────────────────────
-- get_cursor_position() - example based tests

T['get_cursor_position()'] = new_set()

T['get_cursor_position()']['returns winnr and cursor for current window'] = function()
    child.lua([[
        local buf = vim.api.nvim_create_buf(true, true)
        vim.api.nvim_buf_set_lines(buf, 0, -1, false, { 'line1', 'line2' })
        local winnr, cursor = ...
        vim.api.nvim_set_current_win(winnr)
        vim.api.nvim_set_current_buf(buf)
        vim.api.nvim_win_set_cursor(winnr, cursor)
        _G.fixture.winnr = winnr
    ]], { 1000, { 2, 3 } })

    child.lua([[
        local pos = M.get_cursor_position()
        _G.fixture.result = pos
    ]])

    local result = child.lua_get([[_G.fixture.result]])
    eq(result.winnr, 1000)
    eq(result.cursor, { 2, 3 })
end

return T

Checklist Before Submitting Tests

  • Every suite has its own pre_case that mocks all direct collaborators of the function under test
  • No suite's setup leaks into another suite (top-level pre_case does child.restart which resets all state)
  • Print capture (test_logging + print_test_logging) is installed
  • Buffer/window handles are created inside child.lua and stored in _G.fixture, never passed from host
  • nil return values are compared with vim.NIL, not nil
  • Failure paths use pcall and assert vim.NIL (not eq(ok, false) which isn't idiomatic here)
  • Suite separator comments use the full-width ── line
  • Each test name describes the behaviour being verified, not the implementation detail

© kokusenz, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/minitest-ebt-lua of kokusenz/deltaview.nvim.

Open the folder on GitHubat commit 3893d56

Compare with similar skills

Minitest Ebt 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.

Minitest Ebt Lua compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Minitest Ebt Lua this skillkokusenz/deltaview.nvim127—~4kAutomated safety check: PassMIT
Adk Verify Snippetsgoogle/adk-python22k—~1.4kAutomated safety check: PassApache-2.0
Hermetic Python Unit TestsdimensionalOS/dimos4.6k—~1.4kAutomated safety check: PassCustom licence
OpenROAD Module Test AdderThe-OpenROAD-Project/OpenROAD3.2k—~1.8kAutomated safety check: PassBSD-3-Clause
Concept Page Test Writerleonardomso/33-js-concepts67k—~5.5kAutomated safety check: PassMIT
ScottPlot Test RunnerScottPlot/ScottPlot6.8k—~308Automated safety check: PassMIT

Similar skills

  • Adk Verify Snippets

    google/adk-python

    Official

    Checks that every Python code block in a Markdown file actually compiles and runs, by extracting each block to a temporary file, executing it in an isolated subprocess, and writing a pass/fail…

    22k GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Hermetic Python Unit Tests

    dimensionalOS/dimos

    Rules for writing, fixing and reviewing pytest unit tests that are hermetic: behavior-focused, deterministic, isolated and cheap to run.

    4.6k GitHub stars~1.4k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • OpenROAD Module Test Adder

    The-OpenROAD-Project/OpenROAD

    Adds integration or unit tests to an OpenROAD module: writes the Tcl test, generates golden files and registers it in both CMake and Bazel.

    3.2k GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Concept Page Test Writer

    leonardomso/33-js-concepts

    Generates Vitest tests for every runnable code example on a JavaScript concept documentation page, following a four-phase extraction and conversion process.

    67k GitHub stars~5.5k tokensUpdated 28 days ago
    Testing & QAAuto-check passed
  • ScottPlot Test Runner

    ScottPlot/ScottPlot

    Run or add ScottPlot 5 tests. Use for unit-test and cookbook-test work; unless explicitly asked otherwise, restrict manual test execution to the Unit Tests…

    6.8k GitHub stars~308 tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Testing iOS Code

    bitwarden/ios

    Official

    Write tests, add test coverage, unit test, or add missing tests for Bitwarden iOS.

    695 GitHub stars~1.8k tokensUpdated yesterday
    Testing & QAAuto-check passed

More from kokusenz/deltaview.nvim

  • Minitest Integration Lua

    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.

    127 GitHub stars~4.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Minitest Pbt 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.

    127 GitHub stars~2.6k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Categories

Questions about Minitest Ebt Lua

What does Minitest Ebt Lua do?

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. nvim.test) framework in Lua.

When should I use Minitest Ebt Lua?

Minitest Ebt Lua fits situations like: asks to write example-based tests; EBT for a Neovim plugin using the MiniTest (mini.test) framework in Lua; the user says things like add unit tests; write example tests.

How do I install Minitest Ebt Lua in Claude Code?

Run `npx skills add kokusenz/deltaview.nvim --skill minitest-ebt-lua -a claude-code`. Or copy the skill folder (.claude/skills/minitest-ebt-lua in kokusenz/deltaview.nvim) into .claude/skills/minitest-ebt-lua in your project. Claude Code loads it when a task matches its description.

How do I install Minitest Ebt Lua in Codex?

Run `npx skills add kokusenz/deltaview.nvim --skill minitest-ebt-lua -a codex`. Or copy the skill folder (.claude/skills/minitest-ebt-lua in kokusenz/deltaview.nvim) into .agents/skills/minitest-ebt-lua in your project. Codex loads it when a task matches its description.

Can I use Minitest Ebt Lua in Cursor, Gemini CLI or GitHub Copilot?

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-ebt-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-ebt-lua, .gemini/skills/minitest-ebt-lua, .github/skills/minitest-ebt-lua and .opencode/skills/minitest-ebt-lua in your project.

What does Minitest Ebt Lua need to run?

SKILL.md names no scripts, command-line tools or credentials: Minitest Ebt Lua is instructions for the agent only.

Does Minitest Ebt Lua access the network?

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.

Is Minitest Ebt Lua safe to install?

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.

What licence does Minitest Ebt Lua use?

Minitest Ebt Lua is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Minitest Ebt Lua use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Minitest Ebt Lua?

Skills that share tags, products or a category with Minitest Ebt Lua: Adk Verify Snippets (google/adk-python, 22k stars), Hermetic Python Unit Tests (dimensionalOS/dimos, 4.6k stars), OpenROAD Module Test Adder (The-OpenROAD-Project/OpenROAD, 3.2k stars) and Concept Page Test Writer (leonardomso/33-js-concepts, 67k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Minitest Ebt Lua?

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.