docs: add llm.txt and AGENTS.md
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
# AGENTS.md — Throne of the Bone King
|
||||
|
||||
AI agent and coding assistant instructions for this repo.
|
||||
|
||||
## Project Summary
|
||||
React Native 0.85.3 mobile app. Part of the **Bone Lord Bob** universe.
|
||||
See `llm.txt` for full project context and stack details.
|
||||
|
||||
---
|
||||
|
||||
## Ground Rules
|
||||
|
||||
### Do
|
||||
- Write TypeScript — strict, no `any` unless genuinely unavoidable
|
||||
- Use functional components and React hooks exclusively
|
||||
- Follow existing naming conventions (PascalCase components, camelCase hooks/utils)
|
||||
- Use `StyleSheet.create()` for styles
|
||||
- Write tests for new logic in `__tests__/`
|
||||
- Commit as **Jacob Mathison** (`jacob@mathisonprojects.com`) — never commit as an AI identity
|
||||
|
||||
### Don't
|
||||
- Don't use browser/DOM APIs (`window`, `document`, `localStorage`) — this is React Native
|
||||
- Don't install packages without noting them; confirm major additions with the team
|
||||
- Don't modify `android/` or `ios/` native files unless explicitly asked
|
||||
- Don't commit `node_modules/`, `Pods/`, or build artifacts
|
||||
- Don't run destructive commands (`rm -rf`, `git push --force`) without confirmation
|
||||
|
||||
---
|
||||
|
||||
## Structure Conventions
|
||||
```
|
||||
src/ # (create when adding more than a few components)
|
||||
components/ # Reusable UI components
|
||||
screens/ # Screen-level components
|
||||
hooks/ # Custom hooks
|
||||
utils/ # Helper functions
|
||||
types/ # Shared TypeScript types
|
||||
assets/ # Images, fonts, icons
|
||||
```
|
||||
Keep `App.tsx` as the navigation root. Move feature code into `src/` once the project grows.
|
||||
|
||||
---
|
||||
|
||||
## Common Tasks
|
||||
|
||||
### Add a new screen
|
||||
1. Create `src/screens/YourScreen.tsx`
|
||||
2. Register in the navigator (once navigation is set up)
|
||||
3. Add a test in `__tests__/YourScreen.test.tsx`
|
||||
|
||||
### Run the app
|
||||
```bash
|
||||
npm install
|
||||
# iOS (first time or after native changes):
|
||||
cd ios && bundle exec pod install && cd ..
|
||||
npm run ios
|
||||
|
||||
# Android:
|
||||
npm run android
|
||||
```
|
||||
|
||||
### Lint + Format
|
||||
```bash
|
||||
npm run lint # ESLint
|
||||
npx prettier --write . # Format all files
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Commit Message Format
|
||||
```
|
||||
type(scope): short description
|
||||
|
||||
Types: feat | fix | chore | docs | refactor | test | style
|
||||
Examples:
|
||||
feat(screens): add BoneKingHomeScreen
|
||||
fix(android): resolve gradle build error
|
||||
chore(deps): bump react-native to 0.85.3
|
||||
docs: update AGENTS.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Gitea Repo
|
||||
`http://100.79.253.19:3000/jacob-mathison/blb-throne-of-the-bone-king`
|
||||
|
||||
Default branch: `main`
|
||||
@@ -0,0 +1,64 @@
|
||||
# llm.txt — Throne of the Bone King
|
||||
|
||||
## Project
|
||||
**Name:** Bone Lord Bob — Throne of the Bone King
|
||||
**Repo:** `jacob-mathison/blb-throne-of-the-bone-king`
|
||||
**Type:** Mobile application (React Native)
|
||||
**Status:** Early development / scaffolding
|
||||
|
||||
## Part of
|
||||
Bone Lord Bob (BLB) is an original American Anime project developed by Jacob Mathison and Joseph Bro under Mathison Projects Inc.
|
||||
|
||||
## Stack
|
||||
- **React Native** 0.85.3
|
||||
- **React** 19.2.3
|
||||
- **TypeScript** ^5.8.3
|
||||
- **Metro** bundler
|
||||
- **Jest** for testing
|
||||
- **ESLint + Prettier** for linting/formatting
|
||||
- **Targets:** Android + iOS
|
||||
|
||||
## Project Structure
|
||||
```
|
||||
blb-throne-of-the-bone-king/
|
||||
├── App.tsx # Root application component
|
||||
├── index.js # Entry point
|
||||
├── android/ # Android native project
|
||||
├── ios/ # iOS native project (CocoaPods)
|
||||
├── __tests__/ # Jest test suite
|
||||
├── babel.config.js # Babel config (react-native preset)
|
||||
├── metro.config.js # Metro bundler config
|
||||
├── tsconfig.json # TypeScript config
|
||||
├── jest.config.js # Jest config
|
||||
├── Gemfile # Ruby deps for CocoaPods / fastlane
|
||||
├── .eslintrc.js # Lint rules (@react-native/eslint-config)
|
||||
├── .prettierrc.js # Prettier rules
|
||||
├── llm.txt # This file — project context for AI agents
|
||||
└── AGENTS.md # AI agent operational instructions
|
||||
```
|
||||
|
||||
## Dev Commands
|
||||
```bash
|
||||
npm install # Install JS deps
|
||||
bundle exec pod install # iOS CocoaPods deps (run inside ios/)
|
||||
npm run android # Run on Android emulator/device
|
||||
npm run ios # Run on iOS simulator/device
|
||||
npm run start # Start Metro bundler
|
||||
npm run lint # ESLint
|
||||
npm run test # Jest
|
||||
```
|
||||
|
||||
## Coding Conventions
|
||||
- TypeScript strictly typed — avoid `any`
|
||||
- Functional components + hooks only (no class components)
|
||||
- Component files: PascalCase (e.g. `BoneKingScreen.tsx`)
|
||||
- Utility/hook files: camelCase (e.g. `useBoneKing.ts`)
|
||||
- Styles: `StyleSheet.create()` — no inline style objects on hot paths
|
||||
- Keep native modules minimal; prefer JS-side implementations where possible
|
||||
|
||||
## Notes for LLMs
|
||||
- This is a React Native project — do NOT suggest browser DOM APIs
|
||||
- Metro is the bundler — not Vite, Webpack, or esbuild
|
||||
- iOS native code lives in `ios/` (Swift/ObjC); Android in `android/` (Kotlin/Java)
|
||||
- Pods are not committed to git — always run `pod install` after pulling
|
||||
- `node_modules/` is not committed
|
||||
Reference in New Issue
Block a user