# BRT website extensions

> Authoritative developer contract for building signed, isolated website extensions for Battle Ready Tech.

Protocol version: 1
Manifest schema version: 1

## Start here

- [Developer kit](https://developers.battlereadytech.com/extensions/v1): quickstart, project layout, commands, and contract authority.
- [LLM authoring](https://developers.battlereadytech.com/extensions/v1/docs/llm-authoring): required process, hard constraints, and completion report.
- [Authoring guide](https://developers.battlereadytech.com/extensions/v1/docs/authoring-guide): implementation workflow and failure-state requirements.

## Authoritative references

- [Machine-readable contract](https://developers.battlereadytech.com/extensions/v1/contract.json): limits, file types, capabilities, actions, payloads, and responses.
- [Manifest JSON Schema](https://developers.battlereadytech.com/extensions/v1/manifest.schema.json): closed manifest schema for editor and CI validation.
- [Runtime API](https://developers.battlereadytech.com/extensions/v1/docs/runtime-api): documented `window.BRT` methods.
- [TypeScript declarations](https://developers.battlereadytech.com/extensions/v1/brt-extension.d.ts): static API declarations.
- [Submission and review](https://developers.battlereadytech.com/extensions/v1/docs/submission-and-review): deterministic packaging and Ed25519 signing.
- [Troubleshooting](https://developers.battlereadytech.com/extensions/v1/docs/troubleshooting): validation and runtime errors.
- [Downloadable kit](https://developers.battlereadytech.com/extensions/v1/download): CLI, schemas, documentation, and complete reference source.

## Full context

- [llms-full.txt](https://developers.battlereadytech.com/llms-full.txt): self-contained human and machine documentation plus authoritative schema and type sources.

## Non-negotiable rules

- Use only documented manifest fields, capabilities, actions, and API methods.
- Package every dependency. The runtime has no network access.
- Keep exactly one HTML entrypoint and all JavaScript in external local modules.
- Treat settings and API results as untrusted public data.
- Request the fewest capabilities needed and handle missing grants.
- Never give an LLM a publisher private key.
- Run the developer check before handoff. BRT production validation is final.

Generate a self-contained context file with:

```bash
node tools/web-extensions/brt-extension.mjs context --out ./brt-extension-context.md
```
