Language
16 documents
Csharp
Dependency Injection
Constructor injection via `Microsoft.Extensions.DependencyInjection`. Use interface types for dependencies, not concr...
Naming
- `PascalCase` for types, methods, properties, public fields, constants, namespaces
Nullable Reference Types
Enable `<Nullable>enable</Nullable>` in all projects. Treat warnings as design signals — `string` means non-null, `st...
Python
Dashboard service is display-only
The dashboard service is a generic API and UI layer. It has no knowledge of git, files, or roadmap structure. Agents ...
Database
Use SQLite with WAL mode for concurrent read access. No ORM — use direct SQL via the `sqlite3` standard library module.
Deterministic IDs
Always use the roadmap file's own UUID from its YAML frontmatter. Never generate random UUIDs. IDs must be determinis...
File paths
Use `pathlib.Path`, not `os.path`. All path manipulation should go through `pathlib`.
No external dependencies in core libraries
`roadmap_lib` uses the standard library only. Do not add PyYAML, requests, or other third-party packages to core libr...
Shell scripts
Shell script `main()` functions must only call other functions — no inline logic. Keep scripts composable and testable.
Type hints
Type hints are welcome but not required. Maintain Python 3.9 compatibility — use `from __future__ import annotations`...
Use roadmap_lib
Use functions from `roadmap_lib` for all roadmap operations (reading state, parsing frontmatter, finding steps, etc.)...
Web services
Use Flask for web services. The dashboard service runs on Flask with a REST API and SSE/polling for live updates.
YAML frontmatter
Parse YAML frontmatter with the built-in frontmatter parser in `roadmap_lib`. Do not add a PyYAML dependency. The par...