By mgrabovskyi
Claude Code skills and harness rituals for engineering leaders. Auto-triggered skills for triage, briefings, and handoffs — plus slash commands, hooks, and subagents for long-running, multi-session work.
Snapshot current progress to state.md, append to CHANGELOG, commit.
Write a structured handoff and reset context. Run at ~50% context use.
Finish the session — verify, write final handoff, push, optionally open PR.
Stress-test a plan or design by interviewing the user one decision at a time until the decision tree is resolved. Use before planning a non-trivial task, or when the user says "grill me", "stress-test this plan", or "poke holes in my design".
Dispatch the planner subagent to write or revise .claude/state/plan.md.
Produces or revises .claude/state/plan.md for a task. Use when starting work, when the plan is stale, or when the user explicitly asks to replan. Reads task description + codebase; writes the plan file only — never application code.
Bounded codebase investigation. Use when the parent agent needs to understand a part of the codebase, find where something is implemented, or audit how a pattern is used. Returns a compressed report; never modifies code.
Independent audit of in-progress work. Use during /mg-harness:verify and /mg-harness:finish-work. Reads the plan, audits the diff, runs tests, scores work against the plan. Never modifies code.
Use when a multi-session leader workflow needs to be paused and resumed in a fresh chat — strategy planning, roadmap review, hiring loop, postmortem drafting, vendor evaluation, OKR shaping, performance-review writing. Triggers on phrases like "hand off this session", "compact this chat for tomorrow", "save my state and pick up later", "I'm running out of context", "create a handoff doc", "checkpoint this conversation", or "snapshot this work for the next session". Produces a structured handoff focused on decisions, asks, and stakes — not a chat summary — and writes it to a destination the user picks (temp file, project state file, Notion page, or Slack canvas).
Use when writing or editing application code with the user—especially when implementing features, fixing bugs, or refactoring—so you favor clarity, minimal diffs, explicit assumptions, and verifiable success criteria over speed or speculative abstraction.
Use when an engineer is handing off their open Linear tickets to another engineer — PTO coverage, role change, team transfer, sprint transition, or leaving the company. Triggers on phrases like "hand off my tickets to X", "transfer my Linear work to Y", "reassign my open issues with context", "I'm going on PTO, cover my tickets", "engineer handoff", "ticket transfer", or a slash-style "/handoff from=alice to=bob". Gathers Linear state plus git branch and PR status for each ticket, posts a structured handoff comment, and only reassigns after explicit confirmation. Requires a Linear MCP, git, and the gh CLI. Does NOT trigger for triaging the incoming Triage queue (use linear-triage-automation) or for routine status updates on tickets.
Event-driven automation that runs when an issue enters a team's Triage column in Linear. Handles duplicate detection, priority parsing from free text, owner assignment via Triage Intelligence with domain-based fallback, and moving the issue out of Triage. Use when the user asks to "triage Linear issues", "auto-triage", "process the Triage queue", "set priority and assign", "clear the Triage column", "run Linear triage", or "run linear-triage-automation". Org-agnostic — expects a routing table and a triage fallback owner to be supplied by the calling team. Does NOT handle handing tickets between engineers (use linear-handoff), and does not cover anything expressible as a native Linear Triage Rule (label→assignee/priority/team) — those belong in Linear, not an agent.
Set up a recurring morning briefing that scans the user's Slack and email over the last 24 hours and delivers a personalized summary of asks, mentions, updates, and blockers. Use when the user says things like 'daily briefing', 'morning summary', 'morning digest', 'daily standup summary', 'what did I miss', 'inbox + Slack rollup', or wants a scheduled rollup of work communications. Also triggers when someone wants to know who needs them, where they were mentioned, what shipped, and what's blocked — delivered on a schedule.
Modifies files
Hook triggers on file write and edit operations
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
test_commandShell command run by /mg-harness:verify. Examples: 'npm test --silent', 'pytest -q', 'cargo test --quiet'. Leave empty to skip the test step.
${user_config.test_command}verify_commandShell command run before every Edit/Write tool call (PreToolUse hook). Should exit 0 on success, non-zero on failure. Examples: 'npm run lint --silent', 'pnpm typecheck', 'cargo check --quiet'. Leave empty to disable.
${user_config.verify_command}open_pr_with_ghIf true and the GitHub CLI (gh) is installed, /mg-harness:finish-work will open a PR automatically.
${user_config.open_pr_with_gh}drift_check_enabledRe-inject the current plan into context on every prompt (UserPromptSubmit hook) to combat drift.
${user_config.drift_check_enabled}Runs pre-commands
Contains inline bash commands via ! syntax
Runs pre-commands
Contains inline bash commands via ! syntax
Claude Code skills and harness rituals for engineering leaders.
The coding-agent ecosystem optimizes for engineers writing code. An engineering leader's job is wider than that — code, operational queues, communication, decisions, multi-week initiatives that span dozens of sessions. The skills and rituals here are the parts of that wider job I've shaped Claude around. They're small, opinionated, and meant to make your week less reactive, not just faster.
/plugin marketplace add mgrabovskyi/skills
/plugin install mg-harness@mg-harness
That installs the plugin. Two surfaces show up:
/mg-harness:start-work, /mg-harness:grill, /mg-harness:checkpoint, …), six lifecycle hooks, and three subagents that turn a single session into a reliable multi-session workflow.After install, set the two userConfig values for the verification hooks:
/plugin config mg-harness
Set verify_command (e.g. npm run lint --silent) and test_command (e.g. npm test --silent) for any repo you'll use the harness in. Both are optional; without them the harness still works, just without the auto-verify gates.
I built these to fix failure modes I kept hitting when applying a coding agent across the whole job, not just code.
"Perfection is achieved not when there is nothing more to add, but when there is nothing left to take away."
— Antoine de Saint-Exupéry
The Problem. You ask for a small change. You get a sprawling diff. Adjacent code gets "improved." Variables get renamed. Error handling appears for impossible cases. Abstractions appear "for flexibility." Reviewing the PR takes longer than writing it would have.
The Fix is to load discipline rules before the agent writes anything:
karpathy-coding-guidelines — surfaces assumptions, enforces minimal diffs, demands verifiable success criteria, and pushes back against speculative abstraction or unrequested cleanup.The bar to clear: every changed line traces directly back to what you asked for.
Tip. Install this skill on the repo before the first agent-written change, not after. Once a codebase has been "improved" by an undisciplined agent, the cleanup cost is higher than the original work.
"There is nothing so useless as doing efficiently that which should not be done at all."
— Peter Drucker
The Problem. Most issue triage is mechanical: parse priority hints, route by domain, dedupe. Linear's native features (Triage Rules, Triage Intelligence) already cover the deterministic half. The judgment half — "this _Priority:_ p1 buried in the description means Urgent", "this is the same root cause as INF-2104" — is what actually burns calendar time when a human does it.
The Fix is to layer agent behavior on top of Linear's native triage, not in place of it:
linear-triage-automation — runs when an issue enters Triage. Handles only the fuzzy parts: free-text priority parsing, duplicate confirmation, domain inference, and the decision to move out of Triage or leave for a human. Org-agnostic — takes a routing table and a fallback owner from the calling team.If a triage task can be expressed deterministically, it does not belong in an agent loop.
"Clarity about what matters provides clarity about what does not."
— Cal Newport, Deep Work
The Problem. Your morning starts with hundreds of unread items across multiple tools. Most are noise. The useful items — explicit asks, places you were mentioned, things that shipped, things that are blocked — are buried.
The Fix is a scheduled task that does the synthesis before you sit down:
morning-briefing — configures a recurring scheduled task. Each morning it pulls the last 24h from Slack/Teams + email and posts a four-section summary (needs from me, mentions, updates, blockers) to a destination you pick.The skill builds and installs the task. The task does the daily work.
"Adding manpower to a late software project makes it later."
— Frederick P. Brooks Jr., The Mythical Man-Month
npx claudepluginhub mgrabovskyi/skills --plugin mg-harnessMulti-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.