Real files, at real paths, counted every nightCounted 08:17 UTCDiff two files
7,205instruction files1,198repositories visited4,189rows written36files changed8formats20section tags85stacksCounted 13 September 2026
.github/copilot-instructions.mdnerolis-lab/nerolis-lab on mainOpen on GitHubnerolis-labRaw file8.8 kBDiff against another filePick the second file

copilot-instructions.md in nerolis-lab/nerolis-lab runs 1,159 words across 35 headings.

Simulation-based data analysis to provide users with the ability to make informed decisions regarding their investments in Pokémon Sleep

TypeScriptTypeScript32 starsChanged 1 month ago8.8 kBNested, not at the rootCopilot instructions
Covers

15 of the 20 section tags

In the order a file is read in
Headings

35 headings, in the order the file writes them

01Copilot Instructions for Neroli's Lab
02Project Overview
03Development Workflow
04Starting Development
05Backend (Bun with hot reload)
06Frontend (Vite)
07Guides (Vitepress)
08Common library watch mode (when changing shared types)
09Required Pre-Push Checklist
10Test-Driven Development
11Architecture Patterns
12Backend Layer Structure
13Frontend Component Organization
14Shared Code (Common Package)
15Testing Conventions
16Vue Component Testing Pattern
17Mocking Strategy (Critical)
18Test Setup
19Code Style Guidelines
20CSS/Styling
21TypeScript
22Code Comments
23Environment Setup
24Database
25Migrations run automatically when backend starts with DATABASE_MIGRATION=UP
26Environment Files
27Package Installation
28Commit Conventions
29Pokémon Sleep Game Mechanics
30Core Gameplay
31Helper Pokémon System
32Simulation Engine
33Natures, Subskills, & Instance Properties
34Key File References
35Multi-Workspace Structure
Commands

7 commands this file writes down

Extracted from the file, verbatim
npx vitest --run -- filename.test.ts
docker-compose up -d
npm install
npm run test
npx eslint .
npm run type-check
npm run _compile
The file

.github/copilot-instructions.md

First 160 of 300 lines
1# Copilot Instructions for Neroli's Lab
2
3## Project Overview
4
5Neroli's Lab (SleepAPI) is a full-stack Pokémon Sleep application with a monorepo structure:
6
7- **backend**: Express API with Bun dev runtime, Node.js production (TypeScript, Knex, MySQL, TSOA)
8- **frontend**: Vue 3 SPA with Vuetify 3 (Pinia state, Vite, Chart.js)
9- **common**: Shared TypeScript library bundled with Rollup (types, utilities, mocks)
10- **docs**: VitePress documentation site
11- **guides**: Vitepress player-facing Pokemon Sleep guides
12
13## Development Workflow
14
15### Starting Development
16
17```bash
18# Backend (Bun with hot reload)
19cd backend && npm run dev
20
21# Frontend (Vite)
22cd frontend && npm run dev
23
24# Guides (Vitepress)
25cd guides && npm run dev
26
27# Common library watch mode (when changing shared types)
28cd common && npm run build-watch
29```
30
31### Required Pre-Push Checklist
32
33**Always run these before committing:**
34
351. **Test**: `npm run test` or `npx vitest --run -- filename.test.ts`
362. **Lint**: `npx eslint .` in the modified package
373. **Type check**:
38 - Frontend: `npm run type-check`
39 - Backend: `npm run _compile`
40 - Guides: `npm run type-check`
414. **Build common** if types changed: `cd common && npm run build`
42
43### Test-Driven Development
44
45**Always run tests after creating/modifying test files:**
46
47```bash
48npx vitest --run -- filename.test.ts
49```
50
51Use the output to iterate until tests pass. This is non-negotiable for quality assurance.
52
53## Architecture Patterns
54
55### Backend Layer Structure
56
57**Controllers → Services → DAOs → Database**
58
59- **Controllers** (`backend/src/controllers/`): TSOA-decorated endpoints (minimal, non-sensitive routes only)
60- **Services** (`backend/src/services/`): Business logic and orchestration
61- **DAOs** (`backend/src/database/dao/`): Data access extending `AbstractDAO` with repository pattern
62- **Database**: MySQL with Knex query builder
63
64Example DAO pattern:
65
66```typescript
67class UserDAO extends AbstractDAO<typeof DBUserSchema, DBUser> {
68 get tableName() {
69 return 'user';
70 }
71 protected get schema() {
72 return DBUserSchema;
73 }
74}
75```
76
77### Frontend Component Organization
78
79**Pages → Components → Stores → Services**
80
81- **Pages** (`frontend/src/pages/`): Route-level components
82- **Components** (`frontend/src/components/`): Reusable UI following atomic design
83- **Stores** (`frontend/src/stores/`): Pinia state management
84- **Services** (`frontend/src/services/`): API clients matching backend endpoints
85
86### Shared Code (Common Package)
87
88All shared types, utilities, and test mocks live in `common/`:
89
90```typescript
91// common/src/types/ - Types used by both backend and frontend
92// common/src/utils/ - Shared utility functions
93// common/src/vitest/mocks/ - Mock factories for testing
94```
95
96**After changing common types:** Always run `cd common && npm run build` to update consumers.
97
98## Testing Conventions
99
100### Vue Component Testing Pattern
101
102**Required structure for all Vue component tests:**
103
104```typescript
105import type { VueWrapper } from '@vue/test-utils';
106import { mount } from '@vue/test-utils';
107import { beforeEach, afterEach, describe, expect, it } from 'vitest';
108import MyComponent from './my-component.vue';
109
110describe('MyComponent', () => {
111 let wrapper: VueWrapper<InstanceType<typeof MyComponent>>;
112
113 beforeEach(() => {
114 wrapper = mount(MyComponent, {
115 props: { someProp: 'value' }
116 });
117 });
118
119 afterEach(() => {
120 wrapper.unmount();
121 });
122
123 it('renders correctly', () => {
124 expect(wrapper.exists()).toBe(true);
125 });
126});
127```
128
129### Mocking Strategy (Critical)
130
131**Only mock external dependencies:**
132
133✅ **DO Mock:**
134
135- HTTP requests (axios, fetch)
136- Browser APIs (IntersectionObserver, matchMedia)
137
138❌ **DON'T Mock:**
139
140- Internal utility functions (formatters, calculators, validators)
141- Functions from `sleepapi-common` that work in Node.js test environment
142- Internal services without external dependencies
143
144**Use mock factories from `{package}/src/vitest/mocks/` instead of inline hard-coded mocks.**
145
146Example:
147
148```typescript
149// Good - using mock factory
150import { mocks } from '@/vitest';
151const pokemon = mocks.pokemonInstanceExt({ level: 50 });
152
153// Bad - hard-coded inline mock
154const pokemon = { level: 50, name: 'Test' } as any;
155```
156
157### Test Setup
158
159- Frontend tests use `jsdom` environment with Vuetify/Pinia configured in `frontend/src/vitest/setup.ts`
160- All packages use Vitest with coverage reporting

140 more lines are in the file. Read the raw file.

The rest of the repository

nerolis-lab/nerolis-lab ships 1 other instruction files

CLAUDE.md

A row that is not a link is a file this repository ships that this app did not freeze a sheet for. It is listed because the corpus knows it exists, and it is not linked because there is nothing here to open.

This listing

Whoever runs nerolis-lab/nerolis-lab can claim it

This is yours? Claim this config and we will write to you when the measurement moves. The check is one token placed where only you can place it, and there is no account and no password.