@nano-step/skill-manager 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/utils.d.ts +1 -1
  2. package/dist/utils.js +1 -1
  3. package/package.json +1 -1
  4. package/skills/blog-workflow/SKILL.md +522 -0
  5. package/skills/blog-workflow/skill.json +16 -0
  6. package/skills/comprehensive-feature-builder/SKILL.md +558 -0
  7. package/skills/comprehensive-feature-builder/skill.json +9 -0
  8. package/skills/idea-workflow/SKILL.md +229 -0
  9. package/skills/idea-workflow/skill.json +14 -0
  10. package/skills/reddit-workflow/SKILL.md +187 -0
  11. package/skills/reddit-workflow/skill.json +14 -0
  12. package/skills/security-workflow/SKILL.md +258 -0
  13. package/skills/security-workflow/skill.json +15 -0
  14. package/skills/skill-creator/LICENSE.txt +202 -0
  15. package/skills/skill-creator/SKILL.md +309 -0
  16. package/skills/skill-creator/references/metadata-quality-criteria.md +76 -0
  17. package/skills/skill-creator/references/plugin-marketplace-hosting.md +101 -0
  18. package/skills/skill-creator/references/plugin-marketplace-overview.md +55 -0
  19. package/skills/skill-creator/references/plugin-marketplace-schema.md +88 -0
  20. package/skills/skill-creator/references/plugin-marketplace-sources.md +103 -0
  21. package/skills/skill-creator/references/plugin-marketplace-troubleshooting.md +80 -0
  22. package/skills/skill-creator/references/script-quality-criteria.md +106 -0
  23. package/skills/skill-creator/references/structure-organization-criteria.md +114 -0
  24. package/skills/skill-creator/references/token-efficiency-criteria.md +74 -0
  25. package/skills/skill-creator/references/validation-checklist.md +83 -0
  26. package/skills/skill-creator/scripts/encoding_utils.py +36 -0
  27. package/skills/skill-creator/scripts/init_skill.py +308 -0
  28. package/skills/skill-creator/scripts/package_skill.py +115 -0
  29. package/skills/skill-creator/scripts/quick_validate.py +69 -0
  30. package/skills/skill-creator/skill.json +14 -0
  31. package/skills/team-workflow/SKILL.md +227 -0
  32. package/skills/team-workflow/skill.json +15 -0
  33. package/skills/ui-ux-pro-max/SKILL.md +292 -0
  34. package/skills/ui-ux-pro-max/data/charts.csv +26 -0
  35. package/skills/ui-ux-pro-max/data/colors.csv +97 -0
  36. package/skills/ui-ux-pro-max/data/icons.csv +101 -0
  37. package/skills/ui-ux-pro-max/data/landing.csv +31 -0
  38. package/skills/ui-ux-pro-max/data/products.csv +97 -0
  39. package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
  40. package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
  41. package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  42. package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  43. package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  44. package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  45. package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  46. package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  47. package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  48. package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
  49. package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  50. package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  51. package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  52. package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  53. package/skills/ui-ux-pro-max/data/styles.csv +68 -0
  54. package/skills/ui-ux-pro-max/data/typography.csv +58 -0
  55. package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  56. package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  57. package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
  58. package/skills/ui-ux-pro-max/scripts/core.py +253 -0
  59. package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
  60. package/skills/ui-ux-pro-max/scripts/search.py +114 -0
  61. package/skills/ui-ux-pro-max/skill.json +16 -0
