63 lines
3.2 KiB
Markdown
63 lines
3.2 KiB
Markdown
# fete
|
|
|
|
A privacy-focused, self-hostable PWA for event announcements and RSVPs. Alternative to Facebook Events or Telegram groups — reduced to the essentials.
|
|
|
|
## Project Statutes
|
|
|
|
These are the non-negotiable principles of this project. Every decision — architectural, technical, or design-related — must be consistent with them.
|
|
|
|
### Governance
|
|
|
|
- The agent works autonomously on implementation tasks.
|
|
- When facing architectural decisions, fundamental design questions, tech stack choices, or dependency selections: advise, propose options, and ask for approval before proceeding.
|
|
- Actively challenge decisions — including the developer's — when there are good reasons to. Don't be a yes-machine.
|
|
- When encountering problems, attempt to solve them independently first. Only escalate when stuck.
|
|
|
|
### Methodology
|
|
|
|
- Follow Research → Spec → Test → Implement → Review. No shortcuts.
|
|
- Never write implementation code without a specification.
|
|
- Always write tests before implementation (TDD). Red → Green → Refactor.
|
|
- Refactoring is permitted freely as long as it does not alter the fundamental architecture.
|
|
- No vibe coding. Every line of code must be intentional and traceable to a requirement.
|
|
|
|
### Privacy
|
|
|
|
- Privacy is a design constraint, not a feature. It shapes every decision from the start.
|
|
- No analytics, no telemetry — not even self-hosted.
|
|
- Never log PII or IP addresses on the server.
|
|
- For every feature, critically evaluate what data is necessary. Only store what is absolutely required for functionality.
|
|
- Never include external dependencies that phone home: no CDNs, no Google Fonts, no tracking-capable libraries.
|
|
|
|
### Quality
|
|
|
|
- KISS and grugbrain. Engineer it properly, but don't over-engineer.
|
|
- No workarounds. Always fix the root cause, even if it takes longer.
|
|
- Address technical debt immediately. Don't let it accumulate.
|
|
- Accessibility is a baseline requirement, not an afterthought.
|
|
|
|
### Dependencies
|
|
|
|
- Every dependency is a deliberate, justified decision.
|
|
- A dependency must provide substantial value and a significant portion of its features must actually be used.
|
|
- Dependencies must be actively maintained and open source. Copyleft is fine — the project is GPL-licensed.
|
|
- Never introduce a dependency that phones home or compromises user privacy.
|
|
|
|
### Language
|
|
|
|
- Conversation and brainstorming: German.
|
|
- Code, comments, commits, documentation: English — no exceptions.
|
|
|
|
### Deployment
|
|
|
|
- The project provides a Dockerfile. How and where it is deployed is the hoster's responsibility.
|
|
- A docker-compose example in the README is sufficient.
|
|
- Documentation lives in the README. No wiki, no elaborate docs site.
|
|
|
|
### Ralph Loops
|
|
|
|
- Autonomous work is done via Ralph Loops. See [.claude/rules/ralph-loops.md](.claude/rules/ralph-loops.md) for documentation.
|
|
- The loop runner is `ralph.sh`. Each run lives in its own directory under `.ralph/`.
|
|
- Run directories contain: `instructions.md` (prompt), `chief-wiggum.md` (directives), `answers.md` (human answers), `questions.md` (Ralph's questions), `progress.txt` (iteration log), `meta.md` (metadata), `run.log` (execution log).
|
|
- Project specifications (user stories, setup tasks, personas, etc.) live in `spec/`.
|