Skip to content

Feature/add skills#345

Open
atripathy86 wants to merge 7 commits into
HewlettPackard:masterfrom
atripathy86:feature/add-skills
Open

Feature/add skills#345
atripathy86 wants to merge 7 commits into
HewlettPackard:masterfrom
atripathy86:feature/add-skills

Conversation

@atripathy86

Copy link
Copy Markdown
Collaborator

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, compatible
with Claude Code, GitHub Copilot, Cursor, Codex, OpenCode, and
any agentskills.io-compatible coding assistant.

What changes are proposed in this pull request?

  • Bug fix (non-breaking change which fixes an issue).
  • New feature (non-breaking change which adds functionality).
  • Breaking change (fix or feature that would cause existing functionality to not work as expected; for instance,
    examples in this repository need to be updated too).
  • This change requires a documentation update.

Checklist:

  • My code follows the style guidelines of this project (PEP-8 with Google-style docstrings).
  • My code modifies existing public API, or introduces new public API, and I updated or wrote docstrings that
    uses Google-style formatting and any other formatting that is supported by mkdocs and plugins this project
    uses.
  • I have commented my code.
  • My code requires documentation updates, and I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.

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
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.
Copilot AI review requested due to automatic review settings May 20, 2026 19:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 into mkdocs.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.py require CMF_BASE_URL / CMF2_BASE_URL / …, but this skill instructs users to set CMF_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 thread skills/cmf-init/SKILL.md Outdated
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
Comment thread skills/cmf-mcp/SKILL.md

```bash
cd mcp/
cp .env.example .env
Comment thread skills/README.md
To install a single skill instead of the full set:

```bash
npx skills add HewlettPackard/cmf/tree/main/skills/cmf-instrument -y
Comment thread docs/skills/index.md
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants