Documentation Index
Fetch the complete documentation index at: https://grantmaster.dev/llms.txt
Use this file to discover all available pages before exploring further.
The “First PR” Guide
Welcome to the team! This guide will walk you through your first contribution to GrantMaster. We will add a simple feature: Displaying a “Last Synced” timestamp on the Grant Details page.🛠 Prerequisites
- Complete the Environment Setup.
- Ensure you have a local instance of the Firestore Emulator running.
- Have the Architecture Overview open for reference.
🚶 Step-by-Step Workflow
1. Create a Branch
2. Update the Data Model
Findsrc/shared/types/grant.ts and add the new field to the Grant interface:
3. Update the Service (Backend)
Opensrc/features/intelligence/services/GrantService.ts. Navigate to the updateGrant method and ensure it can handle the new field.
4. Update the UI (Frontend)
Opensrc/features/intelligence/components/GrantDetailView.tsx.
- Locate the header section.
- Add a small text element to display the timestamp.
- Use our
FormattedDateutility component to ensure consistency.
5. Add a Test
Create or updatesrc/features/intelligence/components/__tests__/GrantDetailView.test.tsx.
- Verify that the timestamp renders correctly when provided.
- Verify it shows “Never” or is hidden when
null.
6. Lint and Type-Check
7. Guardrails to Remember
Before opening the PR, do a quick pass on the architecture checks that most often surprise first-time contributors:- If you changed any
src/features/*/public.tsexports, make surePUBLIC_API_VERSIONis correct and document breaking changes in../../engineering/api-reference/changelog-public-api.md. - If you changed TypeScript baseline files, your PR needs explicit acknowledgement: add the
typescript-baseline-approvedlabel or include[typescript-baseline-approved]in the PR body. - If you changed agent tools or extension handlers that write through services, pass
context.agentContextso audit logs still point to the original human actor.
../../../CONTRIBUTING.md. For the full policy set, see ../../engineering/architecture/architecture-consistency-guardrails.md.
8. Submit your PR
- Push your branch to GitHub.
- Open a PR with the template describing what you changed.
- Tag a senior engineer for review.
🎯 What to look for during review
- Did you follow the naming conventions in the Style Guide?
- Is the design responsive?
- Does the new field handle “Empty States” gracefully?