Borrowing it
Nothing to install: this file belongs to carlos-algms/agentic.nvim. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/carlos-algms/agentic.nvim/main/.agents/skills/agentic-ui-message-writer/SKILL.mdgit clone --depth 1 https://github.com/carlos-algms/agentic.nvimWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/carlos-algms/agentic.nvim/agentic-ui-message-writer)<a href="https://agentmods.dev/skills/carlos-algms/agentic.nvim/agentic-ui-message-writer"><img src="https://agentmods.dev/badge/skills/carlos-algms/agentic.nvim/agentic-ui-message-writer.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.01135 |
| Opus 5 | $0.00023 | $0.00567 |
| Sonnet 5 | $0.00009 | $0.00227 |
| Haiku 4.5 | $0.00005 | $0.00113 |
Grade A, and why
agentic-ui-message-writer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 131 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Agentic UI Message Writer
This skill covers chat-buffer content state. For widget windows, layout,
fallback windows, hidden floats, and buffer redirection, read
lua/agentic/ui/AGENTS.md first.
Hard rules
wrapstays on.- Cursor positioning is
G0zb, notG$zb. - Cursor sits on the trailing
""line below the last block, never inside a tool-call block. scrolloff = 4on chat keeps room for spinner virt_lines above the cursor.- Auto-scroll captures before mutation and applies after mutation in the same
tick. No
vim.schedulebetween them. - Tool-call body updates replace only the body between stable anchor pads.
- Manual folds only. Never
foldexpr; read ADR 0001 before proposing foldexpr workarounds. tracker.rendered_button_countis render-path-only state.
Tool-call layout
row 0 header rewritten on every update, NOT folded
row 1 "" top_pad fold start anchor
row 2..M-1 body replaced on every update
row M "" bottom_pad fold end anchor
row M+1..M+K permission K rows: N button rows + N empty spacer rows
row M+K+1 status row real text, outside the fold
K = 2 * Nfor N permission options.- Permission rows are outside the fold.
MessageWriter:_render_permission_sectionowns all permission rows plus the status row.- Pads are unconditional.
- Header is rewritten because providers send placeholder titles before final titles.
Permission rows
- Buttons live one-per-row between
bottom_padand the status row. - Empty spacer rows sit between buttons, with one trailing spacer above the status row.
- Digit keymaps are bound only while a block is focused.
- Cycle keys and
<CR>are row-gated to button rows or the focused block's status row. - Spacer rows fall through to default motion.
- Focus transition repaints old and new status rows.
Regression anchors:
permission_manager.test.lua::digit keymap lifecycle::"rebinds digit keymaps with new mapping after focus transition"permission_manager.test.lua::bracket cycle::"focus transition triggers exactly 2 status-row repaints"
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 131 lines · 46 tokens per session scan A a7970441c865
agentic-ui-message-writer is a skill published in the GitHub repository carlos-algms/agentic.nvim (613 stars, last pushed 14d ago), licensed MIT. It adds 46 tokens to every session and 1,135 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
verify-behavior
Verify or reproduce visible product behavior by driving the real UI with pi-computer-use's checked tools, requiring verified expect postconditions and durable state evidence for meaningful UI flows. Use when triage needs visual reproduction, implementation needs behavioral proof, review needs interactive confirmation…
add
Categorize new Neovim plugins and insert them into the correct markdown category files.
write-teach-commit
Draft teach: commit messages for .github/workflows/improve-add-skill.yml. Use when preparing or reviewing a correction commit that should trigger the Improve Add Skill workflow from $add categorization feedback, including moved plugin entries, removed or excluded plugins, changed .reason.md categories, or…
improve-add-skill
Improve the repo-local add skill from reviewed Neovim plugin categorization corrections. Use when a correction commit, PR review result, diff, or artifact such as a teach: commit shows that $add placed, excluded, or reasoned about plugins incorrectly and the reusable lesson should be folded back into…
pyqt-threading
PyQt/PySide6 threading and concurrency - QThread, QThreadPool, QTimer, thread safety, concurrent patterns.
as3-fla-migration
Analyze, extract, and migrate Flash/ActionScript game projects (.fla, .swf, .as files) to modern web technologies (JavaScript, TypeScript, HTML5 Canvas, Haxe/OpenFL). Use this skill whenever the user mentions Flash, ActionScript, AS2, AS3, FLA, SWF, decompiling Flash games, extracting assets from Flash files…