Skip to content

Commit 38c252e

Browse files
Merge remote-tracking branch 'origin/master' into merge-first3-master
# Conflicts: # .github/actions/eas-build/action.yml # .github/actions/setup-node-pnpm-install/action.yml # .github/workflows/eas-build-qa.yml # .github/workflows/new-app-version.yml # .vscode/settings.json # __tests__/components/ui/button.test.tsx # __tests__/components/ui/checkbox.test.tsx # __tests__/components/ui/input.test.tsx # __tests__/components/ui/select.test.tsx # env.js # eslint.config.mjs # jest-setup.ts # lint-staged.config.js # package.json # pnpm-lock.yaml # src/api/common/client.tsx # src/api/common/utils.tsx # src/api/posts/use-add-post.ts # src/api/posts/use-post.ts # src/api/posts/use-posts.ts # src/app/(app)/_layout.tsx # src/app/(app)/index.tsx # src/app/(app)/settings.tsx # src/app/_layout.tsx # src/app/feed/[id].tsx # src/app/feed/add-post.tsx # src/app/login.tsx # src/app/onboarding.tsx # src/components/buttons.tsx # src/components/card.tsx # src/components/colors.tsx # src/components/cover.tsx # src/components/inputs.tsx # src/components/login-form.test.tsx # src/components/login-form.tsx # src/components/settings/item.tsx # src/components/settings/items-container.tsx # src/components/settings/language-item.tsx # src/components/settings/theme-item.tsx # src/components/title.tsx # src/components/typography.tsx # src/components/ui/button.tsx # src/components/ui/checkbox.tsx # src/components/ui/focus-aware-status-bar.tsx # src/components/ui/icons/arrow-right.tsx # src/components/ui/icons/caret-down.tsx # src/components/ui/icons/feed.tsx # src/components/ui/icons/github.tsx # src/components/ui/icons/language.tsx # src/components/ui/icons/rate.tsx # src/components/ui/icons/settings.tsx # src/components/ui/icons/share.tsx # src/components/ui/icons/style.tsx # src/components/ui/icons/support.tsx # src/components/ui/icons/website.tsx # src/components/ui/image.tsx # src/components/ui/input.tsx # src/components/ui/list.tsx # src/components/ui/modal-keyboard-aware-scroll-view.tsx # src/components/ui/modal.tsx # src/components/ui/progress-bar.tsx # src/components/ui/select.tsx # src/components/ui/text.tsx # src/components/ui/utils.tsx # src/lib/auth/index.tsx # src/lib/hooks/use-selected-theme.tsx # src/lib/i18n/index.tsx # src/lib/i18n/utils.tsx # src/lib/test-utils.tsx # src/lib/use-theme-config.tsx # src/lib/utils.ts
2 parents 829da2f + 828d9f2 commit 38c252e

313 files changed

