docs: add llm.txt and AGENTS.md

This commit is contained in:
2026-06-06 10:27:10 -05:00
parent 0b625198df
commit e4a4aeb100
2 changed files with 151 additions and 0 deletions
+87
View File
@@ -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`
+64
View File
@@ -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