Remove outdated tools and Lua references from copilot-instructions

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-01-03 20:44:18 +00:00
parent 007e680d5c
commit 8adf7d791f

View File

@@ -2,7 +2,7 @@
## Architecture Overview ## Architecture Overview
MetaBuilder is a **data-driven, multi-tenant platform** with 95% functionality in JSON/Lua, not TypeScript. The system combines: MetaBuilder is a **data-driven, multi-tenant platform** with 95% functionality in JSON, not TypeScript. The system combines:
- **6-Level Permission System**: Public → User → Moderator → Admin → God → Supergod access hierarchies - **6-Level Permission System**: Public → User → Moderator → Admin → God → Supergod access hierarchies
- **DBAL (Database Abstraction Layer)**: TypeScript SDK + C++ daemon, language-agnostic via YAML contracts - **DBAL (Database Abstraction Layer)**: TypeScript SDK + C++ daemon, language-agnostic via YAML contracts
@@ -30,7 +30,7 @@ Follow `.github/prompts/0-kickstart.md` as the current workflow source of truth.
### 1. API-First DBAL Development ### 1. API-First DBAL Development
When adding features to DBAL: When adding features to DBAL:
1. **Define in YAML first**: `api/schema/entities/*.yaml` and `api/schema/operations/*.yaml` 1. **Define in YAML first**: `api/schema/entities/*.yaml` and `api/schema/operations/*.yaml`
2. **Generate types**: `python tools/codegen/gen_types.py` (creates TS and C++ types) 2. **Generate types**: Run type generation scripts (creates TS and C++ types)
3. **Implement adapters**: TypeScript (`ts/src/adapters/`) for speed, C++ (`cpp/src/adapters/`) for security 3. **Implement adapters**: TypeScript (`ts/src/adapters/`) for speed, C++ (`cpp/src/adapters/`) for security
4. **Add conformance tests**: `common/contracts/*_tests.yaml` (runs on both implementations to guarantee parity) 4. **Add conformance tests**: `common/contracts/*_tests.yaml` (runs on both implementations to guarantee parity)
5. Never add fields/operations directly in code without updating YAML source of truth 5. Never add fields/operations directly in code without updating YAML source of truth
@@ -59,7 +59,7 @@ packages/{name}/
├── seed/ ├── seed/
│ ├── metadata.json # Package info, exports, dependencies, minLevel │ ├── metadata.json # Package info, exports, dependencies, minLevel
│ ├── components.json # Component definitions │ ├── components.json # Component definitions
│ ├── scripts/ # Lua scripts organized by function │ ├── scripts/ # JSON scripts organized by function
│ └── index.ts # Exports packageSeed object │ └── index.ts # Exports packageSeed object
├── src/ # Optional React components ├── src/ # Optional React components
└── static_content/ # Assets (images, etc.) └── static_content/ # Assets (images, etc.)
@@ -94,16 +94,8 @@ const users = await prisma.user.findMany()
``` ```
See: `src/lib/database.ts` (1200+ LOC utility wrapper) See: `src/lib/database.ts` (1200+ LOC utility wrapper)
### 5. Lua Sandbox Execution ### 5. Script Execution
Lua scripts run in isolated sandbox without access to `os`, `io`, `require`: Scripts are defined in JSON format and executed in a controlled environment with limited access to system resources.
```typescript
// Sandbox context provided in script
function validateEmail(email)
-- No file I/O, no system access, no external requires
return string.match(email, "^[^@]+@[^@]+$") ~= nil
end
```
Always test scripts with `DeclarativeComponentRenderer.executeLuaScript()`
## Code Conventions ## Code Conventions
@@ -174,7 +166,7 @@ Material-UI with SASS; theme in `src/theme/mui-theme.ts` with light/dark mode su
1. Define database schema changes first (Prisma) 1. Define database schema changes first (Prisma)
2. Add seed data to `src/seed-data/` or package `/seed/` 2. Add seed data to `src/seed-data/` or package `/seed/`
3. Use generic renderers (`RenderComponent`) not hardcoded JSX 3. Use generic renderers (`RenderComponent`) not hardcoded JSX
4. Add Lua scripts in `src/lib/lua-snippets.ts` or package `/seed/scripts/` 4. Add JSON scripts in package `/seed/scripts/` as needed
5. Keep one lambda per file and split as needed 5. Keep one lambda per file and split as needed
6. Add parameterized tests in `.test.ts` files with matching names 6. Add parameterized tests in `.test.ts` files with matching names
@@ -215,14 +207,13 @@ If fixing a DBAL bug:
2. Reproduce in TypeScript implementation first (faster feedback loop) 2. Reproduce in TypeScript implementation first (faster feedback loop)
3. Apply fix to both TS and C++ adapters 3. Apply fix to both TS and C++ adapters
4. Add/update conformance test in `common/contracts/` 4. Add/update conformance test in `common/contracts/`
5. Verify both implementations pass test: `python tools/conformance/run_all.py` 5. Verify both implementations pass conformance tests
## Common Mistakes ## Common Mistakes
**Hardcoding values in TSX** → Move to database or YAML config **Hardcoding values in TSX** → Move to database or YAML config
**Forgetting tenantId filter** → Breaks multi-tenancy **Forgetting tenantId filter** → Breaks multi-tenancy
**Adding fields without Prisma generate** → Type errors in DB helper **Adding fields without Prisma generate** → Type errors in DB helper
**Plain JS loops over Fengari tables** → Use Lua, not TS, for Lua data
**Multiple lambdas per file** → Split into single-lambda files and wrap with a class only when needed **Multiple lambdas per file** → Split into single-lambda files and wrap with a class only when needed
**New function without test**`npm run test:check-functions` will fail **New function without test**`npm run test:check-functions` will fail
**Missing TODO for unfinished behavior** → Leave a TODO comment where functionality is pending **Missing TODO for unfinished behavior** → Leave a TODO comment where functionality is pending
@@ -241,7 +232,7 @@ If fixing a DBAL bug:
1. Is this hardcoded value better in database? 1. Is this hardcoded value better in database?
2. Could a generic component render this instead of custom TSX? 2. Could a generic component render this instead of custom TSX?
3. Does this query filter by tenantId? 3. Does this query filter by tenantId?
4. Could Lua handle this without code changes? 4. Could JSON configuration handle this without code changes?
5. Is this one lambda per file (and test file name matches)? 5. Is this one lambda per file (and test file name matches)?
6. Does this function have a parameterized test? 6. Does this function have a parameterized test?
7. Is this DBAL change reflected in YAML schema first? 7. Is this DBAL change reflected in YAML schema first?