AndrewDryga
- 29 skills
- 0 followers
- 4 hours ago last updated
- ▌ Content SEO · andrewdrygaPut on the SEO/marketing hat for the emisar marketing site and positioning — clear honest value prop, crawlable server-rendered pages, titles/meta/structured data, internal linking, and sitemap. Use when editing controllers/marketing_html (home, pricing, security, use-cases, compare, docs, packs), writing positioning/copy, or improving how pages rank and convert.
- ▌ Go Engineer · andrewdrygaEngineer a change in the Go modules (runner/ or mcp/) the house way — read the project AGENTS.md first, match the Go house style (slog, fmt.Errorf %w, stdlib table-driven tests, no new deps), honor the runner's security posture, and run the gate. Use for any code change in runner/ or mcp/ (the Go analog of the portal Elixir skills).
- ▌ Ops Release · andrewdrygaCut an emisar product release end to end — changelog, version, license date, gate, commit, signed tag, push, and GitHub release. Use when the user asks to cut or publish a product release.
- ▌ Review Board · andrewdrygaThe full pre-merge review — convene a board of expert hats (pragmatic staff engineer, domain expert, security, UX, UI, PM, marketing, sales) as parallel review subagents, then synthesize ONE ranked verdict and a prioritized plan to fix everything. Use for a PR, branch, commit range, or uncommitted work when a thorough multi-perspective review is warranted; it combines correctness, security, product, and UX lenses in one pass.
- ▌ Design Review · andrewdryga bundleAdversarial art-direction, UX, copy, SEO, accessibility, and implementation review for emisar marketing website pages. Use before shipping public marketing pages, after LLM-generated redesigns, when a page feels generic or overdesigned, or when rendered screenshots need critique against an agency-quality bar.
- ▌ Workflow Spec · andrewdrygaPlan an Emisar change when the approach needs design, several layers interact, or the user requests a plan. Define the complete outcome, decisions, and verification before implementation.
- ▌ Workflow Work · andrewdrygaComplete an authorized Emisar implementation with focused feedback, canonical final gates, and scope discipline. Use for a plan, checklist, or request to implement or continue work.
- ▌ Elixir Testing · andrewdrygaWrite or improve ExUnit tests for portal/ the emisar way — DataCase/ConnCase, the real fixtures in test/support, and the mandatory happy / denial / cross-account paths (§7). Use when adding tests for a context/job/LiveView, or when a change is missing its denial + cross-account coverage.
- ▌ Design Frontend · andrewdrygaPut on the pragmatic front-end hat for the emisar Phoenix UI and marketing HEEx — build correct LiveView/operator UI with CoreComponents and LiveTable, or execute public marketing pages from creative direction with server-rendered HEEx + Tailwind. Use when implementing or changing a LiveView, HEEx template, component, operator UI, or controllers/marketing_html page in apps/emisar_web.
- ▌ Product Manager · andrewdrygaPut on the product-manager hat for emisar — decide what to build, what to cut, and what order; define the smallest valuable slice and what "done" means. Use when a request is vague or oversized, when scoping a feature, prioritizing, or deciding whether something is worth building at all. Pairs with /workflow-spec.
- ▌ Content Director · andrewdryga bundleWrite and edit clear, distinctive, human-quality content for emisar across marketing pages, product UI, documentation, blog posts, announcements, SEO pages, CTAs, and positioning. Use when copy sounds corporate, generated, vague, overcomplicated, over-marketed, tonally flat, or inconsistent; when a surface needs a confident, direct, friendly professional voice; or when approved writing samples should become a reusable brand voice.
- ▌ Debug Investigate · andrewdrygaRoot-cause a crash, exception, stacktrace, failing test, or wrong behavior in portal/ — reproduce, read the real error, trace to the actual cause, propose the minimal fix. Use when something raises/fails/misbehaves and you need the cause, not a guess (Ecto changeset/constraint errors, recurrent job failures, LiveView/MCP errors, runner-socket issues, flaky tests).
- ▌ Elixir Boundaries · andrewdrygaAudit context boundaries and coupling in portal/apps/emisar via mix xref + greps — find the web/MCP layer reaching past contexts, one context reaching into another's Query/Schema/Changeset, and dependency cycles. Use before splitting a context, after adding cross-context calls, or to check architecture health.
- ▌ Elixir Context Fn · andrewdrygaAdd a read, write, or action to an existing Emisar context using its Query, Subject, Authorizer, tagged returns, and denial/isolation tests.
- ▌ Security Engineer · andrewdrygaPut on the security-engineer hat for emisar — threat-model and harden anything touching auth, runner trust, MCP, policies, approvals, audit, or untrusted input. Use when reviewing or building auth/session/MFA, the runner socket, the MCP API, policy evaluation, approval flows, audit logging, secret handling, or any code that ingests runner/LLM input. emisar IS a security product — this hat is mandatory there.
- ▌ Elixir Iron Review · andrewdrygaReview a diff or the working tree against the Emisar Iron Laws (IL-1…IL-20) — the mechanical Credo checks plus the judgment checks a static analyzer can't do. Use when reviewing portal/ Elixir before a PR, after a refactor, or to double-check context/query/changeset/LiveView changes. Reports law · file:line · fix.
- ▌ Elixir New Context · andrewdrygaBuild a new Emisar domain context with schema, query, changeset, authorizer, migration, and tests wired into the permission union.
- ▌ Elixir Performance · andrewdrygaFind and fix performance problems in portal/ — N+1 queries, missing preloads, unbounded lists/assigns, missing DB indexes, slow context reads. Use when a page or list is slow, the DB is hot, LiveView sockets are heavy, or before shipping a list/heavy read path.
- ▌ Tooling Verify API · andrewdrygaConfirm a function, argument, option, type, callback, or CLI flag actually exists with the signature you think — before you call it. Use whenever you're about to use an API you're not certain of (a Repo/Ecto/Phoenix/Oban/Swoosh function, a mix task, a dependency's option, a runner/CLI flag), or any time you'd otherwise be guessing. Stops hallucinated functions before they're written.
- ▌ Security Deps Audit · andrewdrygaAudit portal/ hex dependencies for supply-chain risk — retired/yanked packages, known advisories, unexpected git/path deps, and vetting a dependency before adding it. Use before adding a dep, before a release, or periodically. emisar is a security product; every new dependency is attack surface.
- ▌ Elixir Recurrent Jobs · andrewdrygaBuild or review a recurrent background job / scheduled sweep in portal/ the emisar way - context-owned jobs/, supervised by the owning context, idempotent durable-row work, testable. Use when adding/changing a recurrent job or debugging job ticks.
- ▌ Design Interface Polish · andrewdrygaMicro-detail polish for emisar's rendered UI — the small craft that makes an interface feel finished: optical alignment, interruptible motion, icon cross-fades, image outlines, transition specificity, and the LiveView-specific traps around enter animations. Use when building or reviewing a HEEx/Tailwind component or marketing page, polishing details, or when something "feels off", "feels generic", or you're asked to "make it feel better". The macro art-direction layer is `design-creative-director`/`design-review`; this is the detail layer under both.
- ▌ Respond To Production Incidents · andrewdrygaInvestigate, contain, and permanently remediate production incidents through Emisar. Use when an operator asks an agent to investigate production, explain why a service is degraded, stop the bleed, stabilize an environment, or fix an infrastructure incident; gather evidence, test hypotheses, use the smallest authorized action, fall back to explicitly approved break-glass access only when Emisar has no viable path, turn the root cause into a source-controlled application or infrastructure-as-code fix, verify the operator's deployment, iterate until recovery, and write the incident report. An investigation-only request authorizes observation, never a production-changing or break-glass action.
- ▌ Design Creative Director · andrewdryga bundleOrchestrate an agency-grade redesign of the emisar marketing website: positioning, creative territories, art direction, content architecture, visual system, implementation loop, and review. Use when redesigning or substantially changing marketing pages, landing pages, positioning, launch pages, or any public site work that must feel distinctive rather than template-generated.
- ▌ Author Pack · andrewdrygaAuthor, validate, test, distribute, and certify a custom Emisar action pack for a customer fleet. Use when wrapping internal CLIs or services as declared actions, writing or reviewing pack/action YAML, testing a pack locally, rolling a pack out to runners, hosting a private pack registry with packctl, publishing a new pack version, retiring an unsafe version, or diagnosing pack trust and hash-mismatch issues.
- ▌ Connect LLM · andrewdrygaConnect an LLM or MCP client to Emisar and certify the connection end to end. Use for installing the emisar-mcp stdio bridge, registering a local client (Claude Code, Cursor, Zed, Copilot CLI, and other stdio clients), wiring a cloud connector (Claude.ai, ChatGPT), repairing a broken client registration, or proving that discovery, action execution, and audit work through the configured client. For installing the on-host runner itself, use the install-emisar skill.
- ▌ Install Emisar · andrewdrygaInstall, configure, repair, and certify the Emisar runner on a host end to end for customer onboarding. Use for first-run setup, runner installation, guided pack discovery and selection, host capability coverage, custom-pack recommendations, pack credentials, upgrades, supervised-service migration, authenticated MCP dispatch, or any request to diagnose and report runner health across the host, control plane, registry, action execution, and audit trail. After runner setup, reuse the current authenticated Emisar MCP connection or offer to connect the operator's agent through connect-llm; when a required host job has no suitable pack, offer the public author-pack workflow.
- ▌ Design UX · andrewdryga bundlePut on the senior product/UI/UX designer hat for emisar's operator console and SaaS-style web app surfaces — design or critique flows/screens for top-tier minimalist UX, information architecture, usability, visual hierarchy, graphic restraint, trust, and complete states. Use when adding or changing a LiveView screen (dashboard, runners, runs, approvals, audit, policies, runbooks, billing, onboarding), a settings/onboarding/admin flow, an approval/confirmation flow, or any operator-facing interaction. Pair with design-creative-director when a broader visual direction exists, design-frontend for HEEx/Tailwind implementation, and design-review after screenshots.
- ▌ Ops Deploy · andrewdrygaPre-deploy checklist and release sanity for the GCP portal control plane - migrations, secrets, image build, HCP Terraform plan, and health. Use before deploying or when changing the Dockerfile, release config, runtime config, or infra delivery path. Does not apply infrastructure.