Code Quality
12 documents
Bulk operation verification
After any operation touching 5+ files, run a verification pass for stale references before marking complete.
Code hygiene: remove the old thing
When you replace or refactor code, delete what it supersedes. Leave no dead code, orphaned files, or commented-out blocks behind.
Dependency Injection
Constructor injection via `Microsoft.Extensions.DependencyInjection`. Use interface types for dependencies, not concr...
File paths
Use `pathlib.Path`, not `os.path`. All path manipulation should go through `pathlib`.
Law of Demeter and Tell, Don't Ask
Talk only to immediate collaborators and tell objects to act rather than asking for their internals, except across documented boundary, builder, and pipeline cases.
Naming
- `PascalCase` for types, methods, properties, public fields, constants, namespaces
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...
Scope discipline
Only modify what was requested. State the goal before starting. Note but do not fix adjacent issues.
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.)...
YAML frontmatter
Parse YAML frontmatter with the built-in frontmatter parser in `roadmap_lib`. Do not add a PyYAML dependency. The par...