Lines changed: 12922 additions & 20167 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
name: pr-description
3+
description: Generates a structured PR description from the current branch diff, following the repository's pull request template exactly. Use when the user asks to "write a PR description", "generate a PR description", "create a pull request description", "update the PR description", "prepare a PR body", "draft a pull request summary", or "write GitHub pull request text" from the current branch changes.
4+
---
5+
6+
# PR Description
7+
8+
## Purpose
9+
10+
Create a brief, reviewer-friendly PR description from the current branch diff. The output must follow the repository's pull request template exactly, preserving every heading and keeping placeholders where content is unknown.
11+
12+
## Style Rules
13+
14+
- Use plain language. Avoid filler like "this PR aims to", "in order to", and "leverages".
15+
- Be concrete. Name the screens, components, flows, commands, or files that changed.
16+
- Keep it short. Each prose section should usually be 1-3 sentences.
17+
- Avoid bullet soup. If a section needs more than 6 bullets, group related items.
18+
- Skip obvious filler such as import cleanup or lint-only noise unless that is the point of the PR.
19+
- Do not invent Jira tickets, screenshots, devices tested, or implementation details not supported by the diff.
20+
21+
## Workflow
22+
23+
1. Read the repository instructions first:
24+
- `AGENTS.md`
25+
- `REVIEW.md` when present, because this repo requires it for review-related work.
26+
2. Find the PR template:
27+
- Prefer `.github/PULL_REQUEST_TEMPLATE.md`.
28+
- Fall back to `PULL_REQUEST_TEMPLATE.md` at the repo root only if the GitHub template is absent.
29+
3. Refresh and inspect the branch:
30+
- Run `git fetch origin master`.
31+
- Run `git log origin/master..HEAD --oneline`.
32+
- Run `git diff origin/master...HEAD --stat`.
33+
- Run `git diff origin/master...HEAD`.
34+
4. Draft the PR description using the exact headings and order from the template.
35+
5. Save it as `PR_DESCRIPTION.md` at the repo root, overwriting any existing file.
36+
6. Ensure `PR_DESCRIPTION.md` is ignored by git. If it is missing from `.gitignore`, append it under:
37+
38+
```gitignore
39+
# PR description scratchpad (agents)
40+
PR_DESCRIPTION.md
41+
```
42+
43+
7. Report back with the relative path only, unless the user asks to see the content.
44+
45+
## Section Guidance For This Repository
46+
47+
The current template is `.github/PULL_REQUEST_TEMPLATE.md`. Keep the warning comment and separators from the template if they are present.
48+
49+
### Jira board reference:
50+
51+
Leave the example placeholder or replace it only if a real Jira ticket is present in the branch name, commits, or user request. Do not invent ticket IDs.
52+
53+
### What does this do?
54+
55+
Write 2-4 concise sentences describing what changed. Focus on user-facing behavior, developer workflow changes, or the concrete problem fixed.
56+
57+
### Why did you do this?
58+
59+
Write 1-3 concise sentences explaining the reason for the change. Tie it to the bug, product need, maintainability concern, or template behavior visible in the diff.
60+
61+
### Who/what does this impact?
62+
63+
Name affected screens, flows, platforms, users, modules, or developer workflows. Use a short sentence or compact bullets. If impact is unclear, leave a placeholder comment instead of guessing.
64+
65+
### How did you test this?
66+
67+
List commands run and manual checks performed. Keep the existing checklist from the template and check only items that are supported by evidence or explicitly provided by the user.
68+
69+
### Notes:
70+
71+
Include caveats, follow-ups, migration notes, or review hints. If there are none, leave the template placeholder.
72+
73+
### Screenshots / Previews
74+
75+
Keep the screenshot/Figma/device placeholders unless real images or recordings are available. Remove irrelevant bug before/after tables only when the template structure still remains clear.
76+
77+
## Final Response
78+
79+
After writing the file, say where it was saved, for example:
80+
81+
`Done: PR_DESCRIPTION.md`
82+
83+
Do not paste the full PR description unless the user asks.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
name: review-changes
3+
description: Reviews the current branch diff against this project's architecture, conventions, and code review checklist. Use when the user asks to "review my changes", "review the diff", "check my code", "run a code review", or "review this branch".
4+
allowed-tools: Bash(git:*), Read
5+
---
6+
7+
# Review Changes
8+
9+
## Purpose
10+
11+
Perform a code review of the current branch diff against the project's architecture rules, coding conventions, and the REVIEW.md checklist. Report findings grouped by category, with file and line references where possible.
12+
13+
## Workflow
14+
15+
1. Read the project rules:
16+
- `AGENTS.md` — critical constraints and glossary
17+
- `REVIEW.md` — the review checklist; this is the primary source of truth for what to flag
18+
- `agent_docs/architecture.md` — layer diagram, routing conventions, dual auth system
19+
- `agent_docs/conventions.md` — API hooks, styling, forms, i18n, anti-patterns
20+
21+
2. Inspect the branch diff:
22+
- Run `git fetch origin master`.
23+
- Run `git log origin/master..HEAD --oneline` to understand the commit scope.
24+
- Run `git diff origin/master...HEAD --stat` to see which files changed.
25+
- Run `git diff origin/master...HEAD` to read the full diff.
26+
27+
3. If a changed file needs more context to review correctly (e.g. to check imports, types, or hook usage), use Read to open it.
28+
29+
4. Review the diff against every category in REVIEW.md:
30+
- API & Query layer
31+
- Auth & security
32+
- Type safety
33+
- i18n
34+
- Styling
35+
- Testing
36+
- Performance
37+
38+
5. Also check for violations of the critical constraints in `AGENTS.md`:
39+
- Package manager (`pnpm` only)
40+
- Env values via `Env` from `@/lib/env`
41+
- No auth logic in screen components
42+
- No manual camelCase↔snake_case conversion
43+
- No direct MMKV access in components
44+
- All strings through `useTranslation()`
45+
- `createMutation` / `createQuery` from `react-query-kit`
46+
- `createQueryKeys` in `src/api/query-factory.ts`
47+
- `@shopify/flash-list` for growable lists
48+
- `expo-crypto` for random IDs
49+
- `react-hook-form` + `zod` for forms
50+
- `moti` or `react-native-reanimated` for animations (no `Animated` from RN directly)
51+
52+
6. Check layer boundaries from `agent_docs/architecture.md`:
53+
- Data flows down: `app/ → components/ → api/ → lib/`
54+
- Route guards belong only in `src/app/_layout.tsx`, never in screen files
55+
- Auth state management belongs only in `src/components/providers/auth.tsx` and `src/lib/auth/index.tsx`
56+
57+
## Output Format
58+
59+
Group findings by REVIEW.md category. For each finding:
60+
61+
```
62+
**[Category]** `path/to/file.ts` — short description of the issue and what the correct approach is.
63+
```
64+
65+
If a category has no issues, skip it.
66+
67+
End the report with one of:
68+
- **No issues found** — if the diff is clean across all categories.
69+
- **X issue(s) found** — a one-line summary count.
70+
71+
Do not suggest stylistic preferences not grounded in REVIEW.md, AGENTS.md, or agent_docs/. Do not flag things that are already handled automatically by the interceptors or tooling (e.g. case conversion, token injection).
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
if ! command -v sonar &> /dev/null; then
3+
exit 0
4+
fi
5+
sonar hook claude-pre-tool-use
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
if ! command -v sonar &> /dev/null; then
3+
exit 0
4+
fi
5+
sonar hook claude-prompt-submit

