Skip to content

Commit cbe7520

Browse files
committed
Initial commit
0 parents  commit cbe7520

File tree

19 files changed

+1005
-0
lines changed

19 files changed

+1005
-0
lines changed

.claude-plugin/marketplace.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3+
"name": "webflow-skills",
4+
"description": "Webflow-specific agent skills for Claude - CMS management, publishing, QA, and site operations",
5+
"owner": {
6+
"name": "Webflow",
7+
"email": "developers@webflow.com"
8+
},
9+
"plugins": [
10+
{
11+
"name": "webflow-skills",
12+
"description": "Skills for Webflow site management including bulk CMS updates, safe publishing, QA checks, and more",
13+
"author": {
14+
"name": "Webflow"
15+
},
16+
"source": "./plugins/webflow-skills",
17+
"category": "productivity"
18+
}
19+
]
20+
}
21+

.github/workflows/ci.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
lint:
11+
name: Lint and Validate
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
18+
- name: Check for required files
19+
run: |
20+
echo "Checking required files..."
21+
22+
# Check root files
23+
test -f README.md || (echo "Missing README.md" && exit 1)
24+
test -f LICENSE || (echo "Missing LICENSE" && exit 1)
25+
test -f AGENTS.md || (echo "Missing AGENTS.md" && exit 1)
26+
test -L CLAUDE.md || (echo "Missing CLAUDE.md symlink" && exit 1)
27+
28+
# Check marketplace config
29+
test -f .claude-plugin/marketplace.json || (echo "Missing .claude-plugin/marketplace.json" && exit 1)
30+
31+
# Check plugin config
32+
test -f plugins/webflow-skills/.claude-plugin/plugin.json || (echo "Missing plugin.json" && exit 1)
33+
34+
echo "All required files present ✓"
35+
36+
- name: Validate skill structure
37+
run: |
38+
echo "Validating skills..."
39+
40+
for skill_dir in plugins/webflow-skills/skills/*/; do
41+
skill_name=$(basename "$skill_dir")
42+
echo "Checking skill: $skill_name"
43+
44+
# Check for SKILL.md
45+
test -f "${skill_dir}SKILL.md" || (echo "Missing SKILL.md in $skill_name" && exit 1)
46+
47+
# Check SKILL.md has required frontmatter
48+
if ! grep -q "^name:" "${skill_dir}SKILL.md"; then
49+
echo "Missing 'name' in $skill_name/SKILL.md frontmatter"
50+
exit 1
51+
fi
52+
53+
if ! grep -q "^description:" "${skill_dir}SKILL.md"; then
54+
echo "Missing 'description' in $skill_name/SKILL.md frontmatter"
55+
exit 1
56+
fi
57+
58+
echo " ✓ $skill_name valid"
59+
done
60+
61+
echo "All skills validated ✓"
62+
63+
count-skills:
64+
name: Count Skills
65+
runs-on: ubuntu-latest
66+
67+
steps:
68+
- name: Checkout repository
69+
uses: actions/checkout@v4
70+
71+
- name: Count and list skills
72+
run: |
73+
echo "## Skills in Repository" >> $GITHUB_STEP_SUMMARY
74+
echo "" >> $GITHUB_STEP_SUMMARY
75+
76+
count=0
77+
for skill_dir in plugins/webflow-skills/skills/*/; do
78+
if [ -f "${skill_dir}SKILL.md" ]; then
79+
skill_name=$(basename "$skill_dir")
80+
echo "- $skill_name" >> $GITHUB_STEP_SUMMARY
81+
count=$((count + 1))
82+
fi
83+
done
84+
85+
echo "" >> $GITHUB_STEP_SUMMARY
86+
echo "**Total: $count skills**" >> $GITHUB_STEP_SUMMARY

.gitignore

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Dependencies
2+
node_modules/
3+
4+
# IDE
5+
.vscode/
6+
.idea/
7+
*.swp
8+
*.swo
9+
10+
# OS
11+
.DS_Store
12+
Thumbs.db
13+
14+
# Logs
15+
*.log
16+
npm-debug.log*
17+
18+
# Environment
19+
.env
20+
.env.local
21+
.env.*.local
22+
23+
# Build outputs
24+
dist/
25+
build/
26+
27+
# Temporary files
28+
tmp/
29+
temp/
30+
*.tmp
31+

AGENTS.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Webflow Skills
2+
3+
You have access to skills for working with Webflow sites through the Webflow MCP server.
4+
5+
## Available Skills
6+
7+
### Content Operations
8+
- **bulk-cms-update**: Create or update multiple CMS items with validation
9+
- **cms-collection-setup**: Create new collections from schema definitions
10+
- **page-content-update**: Update page metadata safely
11+
12+
### Quality Assurance
13+
- **pre-publish-qa**: Check for issues before publishing
14+
- **seo-metadata-check**: Audit SEO metadata across pages
15+
16+
### Publishing
17+
- **safe-publish**: Plan → Confirm → Publish workflow
18+
19+
### Site Management
20+
- **site-inventory**: Export site structure
21+
- **site-diagnostics**: Troubleshoot issues
22+
- **asset-audit**: Analyze assets
23+
- **custom-code-management**: Manage scripts and tracking code
24+
25+
## Safety Rules
26+
27+
Always follow these patterns when working with Webflow:
28+
29+
1. **Preview before modifying**: Show what will change before making changes
30+
2. **Require confirmation for destructive actions**: Publishing, deleting, bulk updates
31+
3. **Process in batches**: Chunk large operations (50 items max per batch)
32+
4. **Report what changed**: Provide clear audit trails
33+
34+
## Response Format
35+
36+
### For Read Operations
37+
```
38+
📊 [Title]: [Site Name]
39+
40+
[Findings organized by category]
41+
[Tables for structured data]
42+
[✅ or ⚠️ indicators for status]
43+
```
44+
45+
### For Write Operations
46+
```
47+
📋 Preview: [Operation]
48+
49+
[What will change]
50+
51+
⚠️ Type "[confirm]" to proceed.
52+
```
53+
54+
### After Changes
55+
```
56+
✅ [Operation] Complete
57+
58+
[Summary of changes]
59+
[Affected items]
60+
```
61+
62+
## Error Handling
63+
64+
When errors occur:
65+
1. Explain what went wrong
66+
2. Suggest recovery steps
67+
3. Report partial successes separately from failures
68+

CLAUDE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
AGENTS.md

CONTRIBUTING.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Contributing
2+
3+
Guidelines for adding and improving Webflow skills.
4+
5+
## Adding a New Skill
6+
7+
### 1. Create the Skill Directory
8+
9+
```
10+
plugins/webflow-skills/skills/
11+
└── my-skill/
12+
└── SKILL.md
13+
```
14+
15+
### 2. Write SKILL.md
16+
17+
Use YAML frontmatter followed by markdown content:
18+
19+
```markdown
20+
---
21+
name: my-skill
22+
description: Clear description of what this skill does and when to use it. Include keywords that help agents identify when this skill is relevant.
23+
---
24+
25+
# My Skill Name
26+
27+
## Instructions
28+
29+
Step-by-step guidance for the agent.
30+
31+
## Examples
32+
33+
Concrete examples showing expected input/output.
34+
35+
## Guidelines
36+
37+
- Specific rules to follow
38+
- Edge cases to handle
39+
```
40+
41+
### Naming Conventions
42+
43+
- `name`: 1-64 characters, lowercase alphanumeric with hyphens only
44+
- `description`: Up to 1024 characters, include trigger keywords
45+
- Keep `SKILL.md` under 500 lines
46+
47+
### Optional Fields
48+
49+
```yaml
50+
---
51+
name: my-skill
52+
description: What this skill does
53+
license: MIT
54+
model: sonnet
55+
allowed-tools: Read Grep Glob
56+
---
57+
```
58+
59+
## Quality Checklist
60+
61+
- [ ] `SKILL.md` has name and description in frontmatter
62+
- [ ] Instructions section explains how to perform the task
63+
- [ ] Examples show realistic prompts and responses
64+
- [ ] Guidelines cover edge cases
65+
66+
## Pull Requests
67+
68+
1. Test the skill with Claude
69+
2. Title format: `feat(skills): Add [skill-name]`
70+
3. Explain what the skill does and why
71+
72+
## Issues
73+
74+
**Bug reports**: Skill name, steps to reproduce, expected vs actual
75+
76+
**Feature requests**: Proposed skill, use case, expected behavior

LICENSE

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Webflow, Inc.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+

0 commit comments

Comments
 (0)