Skip to content

Commit 44d5fd9

Browse files
committed
First commit
0 parents  commit 44d5fd9

File tree

36 files changed

+7945
-0
lines changed

36 files changed

+7945
-0
lines changed

.eca-plugin/marketplace.json

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"plugins": [
3+
{
4+
"name": "clojure-review",
5+
"description": "Principal Clojure(Script) code reviewer subagent with structured feedback on design, state management, idioms, and testing",
6+
"source": "plugins/clojure-review",
7+
"category": "Development",
8+
"tags": ["clojure", "review", "subagent", "quality"],
9+
"author": "zikajk",
10+
"icon": "🔍",
11+
"featured": true
12+
},
13+
{
14+
"name": "fp-style",
15+
"description": "Coding style skill enforcing functional-leaning, idiomatic conventions with lightweight data structures across any language",
16+
"source": "plugins/fp-style",
17+
"category": "Development",
18+
"tags": ["style", "functional", "skill", "conventions"],
19+
"author": "davidvujic",
20+
"icon": "λ",
21+
"featured": true
22+
},
23+
{
24+
"name": "agent-orchestration",
25+
"description": "Subagent-based workflow for implementing planned changes with consistent, functional-leaning coding style",
26+
"source": "plugins/agent-orchestration",
27+
"category": "Workflow",
28+
"tags": ["subagent", "implementation", "orchestration", "refactoring"],
29+
"author": "davidvujic",
30+
"icon": "🎭",
31+
"featured": true
32+
},
33+
{
34+
"name": "notify-hooks",
35+
"description": "Desktop sound notifications when ECA finishes responding or needs tool call approval",
36+
"source": "plugins/notify-hooks",
37+
"category": "Productivity",
38+
"tags": ["hooks", "notifications", "sound", "desktop"],
39+
"author": "ericdallo",
40+
"icon": "🔔",
41+
"featured": false
42+
}
43+
]
44+
}

.github/workflows/deploy.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: pages
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
24+
- name: Setup Node.js
25+
uses: actions/setup-node@v4
26+
with:
27+
node-version: 22
28+
cache: npm
29+
cache-dependency-path: website/package-lock.json
30+
31+
- name: Install dependencies
32+
working-directory: website
33+
run: npm ci
34+
35+
- name: Build
36+
working-directory: website
37+
run: npm run build
38+
39+
- name: Upload artifact
40+
uses: actions/upload-pages-artifact@v3
41+
with:
42+
path: website/dist
43+
44+
deploy:
45+
needs: build
46+
runs-on: ubuntu-latest
47+
environment:
48+
name: github-pages
49+
url: ${{ steps.deployment.outputs.page_url }}
50+
steps:
51+
- name: Deploy to GitHub Pages
52+
id: deployment
53+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Dependencies
2+
node_modules/
3+
4+
# Build output
5+
website/dist/
6+
dist/
7+
8+
# Environment
9+
.env
10+
.env.*
11+
12+
# OS
13+
.DS_Store
14+
Thumbs.db
15+
16+
# Editor
17+
.vscode/
18+
.idea/
19+
*.swp
20+
*.swo
21+
*~

CONTRIBUTING.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Contributing to ECA Plugins
2+
3+
Thank you for your interest in contributing to the ECA plugin marketplace! This guide walks you through the process of submitting a new plugin.
4+
5+
## Plugin structure
6+
7+
Each plugin lives under `plugins/<plugin-name>/` and can provide any combination of:
8+
9+
```
10+
plugins/my-plugin/
11+
├── skills/ # Skill directories (each subfolder is a skill)
12+
│ └── my-skill/
13+
│ └── my-skill.md
14+
├── agents/ # Agent definitions (Markdown files)
15+
│ └── my-agent.md
16+
├── commands/ # Custom commands (Markdown files)
17+
│ └── my-command.md
18+
├── rules/ # Rule files applied to conversations
19+
│ └── my-rule.md
20+
├── hooks/ # Hook definitions
21+
│ └── hooks.json
22+
├── .mcp.json # MCP server definitions
23+
├── eca.json # Arbitrary config overrides
24+
└── README.md # Documentation (displayed on the marketplace website)
25+
```
26+
27+
You don't need all of these — include only the components your plugin provides.
28+
29+
## Adding a plugin
30+
31+
### 1. Create the plugin directory
32+
33+
```bash
34+
mkdir -p plugins/my-plugin
35+
```
36+
37+
### 2. Add your plugin components
38+
39+
Add the files for your plugin (skills, agents, rules, etc.) following the structure above.
40+
41+
### 3. Add a README
42+
43+
Create `plugins/my-plugin/README.md` describing what your plugin does, how to use it, and any configuration options.
44+
45+
### 4. Register in the marketplace
46+
47+
Add an entry to `.eca-plugin/marketplace.json`:
48+
49+
```json
50+
{
51+
"name": "my-plugin",
52+
"description": "A short description of what your plugin does",
53+
"source": "plugins/my-plugin",
54+
"category": "Development",
55+
"tags": ["relevant", "tags"],
56+
"author": "Your Name",
57+
"icon": "🔧"
58+
}
59+
```
60+
61+
**Fields:**
62+
63+
| Field | Required | Description |
64+
|-------|----------|-------------|
65+
| `name` | Yes | Unique plugin identifier (kebab-case) |
66+
| `description` | Yes | Short description (one sentence) |
67+
| `source` | Yes | Path to the plugin directory (relative to repo root) |
68+
| `category` | Yes | One of: `Development`, `Productivity`, `Documentation`, `DevOps`, `Data`, `Design` |
69+
| `tags` | Yes | Array of relevant tags for search/filtering |
70+
| `author` | Yes | Author name or organization |
71+
| `icon` | No | Emoji icon for the plugin card |
72+
| `featured` | No | Set to `true` for featured plugins (maintainers only) |
73+
74+
### 5. Open a pull request
75+
76+
Submit a PR with your plugin. We'll review it for:
77+
78+
- **Usefulness** — Does it provide value to ECA users?
79+
- **Quality** — Are the skills/agents/rules well-written?
80+
- **Safety** — Does it follow responsible AI practices?
81+
- **Documentation** — Is the README clear and helpful?
82+
83+
## Guidelines
84+
85+
- Keep plugin names short and descriptive (kebab-case)
86+
- Write clear, concise skill/agent prompts
87+
- Include examples in your README
88+
- Test your plugin locally before submitting (add it as a local source in your ECA config)
89+
- One plugin per PR unless they're closely related
90+
91+
## Testing locally
92+
93+
You can test your plugin by pointing ECA to your local clone:
94+
95+
```json
96+
{
97+
"plugins": {
98+
"local": { "source": "/path/to/eca-plugins" },
99+
"install": ["my-plugin"]
100+
}
101+
}
102+
```
103+
104+
## Questions?
105+
106+
Open an issue or reach out on [Slack](https://join.slack.com/t/eca-dev/shared_invite/zt-34p6n16s1-_MwEJMr2F~gD2ol4gzntqw).

0 commit comments

Comments
 (0)