Feature/add skills#345
Open
atripathy86 wants to merge 7 commits into
Open
Conversation
Adds a skills/ directory with six skills installable via `npx skills add HewlettPackard/cmf --full-depth -y`, compatible with Claude Code, GitHub Copilot, Cursor, Codex, OpenCode, and any agentskills.io-compatible coding assistant. Skills added: - cmf: router skill — routes free-text task descriptions to the correct sub-skill - cmf-init: initialize CMF, configure storage backends (local, S3, MinIO, SSH, OSDF) - cmf-instrument: add Cmf() tracking calls to Python ML pipelines with templates for prepare/train/evaluate stages - cmf-sync: push/pull metadata and artifacts to/from a CMF Server - cmf-query: query lineage and artifacts with CmfQuery API and CLI - cmf-server: deploy CMF Server locally with Docker Compose or connect to an existing shared server - cmf-mcp: deploy the CMF MCP server and use it from any MCP-compatible coding agent Also adds: - skills/README.md with installation instructions and manual directory paths for all supported coding agents - docs/skills/index.md documenting the skills in the MkDocs site - mkdocs.yaml nav entry for the new Agent Skills section
Add OSDF (Open Science Data Federation) alongside local, S3, MinIO, and SSH in every place where storage backends are listed as options: - skills/cmf-init/SKILL.md: frontmatter description and backend table - skills/cmf-sync/SKILL.md: workflow diagram and artifact push description - skills/README.md: cmf-init skill description bullet list - docs/skills/index.md: cmf-init skill description bullet list
- Rewrote all SKILL.md files to be brief and action-oriented: detailed API tables and parameter references moved out of SKILL.md into per-skill references/ subdirectories - Replaced all bare local doc paths (docs/xxx/yyy.md) with fully qualified URLs (https://hewlettpackard.github.io/cmf/...) - Replaced "Further reading" sections with concise inline footer links following the established skills style - Added references/ subdirectory to each skill with detailed content: cmf-init/references/init-commands.md (all backend init params) cmf-instrument/references/api-reference.md (full Cmf method table) cmf-sync/references/cli-commands.md (full CLI flag reference) cmf-query/references/query-api.md (full CmfQuery method table) cmf-server/references/env-variables.md (all .env variables) cmf-mcp/references/mcp-tools.md (MCP tool table + prompt mapping) - Added sources.md to each skill listing documentation sources - Added .claude-plugin/plugin.json and marketplace.json to enable /plugin marketplace add HewlettPackard/cmf in Claude Code - Cross-skill links use relative paths; external links use full URLs
Audit of the refactor identified specific information lost from the original SKILL.md files that was not captured in references/. Restored: cmf-init/SKILL.md: - Expanded troubleshooting: DVC version check, full git remote instructions, OSDF token validation detail (issuer/scope/expiry display), OSDF push permission error guidance cmf-init/references/init-commands.md: - Guided walkthrough section: full end-to-end setup from scratch with local storage (mkdir, git init, pip install, cmf init, verify) - Python 3.9 on Ubuntu known issue and fix cmf-sync/SKILL.md: - Troubleshooting: DVC remote not configured error with recovery steps cmf-server/SKILL.md: - Troubleshooting: MCP server not reachable (port check, health endpoint), clients cannot push metadata (verify URL, API check) - Manage section: destructive teardown command with backup warning
atripathy86
requested review from
Jaychaware and
Copilot
and removed request for
Copilot
May 20, 2026 04:01
atripathy86
requested review from
annmary-roy,
revathyramanan,
shreyas-kulkarni09,
suparna-bhattacharya and
varkha-d-sharma
May 20, 2026 04:02
Add Step 1 covering uv, conda, and venv environment creation with Python 3.10 recommended (3.9–3.11 supported). Include OS-specific install commands, Python version compatibility table, guided walkthrough using uv, and expanded troubleshooting for version and env issues.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR adds “agent skills” (agentskills.io-compatible prompt files) to the CMF repo and publishes documentation so coding assistants can guide users through common CMF workflows (init, instrumentation, sync, query, server, MCP).
Changes:
- Added a
skills/directory with multiple CMF skills (/cmf,/cmf-init,/cmf-instrument,/cmf-sync,/cmf-query,/cmf-server,/cmf-mcp) plus reference/source docs. - Added a MkDocs documentation page (
docs/skills/index.md) and wired it intomkdocs.yaml. - Added Claude marketplace metadata under
.claude-plugin/.
Reviewed changes
Copilot reviewed 24 out of 24 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| skills/README.md | Skills installation/usage documentation for multiple agents |
| skills/cmf/SKILL.md | Router skill that maps user intent to the right sub-skill |
| skills/cmf-init/SKILL.md | Initialization workflow skill (env setup + cmf init) |
| skills/cmf-init/sources.md | Source links for cmf-init skill content |
| skills/cmf-init/references/init-commands.md | Reference table for cmf init subcommands and flags |
| skills/cmf-instrument/SKILL.md | Skill instructions/templates for instrumenting Python ML code with CMF |
| skills/cmf-instrument/sources.md | Source links for cmf-instrument skill content |
| skills/cmf-instrument/references/api-reference.md | cmflib API reference table used by the skill |
| skills/cmf-sync/SKILL.md | Skill for push/pull of metadata and artifacts and team workflows |
| skills/cmf-sync/sources.md | Source links for cmf-sync skill content |
| skills/cmf-sync/references/cli-commands.md | CLI reference table for sync commands |
| skills/cmf-query/SKILL.md | Skill for writing CmfQuery/CLI queries for lineage and metadata |
| skills/cmf-query/sources.md | Source links for cmf-query skill content |
| skills/cmf-query/references/query-api.md | Reference table of CmfQuery methods |
| skills/cmf-server/SKILL.md | Skill for deploying/connecting to CMF Server via Docker Compose |
| skills/cmf-server/sources.md | Source links for cmf-server skill content |
| skills/cmf-server/references/env-variables.md | Reference for server .env variables (including MCP vars) |
| skills/cmf-mcp/SKILL.md | Skill for deploying/configuring MCP server and connecting agents |
| skills/cmf-mcp/sources.md | Source links for cmf-mcp skill content |
| skills/cmf-mcp/references/mcp-tools.md | MCP tools list and environment configuration snippet |
| docs/skills/index.md | MkDocs page documenting installation and available skills |
| mkdocs.yaml | Adds “Agent Skills” to the documentation navigation |
| .claude-plugin/plugin.json | Claude plugin metadata for the skills bundle |
| .claude-plugin/marketplace.json | Claude marketplace manifest for publishing the plugin |
Comments suppressed due to low confidence (3)
skills/cmf-mcp/SKILL.md:31
- Environment variable names here don’t match the actual MCP server configuration. The MCP service (docker-compose-server.yml) and
mcp/main.pyrequireCMF_BASE_URL/CMF2_BASE_URL/ …, but this skill instructs users to setCMF_SERVER_URL/CMF_SERVER_URL_2. Update the skill to use the real variable names so the MCP server can start and connect to CMF.
Edit `.env`:
```env
CMF_SERVER_URL=http://<your-cmf-server-host>:80
# Optional second/third server:
# CMF_SERVER_URL_2=http://staging-server:80
**skills/cmf-mcp/SKILL.md:36**
* `docker compose up -d` is run from `mcp/`, but there’s no compose file in that directory. Either document starting the MCP server via the root `docker-compose-server.yml` (where the `mcp` service is defined) or add a dedicated compose file under `mcp/` to support these commands.
docker compose up -d
curl http://localhost:8000/health # → {"status": "ok"}**skills/cmf-mcp/SKILL.md:58**
* The agent connection examples hardcode `http://localhost:8000/mcp`, but in the standard `docker-compose-server.yml` setup the MCP container listens on 8000 internally and is exposed on the host via `MCP_EXTERNAL_PORT` (default 8382). The documented URL should reflect the actual host port (or explicitly instruct setting `MCP_EXTERNAL_PORT=8000`).
Claude Code — .mcp.json (project root)
{
"mcpServers": {
"cmf": { "url": "http://localhost:8000/mcp", "transport": "http" }
}
}Restart Claude Code or run /mcp to reload.
GitHub Copilot — VS Code settings
{
"github.copilot.chat.mcpServers": {
"cmf": { "url": "http://localhost:8000/mcp", "transport": "http" }
}
}Add to .vscode/settings.json or VS Code user settings. Reload the window.
</details>
---
💡 <a href="/HewlettPackard/cmf/new/master?filename=.github/instructions/*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.
Comment on lines
+126
to
+155
|
|
||
| | Backend | Use when | | ||
| |---------|---------| | ||
| | `local` | Single-machine development | | ||
| | `minios3` | Shared MinIO server (S3-compatible) | | ||
| | `amazons3` | AWS S3 production storage | | ||
| | `sshremote` | Artifacts on a remote machine over SSH | | ||
| | `osdfremote` | OSDF distributed research data federation | | ||
|
|
||
| ## Step 3 — Run `cmf init` | ||
|
|
||
| ### Local | ||
| ```bash | ||
| cmf init local \ | ||
| --path /path/to/artifact-storage \ | ||
| --git-remote-url https://github.com/your-org/your-repo.git | ||
| ``` | ||
| Optional: add `--cmf-server-url http://<server>:80` to point at a shared CMF Server. | ||
|
|
||
| ### MinIO / Amazon S3 | ||
| ```bash | ||
| # MinIO | ||
| cmf init minios3 \ | ||
| --url http://<minio-host>:9000 \ | ||
| --endpoint-url http://<minio-host>:9000 \ | ||
| --access-key-id <key> \ | ||
| --secret-access-key <secret> \ | ||
| --git-remote-url https://github.com/your-org/your-repo.git | ||
|
|
||
| # Amazon S3 |
|
|
||
| ```bash | ||
| cd mcp/ | ||
| cp .env.example .env |
| To install a single skill instead of the full set: | ||
|
|
||
| ```bash | ||
| npx skills add HewlettPackard/cmf/tree/main/skills/cmf-instrument -y |
| To install a single skill: | ||
|
|
||
| ```bash | ||
| npx skills add HewlettPackard/cmf/tree/main/skills/cmf-instrument -y |
Comment on lines
+28
to
+30
| CMF_SERVER_URL=http://dev-server:80 | ||
| CMF_SERVER_URL_2=http://staging-server:80 | ||
| CMF_SERVER_URL_3=http://prod-server:80 |
- Add prominent macOS not supported notice with links to issues HewlettPackard#185 and HewlettPackard#263 - Rewrite Step 1 as a simple bullet list: conda → venv → uv → direct pip fallback - Link to references/init-commands.md for full environment setup detail - Remove duplicate content that was repeated in the second half of the file
- Rewrite Step 1 with uv→conda→venv priority table and detection commands; offer to install uv if missing; direct pip fallback if no tool available - Add inline docs links to MinIO, SSH, OSDF, and env setup sections in references - Add References section to init-commands.md with four upstream doc URLs - Update marketplace.json owner email to aalap.tripathy@hpe.com
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related Issues / Pull Requests
List all related issues and/or pull requests if there are any.
Description
Add /cmf skills support for coding agents.
Adds a skills/ directory with six skills installable via
npx skills add HewlettPackard/cmf --full-depth -y, compatiblewith Claude Code, GitHub Copilot, Cursor, Codex, OpenCode, and
any agentskills.io-compatible coding assistant.
What changes are proposed in this pull request?
examples in this repository need to be updated too).
Checklist:
uses Google-style formatting and any other formatting that is supported by mkdocs and plugins this project
uses.