Skip to content

Commit ad12d35

Browse files
docs: add claude skills
1 parent c66730c commit ad12d35

265 files changed

Lines changed: 46480 additions & 16 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/settings.json

Lines changed: 57 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,70 @@
11
{
22
"permissions": {
33
"allow": [
4-
"Bash(cargo:*)",
4+
"Bash(backlog:*)",
55
"Bash(cat:*)",
6-
"Bash(env)",
7-
"Bash(fastlane match:*)",
8-
"Bash(mc:*)",
9-
"Bash(npx tauri:*)",
10-
"Bash(rustup:*)",
11-
"Bash(security cms:*)",
12-
"Bash(security find-identity:*)",
13-
"Bash(sg:*)",
14-
"Bash(source .env)",
6+
"Bash(deno fmt:*)",
7+
"Bash(deno lint:*)",
8+
"Bash(fd:*)",
9+
"Bash(git add:*)",
10+
"Bash(git bisect:*)",
11+
"Bash(git commit:*)",
12+
"Bash(git log:*)",
13+
"Bash(git show:*)",
14+
"Bash(git push:*)",
15+
"Bash(git rev-parse:*)",
16+
"Bash(git revert:*)",
17+
"Bash(ls:*)",
18+
"Bash(lsof:*)",
19+
"Bash(npm:*)",
20+
"Bash(npx:*)",
21+
"Bash(pre-commit:*)",
22+
"Bash(pytest:*)",
23+
"Bash(python:*)",
24+
"Bash(python3:*)",
25+
"Bash(rg:*)",
26+
"Bash(ruff:*)",
27+
"Bash(sqlite3:*)",
1528
"Bash(task:*)",
16-
"Bash(xcodebuild:*)",
29+
"Bash(timeout:*)",
30+
"Bash(tree:*)",
31+
"Bash(uv:*)",
32+
"mcp__backlog__get_task_creation_guide",
33+
"mcp__backlog__get_workflow_overview",
1734
"mcp__backlog__task_create",
18-
"mcp__backlog__task_edit",
1935
"mcp__backlog__task_list",
36+
"mcp__backlog__task_search",
2037
"mcp__backlog__task_view",
38+
"mcp__context7__query-docs",
39+
"mcp__mantic__search_files",
40+
"mcp__screencap__screenshot_app",
41+
"mcp__sequential-thinking__sequentialthinking",
2142
"mcp__serena__activate_project",
22-
"mcp__serena__get_symbols_overview",
43+
"mcp__serena__find_file",
44+
"mcp__serena__find_referencing_symbols",
45+
"mcp__serena__get_current_config",
2346
"mcp__serena__initial_instructions",
24-
"mcp__serena__list_dir"
47+
"mcp__serena__list_dir",
48+
"mcp__serena__read_memory",
49+
"mcp__serena__think_about_task_adherence",
50+
"Read(//tmp/**)",
51+
"Read(//Users/*/Desktop/**)",
52+
"Read(//Users/*/Downloads/**)",
53+
"WebSearch"
2554
],
26-
"deny": [],
27-
"ask": []
55+
"deny": []
56+
},
57+
"hooks": {
58+
"PostToolUse": [
59+
{
60+
"matcher": "Write",
61+
"hooks": [
62+
{
63+
"type": "command",
64+
"command": "git diff --name-only HEAD | xargs -r pre-commit run --files"
65+
}
66+
]
67+
}
68+
]
2869
}
2970
}

.claude/skills/alpine-js/SKILL.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
name: alpine-js
3+
description: Alpine.js development guidelines for lightweight reactive interactions with Tailwind CSS and various backend frameworks.
4+
---
5+
6+
# Alpine.js Development
7+
8+
You are an expert in Alpine.js for building lightweight, reactive web interfaces.
9+
10+
## Core Principles
11+
12+
- Write concise, technical responses with accurate Alpine.js examples
13+
- Use Alpine.js for lightweight, declarative interactivity
14+
- Prioritize performance optimization and minimal JavaScript
15+
- Integrate seamlessly with Tailwind CSS and backend frameworks
16+
17+
## Alpine.js Fundamentals
18+
19+
### Directives
20+
- `x-data` - Define reactive data for a component
21+
- `x-bind` - Bind attributes to expressions
22+
- `x-on` - Attach event listeners
23+
- `x-model` - Two-way data binding for inputs
24+
- `x-show` / `x-if` - Conditional rendering
25+
- `x-for` - Loop through arrays
26+
- `x-text` / `x-html` - Set text or HTML content
27+
- `x-ref` - Reference DOM elements
28+
- `x-init` - Run code on initialization
29+
30+
### Component Pattern
31+
```html
32+
<div x-data="{ open: false, count: 0 }">
33+
<button @click="open = !open">Toggle</button>
34+
<div x-show="open" x-transition>
35+
<p x-text="count"></p>
36+
<button @click="count++">Increment</button>
37+
</div>
38+
</div>
39+
```
40+
41+
## Integration Patterns
42+
43+
### With Tailwind CSS
44+
- Use Tailwind for styling, Alpine for behavior
45+
- Combine `x-bind:class` with Tailwind utilities
46+
- Use transitions with `x-transition` and Tailwind
47+
48+
### With Laravel/Livewire (TALL Stack)
49+
- Use Alpine for client-side interactivity
50+
- Let Livewire handle server communication
51+
- Use `@entangle` for two-way binding with Livewire
52+
- Keep components focused and modular
53+
54+
### With Ghost CMS
55+
- Use Alpine for dynamic content interactions
56+
- Integrate with Ghost's content API
57+
- Handle data fetching patterns appropriately
58+
59+
## Best Practices
60+
61+
### Performance
62+
- Keep `x-data` objects small and focused
63+
- Use `x-show` over `x-if` when possible for better performance
64+
- Lazy load heavy components
65+
- Minimize DOM manipulation
66+
67+
### Code Organization
68+
- Extract reusable logic into Alpine.data() components
69+
- Use Alpine.store() for shared state
70+
- Keep inline expressions simple; move complex logic to methods
71+
- Use meaningful variable names
72+
73+
### Accessibility
74+
- Ensure keyboard navigation works
75+
- Use proper ARIA attributes
76+
- Test with screen readers
77+
- Maintain focus management
78+
79+
## Common Patterns
80+
81+
### Dropdown Menu
82+
```html
83+
<div x-data="{ open: false }" @click.away="open = false">
84+
<button @click="open = !open">Menu</button>
85+
<div x-show="open" x-transition>
86+
<!-- Menu items -->
87+
</div>
88+
</div>
89+
```
90+
91+
### Form Validation
92+
```html
93+
<form x-data="{ email: '', isValid: false }" @submit.prevent="submit">
94+
<input x-model="email" @input="isValid = validateEmail(email)">
95+
<button :disabled="!isValid">Submit</button>
96+
</form>
97+
```

0 commit comments

Comments
 (0)