Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "nf-core-agents",
"interface": {
"displayName": "nf-core Skills"
},
"plugins": [
{
"name": "nf-core-tools",
"source": {
"source": "local",
"path": "./plugins/nf-core-tools"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Developer Tools"
}
]
}
16 changes: 16 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "https://json.schemastore.org/claude-code-marketplace.json",
"name": "nf-core-agents",
"owner": {
"name": "nf-core",
"url": "https://nf-co.re"
},
"plugins": [
{
"name": "nf-core-tools",
"source": "./plugins/nf-core-tools",
"description": "Cross-agent nf-core checks and workflow guardrails for nf-core projects",
"version": "0.1.0"
}
]
}
63 changes: 63 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "scripts/prek-hooks/claude/guard-nfcore-modules.sh"
}
]
}
],
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "scripts/prek-hooks/claude/lint-schema.sh"
}
]
},
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "scripts/prek-hooks/claude/check-param-drift.sh"
}
]
},
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "scripts/prek-hooks/claude/lint-local-module.sh"
}
]
},
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "scripts/prek-hooks/claude/check-nftest-exists.sh"
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "scripts/prek-hooks/check-changelog.sh"
}
]
}
]
}
}
18 changes: 18 additions & 0 deletions .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "nf-core-agents",
"owner": {
"name": "nf-core",
"email": "infrastructure@nf-co.re"
},
"metadata": {
"description": "Agent skills and workflow guardrails for nf-core projects.",
"version": "0.1.0"
},
"plugins": [
{
"name": "nf-core-tools",
"source": "./plugins/nf-core-tools",
"description": "Cross-agent nf-core checks and workflow guardrails powered by shared prek hooks."
}
]
}
3 changes: 3 additions & 0 deletions plugins/nf-core-tools/.app.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"apps": []
}
20 changes: 20 additions & 0 deletions plugins/nf-core-tools/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
"name": "nf-core-tools",
"version": "0.1.0",
"description": "Cross-agent nf-core checks and workflow guardrails for Nextflow pipelines, modules, subworkflows, and nf-core tools.",
"author": {
"name": "nf-core",
"url": "https://nf-co.re"
},
"repository": "https://github.com/nf-core/agents/tree/main/plugins/nf-core-tools",
"license": "MIT",
"keywords": [
"nf-core",
"nextflow",
"bioinformatics",
"pipelines",
"workflows",
"nf-test"
]
}
46 changes: 46 additions & 0 deletions plugins/nf-core-tools/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
{
"name": "nf-core-tools",
"version": "0.1.0",
"description": "Cross-agent nf-core checks and workflow guardrails powered by shared prek hooks.",
"author": {
"name": "nf-core",
"email": "infrastructure@nf-co.re",
"url": "https://nf-co.re"
},
"homepage": "https://github.com/nf-core/agents/tree/main/plugins/nf-core-tools",
"repository": "https://github.com/nf-core/agents",
"license": "MIT",
"keywords": [
"nf-core",
"nextflow",
"lint",
"bioinformatics",
"workflows"
],
"skills": "./skills/",
"hooks": "./hooks/codex.json",
"mcpServers": "./.mcp.json",
"apps": "./.app.json",
"interface": {
"displayName": "nf-core Tools",
"shortDescription": "Shared nf-core checks for Codex, Claude, Cursor.",
"longDescription": "Runs deterministic nf-core checks via shared prek hook IDs (schema lint, param drift, nf-test, changelog, and module guardrails).",
"developerName": "nf-core",
"category": "Developer Tools",
"capabilities": [
"Read",
"Write",
"Execute"
],
"websiteURL": "https://github.com/nf-core/agents",
"privacyPolicyURL": "https://github.com/site/privacy",
"termsOfServiceURL": "https://docs.github.com/en/site-policy/github-terms/github-terms-of-service",
"defaultPrompt": [
"Run prek run --all-files and summarize failing nf-core hooks.",
"Run one failing hook by id and propose the smallest fix.",
"Check nextflow.config vs nextflow_schema.json drift and patch."
],
"brandColor": "#0EA5A4",
"screenshots": []
}
}
25 changes: 25 additions & 0 deletions plugins/nf-core-tools/.cursor-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"name": "nf-core-tools",
"displayName": "nf-core Tools",
"version": "0.1.0",
"description": "Cross-agent nf-core checks and workflow guardrails powered by shared prek hooks.",
"author": {
"name": "nf-core",
"email": "infrastructure@nf-co.re"
},
"publisher": "nf-core",
"homepage": "https://github.com/nf-core/agents/tree/main/plugins/nf-core-tools",
"repository": "https://github.com/nf-core/agents",
"license": "MIT",
"keywords": [
"nf-core",
"nextflow",
"lint",
"bioinformatics",
"workflows"
],
"category": "Developer Tools",
"skills": "./skills/",
"hooks": "./hooks/cursor.json",
"mcpServers": "./.mcp.json"
}
3 changes: 3 additions & 0 deletions plugins/nf-core-tools/.mcp.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"mcpServers": {}
}
3 changes: 3 additions & 0 deletions plugins/nf-core-tools/assets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# assets

Place plugin icon/logo/screenshot files here if publishing to a marketplace UI.
9 changes: 9 additions & 0 deletions plugins/nf-core-tools/hooks/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# hooks

Provider hook manifests live here.

- `codex.json` uses Codex hook event names and nested command entries.
- `cursor.json` uses Cursor hook event names and command entries.

Both manifests adapt provider events to the shared internal phase runner instead
of embedding nf-core validation policy directly in provider-specific JSON.
17 changes: 17 additions & 0 deletions plugins/nf-core-tools/hooks/codex.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"hooks": {
"Stop": [
{
"matcher": null,
"hooks": [
{
"type": "command",
"command": "./scripts/agent_hooks/run_phase.py stop --provider codex",
"timeout": 600,
"statusMessage": "Running nf-core stop checks"
}
]
}
]
}
}
19 changes: 19 additions & 0 deletions plugins/nf-core-tools/hooks/cursor.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"hooks": {
"afterFileEdit": [
{
"command": "./scripts/agent_hooks/run_phase.py after-file-edit --provider cursor"
}
],
"sessionEnd": [
{
"command": "./scripts/agent_hooks/run_phase.py stop --provider cursor"
}
],
"stop": [
{
"command": "./scripts/agent_hooks/run_phase.py stop --provider cursor"
}
]
}
}
37 changes: 37 additions & 0 deletions plugins/nf-core-tools/skills/nf-core-tools/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
name: nf-core-tools
description: Run shared nf-core lint and policy checks via `prek run <hook-id>` or full `prek run --all-files` in this repo.
license: MIT
metadata:
author: nf-core
version: "0.1.0"
nf_core_tools_version: "4.0.2"
---

# nf-core tools

## When to use

- Need deterministic lint/policy checks across Codex, Claude, Cursor.
- Need to run one specific hook fast.
- Need strict nf-core guardrails for Nextflow edits.

## Commands

```sh
prek run --all-files
prek run nf-core-pipelines-lint --all-files
prek run nf-core-component-lint --all-files
prek run nf-core-schema-check --all-files
prek run guard-nfcore-modules --all-files
prek run lint-schema --all-files
prek run check-param-drift --all-files
prek run lint-local-module --all-files
prek run check-nftest-exists --all-files
prek run check-changelog --all-files
```

## Notes

- `lint-schema` and `lint-local-module` require the `nf-core` CLI; target nf-core/tools 4.0.2 or newer when reproducing current docs behavior.
- Hooks fail hard on violations (non-zero exit).