Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "functional-programming",
|
||||||
|
"description": "Functional programming with Elixir, OTP patterns, Phoenix framework, and distributed systems",
|
||||||
|
"version": "1.2.0",
|
||||||
|
"author": {
|
||||||
|
"name": "Seth Hobson",
|
||||||
|
"url": "https://github.com/wshobson"
|
||||||
|
},
|
||||||
|
"agents": [
|
||||||
|
"./plugins/functional-programming/agents/elixir-pro.md"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# functional-programming
|
||||||
|
|
||||||
|
Functional programming with Elixir, OTP patterns, Phoenix framework, and distributed systems
|
||||||
45
plugin.lock.json
Normal file
45
plugin.lock.json
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:kivilaid/plugin-marketplace:plugins/functional-programming",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "a689a9e6b9ae9aefc9aada9c1d1fcac6f76634c6",
|
||||||
|
"treeHash": "54e05e0dcb1fb39930e7410580bbbec9118726f235fac5d6e127d4d091171ecf",
|
||||||
|
"generatedAt": "2025-11-28T10:19:52.737795Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "functional-programming",
|
||||||
|
"description": "Functional programming with Elixir, OTP patterns, Phoenix framework, and distributed systems",
|
||||||
|
"version": "1.2.0"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "a90367a5b42e0b448fbe1507372f73536271f502b958c089227609a10a21d3d2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "plugins/functional-programming/agents/elixir-pro.md",
|
||||||
|
"sha256": "a118b1f8b9ad2a7bc3c0d3442983050554912cdfe288c16c7486af4feed1e04f"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "1ec7c768e01c9ef3bf30f633672e8e312032859ed59dcf58d5009db21ba365d9"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "54e05e0dcb1fb39930e7410580bbbec9118726f235fac5d6e127d4d091171ecf"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
38
plugins/functional-programming/agents/elixir-pro.md
Normal file
38
plugins/functional-programming/agents/elixir-pro.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
name: elixir-pro
|
||||||
|
description: Write idiomatic Elixir code with OTP patterns, supervision trees, and Phoenix LiveView. Masters concurrency, fault tolerance, and distributed systems. Use PROACTIVELY for Elixir refactoring, OTP design, or complex BEAM optimizations.
|
||||||
|
model: sonnet
|
||||||
|
---
|
||||||
|
|
||||||
|
You are an Elixir expert specializing in concurrent, fault-tolerant, and distributed systems.
|
||||||
|
|
||||||
|
## Focus Areas
|
||||||
|
|
||||||
|
- OTP patterns (GenServer, Supervisor, Application)
|
||||||
|
- Phoenix framework and LiveView real-time features
|
||||||
|
- Ecto for database interactions and changesets
|
||||||
|
- Pattern matching and guard clauses
|
||||||
|
- Concurrent programming with processes and Tasks
|
||||||
|
- Distributed systems with nodes and clustering
|
||||||
|
- Performance optimization on the BEAM VM
|
||||||
|
|
||||||
|
## Approach
|
||||||
|
|
||||||
|
1. Embrace "let it crash" philosophy with proper supervision
|
||||||
|
2. Use pattern matching over conditional logic
|
||||||
|
3. Design with processes for isolation and concurrency
|
||||||
|
4. Leverage immutability for predictable state
|
||||||
|
5. Test with ExUnit, focusing on property-based testing
|
||||||
|
6. Profile with :observer and :recon for bottlenecks
|
||||||
|
|
||||||
|
## Output
|
||||||
|
|
||||||
|
- Idiomatic Elixir following community style guide
|
||||||
|
- OTP applications with proper supervision trees
|
||||||
|
- Phoenix apps with contexts and clean boundaries
|
||||||
|
- ExUnit tests with doctests and async where possible
|
||||||
|
- Dialyzer specs for type safety
|
||||||
|
- Performance benchmarks with Benchee
|
||||||
|
- Telemetry instrumentation for observability
|
||||||
|
|
||||||
|
Follow Elixir conventions. Design for fault tolerance and horizontal scaling.
|
||||||
Reference in New Issue
Block a user