npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@duongkhuong/bpm-workflow

v1.4.5

Published

BPM workflow plugin for AI agents — skills, commands, and prompts for Bridge Project Managers in SPL Group

Downloads

2,905

Readme

BPM Workflow

Agent workflow skills for Bridge Project Managers in SPL Group — Redmine, specs, plans, test cases, and PMO summaries.

Skills

| Slash Command | Claude | OpenCode | Codex CLI | GitHub Copilot | Purpose | |---|---|---|---|---|---| | /bpm-redmine | /bpm-redmine | /bpm-redmine | $bpm:redmine | /bpm-redmine | Redmine issue CRUD with audience templates | | /bpm-spec | /bpm-spec | /bpm-spec | $bpm:spec | /bpm-spec | Customer spec drafting | | /bpm-plan | /bpm-plan | /bpm-plan | $bpm:plan | /bpm-plan | Feature development plans | | /bpm-testcase | /bpm-testcase | /bpm-testcase | $bpm:testcase | /bpm-testcase | Test case generation | | /bpm-pmo | /bpm-pmo | /bpm-pmo | $bpm:pmo | /bpm-pmo | PMO meeting summaries |

Install the Package

# Option A: Install globally (recommended)
npm install -g @duongkhuong/bpm-workflow
bpm-workflow --help

# Option B: Run via npx (no install needed)
npx @duongkhuong/bpm-workflow --help

# Option C: Clone repo
git clone https://github.com/vfa-khuongdv/bpm-workflow.git
cd bpm-workflow
./bpm --help

Note: install copies files (not symlinks). After npm update -g @duongkhuong/bpm-workflow, re-run setup to refresh your AI platforms' skills.

Secret Scanning

This repo uses Gitleaks to block commits that contain secrets.

# Install the local pre-commit hook
scripts/install-gitleaks-hook.sh

# Scan repository history manually
npm run secrets:scan

If Gitleaks is missing, install it first:

brew install gitleaks

Setup (Install to AI Platforms)

| Platform | Local | Global | Notes | |---|---|---|---|---| | Claude | .claude/skills/ + .claude/commands/ | ~/.claude/ | — | | OpenCode | .opencode/skills/ + .opencode/commands/ | ~/.config/opencode/ | — | | GitHub Copilot | .github/prompts/ | — | local only | | Codex CLI | .codex/skills/ | ~/.codex/skills/ | invoke via $name or /skills picker |

Install Commands by Platform

| Platform | Local | Global | |---|---|---| | Claude | bpm-workflow install -t claude -l local | bpm-workflow install -t claude -l global | | OpenCode | bpm-workflow install -t opencode -l local | bpm-workflow install -t opencode -l global | | Codex CLI | bpm-workflow install -t codex -l local | bpm-workflow install -t codex -l global -y | | All platforms | bpm-workflow install -t all -l local -y | — |

Quick Install

# Install to specific platform (project-local)
bpm-workflow install -t claude -l local                    # Claude
bpm-workflow install -t opencode -l local                  # OpenCode
bpm-workflow install -t codex -l local                     # Codex CLI (interactive)
bpm-workflow install -t codex -l local -y                  # Codex CLI (silent)
bpm-workflow install -t github                             # GitHub Copilot (interactive)

# Install to all platforms at once
bpm-workflow install -t all -l local -y

# Install globally
bpm-workflow install -t claude -l global                   # Claude globally
bpm-workflow install -t opencode -l global                 # OpenCode globally
bpm-workflow install -t codex -l global -y                 # Codex globally (silent)

# Check installation status
bpm-workflow status

# List available platforms
bpm-workflow list

Uninstall

# Remove from all platforms
bpm-workflow uninstall -t all -l local -y

# Remove from specific platforms
bpm-workflow uninstall -t claude,github -y                 # Remove from Claude + GitHub
bpm-workflow uninstall -t codex                             # Remove from Codex (interactive)

Prerequisite: Redmine MCP Server

For full Redmine workflow (create, update, read issues, log time), install the Redmine MCP server:

npm install -g @duongkhuong/mcp-redmine

Then configure it in your AI client's MCP settings.

OpenCode (~/.config/opencode/opencode.json):

{
  "mcp": {
    "@duongkhuong/mcp-redmine": {
      "type": "local",
      "command": ["npx", "-y", "@duongkhuong/mcp-redmine"],
      "enabled": true,
      "environment": {
        "REDMINE_URL": "$REDMINE_URL",
        "REDMINE_API_KEY": "$REDMINE_API_KEY",
        "REDMINE_USERNAME": "$REDMINE_USERNAME",
        "REDMINE_PASSWORD": "$REDMINE_PASSWORD"
      }
    }
  }
}

Claude Desktop / Claude Code (claude_desktop_config.json or .claude/mcp.json):

{
  "mcpServers": {
    "@duongkhuong/mcp-redmine": {
      "command": "npx",
      "args": ["-y", "@duongkhuong/mcp-redmine"],
      "env": {
        "REDMINE_URL": "$REDMINE_URL",
        "REDMINE_API_KEY": "$REDMINE_API_KEY",
        "REDMINE_USERNAME": "$REDMINE_USERNAME",
        "REDMINE_PASSWORD": "$REDMINE_PASSWORD"
      }
    }
  }
}

Codex CLI (~/.codex/config.toml):

[mcp_servers.duongkhuong-mcp-redmine]
command = "npx"
args = ["-y", "@duongkhuong/mcp-redmine"]

[mcp_servers.duongkhuong-mcp-redmine.env]
REDMINE_URL = "$REDMINE_URL"
REDMINE_API_KEY = "$REDMINE_API_KEY"
REDMINE_USERNAME = "$REDMINE_USERNAME"
REDMINE_PASSWORD = "$REDMINE_PASSWORD"

If installed globally, replace "command": "npx" / "args": [...] with "command": "@duongkhuong/mcp-redmine".

Tip: Alternatively, create a .env file with the 4 variables in your project root — the MCP server reads it automatically.

Without the MCP server, the Redmine skill will return copy-ready drafts instead of performing live operations.

Supported Platforms

| Platform | Skills | Commands / Prompts | Scope | |---|---|---|---| | Claude | .claude/skills/ (local) / ~/.claude/skills/ (global) | .claude/commands/ (local) / ~/.claude/commands/ (global) | local + global | | OpenCode | .opencode/skills/ (local) / ~/.config/opencode/skills/ (global) | .opencode/commands/ (local) / ~/.config/opencode/commands/ (global) | local + global | | GitHub Copilot | — | .github/prompts/ | local only | | Codex CLI | .codex/skills/ (local) / ~/.codex/skills/ (global) | — (invoke via $name in prompt or /skills picker) | local + global |

Structure

plugins/bpm/
├── skills/          # AI agent skill definitions (SKILL.md)
│   ├── redmine/
│   ├── spec/
│   ├── plan/
│   ├── testcase/
│   └── pmo/
├── commands/        # Platform-specific command wrappers
├── prompts/         # GitHub Copilot .prompt.md files
└── templates/       # Redmine audience templates

scripts/bpm-install.sh   # Cross-platform install script
bpm-workflow              # CLI entry point (via npx or global install)