MicroFish/simulator/CONTRIBUTING.md

44 lines
1.7 KiB
Markdown

# Contributing to MiroFish BMNR
Thanks for your interest. Here's how to help.
## High-Impact Contributions
These directly improve simulation accuracy:
### Agent Personas
Edit `src/data/agents.js`. The `persona` field is a natural-language prompt sent to the LLM. The richer and more specific the persona, the better the agent reasons. Think of it like briefing a method actor — give them a backstory, investment philosophy, emotional triggers, and decision-making framework.
### Stimuli
Edit `src/data/stimuli.js`. Add market events that affect BMNR. Each stimulus needs an `id`, `name`, `cat` (category), `icon`, `impact` (-1 to 1), and `desc`.
### Prompt Engineering
Edit `src/engine/prompts.js`. This constructs the prompt sent to the LLM each round. Small changes here can dramatically change output quality. Test with multiple providers — what works for Claude may not work for GPT-4o.
### LLM Providers
Edit `src/providers/index.js`. Add new providers by implementing the `call(messages, options)` interface. Return `{ text, raw }`.
## Development Setup
```bash
git clone https://github.com/mikema-rgb/BMNR-Mirofish.git
cd BMNR-Mirofish
cp .env.example .env
npm install
npm run dev
```
## Pull Request Guidelines
- Keep PRs focused — one feature or fix per PR
- Test with at least 2 LLM providers if changing prompts
- Update README if adding new features
- Add your agent / stimulus to the appropriate data file, not to App.jsx
## Code Style
- No build tooling beyond Vite
- Functional React with hooks, no class components
- Inline styles using the `T` design token object (Wedge system)
- Keep App.jsx as a working monolith — it needs to run as a Claude artifact