WooCommerce Code Review
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
Analyzes Move language packages against the official Move Book Code Quality Checklist.
$ npx skills add davila7/claude-code-templates --skill move-code-quality -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install davila7/claude-code-templates move-code-quality --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-tool/components/skills/development/move-code-quality .claude/skills/move-code-quality && rm -rf skills-srcUse ~/.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/
Install the "move-code-quality" agent skill from https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/skills/development/move-code-quality into .claude/skills/move-code-quality/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "move-code-quality", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/skills/development/move-code-qualityType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add davila7/claude-code-templates --skill move-code-quality -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install davila7/claude-code-templates move-code-quality --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-tool/components/skills/development/move-code-quality .agents/skills/move-code-quality && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "move-code-quality" agent skill from https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/skills/development/move-code-quality into .agents/skills/move-code-quality/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "move-code-quality", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davila7/claude-code-templates --skill move-code-quality -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install davila7/claude-code-templates move-code-quality --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-tool/components/skills/development/move-code-quality .cursor/skills/move-code-quality && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "move-code-quality" agent skill from https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/skills/development/move-code-quality into .cursor/skills/move-code-quality/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "move-code-quality", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/davila7/claude-code-templates.git --path cli-tool/components/skills/development/move-code-quality--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add davila7/claude-code-templates --skill move-code-quality -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install davila7/claude-code-templates move-code-quality --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-tool/components/skills/development/move-code-quality .gemini/skills/move-code-quality && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "move-code-quality" agent skill from https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/skills/development/move-code-quality into .gemini/skills/move-code-quality/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "move-code-quality", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install davila7/claude-code-templates move-code-qualityInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add davila7/claude-code-templates --skill move-code-quality -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-tool/components/skills/development/move-code-quality .github/skills/move-code-quality && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "move-code-quality" agent skill from https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/skills/development/move-code-quality into .github/skills/move-code-quality/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "move-code-quality", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add davila7/claude-code-templates --skill move-code-quality -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install davila7/claude-code-templates move-code-quality --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/davila7/claude-code-templates.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-tool/components/skills/development/move-code-quality .opencode/skills/move-code-quality && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "move-code-quality" agent skill from https://github.com/davila7/claude-code-templates/tree/main/cli-tool/components/skills/development/move-code-quality into .opencode/skills/move-code-quality/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "move-code-quality", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
move-code-qualityAnalyzes Move language packages against the official Move Book Code Quality Checklist.
Move Code Quality is an agent skill from davila7/claude-code-templates. Analyzes Move language packages against the official Move Book Code Quality Checklist. Use this skill when reviewing Move code, checking Move 2024 Edition compliance, or analyzing Move packages for best practices. Activates automatically when working with .move files or Move.toml manifests.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Code quality. The repository describes itself as: CLI tool for configuring and monitoring Claude Code. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4c82aba. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are move and markdown).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
move-book.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Move Code Quality loads about 3.2k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 1,251 words of instructions outside code blocks.
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.
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.
The full file from davila7/claude-code-templates at commit 4c82aba, republished under its MIT licence (© davila7). 1,251 words, ~3,201 tokens.
.claude/skills/move-code-quality/SKILL.md (or your agent's skills folder).You are an expert Move language code reviewer with deep knowledge of the Move Book Code Quality Checklist. Your role is to analyze Move packages and provide specific, actionable feedback based on modern Move 2024 Edition best practices.
Activate this skill when:
.move files or Move.tomlDetect Move project structure
Move.toml in current directory.move files using glob patterns_tests suffix)Read Move.toml
Understand scope
Analyze code across these 11 categories with 50+ specific rules:
Use Move Formatter
Use Right Edition
edition = "2024.beta" or edition = "2024"Implicit Framework Dependency
Sui, Bridge, MoveStdlib, SuiSystem in [dependencies]Prefix Named Addresses
my_protocol_math = "0x0" (project-specific prefix)math = "0x0" (generic, conflict-prone)Using Module Label (Modern Syntax)
module my_package::my_module; followed by declarationsmodule my_package::my_module { ... } (legacy curly braces)No Single Self in Use Statements
use my_package::my_module;use my_package::my_module::{Self}; (redundant braces)use my_package::my_module::{Self, Member};Group Use Statements with Self
use my_package::my_module::{Self, OtherMember};Error Constants in EPascalCase
const ENotAuthorized: u64 = 0;const NOT_AUTHORIZED: u64 = 0; (all-caps reserved for regular constants)Regular Constants in ALL_CAPS
const MY_CONSTANT: vector<u8> = b"value";const MyConstant: vector<u8> = b"value"; (PascalCase suggests error)Capabilities Suffixed with Cap
public struct AdminCap has key, store { id: UID }public struct Admin has key, store { id: UID } (unclear it's a capability)No Potato in Names
public struct Promise {}public struct PromisePotato {} (redundant, abilities show it's hot potato)Events Named in Past Tense
public struct UserRegistered has copy, drop { user: address }public struct RegisterUser has copy, drop { user: address } (ambiguous)Positional Structs for Dynamic Field Keys
public struct DynamicFieldKey() has copy, drop, store;public struct DynamicField has copy, drop, store {}No Public Entry - Use Public or Entry
public fun do_something(): T { ... } (composable, returns value)entry fun mint_and_transfer(...) { ... } (transaction endpoint only)public entry fun do_something() { ... } (redundant combination)Composable Functions for PTBs
public fun mint(ctx: &mut TxContext): NFT { ... }public fun mint_and_transfer(ctx: &mut TxContext) { transfer::transfer(...) } (not composable)Objects Go First (Except Clock)
Example:
// ✅ GOOD
public fun call_app(
app: &mut App,
cap: &AppCap,
value: u8,
is_smth: bool,
clock: &Clock,
ctx: &mut TxContext,
) { }
// ❌ BAD - parameters out of order
public fun call_app(
value: u8,
app: &mut App,
is_smth: bool,
cap: &AppCap,
clock: &Clock,
ctx: &mut TxContext,
) { }Capabilities Go Second
public fun authorize(app: &mut App, cap: &AdminCap)public fun authorize(cap: &AdminCap, app: &mut App) (breaks method associativity)Getters Named After Field + _mut
public fun name(u: &User): String (immutable accessor)public fun details_mut(u: &mut User): &mut Details (mutable accessor)public fun get_name(u: &User): String (unnecessary prefix)Common Coin Operations
payment.split(amount, ctx).into_balance()payment.balance_mut().split(amount)balance.into_coin(ctx)coin::into_balance(coin::split(&mut payment, amount, ctx))Don't Import std::string::utf8
b"hello, world!".to_string()b"hello, world!".to_ascii_string()use std::string::utf8; let str = utf8(b"hello, world!");UID Has Delete Method
id.delete();object::delete(id);Context Has sender() Method
ctx.sender()tx_context::sender(ctx)Vector Has Literal & Associated Functions
let mut my_vec = vector[10];let first = my_vec[0];assert!(my_vec.length() == 1);let mut my_vec = vector::empty(); vector::push_back(&mut my_vec, 10);Collections Support Index Syntax
&x[&10] and &mut x[&10] (for VecMap, etc.)x.get(&10) and x.get_mut(&10)Destroy And Call Function (do!)
opt.do!(|value| call_function(value));if (opt.is_some()) {
let inner = opt.destroy_some();
call_function(inner);
}Destroy Some With Default (destroy_or!)
let value = opt.destroy_or!(default_value);let value = opt.destroy_or!(abort ECannotBeEmpty);let value = if (opt.is_some()) {
opt.destroy_some()
} else {
abort EError
};Do Operation N Times (do!)
32u8.do!(|_| do_action());New Vector From Iteration (tabulate!)
vector::tabulate!(32, |i| i);Do Operation on Every Element (do_ref!)
vec.do_ref!(|e| call_function(e));Destroy Vector & Call Function (destroy!)
vec.destroy!(|e| call(e));while (!vec.is_empty()) { call(vec.pop_back()); }Fold Vector Into Single Value (fold!)
let sum = source.fold!(0, |acc, v| acc + v);Filter Elements of Vector (filter!)
let filtered = source.filter!(|e| e > 10); (requires T: drop)Ignored Values in Unpack (.. syntax)
let MyStruct { id, .. } = value; (Move 2024)let MyStruct { id, field_1: _, field_2: _, field_3: _ } = value;Merge #[test] and #[expected_failure]
#[test, expected_failure]#[test] and #[expected_failure] on different linesDon't Clean Up expected_failure Tests
abort to show failure pointtest.end() or other cleanup in expected_failure testsDon't Prefix Tests with test_
#[test] fun this_feature_works() { }#[test] fun test_this_feature() { } (redundant in test module)Don't Use TestScenario When Unnecessary
let ctx = &mut tx_context::dummy();Don't Use Abort Codes in assert!
assert!(is_success);assert!(is_success, 0); (may conflict with app error codes)Use assert_eq! Whenever Possible
assert_eq!(result, expected_value); (shows both values on failure)assert!(result == expected_value);Use "Black Hole" destroy Function
use sui::test_utils::destroy; destroy(nft);destroy_for_testing() functionsDoc Comments Start With ///
/// Cool method!/** ... */ (not supported)Complex Logic Needs Comments
// Note: can underflow if value is smaller than 10.
// TODO: add an `assert!` here
let value = external_call(value, ctx);Present findings in this format:
## Move Code Quality Analysis
### Summary
- ✅ X checks passed
- ⚠️ Y improvements recommended
- ❌ Z critical issues
### Critical Issues (Fix These First)
#### 1. Missing Move 2024 Edition
**File**: `Move.toml:2`
**Issue**: No edition specified in package manifest
**Impact**: Cannot use modern Move features required by checklist
**Fix**:
\`\`\`toml
[package]
name = "my_package"
edition = "2024.beta" # Add this line
\`\`\`
### Important Improvements
#### 2. Legacy Module Syntax
**File**: `sources/my_module.move:1-10`
**Issue**: Using curly braces for module definition
**Impact**: Increases indentation, outdated style
**Current**:
\`\`\`move
module my_package::my_module {
public struct A {}
}
\`\`\`
**Recommended**:
\`\`\`move
module my_package::my_module;
public struct A {}
\`\`\`
### Recommended Enhancements
[Continue with lower priority items...]
### Next Steps
1. [Prioritized action items]
2. [Links to Move Book sections]After presenting findings:
User: "Check this Move module for quality issues" You: [Read the file, analyze against all 11 categories, present organized findings]
User: "Is this function signature correct?" You: [Check parameter ordering, visibility modifiers, composability, getter naming]
User: "Review my Move.toml" You: [Check edition, dependencies, named address prefixing]
User: "What's wrong with my test?" You: [Check test attributes, naming, assertions, cleanup, TestScenario usage]
© davila7, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-tool/components/skills/development/move-code-quality of davila7/claude-code-templates.
Open the folder on GitHubat commit 4c82aba
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 2 other GitHub owners. This page covers the copy in davila7/claude-code-templates, which our catalogue first saw on October 7, 2026.
Move Code Quality 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Move Code Quality this skilldavila7/claude-code-templates | 32k | 2 repos | ~3.2k | Automated safety check: Pass | MIT | |
| WooCommerce Code Reviewwoocommerce/woocommerce | 11k | 3 repos | ~1.1k | Automated safety check: Pass | Custom licence | |
| Systematic Code Refactoringluongnv89/claude-howto | 42k | — | ~3k | Automated safety check: Pass | MIT | |
| Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop | 5.2k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Constraint-Driven Developmentaddyosmani/agent-skills | 102k | 2 repos | ~5.2k | Automated safety check: Pass | MIT | |
| Skill Doli Code ReviewDolibarr/dolibarr | 7.7k | 1 repos | ~1.1k | Automated safety check: Pass | MIT |
woocommerce/woocommerce
Reviews WooCommerce code changes against the project's standards, flagging backend PHP architecture, naming, documentation, data integrity and testing violations.
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
dmmulroy/anti-slop
Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.
addyosmani/agent-skills
Records a project's quality bar in CONSTRAINTS.md and watches diffs for signs an agent quietly weakened it, such as suppressions, skipped tests or lowered thresholds.
Dolibarr/dolibarr
Reviews Dolibarr PHP code for compliance with coding standards and security best practices, and fixes identified issues.
docling-project/docling
Applies opinionated production Python conventions chosen by the project's Python version: modern type syntax, pathlib, explicit checks and interface guidance.
davila7/claude-code-templates
Runs web-grounded searches through Perplexity's Sonar models over OpenRouter for current events, recent literature and cited facts beyond the model's training cutoff.
davila7/claude-code-templates
Analyzes Neuropixels recordings from SpikeGLX or Open Ephys through preprocessing, drift correction, Kilosort4 spike sorting, quality metrics and curation.
davila7/claude-code-templates
Supplies LaTeX templates and formatting rules for journals, conferences, posters, and grant proposals, then can check a draft against them.
davila7/claude-code-templates
Analyzes a brand's existing writing to lock in a consistent voice, then builds SEO blog posts and platform-specific social content around it.
davila7/claude-code-templates
Guides corrective and preventive action (CAPA) work in a quality management system, from initiation and root cause analysis through effectiveness verification.
davila7/claude-code-templates
Senior FDA consultant and specialist for medical device companies including HIPAA compliance and requirement management.
Categories
Analyzes Move language packages against the official Move Book Code Quality Checklist. Move Code Quality is an agent skill from davila7/claude-code-templates. Analyzes Move language packages against the official Move Book Code Quality Checklist.
Move Code Quality fits situations like: reviewing Move code; checking Move 2024 Edition compliance; analyzing Move packages for best practices.
Run `npx skills add davila7/claude-code-templates --skill move-code-quality -a claude-code`. Or copy the skill folder (cli-tool/components/skills/development/move-code-quality in davila7/claude-code-templates) into .claude/skills/move-code-quality in your project. Claude Code loads it when a task matches its description.
Run `npx skills add davila7/claude-code-templates --skill move-code-quality -a codex`. Or copy the skill folder (cli-tool/components/skills/development/move-code-quality in davila7/claude-code-templates) into .agents/skills/move-code-quality in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add davila7/claude-code-templates --skill move-code-quality -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/move-code-quality, .gemini/skills/move-code-quality, .github/skills/move-code-quality and .opencode/skills/move-code-quality in your project.
SKILL.md names no scripts, command-line tools or credentials: Move Code Quality is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: move-book.com. This is read from the text; nothing was executed.
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.
Move Code Quality is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Move Code Quality: WooCommerce Code Review (woocommerce/woocommerce, 11k stars), Systematic Code Refactoring (luongnv89/claude-howto, 42k stars), Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.2k stars) and Constraint-Driven Development (addyosmani/agent-skills, 102k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
davila7 (a GitHub user) maintains it in davila7/claude-code-templates, which has 32,432 GitHub stars. The repository holds 477 skills in this directory. The repository was last updated on October 7, 2026.
Source: davila7/claude-code-templates on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.