lahfir
- 3 skills
- 0 followers
- 7 hours ago last updated
- ▌ Progress Report · lahfir bundleGenerate polished, stakeholder-ready progress reports as PDF documents. Automatically gathers project metrics (LOC, files, tests, commits, tables), takes live dashboard screenshots via agent-browser, builds a styled HTML report, and converts to PDF. Supports three report scopes: (1) full project report covering all phases and architecture, (2) feature/phase report focused on current branch work, (3) sprint/weekly report summarizing recent activity. Use when the user asks for: "progress report", "stakeholder report", "project status PDF", "engineering summary", "create a report", "generate a PDF report", "feature report", "sprint summary", "what have we built", or any request to document project progress as a deliverable.
- ▌ Agent Desktop · lahfir bundleReliable computer use via native OS accessibility trees. Use when an AI agent needs to see and operate desktop applications (click buttons, fill forms, navigate menus, read UI state, toggle checkboxes, scroll, drag, type text, take screenshots, manage windows, use clipboard, manage notifications). Covers 59 command names (55 operational; four held-input names fail closed until daemon ownership exists) across observation, interaction, keyboard/mouse, app lifecycle, notifications (macOS), clipboard, wait, session lifecycle, and a `skills` command that bundles docs straight from the binary. Triggers on: "click button", "fill form", "open app", "read UI", "computer use", "operate desktop", "accessibility tree", "snapshot app", "type into field", "navigate menu", "toggle checkbox", "take screenshot", "desktop automation", "agent-desktop", or any desktop GUI interaction task. Supports the macOS Phase 1 adapter, with Windows and Linux planned against the same core contracts.
- ▌ Agent Desktop Ffi · lahfir bundleC-ABI bindings over agent-desktop's PlatformAdapter. Consumers (Python ctypes, Swift, Node ffi-napi, Go cgo, C++, Ruby fiddle) link libagent_desktop_ffi.{dylib,so,dll} and call `ad_*` functions directly instead of spawning the CLI binary per call. The canonical observe-act workflow is: ad_init → ad_adapter_create[_with_session] → ad_snapshot → parse @e refs → ad_execute_by_ref → ad_free_string → ad_adapter_destroy.