99 Agent Skills & AI Rules

GitHub

Neovim AI agent done right

4,753 stars Lua Lua 4 files ยท ~2,880 tokens
RAW Rules
6 Discovered Rules โ€ข ~10,027 Estimated Tokens
Quick:
Loading skill content...

AI Agent Protocol & Instructions

AGENTS.md root-instruction ~375 tokens
Raw
* always use neovim provided functions
* this is not a standard lua project.  package resolution and all things related to lua and std should be ignored in favor of neovim and its utitlites.

## Testing
* make lua_test
* make pr_ready

## e2e / Integration style testing
every testing file should have roughly the same setup.

```lua
-- In this example we are testing the visual function for 99 requests
-- test utils has utilities to setup buffers and request context and
-- test providers that we can control when to resolve
-- test utils also has functions to schedule syncronously, very powerful
local _99 = require("99")
local test_utils = require("99.test.test_utils")
local visual_fn = require("99.ops.over-range")
-- ... imports that need to be tested

describe("<name of test group>", function()

    it("specific test condition", function()
        -- we setup the world with test provider, context, and state
        local p, buffer, range = setup(content, 2, 1, 2, 23)
        local state = _99.__get_state()
        local context = Prompt.visual(state)

        -- now this test is simple, its just proving that we keep track
        -- of inflight requests.
        --
        -- all tests should have simple conditions we are testing for
        -- and the logic should attempt to be as simple as possible.
    eq(0, state:active_request_count())
      visual_fn(context, {
        additional_prompt = "test prompt",
      })
    eq(1, state:active_request_count())
    p:resolve("success", "    return 'implemented!'")
    test_utils.next_frame()
    eq(0, state:active_request_count())

    end)
end)
```