@@ -0,0 +1,101 @@
1
+ # Plugin Marketplace Hosting & Distribution
2
+
3
+ ## GitHub (Recommended)
4
+
5
+ 1. Create repository for marketplace
6
+ 2. Add `.claude-plugin/marketplace.json` with plugin definitions
7
+ 3. Share: users add with `/plugin marketplace add owner/repo`
8
+
9
+ **Benefits:** Built-in version control, issue tracking, team collaboration.
10
+
11
+ ## Other Git Services
12
+
13
+ GitLab, Bitbucket, self-hosted servers all work:
14
+
15
+ ```shell
16
+ /plugin marketplace add https://gitlab.com/company/plugins.git
17
+ ```
18
+
19
+ ## Private Repositories
20
+
21
+ ### Manual Installation/Updates
22
+
23
+ Claude Code uses existing git credential helpers. If `git clone` works in terminal, it works in Claude Code.
24
+
25
+ Common credential helpers:
26
+ - `gh auth login` for GitHub
27
+ - macOS Keychain
28
+ - `git-credential-store`
29
+
30
+ ### Background Auto-Updates
31
+
32
+ Set authentication token in environment:
33
+
34
+ | Provider | Environment Variables | Notes |
35
+ |-----------|------------------------------|------------------------------|
36
+ | GitHub | `GITHUB_TOKEN` or `GH_TOKEN` | Personal or GitHub App token |
37
+ | GitLab | `GITLAB_TOKEN` or `GL_TOKEN` | Personal or project token |
38
+ | Bitbucket | `BITBUCKET_TOKEN` | App password or repo token |
39
+
40
+ ```bash
41
+ export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
42
+ ```
43
+
44
+ ## Require Marketplaces for Team
45
+
46
+ Add to `.claude/settings.json`:
47
+
48
+ ```json
49
+ {
50
+ "extraKnownMarketplaces": {
51
+ "company-tools": {
52
+ "source": {
53
+ "source": "github",
54
+ "repo": "your-org/claude-plugins"
55
+ }
56
+ }
57
+ },
58
+ "enabledPlugins": {
59
+ "code-formatter@company-tools": true,
60
+ "deployment-tools@company-tools": true
61
+ }
62
+ }
63
+ ```
64
+
65
+ ## Managed Marketplace Restrictions
66
+
67
+ Admins use `strictKnownMarketplaces` in managed settings:
68
+
69
+ | Value | Behavior |
70
+ |---------------------|---------------------------------------------|
71
+ | Undefined (default) | No restrictions, users can add any |
72
+ | Empty array `[]` | Complete lockdown, no new marketplaces |
73
+ | List of sources | Users can only add from allowlist |
74
+
75
+ ### Allow Specific Marketplaces Only
76
+
77
+ ```json
78
+ {
79
+ "strictKnownMarketplaces": [
80
+ { "source": "github", "repo": "acme-corp/approved-plugins" },
81
+ { "source": "url", "url": "https://plugins.example.com/marketplace.json" }
82
+ ]
83
+ }
84
+ ```
85
+
86
+ ### Allow All from Internal Server (Regex)
87
+
88
+ ```json
89
+ {
90
+ "strictKnownMarketplaces": [
91
+ { "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }
92
+ ]
93
+ }
94
+ ```
95
+
96
+ ## Test Locally Before Distribution
97
+
98
+ ```shell
99
+ /plugin marketplace add ./my-local-marketplace
100
+ /plugin install test-plugin@my-local-marketplace
101
+ ```
@@ -0,0 +1,55 @@
1
+ # Plugin Marketplace Overview
2
+
3
+ Build and host plugin marketplaces to distribute Claude Code extensions across teams and communities.
4
+
5
+ ## What is a Plugin Marketplace
6
+
7
+ A plugin marketplace is a catalog that lets you distribute plugins to others. Marketplaces provide:
8
+ - Centralized discovery
9
+ - Version tracking
10
+ - Automatic updates
11
+ - Support for multiple source types (git repositories, local paths, etc.)
12
+
13
+ ## Creating & Distributing a Marketplace
14
+
15
+ 1. **Create plugins**: Build plugins with commands, agents, hooks, MCP servers, or LSP servers
16
+ 2. **Create marketplace file**: Define `marketplace.json` listing plugins and sources
17
+ 3. **Host the marketplace**: Push to GitHub, GitLab, or another git host
18
+ 4. **Share with users**: Users add with `/plugin marketplace add` and install individual plugins
19
+
20
+ ## Directory Structure
21
+
22
+ ```
23
+ my-marketplace/
24
+ ├── .claude-plugin/
25
+ │ └── marketplace.json # Required: marketplace catalog
26
+ └── plugins/
27
+ └── my-plugin/
28
+ ├── .claude-plugin/
29
+ │ └── plugin.json # Plugin manifest
30
+ └── skills/
31
+ └── my-skill/
32
+ └── SKILL.md
33
+ ```
34
+
35
+ ## Marketplace File Location
36
+
37
+ Create `.claude-plugin/marketplace.json` in repository root.
38
+
39
+ ## User Commands
40
+
41
+ - Add marketplace: `/plugin marketplace add owner/repo` or `/plugin marketplace add ./local-path`
42
+ - Install plugin: `/plugin install plugin-name@marketplace-name`
43
+ - Update marketplace: `/plugin marketplace update`
44
+ - Validate: `/plugin validate .` or `claude plugin validate .`
45
+
46
+ ## Related References
47
+
48
+ - Schema details: `references/plugin-marketplace-schema.md`
49
+ - Plugin sources: `references/plugin-marketplace-sources.md`
50
+ - Hosting & distribution: `references/plugin-marketplace-hosting.md`
51
+ - Troubleshooting: `references/plugin-marketplace-troubleshooting.md`
52
+
53
+ ## Official Documentation
54
+
55
+ https://code.claude.com/docs/en/plugin-marketplaces.md
@@ -0,0 +1,88 @@
1
+ # Plugin Marketplace Schema
2
+
3
+ ## Marketplace JSON Structure
4
+
5
+ ```json
6
+ {
7
+ "name": "company-tools",
8
+ "owner": {
9
+ "name": "DevTools Team",
10
+ "email": "devtools@example.com"
11
+ },
12
+ "metadata": {
13
+ "description": "Brief marketplace description",
14
+ "version": "1.0.0",
15
+ "pluginRoot": "./plugins"
16
+ },
17
+ "plugins": [...]
18
+ }
19
+ ```
20
+
21
+ ## Required Fields
22
+
23
+ | Field | Type | Description | Example |
24
+ |-----------|--------|------------------------------------------|----------------|
25
+ | `name` | string | Marketplace identifier (kebab-case) | `"acme-tools"` |
26
+ | `owner` | object | Maintainer info (name required, email optional) | |
27
+ | `plugins` | array | List of available plugins | |
28
+
29
+ ## Reserved Names
30
+
31
+ Cannot use: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `life-sciences`. Names impersonating official marketplaces also blocked.
32
+
33
+ ## Optional Metadata
34
+
35
+ | Field | Type | Description |
36
+ |------------------------|--------|------------------------------------------------|
37
+ | `metadata.description` | string | Brief marketplace description |
38
+ | `metadata.version` | string | Marketplace version |
39
+ | `metadata.pluginRoot` | string | Base directory for relative plugin source paths|
40
+
41
+ ## Plugin Entry Schema
42
+
43
+ ### Required Plugin Fields
44
+
45
+ | Field | Type | Description |
46
+ |----------|----------------|------------------------------------------------|
47
+ | `name` | string | Plugin identifier (kebab-case) |
48
+ | `source` | string\|object | Where to fetch plugin (path, github, url) |
49
+
50
+ ### Optional Plugin Fields
51
+
52
+ | Field | Type | Description |
53
+ |---------------|---------|-----------------------------------------------------|
54
+ | `description` | string | Brief plugin description |
55
+ | `version` | string | Plugin version |
56
+ | `author` | object | Plugin author (name required, email optional) |
57
+ | `homepage` | string | Plugin homepage or docs URL |
58
+ | `repository` | string | Source code repository URL |
59
+ | `license` | string | SPDX license identifier (MIT, Apache-2.0, etc.) |
60
+ | `keywords` | array | Tags for discovery and categorization |
61
+ | `category` | string | Plugin category for organization |
62
+ | `tags` | array | Tags for searchability |
63
+ | `strict` | boolean | If true (default), plugin needs own plugin.json |
64
+
65
+ ### Component Configuration Fields
66
+
67
+ | Field | Type | Description |
68
+ |--------------|----------------|----------------------------------------|
69
+ | `commands` | string\|array | Custom paths to command files/dirs |
70
+ | `agents` | string\|array | Custom paths to agent files |
71
+ | `hooks` | string\|object | Hooks configuration or path |
72
+ | `mcpServers` | string\|object | MCP server configurations or path |
73
+ | `lspServers` | string\|object | LSP server configurations or path |
74
+
75
+ ## Example Plugin Entry
76
+
77
+ ```json
78
+ {
79
+ "name": "code-formatter",
80
+ "source": "./plugins/formatter",
81
+ "description": "Automatic code formatting on save",
82
+ "version": "2.1.0",
83
+ "author": { "name": "DevTools Team" },
84
+ "license": "MIT",
85
+ "keywords": ["formatting", "linting"],
86
+ "strict": false
87
+ }
88
+ ```
@@ -0,0 +1,103 @@
1
+ # Plugin Marketplace Sources
2
+
3
+ ## Source Types
4
+
5
+ ### Relative Paths (Local)
6
+
7
+ For plugins in same repository:
8
+
9
+ ```json
10
+ {
11
+ "name": "my-plugin",
12
+ "source": "./plugins/my-plugin"
13
+ }
14
+ ```
15
+
16
+ **Note:** Relative paths only work when users add marketplace via Git. For URL-based distribution, use GitHub, npm, or git URL sources.
17
+
18
+ ### GitHub Repositories
19
+
20
+ ```json
21
+ {
22
+ "name": "github-plugin",
23
+ "source": {
24
+ "source": "github",
25
+ "repo": "owner/plugin-repo"
26
+ }
27
+ }
28
+ ```
29
+
30
+ Pin to specific branch, tag, or commit:
31
+
32
+ ```json
33
+ {
34
+ "name": "github-plugin",
35
+ "source": {
36
+ "source": "github",
37
+ "repo": "owner/plugin-repo",
38
+ "ref": "v2.0.0",
39
+ "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
40
+ }
41
+ }
42
+ ```
43
+
44
+ | Field | Type | Description |
45
+ |--------|--------|------------------------------------------------------|
46
+ | `repo` | string | Required. GitHub repo in `owner/repo` format |
47
+ | `ref` | string | Optional. Git branch or tag |
48
+ | `sha` | string | Optional. Full 40-char git commit SHA |
49
+
50
+ ### Git Repositories (GitLab, Bitbucket, etc.)
51
+
52
+ ```json
53
+ {
54
+ "name": "git-plugin",
55
+ "source": {
56
+ "source": "url",
57
+ "url": "https://gitlab.com/team/plugin.git"
58
+ }
59
+ }
60
+ ```
61
+
62
+ | Field | Type | Description |
63
+ |-------|--------|---------------------------------------------|
64
+ | `url` | string | Required. Full git URL (must end with .git) |
65
+ | `ref` | string | Optional. Git branch or tag |
66
+ | `sha` | string | Optional. Full 40-char git commit SHA |
67
+
68
+ ## Advanced Plugin Entry Example
69
+
70
+ ```json
71
+ {
72
+ "name": "enterprise-tools",
73
+ "source": {
74
+ "source": "github",
75
+ "repo": "company/enterprise-plugin"
76
+ },
77
+ "description": "Enterprise workflow automation tools",
78
+ "version": "2.1.0",
79
+ "commands": [
80
+ "./commands/core/",
81
+ "./commands/enterprise/"
82
+ ],
83
+ "agents": ["./agents/security-reviewer.md"],
84
+ "hooks": {
85
+ "PostToolUse": [{
86
+ "matcher": "Write|Edit",
87
+ "hooks": [{
88
+ "type": "command",
89
+ "command": "${CLAUDE_PLUGIN_ROOT}/scripts/validate.sh"
90
+ }]
91
+ }]
92
+ },
93
+ "mcpServers": {
94
+ "enterprise-db": {
95
+ "command": "${CLAUDE_PLUGIN_ROOT}/servers/db-server",
96
+ "args": ["--config", "${CLAUDE_PLUGIN_ROOT}/config.json"]
97
+ }
98
+ },
99
+ "strict": false
100
+ }
101
+ ```
102
+
103
+ **Key variable:** `${CLAUDE_PLUGIN_ROOT}` - Use in hooks and MCP configs to reference files within plugin's installation directory (plugins are copied to cache when installed).
@@ -0,0 +1,80 @@
1
+ # Plugin Marketplace Troubleshooting
2
+
3
+ ## Marketplace Not Loading
4
+
5
+ **Symptoms:** Can't add marketplace or see plugins
6
+
7
+ **Solutions:**
8
+ - Verify marketplace URL is accessible
9
+ - Check `.claude-plugin/marketplace.json` exists at specified path
10
+ - Validate JSON syntax: `claude plugin validate .` or `/plugin validate .`
11
+ - For private repos, confirm access permissions
12
+
13
+ ## Marketplace Validation Errors
14
+
15
+ Run `claude plugin validate .` or `/plugin validate .` from marketplace directory.
16
+
17
+ ### Common Errors
18
+
19
+ | Error | Cause | Solution |
20
+ |-------|-------|----------|
21
+ | `File not found: .claude-plugin/marketplace.json` | Missing manifest | Create `.claude-plugin/marketplace.json` with required fields |
22
+ | `Invalid JSON syntax: Unexpected token...` | JSON syntax error | Check for missing/extra commas, unquoted strings |
23
+ | `Duplicate plugin name "x" found` | Two plugins share same name | Give each plugin unique `name` value |
24
+ | `plugins[0].source: Path traversal not allowed` | Source path contains `..` | Use paths relative to marketplace root without `..` |
25
+
26
+ ### Warnings (Non-blocking)
27
+
28
+ - `Marketplace has no plugins defined`: Add at least one plugin to `plugins` array
29
+ - `No marketplace description provided`: Add `metadata.description`
30
+ - `Plugin "x" uses npm source...`: Use `github` or local path sources instead
31
+
32
+ ## Plugin Installation Failures
33
+
34
+ **Symptoms:** Marketplace appears but installation fails
35
+
36
+ **Solutions:**
37
+ - Verify plugin source URLs are accessible
38
+ - Check plugin directories contain required files
39
+ - For GitHub sources, ensure repos are public or you have access
40
+ - Test plugin sources manually by cloning/downloading
41
+
42
+ ## Private Repository Authentication Fails
43
+
44
+ ### Manual Installation
45
+
46
+ - Verify authentication: `gh auth status` for GitHub
47
+ - Check credential helper: `git config --global credential.helper`
48
+ - Try cloning repository manually
49
+
50
+ ### Background Auto-Updates
51
+
52
+ - Verify token set: `echo $GITHUB_TOKEN`
53
+ - Check token permissions (read access to repository)
54
+ - GitHub: ensure `repo` scope for private repos
55
+ - GitLab: ensure at least `read_repository` scope
56
+ - Verify token not expired
57
+
58
+ ## Relative Paths Fail in URL-based Marketplaces
59
+
60
+ **Symptoms:** Added via URL (like `https://example.com/marketplace.json`), plugins with `"./plugins/my-plugin"` fail with "path not found"
61
+
62
+ **Cause:** URL-based marketplaces only download `marketplace.json` file, not plugin files.
63
+
64
+ **Solutions:**
65
+ - Use external sources (GitHub, npm, git URL) instead of relative paths:
66
+ ```json
67
+ { "name": "my-plugin", "source": { "source": "github", "repo": "owner/repo" } }
68
+ ```
69
+ - Use Git-based marketplace (clones entire repo, relative paths work)
70
+
71
+ ## Files Not Found After Installation
72
+
73
+ **Symptoms:** Plugin installs but references to files fail, especially files outside plugin directory
74
+
75
+ **Cause:** Plugins copied to cache directory. Paths like `../shared-utils` won't work.
76
+
77
+ **Solutions:**
78
+ - Use symlinks (followed during copying)
79
+ - Restructure so shared directory is inside plugin source path
80
+ - Reference: Plugin caching and file resolution docs
@@ -0,0 +1,106 @@
1
+ # Script Quality Criteria
2
+
3
+ Scripts provide deterministic reliability and token efficiency.
4
+
5
+ ## When to Include Scripts
6
+
7
+ - Same code rewritten repeatedly
8
+ - Deterministic operations needed
9
+ - Complex transformations
10
+ - External tool integrations
11
+
12
+ ## Cross-Platform Requirements
13
+
14
+ **Prefer:** Node.js or Python
15
+ **Avoid:** Bash scripts (not well-supported on Windows)
16
+
17
+ If bash required, provide Node.js/Python alternative.
18
+
19
+ ## Testing Requirements
20
+
21
+ **Mandatory:** All scripts must have tests
22
+
23
+ ```bash
24
+ # Run tests before packaging
25
+ python -m pytest scripts/tests/
26
+ # or
27
+ npm test
28
+ ```
29
+
30
+ Tests must pass. No skipping failed tests.
31
+
32
+ ## Environment Variables
33
+
34
+ Respect hierarchy (first found wins):
35
+
36
+ 1. `process.env` (runtime)
37
+ 2. `$HOME/.claude/skills/<skill-name>/.env` (skill-specific)
38
+ 3. `$HOME/.claude/skills/.env` (shared skills)
39
+ 4. `$HOME/.claude/.env` (global)
40
+ 5. `./.claude/skills/${SKILL}/.env` (cwd)
41
+ 6. `./.claude/skills/.env` (cwd)
42
+ 7. `./.claude/.env` (cwd)
43
+
44
+ **Implementation pattern (Python):**
45
+
46
+ ```python
47
+ from dotenv import load_dotenv
48
+ import os
49
+
50
+ # Load in reverse order (last loaded wins if not set)
51
+ load_dotenv('$HOME/.claude/.env')
52
+ load_dotenv('$HOME/.claude/skills/.env')
53
+ load_dotenv('$HOME/.claude/skills/my-skill/.env')
54
+ load_dotenv('./.claude/skills/my-skill/.env')
55
+ load_dotenv('./.claude/skills/.env')
56
+ load_dotenv('./.claude/.env')
57
+ # process.env already takes precedence
58
+ ```
59
+
60
+ ## Documentation Requirements
61
+
62
+ ### .env.example
63
+ Show required variables without values:
64
+
65
+ ```
66
+ API_KEY=
67
+ DATABASE_URL=
68
+ DEBUG=false
69
+ ```
70
+
71
+ ### requirements.txt (Python)
72
+ Pin major versions:
73
+
74
+ ```
75
+ requests>=2.28.0
76
+ python-dotenv>=1.0.0
77
+ ```
78
+
79
+ ### package.json (Node.js)
80
+ Include scripts:
81
+
82
+ ```json
83
+ {
84
+ "scripts": {
85
+ "test": "jest"
86
+ }
87
+ }
88
+ ```
89
+
90
+ ## Manual Testing
91
+
92
+ Before packaging, test with real use cases:
93
+
94
+ ```bash
95
+ # Example: PDF rotation script
96
+ python scripts/rotate_pdf.py input.pdf 90 output.pdf
97
+ ```
98
+
99
+ Verify output matches expectations.
100
+
101
+ ## Error Handling
102
+
103
+ - Clear error messages
104
+ - Graceful failures
105
+ - No silent errors
106
+ - Exit codes: 0 success, non-zero failure
@@ -0,0 +1,114 @@
1
+ # Structure & Organization Criteria
2
+
3
+ Proper structure enables discovery and maintainability.
4
+
5
+ ## Required Directory Layout
6
+
7
+ ```
8
+ .claude/skills/
9
+ └── skill-name/
10
+ ├── SKILL.md # Required, uppercase
11
+ ├── scripts/ # Optional: executable code
12
+ ├── references/ # Optional: documentation
13
+ └── assets/ # Optional: output resources
14
+ ```
15
+
16
+ ## SKILL.md Requirements
17
+
18
+ **File name:** Exactly `SKILL.md` (uppercase)
19
+
20
+ **YAML Frontmatter:** Required at top
21
+
22
+ ```yaml
23
+ ---
24
+ name: skill-name
25
+ description: Under 200 chars, specific triggers
26
+ license: Optional
27
+ version: Optional
28
+ ---
29
+ ```
30
+
31
+ ## Resource Directories
32
+
33
+ ### scripts/
34
+ Executable code for deterministic tasks.
35
+
36
+ ```
37
+ scripts/
38
+ ├── main_operation.py
39
+ ├── helper_utils.py
40
+ ├── requirements.txt
41
+ ├── .env.example
42
+ └── tests/
43
+ └── test_main_operation.py
44
+ ```
45
+
46
+ ### references/
47
+ Documentation loaded into context as needed.
48
+
49
+ ```
50
+ references/
51
+ ├── api-documentation.md
52
+ ├── schema-definitions.md
53
+ └── workflow-guides.md
54
+ ```
55
+
56
+ ### assets/
57
+ Files used in output, not loaded into context.
58
+
59
+ ```
60
+ assets/
61
+ ├── templates/
62
+ ├── images/
63
+ └── boilerplate/
64
+ ```
65
+
66
+ ## File Naming
67
+
68
+ **Format:** kebab-case, descriptive
69
+
70
+ **Good:**
71
+ - `api-endpoints-authentication.md`
72
+ - `database-schema-users.md`
73
+ - `rotate-pdf-script.py`
74
+
75
+ **Bad:**
76
+ - `docs.md` - not descriptive
77
+ - `apiEndpoints.md` - wrong case
78
+ - `1.md` - meaningless
79
+
80
+ ## Cleanup
81
+
82
+ After initialization, delete unused example files:
83
+
84
+ ```bash
85
+ # Remove if not needed
86
+ rm -rf scripts/example_script.py
87
+ rm -rf references/example_reference.md
88
+ rm -rf assets/example_asset.txt
89
+ ```
90
+
91
+ ## Scope Consolidation
92
+
93
+ Related topics should be combined into single skill:
94
+
95
+ **Consolidate:**
96
+ - `cloudflare` + `cloudflare-r2` + `cloudflare-workers` → `devops`
97
+ - `mongodb` + `postgresql` → `databases`
98
+
99
+ **Keep separate:**
100
+ - Unrelated domains
101
+ - Different tech stacks with no overlap
102
+
103
+ ## Validation
104
+
105
+ Run packaging script to check structure:
106
+
107
+ ```bash
108
+ scripts/package_skill.py <skill-path>
109
+ ```
110
+
111
+ Checks:
112
+ - SKILL.md exists
113
+ - Valid frontmatter
114
+ - Proper directory structure