Ubisam-MobileGit/docs/product.md
choiminyeong 333baf4e52 docs: switch the engineering contract to Claude-only development
Claude becomes implementer; review moves to a separate Claude session or the product owner. README and product brief now describe the application as it is: the starring write scope, the removed compare view, and the C#/C++ focus.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-28 13:22:40 +09:00

60 lines
2.7 KiB
Markdown

# Product brief
## Purpose
UBGitea gives employees a focused Android experience for the company Gitea instance without attempting to reproduce every web feature.
## MVP outcomes
1. Sign in through Gitea OAuth 2.0 with PKCE.
2. View the signed-in user and organizations.
3. Browse accessible repositories, branches, directories, and files.
4. View issues, pull requests, and notifications.
5. Sign out and remove locally stored credentials.
## Repository browsing experience
Within the permissions of the signed-in Gitea account, the application must support:
- Listing organizations and repositories with pagination.
- Listing every branch and tag visible to the account.
- Browsing a repository tree at an explicit branch, tag, or commit.
- Viewing text source with the selected ref and path always visible.
- Viewing commit history and per-commit file changes.
- Viewing pull requests, issues, reviews, comments, and notifications.
Binary files, Git LFS pointers, submodules, and files too large for safe mobile rendering require an explicit fallback rather than being decoded as ordinary source text.
The first release is read-oriented. Creating, merging, deleting, or administering resources is out of scope until explicitly approved. The one approved write is starring and un-starring a repository for the favorites list, which is why sign-in requests the `write:user` and `write:repository` scopes (see ADR-004 and TASK-033).
## UX principles
- Korean-first copy with a structure that permits localization.
- Clear loading, empty, offline, authentication-expired, and server-error states.
- Never obscure which Gitea instance and account are active.
- Require confirmation before any future destructive or irreversible operation.
## Non-goals for MVP
- Editing source files
- Git clone/push over SSH
- Repository or account administration
- Gitea Actions runner administration
- Package publishing
- Multiple Gitea instances
- Creating or editing files, pushing commits, merging, deleting branches, or administering repositories
## Product decisions
- Android application ID: `com.ubisam.ubgitea` (see ADR-001)
- Minimum supported version: Android 9, API 28 (see ADR-001)
- Visual identity, icon, and color palette: sky blue + white, with the UbiSam wordmark small in the top-left of the root screen (see TASK-045)
- Repositories are cached for offline browsing at the list level only (branches/files inside a repository are not cached); see TASK-044
- Comparing branches and commits was removed from the history screen in TASK-024
- The team mainly reads C# and C++; source viewing is tuned for those first (see TASK-049)
## Open product decisions
- Whether biometric reauthentication is required