Reviewing

48 documents

Code Quality

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

Security

Authentication

Use OAuth 2.0 / OpenID Connect with PKCE for all public clients. The Implicit flow is

csharpioskotlintypescriptwebwindows

Authorization

**Server-side authorization is the only real authorization.** Client-side checks (hiding

typescriptweb

Content Security Policy

Prevent XSS and injection with a strict CSP. Web apps only.

typescriptweb

CORS

Cross-Origin Resource Sharing — get it right or don't enable it.

web

Dependency Security

Your dependencies are your attack surface. Manage them actively.

pythontypescript

Input Validation

**Never trust client input.** Client-side validation is a UX feature, not a security control.

typescriptweb

LLM red teaming

Adversarially test LLM and agent systems against the OWASP LLM Top 10 and gate releases on a tracked attack-success-rate threshold.

Privacy and security by default

Collect only what is needed. Prefer on-device processing.

kotlinswifttypescript

Secure Storage

Tokens, credentials, and any sensitive data MUST use platform secure storage. Never store secrets in plaintext config...

kotlinswiftwindows

Security Headers Checklist

Every web application should set these response headers:

web

Sensitive Data

Minimize what you collect, encrypt what you keep, never log what you shouldn't.

typescriptweb

Token Handling

Short-lived (5-15 min). Include only necessary claims — no PII in JWTs

kotlintypescriptwebwindows

Transport Security

**TLS 1.2 minimum**, prefer TLS 1.3. Disable TLS 1.0 and 1.1 entirely.

typescriptweb

Vulnerability prioritization by exploitability

Triage CVEs by exploitability — CISA KEV and high EPSS first, deprioritize unreachable transitive findings — not raw CVSS.