Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: validate

on:
push:
branches: [main]
pull_request:

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- run: pip install pytest
- run: make validate
- run: make test
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ desktop.ini
*.swp
*~
__pycache__/
.pytest_cache/
*.pyc

# LaTeX build artefacts
Expand All @@ -48,4 +49,4 @@ __pycache__/
*.toc

# Exception — the wiki's own log.md is text and must be tracked
!lensing_wiki/log.md
!wiki/*/log.md
22 changes: 20 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,31 @@ packaging, tooling, and workflow tasks.
When you do read:

1. **Index first.** Start at [`index.md`](index.md), then the relevant
sub-wiki's own `index.md` (`lensing_wiki/`, `smbh_wiki/`, `cti_wiki/`,
`methods_wiki/`, `galaxies_wiki/`).
sub-wiki's own `index.md` (`wiki/lensing/`, `wiki/smbh/`, `wiki/cti/`,
`wiki/methods/`, `wiki/galaxies/`).
2. **Then at most 2–3 pages.** Read only the concept/entity/source pages the
index points you to. **Never bulk-load a sub-wiki.**
3. **Do not couple to the internal layout** — reach pages through the indexes,
not hard-coded paths.

## The write contract (layout rules)

The repo has exactly **two content homes**, enforced by
`make validate-structure` (CI runs it on every push/PR):

- **`wiki/<domain>/`** — every sub-wiki, following the shared schema in
[`wiki/CLAUDE.md`](wiki/CLAUDE.md). New sub-wikis are added beside the
existing ones, never at the repo root.
- **`bibliography/`** — the *only* place BibTeX lives. One canonical file
(`pyautomemory.bib`) plus `bibkey_aliases.yaml`; never add loose `.bib`
files anywhere else.

**Source PDFs live off-repo.** Never commit a paper (PDF/HTML, with or
without a file extension) — read it, stub it in the right
`wiki/<domain>/sources/*.md`, add its canonical entry to `bibliography/`,
and run `make validate`. Unrecognised top-level files/folders fail the lint;
the allowlist is in `scripts/validate_structure.py`.

## What does NOT live here

- **Operational history** — what the organism *did* (prior tasks, decisions,
Expand Down
69 changes: 0 additions & 69 deletions CTI/Hall1952Theory

This file was deleted.

Binary file removed DarkMatterModels/Navarro1996StructureCDMHalos.563N
Binary file not shown.
18 changes: 0 additions & 18 deletions Euclid/Paykari2020.bib

This file was deleted.

Binary file removed Hubble1926.321H
Binary file not shown.
Binary file removed LightProFFits/devVaucoleuris1948pdf
Binary file not shown.
10 changes: 9 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
.PHONY: validate-literature-citations
.PHONY: validate validate-literature-citations validate-structure test

validate: validate-literature-citations validate-structure

validate-literature-citations:
python scripts/validate_literature_citations.py

validate-structure:
python scripts/validate_structure.py

test:
python -m pytest tests/ -q
Loading
Loading