Skip to content
Merged
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
3 changes: 3 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ jobs:
- name: Install Claude Code
run: npm install -g "@anthropic-ai/claude-code@${CLAUDE_CODE_VERSION}"

- name: Test skill consolidation
run: python3 -I tools/test_consolidate_skills.py

- name: Check provenance hashes and manifest versions
run: python3 -I tools/check_sources.py

Expand Down
23 changes: 16 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Build, migrate, test, debug and run [Nextflow](https://www.nextflow.io) pipelines with
Claude, connected to [Nextflow Platform](https://seqera.io), Wave containers and nf-core.

The plugin bundles 41 skills and the hosted Seqera MCP server (`https://mcp.seqera.io/mcp`).
The plugin bundles 28 skills and the hosted Seqera MCP server (`https://mcp.seqera.io/mcp`).

## Install

Expand Down Expand Up @@ -43,11 +43,11 @@ To make the plugin available to everyone working in a repository, add it to that

| Area | Skills |
| --- | --- |
| Build pipelines | `create-workflow`, `build-nextflow-pipeline`, `nf-pipeline-design`, `nextflow-config`, `nextflow-schema`, `nextflow-output-patterns`, `search-existing-modules`, `run-module`, `create-container` |
| Convert to Nextflow | `convert-python-script`, `convert-r-script`, `convert-jupyter-notebook`, `migrate-from-snakemake`, `audit-conversion-readiness`, `triage-pipeline-parameters`, `find-alternative-tools` |
| Migrate and modernise | `migrate-nextflow-code`, `nextflow-26-syntax`, `nf-migrate-25-04`, `nf-schema-migration`, `nf-v2-boolean-params`, `nf-plugin-development`, `nf-plugin-legacy-migration`, `maintain-nf-core-pipeline` |
| Test and debug | `nf-test`, `repair-nf-test`, `repair-workflow`, `nf-debug`, `debug-local-run`, `debug-seqera-failed-run`, `nextflow-history`, `nf-run-history`, `nf-data-lineage`, `nf-docker-scripts` |
| Nextflow Platform | `launch-workflow`, `seqera-mcp`, `ce-credentials-setup`, `seqera-data-links`, `seqerakit` |
| Build pipelines | `build-nextflow-pipeline`, `nf-pipeline-design`, `nextflow-config`, `nextflow-schema`, `nextflow-output-patterns`, `search-existing-modules`, `run-module`, `create-container` |
| Convert to Nextflow | `build-nextflow-pipeline` (Python, R and notebook playbooks), `migrate-from-snakemake`, `audit-conversion-readiness`, `nextflow-schema` (parameter triage), `find-alternative-tools` |
| Migrate and modernise | `migrate-nextflow-code` (version, strict-syntax and boolean references), `nextflow-schema` (schema migration), `nf-plugin-development`, `nf-plugin-legacy-migration`, `maintain-nf-core-pipeline` |
| Test and debug | `nf-test` (authoring and failure repair), `repair-workflow` (including static diagnostics), `debug-local-run`, `debug-seqera-failed-run`, `nextflow-history` (history, cache and narrative recaps), `nf-data-lineage`, `nf-docker-scripts` |
| Nextflow Platform | `launch-workflow` (with shared MCP connection reference), `ce-credentials-setup`, `seqera-data-links`, `seqerakit` |
| General | `nextflow-development`, `install-nextflow` |

## Licensing
Expand All @@ -65,6 +65,7 @@ The plugin content is generated from a host-neutral Agent Plugins package. To up
```bash
python3 -I tools/import_package.py /path/to/nextflow.zip
python3 -I tools/check_sources.py
python3 -I tools/test_consolidate_skills.py
claude plugin validate --strict .
```

Expand All @@ -73,7 +74,15 @@ regenerates `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json` and
Do not edit those paths by hand; change the upstream package instead.

The importer also drops the skills listed in `EXCLUDED_SKILLS` and applies the text edits in
`EDITS`, so the remaining skills don't reference removed ones.
`EDITS`. It then replays `tools/skill_consolidations.json`: removed entrypoints become linked
playbooks under their surviving skill, including supporting files and original provenance.
Change that plan (and any referenced curation assets), rather than editing generated skills.
To apply a new consolidation to an already imported tree, run:

```bash
python3 -I tools/consolidate_skills.py
python3 -I tools/check_sources.py
```

To release, bump `VERSION` in `tools/import_package.py`, re-import, merge, then tag:

Expand Down
10 changes: 5 additions & 5 deletions skills/audit-conversion-readiness/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ pipeline, input data and execution environment from their request or current
context. Use user-selected locations for files and results. Consult companion
skills, bundled references and optional helpers by name when available.

For Seqera operations, use the `seqera-mcp` skill. Any `platform_*` examples
For Seqera operations, read the [MCP connection](../launch-workflow/references/seqera-mcp/README.md) connection reference. Any `platform_*` examples
describe API operations. Discover their exact names and parameter schemas with
`search_seqera_api`, then invoke `call_seqera_api` using those schemas. The host
manages OAuth for the connected MCP server.
Expand Down Expand Up @@ -145,16 +145,16 @@ exists to prevent.

With the audit answered, route onward:

- `triage-pipeline-parameters` — turn the surviving paths and
- [parameter triage](../nextflow-schema/references/triage-pipeline-parameters/README.md) — turn the surviving paths and
constants into a parameter surface and schema
- `create-container` or `nf-docker-scripts` — tools
with no usable image
- `search-existing-modules` — tools that may already have a module
- `find-alternative-tools` — tools blocked by license, GPU
requirements, or abandonment
- `seqera-data-links` — cloud data the pipeline must read
- Then the conversion skill itself: `convert-python-script`, `convert-r-script`,
`convert-jupyter-notebook`, `migrate-from-snakemake`, or `create-workflow`
- Then the conversion skill itself: [Python conversion](../build-nextflow-pipeline/references/convert-python-script/README.md), [R conversion](../build-nextflow-pipeline/references/convert-r-script/README.md),
[notebook conversion](../build-nextflow-pipeline/references/convert-jupyter-notebook/README.md), `migrate-from-snakemake`, or [registry composition](../build-nextflow-pipeline/references/create-workflow/README.md)

## Guardrails

Expand All @@ -165,5 +165,5 @@ With the audit answered, route onward:
- Never treat a missing file as a reason to drop the step from the conversion —
it is a question for the user.
- Hardcoded paths are findings, not bugs to fix in place. The pipeline's
parameter surface is where they get resolved, in `triage-pipeline-parameters`.
parameter surface is where they get resolved, in [parameter triage](../nextflow-schema/references/triage-pipeline-parameters/README.md).
- Keep the audit read-only. No edits to the source material, no scaffolding.
Loading
Loading