agentleFS
janussonjanusson/MSMCP/skills/quality-gate/SKILL.md

quality-gate

Skill1 starsChanged 24 days agoMITView on GitHub

The format, lint, test, and eval commands to run before declaring any msmcp task complete, and the conventions they enforce.

42 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use deploy.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • VercelSkill

    deploy

    Deploy applications to Vercel. Use when the user says "deploy", "deploy to Vercel", "push to production", "deploy my app", or "go live".

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 34 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Run this before declaring any task complete.

    line 10
  2. Distinctive:

    Prefer typed interfaces; every public callable is annotated.

    line 62
  3. Distinctive:

    Add tests for behavioural changes.

    line 64
  4. Distinctive:

    Keep changes focused; do not fix unrelated failures.

    line 65

“Common” is measured: kept by at least 6 in 10 of the 34 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Quality gate

Run this before declaring any task complete. All Python targets go through uv; the project declares Python 3.13 in pyproject.toml.

Commands

PurposeCommand
Sync depsmake install (uv sync --extra dev)
Auto-formatmake format (ruff format . then ruff check --fix .)
Full static gatemake lint
Unit testsmake test
Notebook evalmake eval
Scientific validation (opt-in)make validate-similarity (needs an external dataset + matchms)
Everythingmake all

make lint runs, in order: ruff format --check ., ruff check ., uv run mypy, uv run basedpyright. Run it exactly as CI does rather than invoking the tools individually, so a green local run means a green CI run.

What the gate enforces

  • ruff: line length 88, target py313, rules E4, E7, E9, F, I, UP, B, SIM, RUF. Auto-fixable findings are handled by make format.
  • mypy (src and tests, mypy_path = ["src"]) and basedpyright (typeCheckingMode = "standard"). The project holds zero warnings as debt: src/, tests/, and the eval notebook all check clean. Do not silence a finding to get green; fix the cause.
  • pytest: testpaths = ["tests"], with -m 'not eval' so make test stays a fast unit run. The eval marker is the notebook suite.

Test surface

  • Tool tests exercise raw callables captured by the FakeMCP fixtures in tests/conftest.py.
  • tests/test_tool_schemas.py asserts the wire contract from tools/list.
  • tests/test_smoke_stdio.py launches the real server as a subprocess and drives a JSON-RPC session; it is the guard for the "never write to stdout" rule and for the exact registered tool set.
  • tests/test_eval_notebook.py runs notebooks/eval_msmcp.ipynb under the eval marker.
  • tests/test_spearman.py guards the tie-aware correlation reported by the similarity validation (it runs in the fast suite; no optional dependency).
  • tests/test_validation_harness.py covers the shipped validation harness's protocol — the query/database split, the leakage guard, and the absent-versus-invalid dataset behaviour — with neither matchms nor the dataset.
  • validation/ holds the opt-in scientific-validation harness. It is not collected by pytest and not part of the gate; matchms is supplied only for make validate-similarity and is never a runtime dependency.

Conventions the gate assumes

  • Prefer typed interfaces; every public callable is annotated.
  • Preserve public APIs unless the task explicitly changes them.
  • Add tests for behavioural changes.
  • Keep changes focused; do not fix unrelated failures.
  • drafts/ is gitignored scratch and excluded from lint and type checking; nothing shipped may live there.
  • validation/ is shipped and type-checked (it is in mypy's files); it must import cleanly without matchms, so the fast gate passes on a machine that never installs the optional validation dependency.

Checklist

  • make test passes (or the specific new test does).
  • make lint passes with no new suppressions.
  • Behavioural changes have tests.
  • If the notebook changed, make eval passes.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.