Metadata-Version: 2.4
Name: biomero-workflow-skills
Version: 0.3.0
Summary: Validated measurement-analysis skills from BIOMERO workflow repositories
Author: NL-BioImaging
License-Expression: AGPL-3.0-or-later
Project-URL: Homepage, https://github.com/NL-BioImaging/BIOMERO.WorkflowSkills
Project-URL: Repository, https://github.com/NL-BioImaging/BIOMERO.WorkflowSkills
Project-URL: Issues, https://github.com/NL-BioImaging/BIOMERO.WorkflowSkills/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Image Processing
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: PyYAML<7,>=6.0
Provides-Extra: test
Requires-Dist: build>=1.2; extra == "test"
Requires-Dist: mypy>=1.10; extra == "test"
Requires-Dist: pytest>=8; extra == "test"
Requires-Dist: pytest-cov>=5; extra == "test"
Requires-Dist: ruff>=0.5; extra == "test"
Requires-Dist: types-PyYAML>=6.0; extra == "test"
Dynamic: license-file

# BIOMERO.WorkflowSkills

`biomero-workflow-skills` is a small, framework-neutral catalog for Agent Skills
stored with BIOMERO workflow repositories. It
resolves exact GitHub revisions, validates each repository's `_agents/skills`
directory, and exposes typed catalog data to OMERO plugins.

It is an optional provider for
[OMERO.Analysis](https://github.com/NL-BioImaging/OMERO.Analysis).
It is not an OMERO.web application and does not modify or import
`OMERO.biomero`.

## Basic use

```python
from biomero_workflow_skills import WorkflowSkillCatalog

catalog = WorkflowSkillCatalog()
available = catalog.get_catalog("omero-analysis")
package = catalog.get_package(
    "cisegmentation",
    "analyze-cisegmentation-measurements",
)
```

For stateless adapters, `get_package(..., consumer="omero-analysis")` is
also supported and performs the consumer-filtered catalog lookup first.
Only `attachment-analysis` skills explicitly declaring `omero-analysis` are
returned. `[APPLICATIONS]` is intentionally ignored; applications such as
BIOMERO.ZarrViewer publish their own skills.

The package reads `BIOMERO_WORKFLOW_SKILLS_CONFIG` when set. Otherwise it merges
the existing files at `/etc/slurm-config.ini`, `/OMERO/slurm-config.ini`, and
`~/slurm-config.ini`, matching BIOMERO's configuration precedence.

Public GitHub repositories need no credential. Set `BIOMERO_GITHUB_TOKEN` to a
read-only token for private repositories or a larger API allowance.

The cache follows configured release pins: tags and commits are immutable,
while branches are revalidated hourly with GitHub ETags. Removing a workflow
or skill removes it from the next authoritative response; stale content is
used only for a transient failure of the same unchanged source.

See [Workflow skill authoring and deployment](docs/workflow-skills.md) for the
repository contract, security model, caching, and plugin integration.
