Pandoc DOCX Template
Achuan-2/pandoc_docx_template
A skill your agent uses when converting Markdown to Word DOCX or DOCX back to Markdown with Pandoc, especially when the output should use the bundled Chinese Word reference templates, heading…
Rules for ChatWidget window lifecycle. An agent skill from carlos-algms/agentic.nvim.
$ npx skills add carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install carlos-algms/agentic.nvim agentic-ui-widget-lifecycle --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/carlos-algms/agentic.nvim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/agentic-ui-widget-lifecycle .claude/skills/agentic-ui-widget-lifecycle && 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 "agentic-ui-widget-lifecycle" agent skill from https://github.com/carlos-algms/agentic.nvim/tree/main/.agents/skills/agentic-ui-widget-lifecycle into .claude/skills/agentic-ui-widget-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentic-ui-widget-lifecycle", 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/carlos-algms/agentic.nvim/tree/main/.agents/skills/agentic-ui-widget-lifecycleType 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 carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install carlos-algms/agentic.nvim agentic-ui-widget-lifecycle --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carlos-algms/agentic.nvim.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/agentic-ui-widget-lifecycle .agents/skills/agentic-ui-widget-lifecycle && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agentic-ui-widget-lifecycle" agent skill from https://github.com/carlos-algms/agentic.nvim/tree/main/.agents/skills/agentic-ui-widget-lifecycle into .agents/skills/agentic-ui-widget-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentic-ui-widget-lifecycle", 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 carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install carlos-algms/agentic.nvim agentic-ui-widget-lifecycle --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carlos-algms/agentic.nvim.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/agentic-ui-widget-lifecycle .cursor/skills/agentic-ui-widget-lifecycle && 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 "agentic-ui-widget-lifecycle" agent skill from https://github.com/carlos-algms/agentic.nvim/tree/main/.agents/skills/agentic-ui-widget-lifecycle into .cursor/skills/agentic-ui-widget-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentic-ui-widget-lifecycle", 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/carlos-algms/agentic.nvim.git --path .agents/skills/agentic-ui-widget-lifecycle--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 carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install carlos-algms/agentic.nvim agentic-ui-widget-lifecycle --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carlos-algms/agentic.nvim.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/agentic-ui-widget-lifecycle .gemini/skills/agentic-ui-widget-lifecycle && 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 "agentic-ui-widget-lifecycle" agent skill from https://github.com/carlos-algms/agentic.nvim/tree/main/.agents/skills/agentic-ui-widget-lifecycle into .gemini/skills/agentic-ui-widget-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentic-ui-widget-lifecycle", 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 carlos-algms/agentic.nvim agentic-ui-widget-lifecycleInstalls 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 carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/carlos-algms/agentic.nvim.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/agentic-ui-widget-lifecycle .github/skills/agentic-ui-widget-lifecycle && 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 "agentic-ui-widget-lifecycle" agent skill from https://github.com/carlos-algms/agentic.nvim/tree/main/.agents/skills/agentic-ui-widget-lifecycle into .github/skills/agentic-ui-widget-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentic-ui-widget-lifecycle", 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 carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install carlos-algms/agentic.nvim agentic-ui-widget-lifecycle --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/carlos-algms/agentic.nvim.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/agentic-ui-widget-lifecycle .opencode/skills/agentic-ui-widget-lifecycle && 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 "agentic-ui-widget-lifecycle" agent skill from https://github.com/carlos-algms/agentic.nvim/tree/main/.agents/skills/agentic-ui-widget-lifecycle into .opencode/skills/agentic-ui-widget-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agentic-ui-widget-lifecycle", 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.
agentic-ui-widget-lifecycleRules for ChatWidget window lifecycle. An agent skill from carlos-algms/agentic.nvim.
Agentic UI Widget Lifecycle is an agent skill from carlos-algms/agentic.nvim. Rules for ChatWidget window lifecycle. Use before editing ChatWidget show/hide/destroy, WidgetLayout, WidgetRegistry, WindowDecoration, BufferGuard, SessionRegistry.showsession, the hidden chat float, fallback windows, or any programmatic window close.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It works with Lua. The repository describes itself as: Agentic Chat Interface directly in Neovim with ACP providers from Claude-Code, Gemini, Codex, OpenCode, and Cursor-agent. The licence is MIT.
Read from SKILL.md and the folder at commit 5ee5110. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are mermaid).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Agentic UI Widget Lifecycle loads about 2.1k tokens when it runs. Until then it costs about 70 tokens; SKILL.md has 996 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 carlos-algms/agentic.nvim at commit 5ee5110, republished under its MIT licence (© carlos-algms). 996 words, ~2,058 tokens.
.claude/skills/agentic-ui-widget-lifecycle/SKILL.md (or your agent's skills folder).Widget windows are disposable. Buffers persist; windows do not.
Each transition cites the test that pins it. A transition without a test is a gap: add the test or delete the transition.
stateDiagram-v2
[*] --> hidden
hidden --> visible: show()<br/>create fresh windows<br/>reapply window-local opts
visible --> hidden: hide()<br/>close + destroy widget windows<br/>buffers persist
state "destroy()" as destroy
visible --> destroy
hidden --> destroy
destroy --> [*]: WidgetLayout.close(win_nrs)<br/>then buffers deleted<br/>(close skips handles whose tabpage is gone)Pinned by, in lua/agentic/ui/chat_widget.test.lua:
hidden -> visible: ::"show() after hide() creates new windows",
::"show() is idempotent when called multiple times"visible -> hidden: ::"hide() closes all windows and preserves buffers",
::"hide() is safe when called multiple times"hidden -> destroy: ::"deletes the buffers of a hidden widget without raising"visible -> destroy:
::"keeps the tabpage alive when the widget holds its only windows"destroy: ::"tears down the hidden chat window on destroy"show after hide creates fresh windows and applies every window-local
option. show on a visible widget reuses its live windows; it reopens
nothing.hide ensures a non-widget fallback window
exists in the same tabpage; if find_first_non_widget_window returns nil it
calls open_editor_window. Skipping this destroys the user's tabpage: closing
the last window of a non-current tabpage closes that tabpage silently, and E444
(cannot close last window) only fires when it is also the last tabpage. See
ChatWidget:hide.hide across an async boundary MUST pass the tabpage it
captured BEFORE the defer, as hide(keep_insert, tabpage). WinClosed fires on
win_nrs.chat and invalidates it before the scheduled hide runs, and
get_visible_tab_id reads no other handle, so the derived placement is already
nil there: _ensure_fallback_window returns early and the close takes the
widget-only tabpage down with it. Only the tabpage IDENTITY crosses the boundary
— _ensure_fallback_window and find_first_non_widget_window still re-check
nvim_tabpage_is_valid on it. Regression:
chat_widget.test.lua::"keeps a widget-only tab alive when the chat window closes".ChatWidget:open_editor_window anchors on the first USABLE window in
win_nrs, preferring chat. The chat handle is already dead on the WinClosed
path above, and returning nil there is what loses the tabpage.hide, layout rotation) MUST wrap the close call
in ChatWidget:_avoid_auto_close_cmd. The wrapper sets self._closing = true
so the WinClosed autocmd's auto-close-on-user-close branch skips the call.
Skipping the wrapper triggers a recursive close through the autocmd. Tests:
chat_widget.test.lua group "WinClosed autocmd".destroy never routes through hide, but both share
ChatWidget:_ensure_fallback_window. It calls that, then WidgetLayout.close
on its win_nrs, then deletes the buffers. Relative to hide it skips
hidden-float recreation, size capture, and stopinsert suppression — a
destroyed widget is never shown again. WidgetLayout.close skips every handle
whose tabpage is already gone, keeping this safe during a tabclose teardown on
0.11.x. See ChatWidget:destroy.SessionRegistry.show_session hides
non-target widgets in the current tabpage and hides the target at its previous
placement, so an outgoing session in another tabpage stays visible. Destroying
it reaches WidgetLayout.close there, and without the fallback that tabpage
disappears under the user. Reachable from Agentic.destroy_session and from
restore's explicit Destroy current session choice. Regression:
chat_widget.test.lua::"keeps the tabpage alive when the widget holds its only windows".WidgetRegistry.unregister.
find_first_non_widget_window excludes windows showing a registered widget
buffer, so once unregistered the widget's own chat window looks like a valid
fallback and gets handed back.destroy is the one programmatic close exempt from the
_avoid_auto_close_cmd rule above. It deletes the
AgenticWinClosed_<chat bufnr> augroup before closing, so the only listener
that ever read self._closing is gone by then; setting the flag would guard
nothing. Any new close path that runs while that augroup still exists MUST
wrap.buflisted = false and buftype = nofile. Each widget
window records its buffer in vim.w[winid].agentic_bufnr, 1:1. Users cannot
swap buffers between widget windows; BufferGuard restores them.WinClosed autocmd hides the WHOLE widget when the user closes any one
widget window. The widget is one unit.A background session must never be surfaced by a content callback. The
FileList, CodeSelection, DiagnosticsList and TodoList on_change
handlers call ChatWidget:rerender, which no-ops when get_visible_tab_id() is
nil. Calling show directly there put a second widget in the current tabpage —
a plan update from a hidden session was enough, with no user action at all.
The update survives: panel buffers are written before on_change fires, and
show_layout decides each panel window from buffer emptiness at show time.
Regression:
tests/integration/test_multi_session.lua::"keeps a hidden session hidden when its file list changes".
open_or_resize_dynamic_window closes the panel window
instead of opening one. That close runs asynchronously, so the cached handle
can belong to a tabpage the user has since closed — stale-valid on 0.11.x,
hence BufHelpers.is_win_usable, not bare validity — and closing it MUST NOT
move the cursor out of the tab the user is looking at. Regression:
lua/agentic/ui/widget_layout.test.lua::"clears an empty panel whose tabpage is gone".win_nrs was repointed. Regression:
lua/agentic/ui/widget_layout.test.lua::"creates a fresh chat window when the cached one is in another tab".A hidden chat floating window keeps the chat buffer attached while the widget
is hidden, so manual folds can be applied while closed. See ADR 0001. Tests:
chat_widget.test.lua group "hidden chat window lifecycle".
hide = true + focusable = false + noautocmd = true. The user
cannot reach it: <C-w>w/<C-w>p, :wincmd, and :buffer skip it;
nvim_list_wins() returns it but interactive navigation does not visit it.
Only code holding widget._hidden_chat_winid can target it (via
nvim_set_current_win/nvim_win_set_buf). Treat it as an internal handle,
not a window the user might be sitting in. Do NOT add keymaps, buffer-local
autocmds expecting user focus, or any UX that assumes the user can act inside
it.chat_widget.test.lua::"does not leak a hidden float across hide() calls".© carlos-algms, 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 .agents/skills/agentic-ui-widget-lifecycle of carlos-algms/agentic.nvim.
Open the folder on GitHubat commit 5ee5110
Agentic UI Widget Lifecycle 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 |
|---|---|---|---|---|---|---|
| Agentic UI Widget Lifecycle this skillcarlos-algms/agentic.nvim | 642 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Pandoc DOCX TemplateAchuan-2/pandoc_docx_template | 1.1k | — | ~1k | Automated safety check: Pass | None | |
| Add Lua Binding Simplecataclysmbn/Cataclysm-BN | 1.3k | — | ~846 | Automated safety check: Pass | Custom licence | |
| Cpp Compiler FlagsSerial-Studio/Serial-Studio | 7.2k | — | ~2.1k | Automated safety check: Pass | Custom licence | |
| Luamakeactboy168/luamake | 210 | — | ~2k | Automated safety check: Pass | MIT | |
| Lua Ecozhaojh329/lua-eco | 103 | — | ~1.7k | Automated safety check: Pass | MIT |
Achuan-2/pandoc_docx_template
A skill your agent uses when converting Markdown to Word DOCX or DOCX back to Markdown with Pandoc, especially when the output should use the bundled Chinese Word reference templates, heading…
cataclysmbn/Cataclysm-BN
Add simple Cataclysm-BN Lua bindings for stringid types, enums, and basic read-only C++ types.
Serial-Studio/Serial-Studio
C++ compiler/linker flag guidance for Serial Studio's build (GCC, Clang, AppleClang, MSVC cl.exe, clang-cl, MinGW, IntelLLVM).
actboy168/luamake
Luamake 构建系统指南——用于当前项目的 luamake / make.lua / Ninja 生成流程。当用户需要编写、修改、排查或理解 make.lua、目标定义、lm:conf、deps / objdeps、代码生成、Lua C 模块、Bee 运行时集成,或需要解决当前项目中由 luamake 驱动的构建问题时,使用此 skill。即使用户没有明确提到…
zhaojh329/lua-eco
International lua-eco public API skill for writing, reviewing, explaining, and fixing Lua 5.4 code that runs on the eco runtime.
Serial-Studio/Serial-Studio
Modern C++20 authoring guidance for Serial Studio (Qt 6.11, C++20): concepts, ranges, move/RAII, std smart pointers, constexpr, lock-free SPSC atomics.
carlos-algms/agentic.nvim
Creates, lists, and manages GitHub discussions in this repo through the GraphQL API.
carlos-algms/agentic.nvim
Turns rule gaps into routed, verified rules and empties rules-report.md.
carlos-algms/agentic.nvim
MANDATORY before creating, editing, or reviewing tests in agentic.nvim, and before behavior changes that require TDD.
carlos-algms/agentic.nvim
Enforced Lua style: class pattern, visibility prefixes (private, protected), optional-type syntax, LuaCATS annotations.
carlos-algms/agentic.nvim
A skill your agent uses when writing or updating agentic.nvim vimdoc (doc/agentic.txt), or after changing init.lua, configdefault.lua, theme.lua, or README install/keymaps - those edits require a…
carlos-algms/agentic.nvim
Official ACP schema, events, and rules for this plugin's provider work.
Works with
Rules for ChatWidget window lifecycle. An agent skill from carlos-algms/agentic.nvim. nvim. Rules for ChatWidget window lifecycle.
Run `npx skills add carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a claude-code`. Or copy the skill folder (.agents/skills/agentic-ui-widget-lifecycle in carlos-algms/agentic.nvim) into .claude/skills/agentic-ui-widget-lifecycle in your project. Claude Code loads it when a task matches its description.
Run `npx skills add carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a codex`. Or copy the skill folder (.agents/skills/agentic-ui-widget-lifecycle in carlos-algms/agentic.nvim) into .agents/skills/agentic-ui-widget-lifecycle 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 carlos-algms/agentic.nvim --skill agentic-ui-widget-lifecycle -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agentic-ui-widget-lifecycle, .gemini/skills/agentic-ui-widget-lifecycle, .github/skills/agentic-ui-widget-lifecycle and .opencode/skills/agentic-ui-widget-lifecycle in your project.
SKILL.md names no scripts, command-line tools or credentials: Agentic UI Widget Lifecycle is instructions for the agent only.
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.
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.
Agentic UI Widget Lifecycle 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.1k tokens (SKILL.md is roughly 8.2k 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 Agentic UI Widget Lifecycle: Pandoc DOCX Template (Achuan-2/pandoc_docx_template, 1.1k stars), Add Lua Binding Simple (cataclysmbn/Cataclysm-BN, 1.3k stars), Cpp Compiler Flags (Serial-Studio/Serial-Studio, 7.2k stars) and Luamake (actboy168/luamake, 210 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
carlos-algms (a GitHub user) maintains it in carlos-algms/agentic.nvim, which has 642 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 10, 2026.
Source: carlos-algms/agentic.nvim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.