@qq-radio/skills
v0.1.1
Published
CLI for installing qq-radio skills into Codex, Claude, and Cursor on Windows.
Maintainers
Readme
@qq-radio/skills
Install qq-radio skills into Codex, Claude, or Cursor on Windows.
Features
- Interactive installer: run
qq-radio-skills - Scriptable mode:
--tool,--target-dir,--yes,--dry-run - Doctor mode:
qq-radio-skills doctor - Idempotent overwrite for qq-radio-managed files only
skills/ + manifest.jsondriven skill management
Repository layout
- Skill source content lives in
skills/*.md - Install metadata lives in root
manifest.json - The manifest
sourcefield uses repo-root-relative paths such asskills/vue-api-rule.md - Promptfoo eval suites live in
evals/skills/<skill-id>
Local development
pnpm install
pnpm build
pnpm link --global
qq-radio-skills doctorBecause the package ships a root bin wrapper, local pnpm link also works after prepare.
Promptfoo evals
This repo includes a Promptfoo-based compliance eval pipeline for skill markdown files.
- Each skill gets its own suite under
evals/skills/<skill-id> - Case data lives in
evals/skills/<skill-id>/cases.json - Prompt templates live in
evals/skills/<skill-id>/prompts - Custom rule assertions live in
evals/assertions
Build the eval fixtures:
pnpm evals:buildRun the vue-api-rule suite with Promptfoo:
pnpm evals:vue-api-ruleRequired environment variables:
DASHSCOPE_API_KEY: DashScope API key used by the Promptfoo Alibaba providerDASHSCOPE_BASE_URL: compatible-mode endpoint, typicallyhttps://dashscope.aliyuncs.com/compatible-mode/v1DASHSCOPE_CHAT_MODEL: chat model id, for exampleqwen-plusDASHSCOPE_EMBEDDING_MODEL: not used by this skill compliance eval flow today
The eval flow is:
- Read the skill markdown from
skills/*.md - Expand suite cases into Promptfoo test cases
- Ask the model to generate code while following the skill
- Score each case with deterministic JavaScript assertions keyed by
API-RULE-xxx
PowerShell example:
$env:DASHSCOPE_API_KEY = "your-api-key"
$env:DASHSCOPE_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1"
$env:DASHSCOPE_CHAT_MODEL = "qwen-plus"
pnpm evals:vue-api-ruleWhen you add a new skill markdown file later, create a matching evals/skills/<skill-id>/suite.json and cases.json, then rerun pnpm evals:build.
Usage
qq-radio-skills
qq-radio-skills --tool codex
qq-radio-skills --tool claude --yes
qq-radio-skills --tool cursor --target-dir C:\Users\you\.cursor\rules --yes
qq-radio-skills --tool codex --dry-run
qq-radio-skills doctorDefault Windows target directories
codex:%USERPROFILE%\.codex\skillsclaude:%USERPROFILE%\.claude\skillscursor:%USERPROFILE%\.cursor\rules
--target-dir always takes precedence over inferred defaults.
Installed output
Codex:<targetDir>\<skillId>\SKILL.mdClaude:<targetDir>\<skillId>\SKILL.mdCursor:<targetDir>\<targetFileName>.mdc
Generated files include a qq-radio header so repeat installs can overwrite only qq-radio-managed outputs.
doctor and --dry-run use the same manifest and skill sources as real installs; no extra flags are required for the new layout.
Publishing
The package is ready for pnpm link and can later be published to npm by updating the registry configuration in your release workflow.
