From test-engineering
Dante plugin-specific development standards. Use when contributing to the plugin, adding new skills/commands, or understanding plugin architecture. NOT for downstream users.
npx claudepluginhub issacchaos/local-marketplace --plugin test-engineeringThis skill uses the workspace's default tool permissions.
**Version**: 1.0.0
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Version: 1.0.0 Category: Internal Development Purpose: Document Dante-specific project conventions and architecture patterns
This skill defines the Dante plugin's specific directory structure, file organization patterns, and contribution workflows. It focuses on what makes THIS plugin unique, not general coding standards.
dante_plugin/
├── commands/ # User-facing commands (in plugin.json)
├── skills/ # Internal utility skills (NOT in plugin.json)
├── subagents/ # Specialized workflow agents
├── docs/ # User-facing documentation
├── tests/ # Plugin code tests
├── test_samples/ # Sample projects for validation
├── .sdd/ # Spec-driven development docs
└── .claude-plugin/
└── plugin.json # Plugin manifest
commands/)User-facing commands exposed to downstream plugin users:
.md){command-name}.md (e.g., test-generate.md, test-loop.md)plugin.json commands array/command-nameskills/)Internal utility modules for commands and subagents (NOT exposed to users):
SKILL.md fileskills/{skill-name}/SKILL.mdplugin.json - internal only---
name: skill-name
description: When to use this skill (one sentence)
user-invocable: false
---
subagents/)Specialized agents for complex multi-step workflows:
skills/templates/)Language and framework-specific code generation patterns:
{language}-{framework}-template.mdpython-pytest-template.md, javascript-jest-template.mdDante skills follow this structure:
---
name: skill-name
description: When to use this skill (one sentence)
user-invocable: false
---
# Skill Name
**Version**: X.Y.Z
**Category**: Analysis | Generation | Execution | Internal
**Purpose**: One-line purpose statement
## Overview
High-level description
## Skill Interface (if applicable)
### Input
### Output
## Implementation Details
Core logic and algorithms
## Usage in Commands/Agents
How other components should use this skill
## Error Handling
Edge cases and fallback behavior
## Testing
Validation approach
## References
Related files, documentation
---
**Last Updated**: YYYY-MM-DD
**Status**: Active | Deprecated | Experimental
Key Points:
user-invocable: false prevents skills from appearing in the user's / command menu (skills are internal-only; only commands should be user-invocable)Dante commands are user-facing and follow this structure:
# /command-name
Brief description
## Overview
What this command does
## Usage
How users invoke it
## Options/Parameters
Available flags and arguments
## Workflow
Step-by-step process
## Examples
Common use cases
## Error Handling
What can go wrong and how to fix it
Key Points:
plugin.json to be callableDante uses .claude-plugin/plugin.json as the single source of truth for plugin metadata:
Key fields:
When to update:
Dante uses automated versioning via GitHub Actions when PRs are approved for merge to main:
Workflow: .github/workflows/auto-version-on-approval.yml
Script: .github/scripts/version-analyzer.py
How it works:
main is approved.claude-plugin/plugin.json version fieldCHANGELOG.md with categorized changesRequired Setup:
ANTHROPIC_API_KEY (Claude API key)Semantic Versioning Philosophy:
Manual Override: If you need to manually set a version (e.g., for special releases):
.claude-plugin/plugin.json version in your PR before approvalChangelog Format: Generated changelog entries follow this structure:
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features
### Changed
- Modifications to existing features
### Fixed
- Bug fixes
### Documentation
- Documentation updates
### Internal
- Internal changes not visible to users
skills/{skill-name}/SKILL.md with required frontmatter (must include user-invocable: false)plugin.json (skills are internal)commands/{command-name}.mdplugin.json in commands arraysubagents/{agent-name}/plugin.json when removingBefore releasing a new version:
.claude-plugin/plugin.json.claude-plugin/plugin.jsonSkills in the skills/ directory are NOT exposed to downstream users:
plugin.json (only commands are)user-invocable: false in frontmatter to hide from the / command menuTo create a project-private skill:
skills/{skill-name}/ directorySKILL.md with required frontmatter (including user-invocable: false)plugin.json commands arrayplugin.json, invoked with /command-nameplugin.json, referenced by commands/subagentsLast Updated: 2026-02-12 Status: Active