From a5a87902432c5dfff0873747bb5f3437b3aec786 Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli Date: Fri, 14 Aug 2026 23:08:45 -0400 Subject: [PATCH 01/11] Add CDB Editor and Startlist Plugin - Introduced the CDB Editor plugin for Pro Cycling Manager, allowing users to explore and edit game databases (.cdb) and build race startlists. - Added plugin metadata in `plugin.json` with details about the plugin, author, and capabilities. - Created skills for database editing (`pcm-db-editor`) with comprehensive documentation on usage, constraints, and workflows. - Implemented a script (`open-cdb.sh`) to facilitate opening and converting .cdb files to SQLite for easier exploration. - Developed a startlist generation skill (`pcm-startlist`) to create and export race startlists in XML format, detailing the workflow for user interaction. - Included references for database constraints and schema to guide users in editing and querying the database effectively. --- .agents/plugins/marketplace.json | 20 +++++++++++++++ .claude-plugin/marketplace.json | 17 +++++++++++++ plugins/cdb-editor/.claude-plugin/plugin.json | 25 +++++++++++++++++++ .../cdb-editor/.codex-plugin}/plugin.json | 11 +++++--- .../cdb-editor/skills}/pcm-db-editor/SKILL.md | 0 .../references/database-constraints.md | 0 .../references/database-schema.md | 0 .../skills}/pcm-db-editor/scripts/open-cdb.sh | 0 .../cdb-editor/skills}/pcm-startlist/SKILL.md | 0 9 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 .agents/plugins/marketplace.json create mode 100644 .claude-plugin/marketplace.json create mode 100644 plugins/cdb-editor/.claude-plugin/plugin.json rename {.codex-plugin => plugins/cdb-editor/.codex-plugin}/plugin.json (83%) rename {skills => plugins/cdb-editor/skills}/pcm-db-editor/SKILL.md (100%) rename {skills => plugins/cdb-editor/skills}/pcm-db-editor/references/database-constraints.md (100%) rename {skills => plugins/cdb-editor/skills}/pcm-db-editor/references/database-schema.md (100%) rename {skills => plugins/cdb-editor/skills}/pcm-db-editor/scripts/open-cdb.sh (100%) rename {skills => plugins/cdb-editor/skills}/pcm-startlist/SKILL.md (100%) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..69bca47 --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "pcmstack", + "interface": { + "displayName": "PCMStack" + }, + "plugins": [ + { + "name": "cdb-editor", + "source": { + "source": "local", + "path": "./plugins/cdb-editor" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_USE" + }, + "category": "Developer Tools" + } + ] +} diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..02ab2f9 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json.schemastore.org/claude-code-marketplace.json", + "name": "pcmstack", + "description": "Community tooling for Pro Cycling Manager. Unofficial, not affiliated with Cyanide Studio or Nacon.", + "owner": { + "name": "PCMStack", + "url": "https://github.com/PCMStack" + }, + "plugins": [ + { + "name": "cdb-editor", + "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports.", + "category": "database", + "source": "./plugins/cdb-editor" + } + ] +} diff --git a/plugins/cdb-editor/.claude-plugin/plugin.json b/plugins/cdb-editor/.claude-plugin/plugin.json new file mode 100644 index 0000000..ab73570 --- /dev/null +++ b/plugins/cdb-editor/.claude-plugin/plugin.json @@ -0,0 +1,25 @@ +{ + "name": "cdb-editor", + "displayName": "CDB Editor", + "version": "0.1.0", + "description": "Community tooling for Pro Cycling Manager: explore and edit game databases (.cdb) and build race startlists. Unofficial, not affiliated with Cyanide Studio or Nacon.", + "author": { + "name": "PCMStack", + "url": "https://github.com/PCMStack" + }, + "homepage": "https://github.com/PCMStack/agent-skills", + "repository": "https://github.com/PCMStack/agent-skills", + "license": "MIT", + "keywords": [ + "pro-cycling-manager", + "pcm", + "cycling", + "cdb", + "sqlite", + "database", + "startlist", + "modding" + ], + "skills": "./skills/", + "mcpServers": "./.mcp.json" +} diff --git a/.codex-plugin/plugin.json b/plugins/cdb-editor/.codex-plugin/plugin.json similarity index 83% rename from .codex-plugin/plugin.json rename to plugins/cdb-editor/.codex-plugin/plugin.json index 14ee99e..eb02b80 100644 --- a/.codex-plugin/plugin.json +++ b/plugins/cdb-editor/.codex-plugin/plugin.json @@ -1,5 +1,5 @@ { - "name": "pcmstack", + "name": "cdb-editor", "version": "0.1.0", "description": "Community tooling for Pro Cycling Manager: explore and edit game databases (.cdb) and build race startlists. Unofficial, not affiliated with Cyanide Studio or Nacon.", "author": { @@ -22,7 +22,7 @@ "skills": "./skills/", "mcpServers": "./.mcp.json", "interface": { - "displayName": "PCMStack", + "displayName": "CDB Editor", "shortDescription": "Edit Pro Cycling Manager databases and build race startlists", "longDescription": "Community tooling for Pro Cycling Manager. Open and edit the game database (.cdb) — rider ratings, team rosters, contracts, races — via the pcm-mcp MCP server or a lossless CDB to SQLite conversion, and compose race startlists exported as the .xml file the game imports. Unofficial project, not affiliated with or endorsed by Cyanide Studio or Nacon.", "developerName": "PCMStack", @@ -33,7 +33,12 @@ "Write" ], "websiteURL": "https://github.com/PCMStack/agent-skills", - "defaultPrompt": "Explore or edit a Pro Cycling Manager database, or build a startlist for a race", + "defaultPrompt": [ + "List my Pro Cycling Manager 2025 saves", + "Who's the best climber in my team?", + "Which riders are out of contract next year?", + "Build the startlist for the Tour de France" + ], "brandColor": "#ffd21e", "composerIcon": "./assets/logo.svg", "logo": "./assets/app-icon.png", diff --git a/skills/pcm-db-editor/SKILL.md b/plugins/cdb-editor/skills/pcm-db-editor/SKILL.md similarity index 100% rename from skills/pcm-db-editor/SKILL.md rename to plugins/cdb-editor/skills/pcm-db-editor/SKILL.md diff --git a/skills/pcm-db-editor/references/database-constraints.md b/plugins/cdb-editor/skills/pcm-db-editor/references/database-constraints.md similarity index 100% rename from skills/pcm-db-editor/references/database-constraints.md rename to plugins/cdb-editor/skills/pcm-db-editor/references/database-constraints.md diff --git a/skills/pcm-db-editor/references/database-schema.md b/plugins/cdb-editor/skills/pcm-db-editor/references/database-schema.md similarity index 100% rename from skills/pcm-db-editor/references/database-schema.md rename to plugins/cdb-editor/skills/pcm-db-editor/references/database-schema.md diff --git a/skills/pcm-db-editor/scripts/open-cdb.sh b/plugins/cdb-editor/skills/pcm-db-editor/scripts/open-cdb.sh similarity index 100% rename from skills/pcm-db-editor/scripts/open-cdb.sh rename to plugins/cdb-editor/skills/pcm-db-editor/scripts/open-cdb.sh diff --git a/skills/pcm-startlist/SKILL.md b/plugins/cdb-editor/skills/pcm-startlist/SKILL.md similarity index 100% rename from skills/pcm-startlist/SKILL.md rename to plugins/cdb-editor/skills/pcm-startlist/SKILL.md From 7af2d55f17c4cb075d321d9e52b1b78afd0fe68c Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli Date: Fri, 14 Aug 2026 23:12:49 -0400 Subject: [PATCH 02/11] feat: add MCP configuration for CDB Editor plugin --- .mcp.json => plugins/cdb-editor/.mcp.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .mcp.json => plugins/cdb-editor/.mcp.json (100%) diff --git a/.mcp.json b/plugins/cdb-editor/.mcp.json similarity index 100% rename from .mcp.json rename to plugins/cdb-editor/.mcp.json From d55f95fb084fc64e9bb9e8aead4d6fd87df86ba4 Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli Date: Fri, 14 Aug 2026 23:43:31 -0400 Subject: [PATCH 03/11] feat: update cdb-editor plugin category and add assets --- .claude-plugin/marketplace.json | 2 +- .claude/skills/create-agentsmd/SKILL.md | 253 ++++++++++++++++++ .../cdb-editor/assets}/app-icon.png | Bin .../cdb-editor/assets}/logo.svg | 0 4 files changed, 254 insertions(+), 1 deletion(-) create mode 100644 .claude/skills/create-agentsmd/SKILL.md rename {assets => plugins/cdb-editor/assets}/app-icon.png (100%) rename {assets => plugins/cdb-editor/assets}/logo.svg (100%) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 02ab2f9..4f44139 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -10,7 +10,7 @@ { "name": "cdb-editor", "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports.", - "category": "database", + "category": "Developer Tools", "source": "./plugins/cdb-editor" } ] diff --git a/.claude/skills/create-agentsmd/SKILL.md b/.claude/skills/create-agentsmd/SKILL.md new file mode 100644 index 0000000..9fa1bf6 --- /dev/null +++ b/.claude/skills/create-agentsmd/SKILL.md @@ -0,0 +1,253 @@ +--- +description: Prompt for generating an AGENTS.md file for a repository +metadata: + github-path: skills/create-agentsmd + github-ref: refs/heads/main + github-repo: https://github.com/github/awesome-copilot + github-tree-sha: 290ab8ae85ba8695e9bceb674e74177e76f8633d +name: create-agentsmd +--- +# Create high‑quality AGENTS.md file + +You are a code agent. Your task is to create a complete, accurate AGENTS.md at the root of this repository that follows the public guidance at https://agents.md/. + +AGENTS.md is an open format designed to provide coding agents with the context and instructions they need to work effectively on a project. + +## What is AGENTS.md? + +AGENTS.md is a Markdown file that serves as a "README for agents" - a dedicated, predictable place to provide context and instructions to help AI coding agents work on your project. It complements README.md by containing detailed technical context that coding agents need but might clutter a human-focused README. + +## Key Principles + +- **Agent-focused**: Contains detailed technical instructions for automated tools +- **Complements README.md**: Doesn't replace human documentation but adds agent-specific context +- **Standardized location**: Placed at repository root (or subproject roots for monorepos) +- **Open format**: Uses standard Markdown with flexible structure +- **Ecosystem compatibility**: Works across 20+ different AI coding tools and agents + +## File Structure and Content Guidelines + +### 1. Required Setup + +- Create the file as `AGENTS.md` in the repository root +- Use standard Markdown formatting +- No required fields - flexible structure based on project needs + +### 2. Essential Sections to Include + +#### Project Overview + +- Brief description of what the project does +- Architecture overview if complex +- Key technologies and frameworks used + +#### Setup Commands + +- Installation instructions +- Environment setup steps +- Dependency management commands +- Database setup if applicable + +#### Development Workflow + +- How to start development server +- Build commands +- Watch/hot-reload setup +- Package manager specifics (npm, pnpm, yarn, etc.) + +#### Testing Instructions + +- How to run tests (unit, integration, e2e) +- Test file locations and naming conventions +- Coverage requirements +- Specific test patterns or frameworks used +- How to run subset of tests or focus on specific areas + +#### Code Style Guidelines + +- Language-specific conventions +- Linting and formatting rules +- File organization patterns +- Naming conventions +- Import/export patterns + +#### Build and Deployment + +- Build commands and outputs +- Environment configurations +- Deployment steps and requirements +- CI/CD pipeline information + +### 3. Optional but Recommended Sections + +#### Security Considerations + +- Security testing requirements +- Secrets management +- Authentication patterns +- Permission models + +#### Monorepo Instructions (if applicable) + +- How to work with multiple packages +- Cross-package dependencies +- Selective building/testing +- Package-specific commands + +#### Pull Request Guidelines + +- Title format requirements +- Required checks before submission +- Review process +- Commit message conventions + +#### Debugging and Troubleshooting + +- Common issues and solutions +- Logging patterns +- Debug configuration +- Performance considerations + +## Example Template + +Use this as a starting template and customize based on the specific project: + +```markdown +# AGENTS.md + +## Project Overview + +[Brief description of the project, its purpose, and key technologies] + +## Setup Commands + +- Install dependencies: `[package manager] install` +- Start development server: `[command]` +- Build for production: `[command]` + +## Development Workflow + +- [Development server startup instructions] +- [Hot reload/watch mode information] +- [Environment variable setup] + +## Testing Instructions + +- Run all tests: `[command]` +- Run unit tests: `[command]` +- Run integration tests: `[command]` +- Test coverage: `[command]` +- [Specific testing patterns or requirements] + +## Code Style + +- [Language and framework conventions] +- [Linting rules and commands] +- [Formatting requirements] +- [File organization patterns] + +## Build and Deployment + +- [Build process details] +- [Output directories] +- [Environment-specific builds] +- [Deployment commands] + +## Pull Request Guidelines + +- Title format: [component] Brief description +- Required checks: `[lint command]`, `[test command]` +- [Review requirements] + +## Additional Notes + +- [Any project-specific context] +- [Common gotchas or troubleshooting tips] +- [Performance considerations] +``` + +## Working Example from agents.md + +Here's a real example from the agents.md website: + +```markdown +# Sample AGENTS.md file + +## Dev environment tips + +- Use `pnpm dlx turbo run where ` to jump to a package instead of scanning with `ls`. +- Run `pnpm install --filter ` to add the package to your workspace so Vite, ESLint, and TypeScript can see it. +- Use `pnpm create vite@latest -- --template react-ts` to spin up a new React + Vite package with TypeScript checks ready. +- Check the name field inside each package's package.json to confirm the right name—skip the top-level one. + +## Testing instructions + +- Find the CI plan in the .github/workflows folder. +- Run `pnpm turbo run test --filter ` to run every check defined for that package. +- From the package root you can just call `pnpm test`. The commit should pass all tests before you merge. +- To focus on one step, add the Vitest pattern: `pnpm vitest run -t ""`. +- Fix any test or type errors until the whole suite is green. +- After moving files or changing imports, run `pnpm lint --filter ` to be sure ESLint and TypeScript rules still pass. +- Add or update tests for the code you change, even if nobody asked. + +## PR instructions + +- Title format: [] +- Always run `pnpm lint` and `pnpm test` before committing. +``` + +## Implementation Steps + +1. **Analyze the project structure** to understand: + + - Programming languages and frameworks used + - Package managers and build tools + - Testing frameworks + - Project architecture (monorepo, single package, etc.) + +2. **Identify key workflows** by examining: + + - package.json scripts + - Makefile or other build files + - CI/CD configuration files + - Documentation files + +3. **Create comprehensive sections** covering: + + - All essential setup and development commands + - Testing strategies and commands + - Code style and conventions + - Build and deployment processes + +4. **Include specific, actionable commands** that agents can execute directly + +5. **Test the instructions** by ensuring all commands work as documented + +6. **Keep it focused** on what agents need to know, not general project information + +## Best Practices + +- **Be specific**: Include exact commands, not vague descriptions +- **Use code blocks**: Wrap commands in backticks for clarity +- **Include context**: Explain why certain steps are needed +- **Stay current**: Update as the project evolves +- **Test commands**: Ensure all listed commands actually work +- **Consider nested files**: For monorepos, create AGENTS.md files in subprojects as needed + +## Monorepo Considerations + +For large monorepos: + +- Place a main AGENTS.md at the repository root +- Create additional AGENTS.md files in subproject directories +- The closest AGENTS.md file takes precedence for any given location +- Include navigation tips between packages/projects + +## Final Notes + +- AGENTS.md works with 20+ AI coding tools including Cursor, Aider, Gemini CLI, and many others +- The format is intentionally flexible - adapt it to your project's needs +- Focus on actionable instructions that help agents understand and work with your codebase +- This is living documentation - update it as your project evolves + +When creating the AGENTS.md file, prioritize clarity, completeness, and actionability. The goal is to give any coding agent enough context to effectively contribute to the project without requiring additional human guidance. diff --git a/assets/app-icon.png b/plugins/cdb-editor/assets/app-icon.png similarity index 100% rename from assets/app-icon.png rename to plugins/cdb-editor/assets/app-icon.png diff --git a/assets/logo.svg b/plugins/cdb-editor/assets/logo.svg similarity index 100% rename from assets/logo.svg rename to plugins/cdb-editor/assets/logo.svg From eeb1e0fcbf5950de79b8bc9841571102ebce0249 Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Fri, 14 Aug 2026 23:50:55 -0400 Subject: [PATCH 04/11] feat: update cdb-editor plugin descriptions for clarity and consistency --- .claude-plugin/marketplace.json | 2 +- plugins/cdb-editor/.claude-plugin/plugin.json | 2 +- plugins/cdb-editor/.codex-plugin/plugin.json | 5 ++--- plugins/cdb-editor/.mcp.json | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 4f44139..eb1cca3 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -9,7 +9,7 @@ "plugins": [ { "name": "cdb-editor", - "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports.", + "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports. Unofficial, not affiliated with Cyanide Studio or Nacon.", "category": "Developer Tools", "source": "./plugins/cdb-editor" } diff --git a/plugins/cdb-editor/.claude-plugin/plugin.json b/plugins/cdb-editor/.claude-plugin/plugin.json index ab73570..936844f 100644 --- a/plugins/cdb-editor/.claude-plugin/plugin.json +++ b/plugins/cdb-editor/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "name": "cdb-editor", "displayName": "CDB Editor", "version": "0.1.0", - "description": "Community tooling for Pro Cycling Manager: explore and edit game databases (.cdb) and build race startlists. Unofficial, not affiliated with Cyanide Studio or Nacon.", + "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports. Unofficial, not affiliated with Cyanide Studio or Nacon.", "author": { "name": "PCMStack", "url": "https://github.com/PCMStack" diff --git a/plugins/cdb-editor/.codex-plugin/plugin.json b/plugins/cdb-editor/.codex-plugin/plugin.json index eb02b80..4830bb8 100644 --- a/plugins/cdb-editor/.codex-plugin/plugin.json +++ b/plugins/cdb-editor/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "cdb-editor", "version": "0.1.0", - "description": "Community tooling for Pro Cycling Manager: explore and edit game databases (.cdb) and build race startlists. Unofficial, not affiliated with Cyanide Studio or Nacon.", + "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports. Unofficial, not affiliated with Cyanide Studio or Nacon.", "author": { "name": "PCMStack", "url": "https://github.com/PCMStack" @@ -41,7 +41,6 @@ ], "brandColor": "#ffd21e", "composerIcon": "./assets/logo.svg", - "logo": "./assets/app-icon.png", - "screenshots": [] + "logo": "./assets/app-icon.png" } } diff --git a/plugins/cdb-editor/.mcp.json b/plugins/cdb-editor/.mcp.json index 02431c0..39b8bd0 100644 --- a/plugins/cdb-editor/.mcp.json +++ b/plugins/cdb-editor/.mcp.json @@ -5,4 +5,4 @@ "args": ["-y", "pcm-mcp"] } } -} \ No newline at end of file +} From ee10671138a6aa21efd686f966140407bf8070ef Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Fri, 14 Aug 2026 23:51:41 -0400 Subject: [PATCH 05/11] docs: document plugin manifests that must be kept in sync Plugin metadata is duplicated across four manifests, one per agent format, with nothing validating them against each other. List them in AGENTS.md so a name/description/version change updates all of them. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --- AGENTS.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 23cd285..1813841 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -28,6 +28,20 @@ skills/ lib/ # Optional: shared code for scripts ``` +### Plugin Manifests + +Plugin metadata is duplicated across several manifests, one per agent format. When you change +a plugin's name, description, version or category, update **all** of these together — nothing +validates them against each other: + +- `.claude-plugin/marketplace.json` — marketplace entry (Claude) +- `.agents/plugins/marketplace.json` — marketplace entry (Agents format) +- `plugins/{plugin}/.claude-plugin/plugin.json` — plugin manifest (Claude) +- `plugins/{plugin}/.codex-plugin/plugin.json` — plugin manifest (Codex), including the + longer `interface.longDescription` + +The plugin `description` is kept byte-identical across the manifests that carry it. + ### Naming Conventions - **Skill directory**: `kebab-case` (e.g., `pcm-db-editor`) From fb3c909e10cecee5dbc1651171409c8df4a1efdd Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Fri, 14 Aug 2026 23:52:43 -0400 Subject: [PATCH 06/11] feat: update default prompt for CDB Editor plugin to remove year specification --- plugins/cdb-editor/.codex-plugin/plugin.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cdb-editor/.codex-plugin/plugin.json b/plugins/cdb-editor/.codex-plugin/plugin.json index 4830bb8..6febcfb 100644 --- a/plugins/cdb-editor/.codex-plugin/plugin.json +++ b/plugins/cdb-editor/.codex-plugin/plugin.json @@ -34,7 +34,7 @@ ], "websiteURL": "https://github.com/PCMStack/agent-skills", "defaultPrompt": [ - "List my Pro Cycling Manager 2025 saves", + "List my Pro Cycling Manager saves", "Who's the best climber in my team?", "Which riders are out of contract next year?", "Build the startlist for the Tour de France" From d88f99fb733dd38653be05eb4fa5dd4e1d8d0047 Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Fri, 14 Aug 2026 23:53:08 -0400 Subject: [PATCH 07/11] Revert "docs: document plugin manifests that must be kept in sync" This reverts commit ee10671138a6aa21efd686f966140407bf8070ef. --- AGENTS.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 1813841..23cd285 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -28,20 +28,6 @@ skills/ lib/ # Optional: shared code for scripts ``` -### Plugin Manifests - -Plugin metadata is duplicated across several manifests, one per agent format. When you change -a plugin's name, description, version or category, update **all** of these together — nothing -validates them against each other: - -- `.claude-plugin/marketplace.json` — marketplace entry (Claude) -- `.agents/plugins/marketplace.json` — marketplace entry (Agents format) -- `plugins/{plugin}/.claude-plugin/plugin.json` — plugin manifest (Claude) -- `plugins/{plugin}/.codex-plugin/plugin.json` — plugin manifest (Codex), including the - longer `interface.longDescription` - -The plugin `description` is kept byte-identical across the manifests that carry it. - ### Naming Conventions - **Skill directory**: `kebab-case` (e.g., `pcm-db-editor`) From 5c9b0b54086be442f9736a9890f4885d4c0d3cd5 Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Sat, 15 Aug 2026 00:02:48 -0400 Subject: [PATCH 08/11] feat: remove deprecated SKILL.md file for agent creation --- .claude/skills/create-agentsmd/SKILL.md | 253 ------------------------ 1 file changed, 253 deletions(-) delete mode 100644 .claude/skills/create-agentsmd/SKILL.md diff --git a/.claude/skills/create-agentsmd/SKILL.md b/.claude/skills/create-agentsmd/SKILL.md deleted file mode 100644 index 9fa1bf6..0000000 --- a/.claude/skills/create-agentsmd/SKILL.md +++ /dev/null @@ -1,253 +0,0 @@ ---- -description: Prompt for generating an AGENTS.md file for a repository -metadata: - github-path: skills/create-agentsmd - github-ref: refs/heads/main - github-repo: https://github.com/github/awesome-copilot - github-tree-sha: 290ab8ae85ba8695e9bceb674e74177e76f8633d -name: create-agentsmd ---- -# Create high‑quality AGENTS.md file - -You are a code agent. Your task is to create a complete, accurate AGENTS.md at the root of this repository that follows the public guidance at https://agents.md/. - -AGENTS.md is an open format designed to provide coding agents with the context and instructions they need to work effectively on a project. - -## What is AGENTS.md? - -AGENTS.md is a Markdown file that serves as a "README for agents" - a dedicated, predictable place to provide context and instructions to help AI coding agents work on your project. It complements README.md by containing detailed technical context that coding agents need but might clutter a human-focused README. - -## Key Principles - -- **Agent-focused**: Contains detailed technical instructions for automated tools -- **Complements README.md**: Doesn't replace human documentation but adds agent-specific context -- **Standardized location**: Placed at repository root (or subproject roots for monorepos) -- **Open format**: Uses standard Markdown with flexible structure -- **Ecosystem compatibility**: Works across 20+ different AI coding tools and agents - -## File Structure and Content Guidelines - -### 1. Required Setup - -- Create the file as `AGENTS.md` in the repository root -- Use standard Markdown formatting -- No required fields - flexible structure based on project needs - -### 2. Essential Sections to Include - -#### Project Overview - -- Brief description of what the project does -- Architecture overview if complex -- Key technologies and frameworks used - -#### Setup Commands - -- Installation instructions -- Environment setup steps -- Dependency management commands -- Database setup if applicable - -#### Development Workflow - -- How to start development server -- Build commands -- Watch/hot-reload setup -- Package manager specifics (npm, pnpm, yarn, etc.) - -#### Testing Instructions - -- How to run tests (unit, integration, e2e) -- Test file locations and naming conventions -- Coverage requirements -- Specific test patterns or frameworks used -- How to run subset of tests or focus on specific areas - -#### Code Style Guidelines - -- Language-specific conventions -- Linting and formatting rules -- File organization patterns -- Naming conventions -- Import/export patterns - -#### Build and Deployment - -- Build commands and outputs -- Environment configurations -- Deployment steps and requirements -- CI/CD pipeline information - -### 3. Optional but Recommended Sections - -#### Security Considerations - -- Security testing requirements -- Secrets management -- Authentication patterns -- Permission models - -#### Monorepo Instructions (if applicable) - -- How to work with multiple packages -- Cross-package dependencies -- Selective building/testing -- Package-specific commands - -#### Pull Request Guidelines - -- Title format requirements -- Required checks before submission -- Review process -- Commit message conventions - -#### Debugging and Troubleshooting - -- Common issues and solutions -- Logging patterns -- Debug configuration -- Performance considerations - -## Example Template - -Use this as a starting template and customize based on the specific project: - -```markdown -# AGENTS.md - -## Project Overview - -[Brief description of the project, its purpose, and key technologies] - -## Setup Commands - -- Install dependencies: `[package manager] install` -- Start development server: `[command]` -- Build for production: `[command]` - -## Development Workflow - -- [Development server startup instructions] -- [Hot reload/watch mode information] -- [Environment variable setup] - -## Testing Instructions - -- Run all tests: `[command]` -- Run unit tests: `[command]` -- Run integration tests: `[command]` -- Test coverage: `[command]` -- [Specific testing patterns or requirements] - -## Code Style - -- [Language and framework conventions] -- [Linting rules and commands] -- [Formatting requirements] -- [File organization patterns] - -## Build and Deployment - -- [Build process details] -- [Output directories] -- [Environment-specific builds] -- [Deployment commands] - -## Pull Request Guidelines - -- Title format: [component] Brief description -- Required checks: `[lint command]`, `[test command]` -- [Review requirements] - -## Additional Notes - -- [Any project-specific context] -- [Common gotchas or troubleshooting tips] -- [Performance considerations] -``` - -## Working Example from agents.md - -Here's a real example from the agents.md website: - -```markdown -# Sample AGENTS.md file - -## Dev environment tips - -- Use `pnpm dlx turbo run where <project_name>` to jump to a package instead of scanning with `ls`. -- Run `pnpm install --filter <project_name>` to add the package to your workspace so Vite, ESLint, and TypeScript can see it. -- Use `pnpm create vite@latest <project_name> -- --template react-ts` to spin up a new React + Vite package with TypeScript checks ready. -- Check the name field inside each package's package.json to confirm the right name—skip the top-level one. - -## Testing instructions - -- Find the CI plan in the .github/workflows folder. -- Run `pnpm turbo run test --filter <project_name>` to run every check defined for that package. -- From the package root you can just call `pnpm test`. The commit should pass all tests before you merge. -- To focus on one step, add the Vitest pattern: `pnpm vitest run -t "<test name>"`. -- Fix any test or type errors until the whole suite is green. -- After moving files or changing imports, run `pnpm lint --filter <project_name>` to be sure ESLint and TypeScript rules still pass. -- Add or update tests for the code you change, even if nobody asked. - -## PR instructions - -- Title format: [<project_name>] <Title> -- Always run `pnpm lint` and `pnpm test` before committing. -``` - -## Implementation Steps - -1. **Analyze the project structure** to understand: - - - Programming languages and frameworks used - - Package managers and build tools - - Testing frameworks - - Project architecture (monorepo, single package, etc.) - -2. **Identify key workflows** by examining: - - - package.json scripts - - Makefile or other build files - - CI/CD configuration files - - Documentation files - -3. **Create comprehensive sections** covering: - - - All essential setup and development commands - - Testing strategies and commands - - Code style and conventions - - Build and deployment processes - -4. **Include specific, actionable commands** that agents can execute directly - -5. **Test the instructions** by ensuring all commands work as documented - -6. **Keep it focused** on what agents need to know, not general project information - -## Best Practices - -- **Be specific**: Include exact commands, not vague descriptions -- **Use code blocks**: Wrap commands in backticks for clarity -- **Include context**: Explain why certain steps are needed -- **Stay current**: Update as the project evolves -- **Test commands**: Ensure all listed commands actually work -- **Consider nested files**: For monorepos, create AGENTS.md files in subprojects as needed - -## Monorepo Considerations - -For large monorepos: - -- Place a main AGENTS.md at the repository root -- Create additional AGENTS.md files in subproject directories -- The closest AGENTS.md file takes precedence for any given location -- Include navigation tips between packages/projects - -## Final Notes - -- AGENTS.md works with 20+ AI coding tools including Cursor, Aider, Gemini CLI, and many others -- The format is intentionally flexible - adapt it to your project's needs -- Focus on actionable instructions that help agents understand and work with your codebase -- This is living documentation - update it as your project evolves - -When creating the AGENTS.md file, prioritize clarity, completeness, and actionability. The goal is to give any coding agent enough context to effectively contribute to the project without requiring additional human guidance. From 1ef12c5006f5816f176f94f5d3f942a80e8e29d1 Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Sat, 15 Aug 2026 00:07:59 -0400 Subject: [PATCH 09/11] feat: remove outdated default prompt from CDB Editor plugin --- plugins/cdb-editor/.codex-plugin/plugin.json | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/cdb-editor/.codex-plugin/plugin.json b/plugins/cdb-editor/.codex-plugin/plugin.json index 6febcfb..8fe8f04 100644 --- a/plugins/cdb-editor/.codex-plugin/plugin.json +++ b/plugins/cdb-editor/.codex-plugin/plugin.json @@ -36,7 +36,6 @@ "defaultPrompt": [ "List my Pro Cycling Manager saves", "Who's the best climber in my team?", - "Which riders are out of contract next year?", "Build the startlist for the Tour de France" ], "brandColor": "#ffd21e", From 14454c3762b2619aca0bf1ce9ba2dc0e43d40c8a Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Sat, 15 Aug 2026 00:30:12 -0400 Subject: [PATCH 10/11] Add PCM database editor and startlist generation skills --- .agents/plugins/marketplace.json | 4 ++-- .claude-plugin/marketplace.json | 4 ++-- .../{cdb-editor => pcm}/.claude-plugin/plugin.json | 4 ++-- .../{cdb-editor => pcm}/.codex-plugin/plugin.json | 2 +- plugins/{cdb-editor => pcm}/.mcp.json | 0 plugins/{cdb-editor => pcm}/assets/app-icon.png | Bin plugins/{cdb-editor => pcm}/assets/logo.svg | 0 .../skills/pcm-db-editor/SKILL.md | 0 .../references/database-constraints.md | 0 .../pcm-db-editor/references/database-schema.md | 0 .../skills/pcm-db-editor/scripts/open-cdb.sh | 0 .../skills/pcm-startlist/SKILL.md | 0 12 files changed, 7 insertions(+), 7 deletions(-) rename plugins/{cdb-editor => pcm}/.claude-plugin/plugin.json (92%) rename plugins/{cdb-editor => pcm}/.codex-plugin/plugin.json (98%) rename plugins/{cdb-editor => pcm}/.mcp.json (100%) rename plugins/{cdb-editor => pcm}/assets/app-icon.png (100%) rename plugins/{cdb-editor => pcm}/assets/logo.svg (100%) rename plugins/{cdb-editor => pcm}/skills/pcm-db-editor/SKILL.md (100%) rename plugins/{cdb-editor => pcm}/skills/pcm-db-editor/references/database-constraints.md (100%) rename plugins/{cdb-editor => pcm}/skills/pcm-db-editor/references/database-schema.md (100%) rename plugins/{cdb-editor => pcm}/skills/pcm-db-editor/scripts/open-cdb.sh (100%) rename plugins/{cdb-editor => pcm}/skills/pcm-startlist/SKILL.md (100%) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 69bca47..899477a 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -5,10 +5,10 @@ }, "plugins": [ { - "name": "cdb-editor", + "name": "pcm", "source": { "source": "local", - "path": "./plugins/cdb-editor" + "path": "./plugins/pcm" }, "policy": { "installation": "AVAILABLE", diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index eb1cca3..2a6b63b 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -8,10 +8,10 @@ }, "plugins": [ { - "name": "cdb-editor", + "name": "pcm", "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports. Unofficial, not affiliated with Cyanide Studio or Nacon.", "category": "Developer Tools", - "source": "./plugins/cdb-editor" + "source": "./plugins/pcm" } ] } diff --git a/plugins/cdb-editor/.claude-plugin/plugin.json b/plugins/pcm/.claude-plugin/plugin.json similarity index 92% rename from plugins/cdb-editor/.claude-plugin/plugin.json rename to plugins/pcm/.claude-plugin/plugin.json index 936844f..f3a2c62 100644 --- a/plugins/cdb-editor/.claude-plugin/plugin.json +++ b/plugins/pcm/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { - "name": "cdb-editor", - "displayName": "CDB Editor", + "name": "pcm", + "displayName": "PCM", "version": "0.1.0", "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports. Unofficial, not affiliated with Cyanide Studio or Nacon.", "author": { diff --git a/plugins/cdb-editor/.codex-plugin/plugin.json b/plugins/pcm/.codex-plugin/plugin.json similarity index 98% rename from plugins/cdb-editor/.codex-plugin/plugin.json rename to plugins/pcm/.codex-plugin/plugin.json index 8fe8f04..e82af03 100644 --- a/plugins/cdb-editor/.codex-plugin/plugin.json +++ b/plugins/pcm/.codex-plugin/plugin.json @@ -1,5 +1,5 @@ { - "name": "cdb-editor", + "name": "pcm", "version": "0.1.0", "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports. Unofficial, not affiliated with Cyanide Studio or Nacon.", "author": { diff --git a/plugins/cdb-editor/.mcp.json b/plugins/pcm/.mcp.json similarity index 100% rename from plugins/cdb-editor/.mcp.json rename to plugins/pcm/.mcp.json diff --git a/plugins/cdb-editor/assets/app-icon.png b/plugins/pcm/assets/app-icon.png similarity index 100% rename from plugins/cdb-editor/assets/app-icon.png rename to plugins/pcm/assets/app-icon.png diff --git a/plugins/cdb-editor/assets/logo.svg b/plugins/pcm/assets/logo.svg similarity index 100% rename from plugins/cdb-editor/assets/logo.svg rename to plugins/pcm/assets/logo.svg diff --git a/plugins/cdb-editor/skills/pcm-db-editor/SKILL.md b/plugins/pcm/skills/pcm-db-editor/SKILL.md similarity index 100% rename from plugins/cdb-editor/skills/pcm-db-editor/SKILL.md rename to plugins/pcm/skills/pcm-db-editor/SKILL.md diff --git a/plugins/cdb-editor/skills/pcm-db-editor/references/database-constraints.md b/plugins/pcm/skills/pcm-db-editor/references/database-constraints.md similarity index 100% rename from plugins/cdb-editor/skills/pcm-db-editor/references/database-constraints.md rename to plugins/pcm/skills/pcm-db-editor/references/database-constraints.md diff --git a/plugins/cdb-editor/skills/pcm-db-editor/references/database-schema.md b/plugins/pcm/skills/pcm-db-editor/references/database-schema.md similarity index 100% rename from plugins/cdb-editor/skills/pcm-db-editor/references/database-schema.md rename to plugins/pcm/skills/pcm-db-editor/references/database-schema.md diff --git a/plugins/cdb-editor/skills/pcm-db-editor/scripts/open-cdb.sh b/plugins/pcm/skills/pcm-db-editor/scripts/open-cdb.sh similarity index 100% rename from plugins/cdb-editor/skills/pcm-db-editor/scripts/open-cdb.sh rename to plugins/pcm/skills/pcm-db-editor/scripts/open-cdb.sh diff --git a/plugins/cdb-editor/skills/pcm-startlist/SKILL.md b/plugins/pcm/skills/pcm-startlist/SKILL.md similarity index 100% rename from plugins/cdb-editor/skills/pcm-startlist/SKILL.md rename to plugins/pcm/skills/pcm-startlist/SKILL.md From 7d7bb6256172564b0ab0d993101c3eaa7291b3a0 Mon Sep 17 00:00:00 2001 From: Mathieu Picciolli <mathieu.picciolli@gmail.com> Date: Sat, 15 Aug 2026 00:35:20 -0400 Subject: [PATCH 11/11] feat: enhance PCM plugin with updated display names and new database scripts --- .agents/plugins/marketplace.json | 3 +++ AGENTS.md | 2 +- plugins/pcm/.claude-plugin/plugin.json | 2 +- plugins/pcm/skills/{pcm-db-editor => pcm-database}/SKILL.md | 2 +- .../references/database-constraints.md | 0 .../references/database-schema.md | 0 .../skills/{pcm-db-editor => pcm-database}/scripts/open-cdb.sh | 0 7 files changed, 6 insertions(+), 3 deletions(-) rename plugins/pcm/skills/{pcm-db-editor => pcm-database}/SKILL.md (99%) rename plugins/pcm/skills/{pcm-db-editor => pcm-database}/references/database-constraints.md (100%) rename plugins/pcm/skills/{pcm-db-editor => pcm-database}/references/database-schema.md (100%) rename plugins/pcm/skills/{pcm-db-editor => pcm-database}/scripts/open-cdb.sh (100%) diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json index 899477a..1cae473 100644 --- a/.agents/plugins/marketplace.json +++ b/.agents/plugins/marketplace.json @@ -6,6 +6,9 @@ "plugins": [ { "name": "pcm", + "interface": { + "displayName": "Pro Cycling Manager" + }, "source": { "source": "local", "path": "./plugins/pcm" diff --git a/AGENTS.md b/AGENTS.md index 23cd285..794f732 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,6 +30,6 @@ skills/ ### Naming Conventions -- **Skill directory**: `kebab-case` (e.g., `pcm-db-editor`) +- **Skill directory**: `kebab-case` (e.g., `pcm-database`) - **SKILL.md**: Always uppercase, always this exact filename - **Scripts**: `kebab-case.sh` or `kebab-case.mjs` (e.g., `open-cdb.sh`) diff --git a/plugins/pcm/.claude-plugin/plugin.json b/plugins/pcm/.claude-plugin/plugin.json index f3a2c62..7ff67c0 100644 --- a/plugins/pcm/.claude-plugin/plugin.json +++ b/plugins/pcm/.claude-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "pcm", - "displayName": "PCM", + "displayName": "Pro Cycling Manager", "version": "0.1.0", "description": "Explore and edit Pro Cycling Manager game databases (.cdb) — rider ratings, team rosters, contracts, races — and build race startlists exported as the .xml file the game imports. Unofficial, not affiliated with Cyanide Studio or Nacon.", "author": { diff --git a/plugins/pcm/skills/pcm-db-editor/SKILL.md b/plugins/pcm/skills/pcm-database/SKILL.md similarity index 99% rename from plugins/pcm/skills/pcm-db-editor/SKILL.md rename to plugins/pcm/skills/pcm-database/SKILL.md index 5016b5b..6471677 100644 --- a/plugins/pcm/skills/pcm-db-editor/SKILL.md +++ b/plugins/pcm/skills/pcm-database/SKILL.md @@ -1,5 +1,5 @@ --- -name: pcm-db-editor +name: pcm-database description: Open, explore and edit Pro Cycling Manager databases (.cdb) — rider ratings, team rosters, contracts, races. Routes between the pcm-mcp MCP server and a cdb → SQLite conversion via the cdb-converter CLI. Use this skill whenever a .cdb file is mentioned, or whenever someone talks about a PCM / Pro Cycling Manager save, career, database, roster, cyclist stats, or wants to "edit my game" — even if they never say the words "cdb" or "database", and even if they only want to read something rather than change it. --- diff --git a/plugins/pcm/skills/pcm-db-editor/references/database-constraints.md b/plugins/pcm/skills/pcm-database/references/database-constraints.md similarity index 100% rename from plugins/pcm/skills/pcm-db-editor/references/database-constraints.md rename to plugins/pcm/skills/pcm-database/references/database-constraints.md diff --git a/plugins/pcm/skills/pcm-db-editor/references/database-schema.md b/plugins/pcm/skills/pcm-database/references/database-schema.md similarity index 100% rename from plugins/pcm/skills/pcm-db-editor/references/database-schema.md rename to plugins/pcm/skills/pcm-database/references/database-schema.md diff --git a/plugins/pcm/skills/pcm-db-editor/scripts/open-cdb.sh b/plugins/pcm/skills/pcm-database/scripts/open-cdb.sh similarity index 100% rename from plugins/pcm/skills/pcm-db-editor/scripts/open-cdb.sh rename to plugins/pcm/skills/pcm-database/scripts/open-cdb.sh