Agent skill

Michel Packmind Engineer Review

by PackmindHub in PackmindHub/packmind

Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping…

Apache-2.0Auto-check passedTesting & QA

Install Michel Packmind Engineer Review

skills CLI
$ npx skills add PackmindHub/packmind --skill michel-packmind-engineer-review -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install PackmindHub/packmind michel-packmind-engineer-review --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/PackmindHub/packmind.git skills-src && mkdir -p .claude/skills && cp -r skills-src/scripts/michel/michel-packmind-engineer-review .claude/skills/michel-packmind-engineer-review && rm -rf skills-src

Use ~/.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/

Facts

Skill name
michel-packmind-engineer-review
GitHub stars
318
Token cost
~2.7k tokens
SKILL.md length
1,143 words
Files
2 (incl. references)
Skills in repo
35
Repo updated
First seen
Licence
Apache-2.0

At a glance

Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping…

  • Works in 5 steps: Resolve the two inputs → Classify the touched layers → Run the checklist → …
  • Review this implementation
  • SKILL.md covers Why this exists, 1. Resolve the two inputs, 2. Classify the touched layers and 3. Run the checklist, plus 2 more sections
  • Calls git and gh

What it does

Michel Packmind Engineer Review is an agent skill from PackmindHub/packmind. Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping, hexagonal-architecture conformance, analytics-event wiring, UX copy, UI reactivity, CLI behavior, multi-tenancy safety, and more). Use this skill once an issue has been implemented and you have a diff to inspect — before opening or merging the PR. Trigger on 'review this implementation', 'engineer review', 'packmind…

Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/engineer-checklist.md`).

It sits in Testing & QA, covering Linting and formatting, Multi-tenancy and Quality gates. It works with ESLint, GitHub and TypeScript. The repository describes itself as: Packmind seamlessly captures your engineering playbook and turns it into AI context, guardrails, and governance. The licence is Apache-2.0.

When your agent uses it

  • Review this implementation
  • Engineer review
  • Packmind review
  • Is this issue done well

Example prompts

  • “review this implementation”
  • “engineer review”
  • “packmind review”
  • “/michel-packmind-engineer-review”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Resolve the two inputs
  2. Classify the touched layers
  3. Run the checklist
  4. Write the report
  5. Print a summary

What it can do on your machine

Read from SKILL.md and the folder at commit 67de8a2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Michel Packmind Engineer Review loads about 2.7k tokens when it runs, and up to ~9.4k if it reads all its reference files. Until then it costs about 204 tokens; SKILL.md has 1,143 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~204
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from PackmindHub/packmind at commit 67de8a2, republished under its Apache-2.0 licence (© PackmindHub). 1,143 words, ~2,692 tokens.

Download SKILL.mdSave it as .claude/skills/michel-packmind-engineer-review/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
michel-packmind-engineer-review
description
Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping, hexagonal-architecture conformance, analytics-event wiring, UX copy, UI reactivity, CLI behavior, multi-tenancy safety, and more). Use this skill once an issue has been implemented and you have a diff to inspect — before opening or merging the PR. Trigger on 'review this implementation', 'engineer review', 'packmind review', 'QC this issue', 'is this issue done well', 'review issue #NNN', or any post-implementation quality gate. Reach for it even when the user just says the work is done and asks 'anything I missed?' — automated checks already ran; this is the layer they don't cover.
argument-hint
["issue-number-or-url"]

Packmind Engineer Review

Review an implemented issue against the checks that human Packmind engineers actually raise in review — the judgment calls that pass CI but still get flagged by a reviewer. The full catalogue lives in references/engineer-checklist.md; this file is the workflow that applies it.

This skill only detects issues — it does not fix them. Findings are evidence-grounded and humble: a static reviewer can be wrong, so findings that need runtime confirmation say so, and uncertain calls are posed as questions, exactly as the team does ("Should not we…? WDYT?").

Why this exists

Linters check style, the compiler checks types, e2e tests check the happy path. None of them notice that a PinSpaceUseCase extends AbstractMemberUseCase instead of AbstractSpaceMemberUseCase, that a SpacePinnedEvent is emitted but no Amplitude subscriber listens to it, that a non-admin can reach an admin page by URL, that a list doesn't refresh after a delete, or that an error toast leaks a raw UUID. Those are the things reviewers spend their attention on. This skill encodes that attention so it runs every time, consistently, instead of depending on who happens to review.

1. Resolve the two inputs

The review needs the intent (what the issue asked for) and the implementation (what changed).

Intent — the issue

If given an issue number or URL, fetch it:

bash
gh issue view <number> --json number,title,body,comments

Read the title, body, and existing comments. Extract: the user-facing goal, any explicit rules/scenarios, mentioned edge cases, and named code references (backtick terms, event names, file paths). If the issue references an Example Mapping spec or links a PRD, note it. If no issue is available, ask the user for one; do not invent intent — without it you can only judge code quality, not whether the right thing was built.

Ignore CodeRabbit / bot noise. Auto-generated @coderabbitai plan and "Issue enrichment" blocks are not human intent — skip them.

Implementation — the diff

If the caller named an explicit scope, use it — don't auto-detect over it:

  • A commit range (a1b2c3d~1..f4e5d6c): git diff --stat <range> and git diff <range>.
  • A PR: gh pr diff <number> for the patch, gh pr view <number> for context.

Otherwise auto-detect. This repo uses trunk-based development, so the change may be committed, staged, or unstaged. Build the changed-file set from all three and review their union:

bash
git fetch origin main --quiet 2>/dev/null || true
BASE=$(git merge-base HEAD origin/main 2>/dev/null || git rev-parse HEAD~1)
git diff --stat "$BASE"...HEAD     # committed since diverging from main
git status --porcelain             # staged + unstaged
git diff "$BASE"...HEAD            # full committed diff
git diff                           # unstaged
git diff --staged                  # staged

If the union is empty, stop and ask the user which commit range or PR to review — a review of nothing is misleading.

Review the whole feature, not one slice. The team commits each sub-task separately (one logical increment per commit), so a single commit is usually a fragment — a data layer with no use case, a use case with no endpoint. Reviewing one commit in isolation produces phantom "it's not wired up!" findings for code that lands in the next commit. Always span the full set of commits that implement the issue (the merge-base range, or the range the caller gave), so you judge the finished feature, not a half-built one.

Record the changed files and the diff hunks — every finding must cite a real file:line from this set.

2. Classify the touched layers

The checklist is organized by architectural layer because that scopes which checks apply. Map each changed file to a layer (a diff usually touches several):

LayerPathsChecklist section
Domain / packagespackages/*/src/** (use cases, commands, adapters, events, services)Domain
APIapps/api/src/** (NestJS controllers, modules)API
Frontendapps/frontend/** (routes, components, gateways)Frontend
CLIapps/cli/src/**CLI
MCPapps/mcp-server/src/**API (same controller/error rules)
Tests & infra**/*.spec.ts, apps/*-e2e*/**, Dockerfile*, .gitignore, migrationsTests & Infra

Cross-cutting checks always apply, regardless of layer.

Show full SKILL.md (558 more words)Show less

3. Run the checklist

Read references/engineer-checklist.md and apply the Cross-cutting section plus every layer section the diff touched. Skip sections for layers the diff doesn't touch — don't pad the report with N/A items.

Each checklist entry gives you the concern, the signal (how to spot it by reading the diff/code), and a real example from past reviews. Follow the signal: grep the changed files, open neighbouring files for context, trace a command field from frontend gateway → controller body → use case, look for the matching event subscriber, and so on. A finding is only worth reporting if you can point at the specific code.

Confidence discipline — match how the team actually reviews:

  • State a finding plainly only when the diff makes it certain (e.g. a controller that never catches a domain error it can throw → guaranteed 500).
  • When it depends on runtime behavior you can't observe statically (cache invalidation, a job that swallows an error, a toast duration), report it but mark it needs confirmation and say how to verify it.
  • When it's a genuine design question (is this the right role? should this be a dedicated use case?), pose it as a question rather than asserting a defect.
  • Don't manufacture findings to look thorough. Zero findings is a valid, good outcome — say QC ✅.

Scope calibration — the issue almost always describes more than any single diff contains (UI copy, an endpoint, analytics, ordering). Before flagging "the issue asks for X but I don't see it," decide whether the diff under review is meant to be the complete implementation or a slice of a larger feature still landing in sibling commits/PRs. If you reviewed the full feature span (step 1) and a stated behavior is genuinely absent, that's a real gap — flag it. If you can't tell whether it's deferred, raise it as an open question ("Is X handled elsewhere / in a follow-up?"), not a HIGH defect. Severity reflects shipped behavior: missing wiring in a deliberate slice is a scope note; missing wiring in something claimed done is a real finding. Don't inflate "not here yet" into "broken."

For a large diff (many files across several layers), you may fan out: launch one review subagent per touched layer (subagent_type: general-purpose), each given the issue summary, that layer's checklist section, and the relevant changed files, then merge their findings. For a small diff, review inline.

4. Write the report

Write to engineer-review-<issue-number>.md at the repo root (or engineer-review.md if there's no issue number) — unless the caller specified a different output path, in which case use that. Use this structure:

markdown
# Engineer Review — #<issue> <title>

**Issue**: #<number> | **Branch**: <branch> | **Base**: <short-sha> | **Files changed**: <N>
**Layers touched**: <list>

## Verdict

<One of:

- `QC ✅` — nothing to flag.
- `LGTM otherwise ✅, <N> point(s) below` — minor/non-blocking findings only.
- `<N> finding(s) to address` — at least one blocking finding.>

## Findings

#### [HIGH|MEDIUM|LOW] <short title>

- [ ] **Category**: <category from the checklist, e.g. "Authorization scoping">
- **File**: `path/to/file.ts:line`
- **What**: <what's wrong / the question, in the reviewer's voice>
- **Why it matters**: <user-visible or maintainability consequence>
- **Suggested check/fix**: <concrete next step; a fix suggestion or how to confirm>
- **Confidence**: certain | needs confirmation (static review)

<repeat per finding, ordered by severity>

## Open questions

<Design/scope questions that aren't defects — "Should this be Admin-only?", "Is this the expected
behavior?". Omit the section if there are none.>

---

_Static review only — no code was executed. Findings marked "needs confirmation" should be reproduced
before acting. Automated checks (lint, build, e2e) are out of scope here by design._
Severity guidance
  • HIGH — wrong behavior reaching users, a security/authorization gap, data loss, or a guaranteed crash (unmapped domain error → 500, non-admin reaching an admin action, dropped command field on the wire).
  • MEDIUM — incorrect-but-recoverable behavior, missing feedback, drift/duplication that will bite later, missing required tests, a type that hides a real contract.
  • LOW / Not blocking — copy polish, accessibility nice-to-haves, minor consistency, dead code.
Conventions to mirror
  • Findings start as unchecked - [ ] — the team checks them off (- [x]) as they resolve.
  • Prefix genuinely optional items with "Not blocking but…".
  • It's fine — encouraged — to end with QC ✅ or LGTM otherwise ✅ when warranted. Don't hedge a clean review into sounding alarming.

5. Print a summary

After writing the file, print to the console: the verdict, finding counts by severity, the count needing confirmation, and the report path.

© PackmindHub, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in scripts/michel/michel-packmind-engineer-review of PackmindHub/packmind.

  • SKILL.md
  • references/engineer-checklist.md

Open the folder on GitHubat commit 67de8a2

Compare with similar skills

Michel Packmind Engineer Review 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.

Michel Packmind Engineer Review compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Michel Packmind Engineer Review this skillPackmindHub/packmind318—~2.7kAutomated safety check: PassApache-2.0
Cherry Studio Regression TestsCherryHQ/cherry-studio53k—~1.2kAutomated safety check: PassAGPL-3.0
Ha Frontend Testinghome-assistant/frontend5.7k—~1.7kAutomated safety check: PassApache-2.0
Eslint Vitest Rule Testerantfu-collective/eslint-vitest-rule-tester142—~1.3kAutomated safety check: PassMIT
Typescript TestingComposioHQ/composio30k—~222Automated safety check: PassMIT
Run Pre Commit Checksmicrosoft/vscode-python-environments141—~898Automated safety check: PassMIT

Similar skills

  • Cherry Studio Regression Tests

    CherryHQ/cherry-studio

    Runs Cherry Studio's critical-path regression suite as deterministic Playwright E2E tests through a GitHub workflow on macOS and Windows runners.

    53k GitHub stars~1.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Ha Frontend Testing

    home-assistant/frontend

    Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~1.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Eslint Vitest Rule Tester

    antfu-collective/eslint-vitest-rule-tester

    Help users test ESLint rules with Vitest, supporting snapshot testing and custom assertions

    142 GitHub stars~1.3k tokensUpdated 1 mo ago
    Testing & QAAuto-check passed
  • Typescript Testing

    ComposioHQ/composio

    Select and run TypeScript SDK verification for packages, examples, type checks, linting, builds, Vitest suites, Effect v4 CLI tests, and runtime E2E tests.

    30k GitHub stars~222 tokensUpdated today
    Testing & QAAuto-check passed
  • Run Pre Commit Checks

    microsoft/vscode-python-environments

    Official

    Run the mandatory pre-commit checks before committing code. An agent skill from microsoft/vscode-python-environments.

    141 GitHub stars~898 tokensUpdated today
    Testing & QAAuto-check passed
  • Quality Gates

    andymai/brepjs

    This skill should be used when a local brepjs quality gate or npm run validate step fails and the specific rule's fix or escape hatch is needed — ESLint errors like "no-explicit-any" or "Direct .oc…

    115 GitHub stars~3.2k tokensUpdated today
    Testing & QAAuto-check passed

More from PackmindHub/packmind

All 35 skills in this repo
  • Michel CLI Demo Recorder

    PackmindHub/packmind

    Produce proof-of-execution demos of the Packmind CLI (packmind-cli) as terminal-styled images (colors and formatting preserved exactly), for embedding in a GitHub PR.

    318 GitHub stars~3.4k tokensUpdated yesterday
    Auto-check passed
  • Michel UI Demo Recorder

    PackmindHub/packmind

    Record polished UI demo videos and screenshots of a running web app using Playwright MCP — for client deliverables, release notes, feature walkthroughs, or bug repros.

    318 GitHub stars~6.4k tokensUpdated yesterday
    Auto-check passed
  • Packmind Create Skill

    PackmindHub/packmind

    Guide for creating effective skills. An agent skill from PackmindHub/packmind.

    318 GitHub stars~3.5k tokensUpdated yesterday
    Auto-check: notes
  • Doc Audit

    PackmindHub/packmind

    Audit Packmind end-user documentation (apps/doc/) for broken links, outdated CLI references, non-existent concepts, misleading information, and missing coverage.

    318 GitHub stars~2.4k tokensUpdated yesterday
    Auto-check passed
  • Feature Sprint

    PackmindHub/packmind

    Execute the implementation plan produced by /feature-spec. An agent skill from PackmindHub/packmind.

    318 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed
  • Packmind Update Playbook

    PackmindHub/packmind

    A skill your agent uses when updating, adding, fixing, changing, or deprecating Packmind playbook artifacts (standards, commands, skills).

    318 GitHub stars~1.9k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Michel Packmind Engineer Review

What does Michel Packmind Engineer Review do?

Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping…. Michel Packmind Engineer Review is an agent skill from PackmindHub/packmind. Review an implemented GitHub issue the way a senior Packmind engineer would — the human-judgment checks that ESLint, the TypeScript compiler, and e2e tests cannot catch (authorization scoping, hexagonal-architecture conformance, analytics-event wiring, UX copy, UI reactivity, CLI behavior, multi-tenancy safety, and more).

When should I use Michel Packmind Engineer Review?

Michel Packmind Engineer Review fits situations like: review this implementation; engineer review; packmind review; is this issue done well.

How do I install Michel Packmind Engineer Review in Claude Code?

Run `npx skills add PackmindHub/packmind --skill michel-packmind-engineer-review -a claude-code`. Or copy the skill folder (scripts/michel/michel-packmind-engineer-review in PackmindHub/packmind) into .claude/skills/michel-packmind-engineer-review in your project. Claude Code loads it when a task matches its description.

How do I install Michel Packmind Engineer Review in Codex?

Run `npx skills add PackmindHub/packmind --skill michel-packmind-engineer-review -a codex`. Or copy the skill folder (scripts/michel/michel-packmind-engineer-review in PackmindHub/packmind) into .agents/skills/michel-packmind-engineer-review in your project. Codex loads it when a task matches its description.

Can I use Michel Packmind Engineer Review in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add PackmindHub/packmind --skill michel-packmind-engineer-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/michel-packmind-engineer-review, .gemini/skills/michel-packmind-engineer-review, .github/skills/michel-packmind-engineer-review and .opencode/skills/michel-packmind-engineer-review in your project.

What does Michel Packmind Engineer Review need to run?

Going by SKILL.md and its folder, Michel Packmind Engineer Review needs the command-line tools its instructions call (git and gh).

Does Michel Packmind Engineer Review access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Michel Packmind Engineer Review safe to install?

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.

What licence does Michel Packmind Engineer Review use?

Michel Packmind Engineer Review is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Michel Packmind Engineer Review use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.7k tokens, read only when the agent opens those files.

What are the alternatives to Michel Packmind Engineer Review?

Skills that share tags, products or a category with Michel Packmind Engineer Review: Cherry Studio Regression Tests (CherryHQ/cherry-studio, 53k stars), Ha Frontend Testing (home-assistant/frontend, 5.7k stars), Eslint Vitest Rule Tester (antfu-collective/eslint-vitest-rule-tester, 142 stars) and Typescript Testing (ComposioHQ/composio, 30k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Michel Packmind Engineer Review?

PackmindHub (a GitHub organization) maintains it in PackmindHub/packmind, which has 318 GitHub stars. The repository holds 35 skills in this directory. The repository was last updated on October 9, 2026.

Source: PackmindHub/packmind on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.