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`.

python

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`...

python

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...