# AGENTS.md

## Project purpose

This repository contains the public website for the Napper application ecosystem. It includes the main `napper.au` landing site, the Hudra and Lildra product sites, and shared legal, privacy, support and ecosystem content.

## Source of truth

The repository is the source of truth, not individual conversations or AI sessions.

When an important architectural, deployment, naming or development decision is made:

1. update the appropriate repository documentation;
2. update this file when the guidance affects AI contributors;
3. avoid relying on undocumented conversational context.

## Product distinction

- Hudra is primarily a presentation and slide-viewing system that turns complete QLearn lesson pages into a classroom presentation experience. Do not describe Hudra as a general-purpose editor.
- Lildra is a distraction-free reading extension that hides the surrounding Canvas/QLearn interface while preserving the lesson DOM, content and styling. It is not a presentation system.

Keep product wording within these boundaries and do not reuse Lildra's clutter-removal positioning as Hudra's primary message.

## Future-product publication

- Do not mention future products on the public website unless their inclusion is part of an explicit teaser or launch decision.
- An approved teaser must define its wording, destination, campaign purpose and publication period.
- Preserve unapproved concepts under `docs/future-products.md`, not in public HTML, CSS or browser JavaScript.

## Current architecture

The site is a dependency-free static site using HTML, CSS and small browser JavaScript files. Do not introduce a framework, package manager, build system or templating engine without an explicit architectural decision.

```text
/
├── index.html
├── css/
│   ├── napper.css
│   ├── hudra.css
│   └── hudra-legal.css
├── js/
│   ├── napper.js
│   └── hudra.js
├── img/
└── hudra/
    ├── index.html
    ├── support/index.html
    ├── privacy/index.html
    └── terms/index.html
```

Hudra provides the established foundational product-page and legal-page styling. Lildra reuses that stable foundation through its own theme stylesheets and keeps Lildra-specific colours and visuals isolated there. Reassess this CSS layering before adding another product rather than creating another product-to-product dependency.

## Deployment assumptions

- The repository is `napper/site` and is deployed to `napper.au`.
- A push to `main` triggers automatic deployment.
- Gitea sends a signed webhook to the CloudPanel server.
- `dploy` creates a release and switches the site's `current` symlink.
- CloudPanel serves `/home/napper/htdocs/napper.au/current`.
- The production server supports directory URLs such as `/hudra/privacy`, resolving them to the relevant `index.html`.
- Pages and assets use root-relative paths and assume deployment at the domain root.

Do not expose webhook secrets, credentials or other server-specific private data.

## Canonical external locations

- QLearn: `https://qlearn.eq.edu.au`
- Gitea organisation: `https://git.napper.au/napper`
- Hudra Chrome Web Store: `https://chromewebstore.google.com/detail/hudra/bjggdeecklhnpebgmjiaedaadmpdoddm`
- Hudra Microsoft Edge Add-ons: `https://microsoftedge.microsoft.com/addons/detail/hudra/aogdgaofdldbpmkjknklojbhcbcfandb`
- Lildra Chrome Web Store: `https://chromewebstore.google.com/detail/lildra/plgcccpjkfeimphghbpojjmibmajgocp`
- Lildra Microsoft Edge Add-ons: `https://microsoftedge.microsoft.com/addons/detail/lildra/lecbknefoekmfockhhkjopjgkoepdbnh`
- Hudra releases: `https://git.napper.au/napper/hudra/releases`
- Lildra releases: `https://git.napper.au/napper/lildra/releases`

## Working principles

- Keep the site simple and maintainable.
- Prefer conventional web technologies over unnecessary frameworks.
- Avoid dependencies unless they provide a clear benefit.
- Preserve accessibility, responsive design and fast page loads.
- Reuse shared styles and components where practical.
- Keep each application page focused on what the application does.
- Do not expose secrets, credentials or server-specific private data.
- Keep deployment configuration documented and reproducible.

## Expected workflow

1. Review existing documentation before changing architecture.
2. Make focused changes.
3. Test locally where possible.
4. Update documentation when behaviour or structure changes.
5. Commit using a clear, descriptive message when a commit is requested.
