shoulda/contains the Python agent package; extend modules underagents/for new capabilities.frontend/houses the Next.js client; usesrc/componentsfor shared UI,hooks/for client state, and store static assets inpublic/.infra/holds the AWS CDK app (lib/for stacks,lambda/for runtime code) with helper scripts underinfra/scripts/.docs/captures architecture notes; reviewdocs/AGENT_CORE.mdbefore touching orchestration logic, and keep new design write-ups here.scripts/provides deployment and Cognito utilities—mirror their structure if you add agent automation.
uv sync --devinstalls backend dependencies for the agent package.uv run pytest,uv run ruff check ., anduv run ruff format .cover backend tests, linting, and formatting.cd frontend && npm installonce per laptop;npm run dev,npm test, andnpm run lintdrive local Next.js work.cd infra && npm install;npm run buildcompiles TypeScript, whilenpm run cdk -- deployapplies infrastructure (use a sandbox AWS profile).
- Python follows Ruff (
line-length=100, double quotes, spaces); keep modules/functionssnake_case, classesPascalCase, and annotate public callables. - Frontend code is TypeScript-first with ESLint; keep React components and hooks in
PascalCaseand colocate styles/tests when practical. - CDK constructs in
infra/libstayPascalCase; configuration belongs in context files or environment variables, not hard-coded constants.
- Add test or test case only if it adds significant value.
- Store backend tests under
tests/, naming filestest_<module>.py; mock FRED/Yahoo/AWS integrations so pytest stays offline. - Frontend uses Jest + Testing Library; create
*.test.tsxclose to the component or under__tests__/. - Infrastructure tests live in
infra/test/; runnpm testafter TypeScript changes and before deploying stacks.
- Use the Playwright MCP runner to drive end-to-end UI checks while the Next.js dev server is running on
http://localhost:3000. - The shared browser profile retains Amplify localStorage tokens; existing demo sessions will skip the login screen.
- Use smaller viewport size to reduce screenshot size.
- Commits use short, imperative summaries (
add aws s3 and cloudfront); split unrelated changes and include context in the body when useful. - Reference tickets or docs, tag collaborators with
Co-authored-byif applicable, and keep branches current withmain. - PRs must describe motivation, local verification (commands run, screenshots for UI), and deployment impact; link to any related documentation updates.
- Ensure backend tests, frontend lint/tests, and
npm run buildfor infra all pass before requesting review.