Skip to main content

External tools and media

These skills route non-code tools, browser automation, and generated visual assets.

k-artifact​

FieldValue
Use whencreating cache-only local HTML artifacts or injecting a local feedback overlay into an already-open live browser page
Sourceexact_k-artifact
Tool,artifact
Boundarywrites only under ~/.cache/agent-artifacts; worktrees are identity metadata, not storage
UXgenerated artifacts start with feedback capture hidden behind a fixed top-right Feedback button; semantic IDs and manifests let feedback name entities and relationships directly

k-google-workspace​

FieldValue
Use wheninspecting or changing Gmail, Drive, Calendar, Admin, Docs, Sheets, or Slides via gws
Sourceexact_k-google-workspace
Toolgws CLI
Relatedgeneric Slides deck geometry and automation live in references/slides-deck-design-and-automation.md

k-letsfg​

FieldValue
Use whensearching flights, fares, airline tickets, routes, dates, or travel prices
Sourceexact_k-letsfg
Toollocal LetsFG CLI connectors

k-nano-banana​

FieldValue
Use whenthe user names Nano Banana, ,nano-banana, Gemini/Google image, or a gemini-*-image model
Sourceexact_k-nano-banana
Tool,nano-banana
Boundarynot the default image lane; unnamed image/icon/sticker/illustration work must not load this skill

k-omp​

FieldValue
Use whenoperating under OMP and selecting native structured-read, code-intelligence, or agent-handoff tools
Sourceexact_k-omp
Boundaryruntime adapter only; generic skills retain workflow, evidence, and publication rules. Real-browser work stays with k-playwriter

k-playwriter​

FieldValue
Use whenreal browser control, rendered UI checks, browsing flows, screenshots, or visual QA
Sourceexact_k-playwriter
Boundaryrendered browser behavior only; prefer non-browser tools for static file or source checks

Playwriter documentation loads common safeguards plus complete operation recipes before use. The bundled scripts/read_docs.py selects sections only for its audited installed version and exact document hash; unknown sources and recorder work read the whole manual. After compaction, reload common guidance and active profiles. Callers use this same contract, avoiding a second unconditional full read. The original document stays installed and unchanged. Recorder and fallback paths can cost more than the former single full read. Conflicting recipes remain subordinate to explicit rules, caller limits, and narrowly scoped verified domain exceptions.

Ordinary browsing and UI checks preserve the browser window's available viewport. Fixed dimensions need a task-specific reason: responsive testing, a size-dependent reproduction, matched comparison captures, or video framing. Size-specific checks use an owned page or isolated browser and restore the previous sizing mode or close the test page afterward. Smaller screenshot inputs come from resizing the captured image, not shrinking the live page. The headless video recipe keeps its matching viewport and frame size; extension recording can skip automatic resizing with aspectRatio: null.

k-slack​

FieldValue
Use whensending, scheduling, or replying to Slack messages, adding reactions, or creating/updating canvases through the Slack MCP tools
Sourceexact_k-slack
ToolSlack MCP tools available in the current runtime
Boundarymechanics only: live-id resolution, SOP Β§3.8 preflight, single send, read-back; wording via k-communication; reads never load it
Relatedk-kbn-standup composes but never sends; a delegated leaf returns the draft, and publish_gate.py denies leaf sends where wired

k-ui-capture​

FieldValue
Use whenproving a built/changed UI matches its intended visual/behavior, auditing a diff for capturable UI changes, or capturing/uploading before/after PR screenshots and videos
Sourceexact_k-ui-capture
Relatedcreation-side sibling of k-agent-live-ui-review; proof mechanics live in its shared references/proof-mode.md, loaded directly by /k-build and k-compose-pr; existing-PR targets pass the published-proof gate, which reuses pairs passing adequacy (media type + frame match the behavior) and freshness checks instead of recapturing; claim map requires every embed claim to map to an adequate asset; shares live-ui-runtime.md; upload via the k-github attachments flow
Boundaryhead-only proof capture with gated upload; upload requires explicit approval or an approval packet defined by the current workflow; publication requires the proof-mode return shape through claim_map; synthetic clips, test-result clips, and prose caveats are inadequate publication assets; per-behavior proof coverage (dedicated pairs by default, shared pair for same-trigger behaviors each plainly visible in it), video for interaction-only deltas; baseline (base↔head) vs intra-change (tip↔tip) framing with separate publication channels; not for reviewing others' changes (k-review//k-deep-review own k-agent-live-ui-review)

k-live-ui-windows​

FieldValue
Use whenverifying a UI inside a Windows guest running in VirtualBox, over CDP through a host NAT port-forward
Sourceexact_k-live-ui-windows
Routingmanual
Relatedadds the Windows/VirtualBox environment to whichever check you're running (k-ui-capture or k-agent-live-ui-review); shares live-ui-runtime.md
Boundarynever auto-triggered by /k-deep-review, /k-build, k-ui-capture, or k-agent-live-ui-review β€” load it by hand only on an explicit user request for Windows/VirtualBox coverage