MCP Development
cachethq/core
A skill your agent uses for Cachet's Laravel MCP server. An agent skill from cachethq/core.
A skill your agent uses to analyze how a Laravel application is actually written and record its conventions as shared rules.
$ npx skills add anonaddy/anonaddy --skill infer-conventions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install anonaddy/anonaddy infer-conventions --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/anonaddy/anonaddy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.junie/skills/infer-conventions .claude/skills/infer-conventions && 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 "infer-conventions" agent skill from https://github.com/anonaddy/anonaddy/tree/master/.junie/skills/infer-conventions into .claude/skills/infer-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "infer-conventions", 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/anonaddy/anonaddy/tree/master/.junie/skills/infer-conventionsType 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 anonaddy/anonaddy --skill infer-conventions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install anonaddy/anonaddy infer-conventions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anonaddy/anonaddy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.junie/skills/infer-conventions .agents/skills/infer-conventions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "infer-conventions" agent skill from https://github.com/anonaddy/anonaddy/tree/master/.junie/skills/infer-conventions into .agents/skills/infer-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "infer-conventions", 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 anonaddy/anonaddy --skill infer-conventions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install anonaddy/anonaddy infer-conventions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anonaddy/anonaddy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.junie/skills/infer-conventions .cursor/skills/infer-conventions && 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 "infer-conventions" agent skill from https://github.com/anonaddy/anonaddy/tree/master/.junie/skills/infer-conventions into .cursor/skills/infer-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "infer-conventions", 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/anonaddy/anonaddy.git --path .junie/skills/infer-conventions--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 anonaddy/anonaddy --skill infer-conventions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install anonaddy/anonaddy infer-conventions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anonaddy/anonaddy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.junie/skills/infer-conventions .gemini/skills/infer-conventions && 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 "infer-conventions" agent skill from https://github.com/anonaddy/anonaddy/tree/master/.junie/skills/infer-conventions into .gemini/skills/infer-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "infer-conventions", 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 anonaddy/anonaddy infer-conventionsInstalls 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 anonaddy/anonaddy --skill infer-conventions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/anonaddy/anonaddy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.junie/skills/infer-conventions .github/skills/infer-conventions && 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 "infer-conventions" agent skill from https://github.com/anonaddy/anonaddy/tree/master/.junie/skills/infer-conventions into .github/skills/infer-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "infer-conventions", 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 anonaddy/anonaddy --skill infer-conventions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install anonaddy/anonaddy infer-conventions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/anonaddy/anonaddy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.junie/skills/infer-conventions .opencode/skills/infer-conventions && 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 "infer-conventions" agent skill from https://github.com/anonaddy/anonaddy/tree/master/.junie/skills/infer-conventions into .opencode/skills/infer-conventions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "infer-conventions", 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.
infer-conventionsA skill your agent uses to analyze how a Laravel application is actually written and record its conventions as shared rules.
Infer Conventions is an agent skill from anonaddy/anonaddy. Use this skill to analyze how a Laravel application is actually written and record its conventions as shared rules. Trigger when the user wants to detect, infer, document, or standardize project conventions or coding style, set up or grow .ai/rules, resolve mixed or conflicting patterns (e.g. "are we using Form Requests or inline validation?"), or onboard agents and teammates to "how we do things here". Covers: a systematic sweep of ~49 Laravel convention dimensions (validation, models, architecture, testing…
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/checklist.md`).
It sits in Backend & APIs, covering Backend development, Linting and formatting and Agent instruction files. It works with Laravel. The repository describes itself as: Anonymous email forwarding. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 150983e. 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.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Infer Conventions loads about 3.1k tokens when it runs, and up to ~6k if it reads all its reference files. Until then it costs about 206 tokens; SKILL.md has 1,728 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 anonaddy/anonaddy at commit 150983e, republished under its MIT licence (© anonaddy). 1,728 words, ~3,092 tokens.
.claude/skills/infer-conventions/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Learn how this application writes Laravel, then record what you learn as durable, path-scoped rules other agents will read. You are documenting reality, not improving it.
$casts to casts(), $fillable to attributes, magic accessors to the Attribute class, pipe-string rules to arrays, $signature to #[Signature], named migrations to anonymous, and many more. When the app already sits at an active tool's target form, the tool owns it, so record nothing. But when the app deliberately holds a form an active tool would refactor away, such as legacy getXxxAttribute() accessors the Attribute class would replace, no tool can reproduce that choice and an agent defaults the other way. That against-the-grain hold is exactly what to record.$signature commands, ShouldQueue jobs, casts() on Laravel 11+, named routes, Rule objects in app/Rules, and Mail::fake() or Bus::fake() to isolate framework services. A real fork is not enough on its own. Weigh the side the app took, and record only the side an agent would not reach for by itself: inline closures everywhere, legacy accessors, a bespoke query layer. Watch for the false fork too. "No Mockery" next to facade fakes is not a choice against Mockery, because they double different things. The test for every candidate: without this rule, would the next agent plausibly write it differently? Only "yes" earns a rule.handle / execute / __invoke), service objects, dedicated query objects exposing builder(), DTOs (spatie/laravel-data vs readonly classes), Form Request validation vs inline, an events and listeners spine vs direct calls, and domain or module folders. Also record a consistent non-pattern, such as "query Eloquent directly in controllers, no repository layer", so the next agent matches the app's altitude instead of over-engineering..ai/rules. Read .ai/rules/index.md and the area files before the sweep. A dimension already covered there is marked done and skipped.search-docs for API details.Each step ends on a checkable completion criterion. Do not advance until it holds.
Fan out when you can. The sweep is embarrassingly parallel. If your environment can spawn subagents (a Task, dispatch, or equivalent tool), do Step 0 yourself, then hand each checklist group (A to J) and the architecture map to its own subagent. Each subagent runs the greps, reads a few representative files, and returns structured verdicts (dimension, verdict, evidence, proposed glob / title / note). You aggregate, dedupe, then run Steps 3 to 5. It is far faster on a real app. No subagents available? Run the steps in sequence, with the same bar and the same output.
Read composer.json (installed packages tell you which checklist groups apply), the pint.json / PHPStan / Rector config, .ai/rules/index.md if present, and most important, map the app/ tree. List every directory under app/ (and any Modules/, src/, packages/, or domain root). Every folder beyond Laravel's default skeleton (Http, Models, Providers, Console, Exceptions) is a structural pattern the app committed to and a high-value rule waiting to be written: Actions, Services, Data or DTOs, Queries, Repositories, ViewModels, Pipelines, Support, Enums, Contracts, Observers, or Domain and module roots. Note each one. You will confirm how it is used in Step 2.
This app ships a frontend stack, so the frontend checklist group applies. Sweep it.
Done when: you have the applicable checklist groups, the dimensions already recorded in .ai/rules, and a list of every non-default app/ directory mapped to the pattern it represents.
Open references/checklist.md and work every applicable dimension using its search hints. Give each exactly one verdict:
Done when: every applicable dimension carries exactly one of those verdicts.
First, close out the architecture map from Step 0. For every non-default app/ directory you listed, confirm how the pattern is used and apply the same evidence and decisions-not-defaults tests as Step 1. Generator-standard or sparsely used directories such as Rules, Observers, Mail, and Notifications are signals to inspect, not automatic conventions. Make genuine structural patterns candidates: Action classes invoked via handle / execute / __invoke, Services constructor-injected, Queries objects exposing builder(): Builder, DTOs as readonly classes or spatie/laravel-data, module or domain folders as the unit of organization. Scope each qualifying pattern to its own directory glob. Also record a consistent deliberate absence, such as "no repository layer, controllers query Eloquent directly", so the next agent matches the app's altitude.
Then find what else makes this codebase itself: base or abstract classes most code extends, traits used everywhere, tenancy or authorization scoping woven through queries, naming schemes, and custom helpers. Same evidence bar, cite files. Record every genuine structural pattern, and cap the other house findings at ~5 so the pass stays high-signal.
Done when: every non-default app/ directory from Step 0 has a verdict, and the pass has produced its cited house findings (or concluded there are none).
Present every candidate in one batch. Per item: dimension, verdict, evidence (counts and files), and the exact proposed glob or globs / title / note. Conflicts are presented as questions about an existing context boundary or deferred cleanup, not as a choice of future style.
Default mode is confirm: record only what the user approves. Switch to yolo only when the invocation said so ("yolo", "don't ask", "just record them"), then record all pattern candidates without asking. Conflicts still go to the user in yolo.
Done when: every candidate is approved, rejected, or (conflicts) decided.
Make one record-rule call for each glob an approved convention applies to. Choose the most specific globs that cover the cited evidence from the mapping table below; if a convention spans models and migrations, record it under both domains so agents discover it from either path. The note is the bare convention: strip every trace of detection (see the ground rule). If record-rule is unavailable (rules disabled), report the full rule text so the user can enable BOOST_RULES_ENABLED or add it by hand.
Record this:
Accessors and mutators: use the legacy magic-method style (
getXxxAttribute()/setXxxAttribute()), not theAttributeclass. Match it in models.
Not this:
Accessors/mutators use the legacy magic-method style; the
Attribute-class style is not used anywhere (13 legacy, 0 Attribute-class), e.g.app/Models/Post.php. Match the legacy style in existing models.
Done when: every approved item has a successful tool response, and any failure is reported with its rule text.
List recorded rules (file and title), conflicts the user deferred, notable no-signals, and remind the user to commit .ai/rules so their team and agents share the conventions.
Attach each rule to the most specific path that covers its evidence. Never a lazy app/** when a subtree fits. Match the glob to where the code actually lives, which is not the same in a default skeleton and in a modular or DDD layout. Use the Step 0 app/ map to pick the real path.
Examples:
app/Models/** in a default app, or app/Modules/Blog/Models/** / src/Domain/Blog/** in a modular one.app/Http/**, or app/Modules/*/Http/** when each module owns its HTTP layer.app/Actions/**, app/Services/**, app/Data/**, or the module path the app actually uses.tests/**.database/migrations/**.app/**.record-rule takes one glob. When a convention genuinely spans two domains (e.g. UUID keys touch models and migrations), call it once per domain with the same title and note; mentioning another path in the note does not make the rule discoverable there.
record-rule missing: detection is read-only, so Steps 0 to 3 still run, and recording falls back to the manual path in Step 4..ai/rules in Step 0 makes re-runs incremental, so only new or undecided dimensions surface.© anonaddy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in .junie/skills/infer-conventions of anonaddy/anonaddy.
Open the folder on GitHubat commit 150983e
We found 13 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 5 other GitHub owners. This page covers the copy in anonaddy/anonaddy, which our catalogue first saw on October 7, 2026.
Infer Conventions 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 |
|---|---|---|---|---|---|---|
| Infer Conventions this skillanonaddy/anonaddy | 4.9k | 5 repos | ~3.1k | Automated safety check: Pass | MIT | |
| MCP Developmentcachethq/core | 230 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Laravel Verificationaffaan-m/ECC | 276k | 4 repos | ~1.1k | Automated safety check: Notes | MIT | |
| Laravel Verificationaffaan-m/ECC | 276k | — | ~1.2k | Automated safety check: Notes | MIT | |
| Agnixagent-sh/agnix | 446 | — | ~874 | Automated safety check: Pass | Apache-2.0 | |
| Agnixagent-sh/agnix | 446 | — | ~563 | Automated safety check: Pass | Apache-2.0 |
cachethq/core
A skill your agent uses for Cachet's Laravel MCP server. An agent skill from cachethq/core.
affaan-m/ECC
Verification loop for Laravel projects: env checks, linting, static analysis, tests with coverage, security scans, and deployment readiness.
affaan-m/ECC
Bucle de verificación para proyectos Laravel: verificaciones de entorno, linting, análisis estático, pruebas con cobertura, escaneos de seguridad y preparación para despliegue.
agent-sh/agnix
A skill your agent uses when user asks to 'lint agent configs', 'validate skills', 'check CLAUDE.md', 'validate hooks', 'lint MCP'.
agent-sh/agnix
A skill your agent uses when user asks to 'lint agent configs', 'validate skills', 'check CLAUDE.md', 'validate hooks', 'lint MCP'.
wcygan/dotfiles
Zed editor configuration expert. An agent skill from wcygan/dotfiles.
anonaddy/anonaddy
Always invoke when the user's message includes 'tailwind' in any form.
anonaddy/anonaddy
Apply this skill whenever writing, reviewing, or refactoring Laravel PHP code.
anonaddy/anonaddy
Develops Inertia.js v3 Vue client-side applications. An agent skill from anonaddy/anonaddy.
anonaddy/anonaddy
Laravel test design and review. An agent skill from anonaddy/anonaddy.
anonaddy/anonaddy
A skill your agent uses when user says "send to Ray," "show in Ray," "debug in Ray," "log to Ray," "display in Ray," or wants to visualize data, debug output, or show diagrams in the Ray desktop…
Works with
Categories
A skill your agent uses to analyze how a Laravel application is actually written and record its conventions as shared rules. Infer Conventions is an agent skill from anonaddy/anonaddy. Use this skill to analyze how a Laravel application is actually written and record its conventions as shared rules.
Infer Conventions fits situations like: analyze how a Laravel application is actually written and record its conventions as shared rules; the user wants to detect; standardize project conventions; conflicting patterns (e.g.
Run `npx skills add anonaddy/anonaddy --skill infer-conventions -a claude-code`. Or copy the skill folder (.junie/skills/infer-conventions in anonaddy/anonaddy) into .claude/skills/infer-conventions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add anonaddy/anonaddy --skill infer-conventions -a codex`. Or copy the skill folder (.junie/skills/infer-conventions in anonaddy/anonaddy) into .agents/skills/infer-conventions 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 anonaddy/anonaddy --skill infer-conventions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/infer-conventions, .gemini/skills/infer-conventions, .github/skills/infer-conventions and .opencode/skills/infer-conventions in your project.
SKILL.md names no scripts, command-line tools or credentials: Infer Conventions is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Infer Conventions is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k 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 2.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Infer Conventions: MCP Development (cachethq/core, 230 stars), Laravel Verification (affaan-m/ECC, 276k stars), Laravel Verification (affaan-m/ECC, 276k stars) and Agnix (agent-sh/agnix, 446 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
anonaddy (a GitHub organization) maintains it in anonaddy/anonaddy, which has 4,891 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 6, 2026.
Source: anonaddy/anonaddy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.