Lucy in the Loop is an open‑source, privacy‑first AI companion for mental health, wellness, and peak performance. Our aim is to build capable software without burning out contributors. These guidelines explain how to contribute effectively, how we leverage AI (ethically), and how we protect everyone’s time, attention, and well‑being.
- Be kind. Respect privacy. Default to transparency.
- Use AI to reduce human toil, not to bypass judgment.
- Every commit must include a DCO
Signed-off-by:line. - Small, well‑scoped PRs with tests → faster reviews.
- AI‑generated changes require a human sponsor and extra checks for safety, bias, and privacy.
- Two approvals (human + automated) for normal code; more for sensitive areas.
- No pager‑duty vibes: we use rotation, quiet hours, and AI triage so people aren’t overworked.
- Code: features, fixes, refactors, performance improvements.
- Safety & ethics: red‑teaming prompts, guardrail rules, bias/fairness tests, risk assessments.
- Docs & tutorials: setup guides, usage examples, diagrams, translations.
- Testing: unit/integration tests, reproducibility harnesses, regression cases.
- Design & UX: flows, microcopy, accessibility improvements.
- Research: evidence summaries; evaluation protocols.
- Governance: proposals (RFCs), triage, release checklists.
No contribution is too small. Even fixing a typo helps.
- Autonomy & boundaries. People have lives. Async by default, no expectation to respond off‑hours.
- Non‑maleficence. Don’t introduce harm: psychological, privacy, or security.
- Justice. Build for everyone; treat fairness regressions as critical bugs.
- Transparency. Explain what you changed and why. Keep decision trails public.
- Privacy. Local‑first, data‑minimizing. Never upload user data to third‑party services.
- Accountability. Every change is attributable, reproducible, and reversible.
We love AI because it removes toil. We require human judgment where it matters.
Allowed (encouraged):
- Drafting tests, docs, examples.
- Generating scaffolds, refactors, or small fixes.
- Triage suggestions, label predictions, changelog drafts.
- Static analysis, security scans, bias/fairness test generation.
Requires a human sponsor & review:
- Any user‑facing behavior, especially mental‑health advice or tone.
- Changes to safety filters, crisis flows, privacy/crypto code, data handling.
- Model, prompt, or policy updates that can affect user outcomes.
Provenance in commits: Include trailers when AI assists:
AI-Coauthored: yes
AI-Agent: <name or tool> # e.g., "RefactorBot v1.2"
AI-Notes: <brief summary of what the agent did>
Human responsibility: A human sponsor must co‑review and add their own Signed-off-by:. AI cannot self‑approve or merge.
Data rules: Never feed private or identifying data into external AI systems. Keep prompts and test inputs synthetic or sanitized.
- Rotation & quiet hours. We rotate maintainers weekly; bots manage queues. Reviews pause during published quiet hours; “urgent” is reserved for security/safety.
- No DM for reviews. Use Issues/PR comments to avoid pressure and keep context public.
- Reasonable SLAs. Bot triage within 24 hours; human first‑pass within 5 business days.
- Small PRs win. Aim for <300 lines diff where possible; split larger changes.
-
Fork and clone
git clone https://github.com/quantumpipes/lucy-in-the-loop cd lucy-in-the-loop -
Create a branch Use a descriptive name:
feature/add-mood-tracker fix/race-in-safety-agent docs/translate-onboarding-es -
Set up tooling
- Python: PEP 8 style; run formatters/linters (e.g.,
black,ruff) and type checks (mypy) if configured. - Pre‑commit hooks:
pre-commit install. - Run the full test suite locally before pushing.
- Python: PEP 8 style; run formatters/linters (e.g.,
-
Implement your change
- Add/adjust tests. Aim for high coverage of new paths.
- For model/prompt/policy changes, include evaluation notes and before/after examples.
- For performance work, include a simple benchmark script and expected numbers.
-
Commit in logical chunks
git add -A git commit -s -m "Safety: de‑escalate phrasing in crisis hints (resolves #123)" # Use -s to add the DCO Signed-off-by line
Include a concise what/why. If AI assisted, add the trailers shown above.
-
Push and open a PR
git push origin <your-branch>
Fill out the PR template. Link issues. Explain risks, user impact, and test evidence. Mark as Draft if still iterating.
-
Automated checks (required): build, tests, lint/type, security scan, license scan, safety/bias suite (where relevant).
-
Approvals:
- Standard code: ≥1 human maintainer + automated checks passing.
- Sensitive surfaces (safety, privacy, data handling, encryption, crisis flows, clinician‑facing content): ≥2 human approvals from different orgs and the safety/bias gates must pass.
-
Merge etiquette: Maintainers merge during working hours. Avoid self‑merges unless trivial and documented. Squash‑merge by default; keep clear histories.
Backouts: If a change causes harm, privacy regression, or breaks safety tests, maintainers may revert immediately with explanation and follow‑up issue.
- Risk analysis: user impact, failure modes, mitigation.
- Safety/bias evaluation results and datasets used.
- Privacy notes: data touched, storage, retention, and access.
- Rollout plan: flags, staged rollout, fallback/rollback.
- Communications: release notes, user‑visible changes.
- Never include secrets in code, test data, or issue text.
- Use least‑privilege for any new permission.
- No telemetry or hidden data collection. Logging must be user‑owned/local and scrubbed of PII.
- Report vulnerabilities privately via the Security Policy; do not file public issues for exploitable bugs.
- Write clear, accessible English; define terms on first use.
- Keep examples runnable. Prefer short, focused snippets.
- For translations, note regional language variants and mental‑health terminology; coordinate with other translators when possible.
- Docs PRs follow the same review path; screenshots/diagrams should include alt text.
- Bot pass: label, deduplicate, request minimal repro, route to subsystem.
- Triage rotation: a human “sheriff” confirms scope/severity and assigns.
- States:
needs-info→ready→in-progress→needs-review→done. - Escalation:
security,safety, andprivacylabels jump the queue.
For cross‑cutting designs (new agent frameworks, storage formats, core prompts), open an RFC:
- Problem statement, options considered, trade‑offs, risks, rollout plan.
- 1–2 week comment period (longer if holidays).
- Decision recorded with rationale; link to tracking issues.
- Subsystems have maintainers listed in
MAINTAINERS. - A small Technical Steering Committee (TSC) arbitrates conflicts, approves RFCs, and guards project values.
- Organisations may nominate maintainers, but no single org controls a majority of TSC seats. Conflicts of interest must be disclosed on relevant PRs.
-
Code is Apache‑2.0. By contributing, you agree your contribution is licensed under the project license.
-
All commits must include the DCO line (use
git commit -s):Signed-off-by: Your Name <you@example.com> -
When importing third‑party code/models, verify license compatibility and include notices in
THIRD_PARTY_LICENSES.
By contributing, you represent that you are not a person or entity subject to
sanctions or export restrictions (e.g., on OFAC or BIS denied lists) and are not
located in a comprehensively embargoed jurisdiction. Do not contribute if such
restrictions apply to you. See EXPORT.md for project stance and references.
feat(ui): add daily mood tracker with optional journaling (closes #123)
- New component <MoodTracker/> with 3‑tap sentiment input
- Local‑only storage; no network calls
- Adds unit tests and a11y keyboard navigation
AI-Coauthored: yes
AI-Agent: RefactorBot v1.2
AI-Notes: scaffolded tests and refactor suggestions
Signed-off-by: Jane Doe <jane@ex.com>
Prefixes we commonly use: feat, fix, perf, docs, test, chore, refactor, safety, privacy.
We follow a Code of Conduct. Be respectful, assume good intent, prefer public discussion, and help newcomers. If you feel pressured or harassed, contact the maintainers privately; we will act.
- Questions: open a Discussion.
- Bugs/feature requests: open an Issue with repro steps or use cases.
- Security issues: follow the Security Policy.
- Ethical/safety concerns: use the “Ethical Issue” template; these are triaged immediately.
By contributing, you’re helping build a privacy‑first, compassionate AI that puts human well‑being first. We’re grateful for your time and we promise to protect it.