Thanks for your interest in contributing. Here's what you need to know.
git clone https://github.com/glonlas/neuron.git
cd neuron
make install
# Edit ~/.agents-neuron/config.yaml — set vault_path to a test Obsidian vault
# Run: neuron bootstrap (in Claude Code)Agents Neuron has two layers:
| Layer | What it does | Where |
|---|---|---|
Skills (.md) |
LLM instructions for semantic work (scoring, synthesis, page creation) | SKILL.md + skills/*.md |
Scripts (.sh) |
Deterministic operations (find files, update metadata, lint checks) | scripts/*.sh |
All scripts source scripts/_config.sh which provides:
- Config loading (
VAULT,WIKI,SOURCES,MIN_SCORE,PAGE_TYPES) - Cross-platform helpers (
SED_INPLACE,portable_date_ago,portable_stat_mtime)
User-specific configuration lives in ~/.agents-neuron/ (outside the repo).
- Create
skills/your-skill.mdwith YAML frontmatter (name,description) - Add the command to the routing table in
SKILL.md - If the skill needs deterministic file operations, add a script in
scripts/
- Source
_config.shat the top for paths and portable helpers - Use
set -euo pipefail - Use
SED_INPLACE,portable_date_ago, etc. — never use platform-specific commands directly - Output tab-separated or
key=valueformat for LLM consumption - Quote all path variables (vault paths may contain spaces)
All scripts must work on both macOS and Linux. Key differences handled by _config.sh:
sed -i ''(macOS) vssed -i(GNU) → useSED_INPLACEarraydate -v(macOS) vsdate -d(GNU) → useportable_date_agostat -f(macOS) vsstat -c(GNU) → useportable_stat_mtime
- One logical change per PR
- Test on macOS if you have access; CI covers Linux
- If you modify a script, run it manually against a test vault to confirm it works
- Run
skill/scripts/doctor.shto validate setup before submitting
By contributing, you agree that your contributions will be licensed under the MIT License.