Prompt
Maintain clear code organization by placing code in appropriate files, directories, and modules. Respect module boundaries and create logical directory structures that reflect the code’s purpose and domain.
Key principles:
- Place types in dedicated type files (e.g., move
StagehandInitResulttotypes/evals.ts) - Create domain-specific directories for related functionality (e.g.,
lib/a11yfor accessibility utilities) - Respect module boundaries (evals should reference
dist, notlib) - Group related functions in appropriately named files (prompts and prompt building functions belong in
prompts.ts)
Example of proper organization:
// Before: accessibility functions mixed in handlers
// lib/handlers/observeHandler.ts
type AccessibilityNode = { ... }
function formatSimplifiedTree() { ... }
// After: dedicated accessibility module
// lib/a11y/utils.ts
type AccessibilityNode = { ... }
function formatSimplifiedTree() { ... }
This approach improves code discoverability, reduces coupling between modules, and makes the codebase easier to navigate and maintain.