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>
60 lines
2.7 KiB
Markdown
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
|