Contributing
Contributing
Project documentation
Put markdown in a docs/ directory at the root of your repository. Use frontmatter for sidebar titles:
---title: My Page---
# My PageEnable the repo in governance (included by default). Use docs = false to opt out. See Documentation Hub for the full workflow.
AGENTS.md files (AI agent context per agents.md) are not aggregated or published. Put human-facing docs in other markdown files.
Published pages are readable by AI agents via Accept Markdown. Request any docs URL with Accept: text/markdown to receive Markdown from the same URL browsers use for HTML.
Excalidraw diagrams
Place .excalidraw.json files in docs/diagrams/ in your repo. They are published at /diagrams/{your-project-slug}/ and can be embedded with the hub’s ExcalidrawDiagram component (see Diagramming).
Pushes that change docs/ trigger a docs rebuild via docs-updated; changes to diagrams/ or scripts/generate-*-excalidraw.ts use diagrams-updated. Both are handled automatically by the org webhook on infra-01 (repos with docs = true in governance). Per-repo fallback: copy .forgejo/examples/trigger-docs-update.yml or .forgejo/examples/trigger-docs-diagrams.yml with the DOCS_TRIGGER_TOKEN secret.
Local development
Run bun run dev; it fetches docs from source repos before starting the dev server. In a monorepo checkout, sibling repos (e.g. ../infrastructure) are used automatically.
Hub documentation
Pages in this repository’s docs/ folder (not src/content/docs/) are aggregated into the Documentation section. Edit those files for meta-docs about the hub itself: deployment, architecture, contributing.
Site chrome (home page, getting started) lives in src/content/docs/ and is not pulled from governance.