-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGODSPEED.md.example
More file actions
47 lines (37 loc) · 1.83 KB
/
Copy pathGODSPEED.md.example
File metadata and controls
47 lines (37 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Project Instructions for Godspeed
Place this file as `GODSPEED.md` in your project root. Godspeed loads it
automatically as part of the system prompt on every session. It walks up the
directory tree, so parent directories can have their own `GODSPEED.md` for
shared instructions (parent first, child overrides).
## Template
```markdown
# GODSPEED.md
## Project
<!-- What this project is, in one sentence. -->
This is a Python web API using FastAPI, PostgreSQL, and Alembic.
## Stack
<!-- Key frameworks, versions, and tools so the agent picks the right patterns. -->
- Python 3.12, FastAPI 0.115, SQLAlchemy 2.0, Alembic
- pytest + httpx for testing, ruff for linting
- Docker Compose for local dev, deployed on Railway
## Coding Standards
<!-- Rules the agent should follow when writing code. -->
- Type hints on all public functions (`from __future__ import annotations`)
- No print() in production code — use `logging.getLogger(__name__)`
- Structured logging: `logger.info("event key=%s", value)`, never f-strings
- Tests live in `tests/` and mirror the `src/` structure
## Architecture Decisions
<!-- Non-obvious choices the agent should know about. -->
- We use repository pattern — never query the database directly in routes
- All background jobs go through Celery, not FastAPI BackgroundTasks
- Never modify migration files directly — always `alembic revision --autogenerate`
## Off-Limits
<!-- Things the agent should never do. -->
- Do not modify `alembic/versions/` files
- Do not run `DROP TABLE` or `DELETE FROM` without a WHERE clause
- Do not commit `.env` or any file matching `*.secret.*`
```
## Tips
- Keep it concise — this is injected into every LLM prompt, so every token counts.
- Focus on what the LLM wouldn't know from reading the code alone.
- Update it as your project evolves — stale instructions are worse than none.