2026-04-22 06:36:05 -03:00
|
|
|
# AGENTS.md
|
|
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
## Project Overview
|
|
|
|
|
|
|
|
|
|
`awesome-quant` is a curated list of quantitative finance libraries, packages,
|
|
|
|
|
and resources. The source of truth is `README.md`; the static website is
|
|
|
|
|
generated into `site/index.html`.
|
|
|
|
|
|
|
|
|
|
The README is organized by category headings (`##`), not by language headings.
|
2026-07-20 08:57:44 -03:00
|
|
|
Project metadata is stored in inline backtick tags inside each entry. Tags commonly identify
|
|
|
|
|
languages, but may also identify runtimes, protocols, interfaces, data types, or domains.
|
2026-06-29 11:26:12 -03:00
|
|
|
|
|
|
|
|
## Architecture
|
|
|
|
|
|
|
|
|
|
1. `README.md` contains curated entries.
|
|
|
|
|
2. `parse.py` parses `README.md`, enriches GitHub/CRAN/PyPI metadata, and writes
|
|
|
|
|
`site/projects.csv`.
|
|
|
|
|
3. `site/generate.py` reads `site/projects.csv` when present, otherwise parses
|
|
|
|
|
`README.md` directly for local previews, then writes `site/index.html`.
|
|
|
|
|
4. `.github/workflows/build.yml` runs the parser and generator, then deploys
|
|
|
|
|
`site/` to GitHub Pages.
|
|
|
|
|
|
2026-04-22 06:36:05 -03:00
|
|
|
## Commands
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# Install deps (requires Python 3.11+)
|
|
|
|
|
uv sync --no-install-project
|
|
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
# Validate README entries changed in a PR
|
|
|
|
|
uv run python scripts/validate_readme.py --diff-from origin/main
|
|
|
|
|
|
|
|
|
|
# Validate the full README; legacy format/duplicate/URL issues are warnings by default
|
|
|
|
|
uv run python scripts/validate_readme.py
|
|
|
|
|
|
2026-04-22 06:36:05 -03:00
|
|
|
# Run parser (requires GitHub token)
|
|
|
|
|
GITHUB_ACCESS_TOKEN=<token> uv run python parse.py
|
|
|
|
|
|
|
|
|
|
# Generate static site
|
|
|
|
|
uv run python site/generate.py
|
|
|
|
|
```
|
|
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
## Entry Format
|
2026-04-22 06:36:05 -03:00
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
The critical parser regex is:
|
2026-04-22 06:36:05 -03:00
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
```text
|
|
|
|
|
^\s*- \[(.*)\]\((.*)\) - (.*)$
|
|
|
|
|
```
|
2026-04-22 06:36:05 -03:00
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
Accepted entry examples:
|
2026-04-22 06:36:05 -03:00
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
```markdown
|
|
|
|
|
- [Project Name](https://github.com/owner/repo) - `Python` - Description ending with a period.
|
|
|
|
|
- [Project Name](https://github.com/owner/repo) - `Python` `Rust` - Description ending with a period.
|
|
|
|
|
- [Project Name](https://site.com) - `Python` - Description ending with a period. [GitHub](https://github.com/owner/repo)
|
|
|
|
|
- [Package Name](https://cran.r-project.org/package=pkg) - `R` - Description ending with a period.
|
|
|
|
|
- [package-name](https://pypi.org/project/pkg/) - `Python` - Description ending with a period.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Rules:
|
2026-04-22 06:36:05 -03:00
|
|
|
|
2026-07-20 08:57:44 -03:00
|
|
|
- New non-commercial entries must include one or more concise backtick tags followed by ` - `.
|
|
|
|
|
Tags form a compact tag cloud and are not restricted to programming languages.
|
|
|
|
|
- Each tag must use its own backtick pair, for example `` `Python` `C++` `MCP` ``.
|
2026-06-29 11:26:12 -03:00
|
|
|
- Descriptions must end with a period before the optional `[GitHub](...)` link.
|
|
|
|
|
- URLs in new entries must use `https://`.
|
2026-07-20 08:57:44 -03:00
|
|
|
- A valid GitHub repository used as the main URL or exact `[GitHub](...)` suffix is a strong
|
|
|
|
|
positive relevance signal. Review its activity and documentation rather than treating
|
|
|
|
|
non-language tags as format errors.
|
2026-06-29 11:26:12 -03:00
|
|
|
- Commercial/proprietary projects belong in `## Commercial & Proprietary Services`.
|
2026-07-20 08:57:44 -03:00
|
|
|
- Backtick tags are optional only for commercial services and other metadata-free
|
2026-06-29 11:26:12 -03:00
|
|
|
sections such as `Related Lists`.
|
|
|
|
|
- Use `CONTRIBUTING.md` as the user-facing source for contribution rules.
|
2026-04-22 06:36:05 -03:00
|
|
|
|
|
|
|
|
## PR Review Workflow
|
|
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
This repo receives most contributions as pull requests adding README entries.
|
|
|
|
|
Use Codex repo skills for repeatable review workflows:
|
|
|
|
|
|
|
|
|
|
- `$sprr` - single PR reviewer.
|
|
|
|
|
- `$bprr` - bulk PR reviewer.
|
|
|
|
|
- `$update-pypi-dates` - refresh tracked PyPI last-updated dates.
|
|
|
|
|
|
|
|
|
|
Review requirements:
|
|
|
|
|
|
|
|
|
|
1. Only review the PRs the user asked you to review.
|
|
|
|
|
2. Use GitHub MCP tools for PR operations, not the `gh` CLI.
|
|
|
|
|
3. Present findings before any PR-modifying action.
|
|
|
|
|
4. Always ask the user before commenting, labeling, closing, or merging.
|
|
|
|
|
5. Check section placement, duplicates in `README.md`, entry format, URL format,
|
2026-07-20 08:57:44 -03:00
|
|
|
and project activity/documentation. Give substantial positive weight to a verifiable
|
|
|
|
|
GitHub repository mentioned as either the main URL or exact suffix.
|
2026-06-29 11:26:12 -03:00
|
|
|
6. Use the `reviewed` label only after the user approves a review comment.
|
|
|
|
|
|
|
|
|
|
## GitHub MCP Tools
|
|
|
|
|
|
|
|
|
|
This project expects Codex to have a GitHub MCP server configured for PR work.
|
|
|
|
|
Useful tool capabilities include:
|
|
|
|
|
|
|
|
|
|
- List open pull requests.
|
|
|
|
|
- Get PR details, files, comments, labels, and diffs.
|
|
|
|
|
- Fetch `README.md` from the default branch for duplicate checks.
|
|
|
|
|
- Add PR comments and labels.
|
|
|
|
|
- Merge pull requests after explicit user approval.
|
|
|
|
|
|
|
|
|
|
See `docs/codex-setup.md` for local Codex setup notes. If GitHub MCP tools are
|
|
|
|
|
not available in a session, report that PR operations are blocked and ask the
|
|
|
|
|
user to configure the MCP server.
|
2026-04-25 17:37:31 -03:00
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
## Local Validation Notes
|
2026-04-25 17:37:31 -03:00
|
|
|
|
2026-06-29 11:26:12 -03:00
|
|
|
- `scripts/validate_readme.py --diff-from <ref>` is intended for PR checks. It
|
|
|
|
|
validates only added README entries and treats duplicates/URL issues as errors
|
|
|
|
|
for those additions.
|
|
|
|
|
- `scripts/validate_readme.py` validates the full README. Legacy format, duplicate, and
|
|
|
|
|
URL problems are reported as warnings unless strict flags are used.
|
|
|
|
|
- `parse.py` requires `GITHUB_ACCESS_TOKEN`; `site/generate.py` can run without
|
|
|
|
|
the token if `site/projects.csv` already exists or if it falls back to direct
|
|
|
|
|
README parsing.
|