.claude/settings.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"hooks": {
3+
"PostToolUse": [
4+
{
5+
"matcher": "Edit|Write",
6+
"hooks": [
7+
{
8+
"type": "command",
9+
"command": "pnpm type-check 2>&1 | head -30"
10+
}
11+
]
12+
}
13+
],
14+
"PreToolUse": [
15+
{
16+
"matcher": "Read",
17+
"hooks": [
18+
{
19+
"type": "command",
20+
"command": ".claude/hooks/sonar-secrets/build-scripts/pretool-secrets.sh",
21+
"timeout": 60
22+
}
23+
]
24+
}
25+
],
26+
"UserPromptSubmit": [
27+
{
28+
"matcher": "*",
29+
"hooks": [
30+
{
31+
"type": "command",
32+
"command": ".claude/hooks/sonar-secrets/build-scripts/prompt-secrets.sh",
33+
"timeout": 60
34+
}
35+
]
36+
}
37+
]
38+
}
39+
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
name: pr-description
3+
description: Generates a structured PR description from the current branch diff, following the repository's pull request template exactly. Use when the user asks to "write a PR description", "generate a PR description", "create a pull request description", "update the PR description", "prepare a PR body", "draft a pull request summary", or "write GitHub pull request text" from the current branch changes.
4+
---
5+
6+
# PR Description
7+
8+
## Purpose
9+
10+
Create a brief, reviewer-friendly PR description from the current branch diff. The output must follow the repository's pull request template exactly, preserving every heading and keeping placeholders where content is unknown.
11+
12+
## Style Rules
13+
14+
- Use plain language. Avoid filler like "this PR aims to", "in order to", and "leverages".
15+
- Be concrete. Name the screens, components, flows, commands, or files that changed.
16+
- Keep it short. Each prose section should usually be 1-3 sentences.
17+
- Avoid bullet soup. If a section needs more than 6 bullets, group related items.
18+
- Skip obvious filler such as import cleanup or lint-only noise unless that is the point of the PR.
19+
- Do not invent Jira tickets, screenshots, devices tested, or implementation details not supported by the diff.
20+
21+
## Workflow
22+
23+
1. Read the repository instructions first:
24+
- `AGENTS.md`
25+
- `REVIEW.md` when present, because this repo requires it for review-related work.
26+
2. Find the PR template:
27+
- Prefer `.github/PULL_REQUEST_TEMPLATE.md`.
28+
- Fall back to `PULL_REQUEST_TEMPLATE.md` at the repo root only if the GitHub template is absent.
29+
3. Refresh and inspect the branch:
30+
- Run `git fetch origin master`.
31+
- Run `git log origin/master..HEAD --oneline`.
32+
- Run `git diff origin/master...HEAD --stat`.
33+
- Run `git diff origin/master...HEAD`.
34+
4. Draft the PR description using the exact headings and order from the template.
35+
5. Save it as `PR_DESCRIPTION.md` at the repo root, overwriting any existing file.
36+
6. Ensure `PR_DESCRIPTION.md` is ignored by git. If it is missing from `.gitignore`, append it under:
37+
38+
```gitignore
39+
# PR description scratchpad (agents)
40+
PR_DESCRIPTION.md
41+
```
42+
43+
7. Report back with the relative path only, unless the user asks to see the content.
44+
45+
## Section Guidance For This Repository
46+
47+
The current template is `.github/PULL_REQUEST_TEMPLATE.md`. Keep the warning comment and separators from the template if they are present.
48+
49+
### Jira board reference:
50+
51+
Leave the example placeholder or replace it only if a real Jira ticket is present in the branch name, commits, or user request. Do not invent ticket IDs.
52+
53+
### What does this do?
54+
55+
Write 2-4 concise sentences describing what changed. Focus on user-facing behavior, developer workflow changes, or the concrete problem fixed.
56+
57+
### Why did you do this?
58+
59+
Write 1-3 concise sentences explaining the reason for the change. Tie it to the bug, product need, maintainability concern, or template behavior visible in the diff.
60+
61+
### Who/what does this impact?
62+
63+
Name affected screens, flows, platforms, users, modules, or developer workflows. Use a short sentence or compact bullets. If impact is unclear, leave a placeholder comment instead of guessing.
64+
65+
### How did you test this?
66+
67+
List commands run and manual checks performed. Keep the existing checklist from the template and check only items that are supported by evidence or explicitly provided by the user.
68+
69+
### Notes:
70+
71+
Include caveats, follow-ups, migration notes, or review hints. If there are none, leave the template placeholder.
72+
73+
### Screenshots / Previews
74+
75+
Keep the screenshot/Figma/device placeholders unless real images or recordings are available. Remove irrelevant bug before/after tables only when the template structure still remains clear.
76+
77+
## Final Response
78+
79+
After writing the file, say where it was saved, for example:
80+
81+
`Done: PR_DESCRIPTION.md`
82+
83+
Do not paste the full PR description unless the user asks.
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
name: review-changes
3+
description: Reviews the current branch diff against this project's architecture, conventions, and code review checklist. Use when the user asks to "review my changes", "review the diff", "check my code", "run a code review", or "review this branch".
4+
allowed-tools: Bash(git:*), Read
5+
---
6+
7+
# Review Changes
8+
9+
## Purpose
10+
11+
Perform a code review of the current branch diff against the project's architecture rules, coding conventions, and the REVIEW.md checklist. Report findings grouped by category, with file and line references where possible.
12+
13+
## Workflow
14+
15+
1. Read the project rules:
16+
- `AGENTS.md` — critical constraints and glossary
17+
- `REVIEW.md` — the review checklist; this is the primary source of truth for what to flag
18+
- `agent_docs/architecture.md` — layer diagram, routing conventions, dual auth system
19+
- `agent_docs/conventions.md` — API hooks, styling, forms, i18n, anti-patterns
20+
21+
2. Inspect the branch diff:
22+
- Run `git fetch origin master`.
23+
- Run `git log origin/master..HEAD --oneline` to understand the commit scope.
24+
- Run `git diff origin/master...HEAD --stat` to see which files changed.
25+
- Run `git diff origin/master...HEAD` to read the full diff.
26+
27+
3. If a changed file needs more context to review correctly (e.g. to check imports, types, or hook usage), use Read to open it.
28+
29+
4. Review the diff against every category in REVIEW.md:
30+
- API & Query layer
31+
- Auth & security
32+
- Type safety
33+
- i18n
34+
- Styling
35+
- Testing
36+
- Performance
37+
38+
5. Also check for violations of the critical constraints in `AGENTS.md`:
39+
- Package manager (`pnpm` only)
40+
- Env values via `Env` from `@/lib/env`
41+
- No auth logic in screen components
42+
- No manual camelCase↔snake_case conversion
43+
- No direct MMKV access in components
44+
- All strings through `useTranslation()`
45+
- `createMutation` / `createQuery` from `react-query-kit`
46+
- `createQueryKeys` in `src/api/query-factory.ts`
47+
- `@shopify/flash-list` for growable lists
48+
- `expo-crypto` for random IDs
49+
- `react-hook-form` + `zod` for forms
50+
- `moti` or `react-native-reanimated` for animations (no `Animated` from RN directly)
51+
52+
6. Check layer boundaries from `agent_docs/architecture.md`:
53+
- Data flows down: `app/ → components/ → api/ → lib/`
54+
- Route guards belong only in `src/app/_layout.tsx`, never in screen files
55+
- Auth state management belongs only in `src/components/providers/auth.tsx` and `src/lib/auth/index.tsx`
56+
57+
## Output Format
58+
59+
Group findings by REVIEW.md category. For each finding:
60+
61+
```
62+
**[Category]** `path/to/file.ts` — short description of the issue and what the correct approach is.
63+
```
64+
65+
If a category has no issues, skip it.
66+
67+
End the report with one of:
68+
- **No issues found** — if the diff is clean across all categories.
69+
- **X issue(s) found** — a one-line summary count.
70+
71+
Do not suggest stylistic preferences not grounded in REVIEW.md, AGENTS.md, or agent_docs/. Do not flag things that are already handled automatically by the interceptors or tooling (e.g. case conversion, token injection).

0 commit comments

Comments
 (0)