BREAKING CHANGES: - Remove -cskill suffix from all skill names (use standard kebab-case) - Simplify marketplace.json to only official fields (fixes Issue #5) - SKILL.md body must be <500 lines (progressive disclosure via references/) New features: - Cross-platform support for 8+ platforms (Claude Code, Copilot, Cursor, Windsurf, Cline, Codex CLI, Gemini CLI) - scripts/install-template.sh: Auto-detect platform installer with --dry-run - scripts/validate.py: Spec compliance checker for generated skills - scripts/security_scan.py: Security scanner for hardcoded keys and dangerous patterns - MIGRATION.md: v3.x to v4.0 migration guide - 6 new reference files for progressive disclosure from lean SKILL.md Key changes: - SKILL.md: 4,116 → 272 lines with spec-compliant YAML frontmatter - marketplace.json: Stripped to {name, plugins} only - article-to-prototype-cskill/ → article-to-prototype/ - stock-analyzer-cskill/ → stock-analyzer/ - Export system integrates validation + security scanning - README.md rewritten for all supported platforms - Phase 5 pipeline outputs SKILL.md-first, spec-compliant skills Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
15 KiB
Implementation Handoff: agent-skill-creator v4.0 — Cross-Platform Modernization
Generated by
/clarityon 2026-02-26 Spec:.clarity/spec.md
IMPORTANT RULES FOR THE IMPLEMENTING AGENT
- Read
.clarity/spec.mdthoroughly before writing any code. - Do NOT read the
scenarios/directory. Those are holdout tests for independent evaluation. - Follow the implementation order below. Do not skip ahead.
- Ask clarifying questions if any requirement is ambiguous — do not guess.
Tech Stack
| Layer | Technology | Notes |
|---|---|---|
| Language | Python 3.14 | User's environment, use uv run for execution |
| Shell scripts | Bash (POSIX-compatible) | For install.sh, must work on macOS/Linux/WSL |
| Config | YAML frontmatter + JSON | Standard formats only |
| Package manager | uv | For Python deps; no new heavy deps needed |
| Linter | ruff | User's preferred linter |
| VCS | git | All changes tracked |
Implementation Order
Complete each step fully before moving to the next. There are 8 steps organized into 3 phases: restructure the meta-skill itself, update the skill generation pipeline, and add cross-platform tooling.
Step 1: Restructure the Meta-Skill's Own SKILL.md
The current SKILL.md is 4,116 lines. It must be restructured into a <500-line SKILL.md with content split into reference files.
- Read the current
SKILL.mdin full and identify sections that can be moved toreferences/ - Create a new SKILL.md (<500 lines) with only:
- Spec-compliant frontmatter (
name,description≤1024 chars,license,metadatawithauthorandversion,compatibility) - "When to Use This Skill" section (activation triggers)
- "Overview" section (5-phase pipeline summary)
- "Core Workflow" (concise step-by-step)
- "Architecture Decision" (simple vs suite — brief, reference to
references/architecture-guide.md) - "Output Format" (what the generated skill directory looks like)
- Cross-references to
references/for all detailed content
- Spec-compliant frontmatter (
- Move detailed content into reference files:
references/pipeline-phases.md— Detailed Phase 1-5 instructions (the bulk of the current SKILL.md)references/architecture-guide.md— Simple vs Suite decision logic, directory structuresreferences/templates-guide.md— Template-based creation (financial, climate, e-commerce)references/interactive-mode.md— Interactive wizard documentationreferences/multi-agent-guide.md— Batch/suite creation docsreferences/agentdb-integration.md— AgentDB learning system docs
- Keep existing reference files that are still relevant (phase1-discovery.md through phase4-detection.md, activation guides)
- Delete or merge redundant reference files
- Verify the new SKILL.md is <500 lines and <5,000 tokens for the body
Critical: The name field must be agent-skill-creator (matches directory name). The description must be ≤1024 characters and include all activation keywords.
Step 2: Fix marketplace.json (Issue #5)
The current .claude-plugin/marketplace.json has non-standard fields that break Claude Code installation.
- Read the current
.claude-plugin/marketplace.json - Strip ALL non-standard fields. Keep ONLY:
{ "name": "agent-skill-creator", "plugins": [ { "name": "agent-skill-creator-plugin", "description": "<EXACT copy of SKILL.md frontmatter description>", "source": "./", "skills": ["./"] } ] } - Remove these non-standard fields:
owner,metadata,compatibility,templates,capabilities,activation,usage,test_queries - Validate the JSON is syntactically correct
- Verify
plugins[0].descriptionexactly matches thedescriptionin SKILL.md frontmatter
Step 3: Update Phase 5 (Implementation) to Generate Standard-Compliant Skills
This is the most impactful change. The pipeline's output must change.
- Update
references/phase5-implementation.md(or the newreferences/pipeline-phases.md):- Remove the mandate to create
marketplace.jsonfirst for simple skills - Change the implementation order to: SKILL.md first (primary file), then scripts, references, assets, install.sh, README.md
- Add validation step at the end
- Add security scan step at the end
- Remove the mandate to create
- Update the generated SKILL.md template:
- Frontmatter must include:
name,description(≤1024 chars),license(default: MIT),metadata(author, version) - Optional:
compatibility,allowed-tools - Body must be <500 lines with references for detail
- Frontmatter must include:
- Update the generated directory structure template:
{skill-name}/ # No -cskill suffix ├── SKILL.md # <500 lines, spec-compliant ├── scripts/ # Functional Python code ├── references/ # Detailed documentation ├── assets/ # Templates, schemas, data ├── install.sh # Cross-platform installer └── README.md # Multi-platform install instructions - Remove ALL mentions of
-cskillsuffix from the generation pipeline - Remove ALL mentions of mandatory
marketplace.jsonfor simple skills - For complex suites: marketplace.json is OPTIONAL and must contain ONLY official fields
Step 4: Remove -cskill Naming Convention
- Update
docs/NAMING_CONVENTIONS.md— replace -cskill convention with standard kebab-case naming:- Names must be 1-64 characters
- Lowercase letters, numbers, and hyphens only
- Must not start or end with hyphen
- Must not contain consecutive hyphens
- Must match parent directory name
- Update
references/phase3-architecture.md— remove -cskill from all examples and templates - Update
README.md— remove all -cskill references - Rename
article-to-prototype-cskill/→article-to-prototype/- Update its SKILL.md frontmatter
namefield toarticle-to-prototype - Update its
.claude-plugin/marketplace.jsonif present - Update its README.md
- Update its SKILL.md frontmatter
- Search entire codebase for remaining
-cskillreferences and update them - Update all example directory names in documentation
Step 5: Create the Cross-Platform Install Script
Create scripts/install-template.sh — a template that gets customized and included in every generated skill as install.sh.
- Write
scripts/install-template.sh:#!/usr/bin/env bash # Cross-platform installer for Agent Skills # Detects the user's AI coding tool and installs to the correct location set -euo pipefail SKILL_NAME="{{SKILL_NAME}}" # Replaced during generation SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # Parse arguments PLATFORM="" PROJECT_LEVEL=false CUSTOM_PATH="" DRY_RUN=false while [[ $# -gt 0 ]]; do case $1 in --platform) PLATFORM="$2"; shift 2 ;; --project) PROJECT_LEVEL=true; shift ;; --path) CUSTOM_PATH="$2"; shift 2 ;; --dry-run) DRY_RUN=true; shift ;; -h|--help) show_help; exit 0 ;; *) echo "Unknown option: $1"; exit 1 ;; esac done # Platform detection logic # Install to detected or specified location # Validate SKILL.md before installing # Report success with next-steps instructions - Implement platform detection:
- Check for
~/.claude/→ Claude Code - Check for
~/.copilot/or.github/→ GitHub Copilot - Check for
~/.cursor/or.cursor/→ Cursor - Check for
~/.windsurf/→ Windsurf - Check for
~/.cline/or.clinerules/→ Cline - Check for
~/.codex/→ OpenAI Codex CLI - Check for
~/.gemini/→ Gemini CLI - Fallback: prompt user or use
--platformflag
- Check for
- Implement
--projectflag for project-level installation (.claude/skills/,.github/skills/, etc.) - Implement
--dry-runflag (show what would happen without doing it) - Implement SKILL.md validation before copying
- Print success message with platform-specific activation instructions
- Handle errors: permission denied, directory doesn't exist, invalid SKILL.md
Step 6: Create Validation and Security Scanning Scripts
-
Create
scripts/validate.py:- Validate frontmatter:
name(1-64 chars, lowercase+hyphens, no start/end hyphen, no consecutive hyphens) - Validate frontmatter:
description(1-1024 chars, non-empty) - Validate: directory name matches
namefield - Validate: SKILL.md exists and starts with
---frontmatter - Validate: SKILL.md body <500 lines (warning, not error)
- Validate: optional fields have correct types if present
- Validate: referenced files in SKILL.md body exist
- Return structured result:
{"valid": bool, "errors": [], "warnings": []}
- Validate frontmatter:
-
Create
scripts/security_scan.py:- Scan for hardcoded API keys (regex patterns for common key formats:
sk-,AKIA,ghp_,glpat-, etc.) - Scan for
.envfiles included in skill directory - Scan for
credentials.json,secrets.json,api_keys.json - Scan for
eval(),exec(),subprocess.call(shell=True)in Python scripts - Scan for
os.system()with string concatenation (shell injection) - Scan for
__import__dynamic imports - Return structured result:
{"clean": bool, "issues": []}
- Scan for hardcoded API keys (regex patterns for common key formats:
-
Integrate both into the generation pipeline (Phase 5 runs them after file creation)
Step 7: Update the Export System
-
Update
scripts/export_utils.py:- Keep existing Desktop/Web and API export functionality (backwards compatible)
- Add validation step before export (call
validate.py) - Add security scan before export (call
security_scan.py) - Remove
-cskillfrom any hardcoded name handling - Update the generated installation guide to include instructions for ALL platforms (Claude Code, Copilot, Cursor, Windsurf, Cline, Codex CLI, Gemini CLI)
- Add optional
--platformparameter for platform-specific export
-
Update
references/cross-platform-guide.md:- Expand from 4 Anthropic platforms to all 8+ platforms
- Add installation paths for each platform
- Add the Agent Skills Open Standard as the unifying reference
- Remove references to marketplace.json as a universal requirement
-
Update
references/export-guide.md(if it exists) with new platform targets
Step 8: Update Documentation and README
-
Update
README.md:- Update version to 4.0
- Add "Cross-Platform Compatible" badge/note at top
- List all supported platforms (Claude Code, Copilot CLI, VS Code Copilot, Cursor, Windsurf, Cline, Codex CLI, Gemini CLI)
- Remove all
-cskillreferences - Update installation instructions for all platforms
- Add "Agent Skills Open Standard" compliance note
- Update architecture diagrams (no -cskill, no mandatory marketplace.json)
- Add "Migration from v3.x" section pointing to MIGRATION.md
-
Create
MIGRATION.md:- How to update from v3.x to v4.0
- Breaking changes: -cskill suffix removed, marketplace.json simplified
- How to migrate existing generated skills (rename dirs, update frontmatter, fix marketplace.json)
- Automated migration: mention that the tool can help migrate with "Migrate this skill to the new standard"
-
Update
docs/CHANGELOG.md:- Add v4.0 entry with all changes
- Note breaking changes
- Note new features (cross-platform, validation, security scan, install.sh)
-
Update
docs/CLAUDE_SKILLS_ARCHITECTURE.md:- Reference the Agent Skills Open Standard
- Update directory structures (no -cskill)
- Add cross-platform compatibility information
Tests to Write
Write tests for these behaviors (derived from the spec, not from holdout scenarios):
| Test | Covers | Type |
|---|---|---|
| Validate SKILL.md frontmatter with valid name/description passes | FR-001 | Unit |
| Validate SKILL.md frontmatter with name >64 chars fails | FR-001 | Unit |
| Validate SKILL.md frontmatter with empty description fails | FR-001 | Unit |
| Validate name matches directory name | FR-002 | Unit |
| Validate SKILL.md body >500 lines produces warning | FR-003 | Unit |
| Generated skill has no marketplace.json (simple skill) | FR-005 | Integration |
| Generated skill name has no -cskill suffix | FR-007 | Integration |
| Security scan detects hardcoded API key | FR-013 | Unit |
| Security scan detects .env file in skill | FR-013 | Unit |
| Security scan detects shell injection pattern | FR-014 | Unit |
| install.sh detects Claude Code platform | FR-015, FR-016 | Integration |
| install.sh detects Copilot platform | FR-015, FR-016 | Integration |
| install.sh --dry-run produces no side effects | FR-015 | Unit |
| install.sh --platform cursor installs to .cursor/rules/ | FR-017 | Integration |
| Generated README has multi-platform install section | FR-018 | Integration |
| Export system still generates Desktop .zip | FR-019 | Integration |
| Export system still generates API .zip <8MB | FR-019 | Integration |
| Meta-skill SKILL.md is <500 lines | FR-004, FR-021 | Unit |
| Generated skill works on SKILL.md standard without modification | FR-028, NFR-001 | Integration |
Definition of Done
All of the following must be true:
- The meta-skill's own SKILL.md is <500 lines with spec-compliant frontmatter
.claude-plugin/marketplace.jsoncontains ONLY official fields- No
-cskillsuffix appears anywhere in the codebase (code, docs, examples) article-to-prototype-cskill/renamed toarticle-to-prototype/with updated frontmatter- Generated skills produce spec-compliant SKILL.md (passes validation)
- Generated skills include
install.shfor cross-platform installation - Generated README.md includes install instructions for 5+ platforms
scripts/validate.pychecks all spec rules and returns structured resultsscripts/security_scan.pycatches hardcoded keys and injection patterns- Export system updated with validation, security scan, and multi-platform install guide
references/cross-platform-guide.mdcovers 8+ platformsMIGRATION.mdcreated with v3.x → v4.0 migration guideREADME.mdupdated for v4.0 with all platform support- No hardcoded secrets or credentials in any file
- All Python files pass
ruff check install.shtemplate works on macOS and Linux
Explicit Exclusions
Do NOT implement these (they are out of scope):
- Building a skill marketplace or registry
- Converting
.cursorrulesor.windsurfrulesinto SKILL.md - MCP server integration
- GUI or web interface
- Rewriting AgentDB integration
- Supporting platforms that haven't adopted SKILL.md standard
- Publishing automation to SkillsMP/SkillHub (just make skills compatible)
Reference Files
- Specification:
.clarity/spec.md - Project context:
.clarity/context.md - Agent Skills Open Standard: https://agentskills.io/specification
- Current codebase: All files in the repository root