This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the source for the NASA PDS Software Portal — a Sphinx-generated static site that documents PDS software builds, processes, and team information. The repo doubles as the GitHub Pages host: the root of main contains the pre-built HTML output, while docs/source/ contains the RST/Markdown source.
# Install dependencies (use a virtualenv)
pip install -r requirements.txt
# Build and deploy HTML to the repo root (used by CI and for local preview)
cd docs && make github
# Build HTML locally without copying to root
cd docs && make html
# Output goes to docs/build/html/The make github target runs make clean html then copies docs/build/html/ up to the repo root — this is what CI commits to main as the live site.
Two-layer structure:
docs/source/— Sphinx source (RST + Markdown). Edit here.- Repo root — Pre-built HTML committed by CI (
pdsen-cibot). Do not edit HTML files directly; they are regenerated on every build.
Key source directories:
docs/source/releases/— Per-build software release catalogs. Each build has its own subdirectory (e.g.,16/,17/). Theindex.rstin each is a large RST table of all PDS tools for that build, andrdd.rstis an auto-generated Requirements & Delivery Document.docs/source/collaborate/— Contribution guides, developer resources, OSS policy.docs/source/support/— Contact info, discipline node support pages.docs/source/teams/— PDS team descriptions (PDSEN operations, SWG, PMC).docs/source/conf.py— Sphinx config. Current release isB16; updatereleaseandversionhere when cutting a new build.docs/source/index.rst— Site root TOC; controls which toctrees appear in navigation.
CI workflows (.github/workflows/):
build.yml— Triggered on pushes to non-mainbranches that touchdocs/source/**; builds and commits HTML back to that branch. Skips if actor ispdsen-cito prevent loops.rdd-gen.yml— Runs weekly (Friday midnight); usespds-issuesCLI to generaterdd.rstfor the current in-development build (matrix variablebuild-number), then rebuilds the site.
- Create
docs/source/releases/<N>/withindex.rst(software catalog table) and optionallyrdd.rst. - Add it to
docs/source/releases/releases.rstunder "Past Releases" (or "Upcoming"). - Update
docs/source/index.rstif the "Current Release" pointer should change. - Update
releaseandversionindocs/source/conf.py. - Update the
build-numbermatrix in.github/workflows/rdd-gen.yml.
The pds-issues CLI (from lasso.issues) generates RST release notes from closed GitHub issues tagged with a build label:
pds-issues --token <GITHUB_TOKEN> --format rst --issue_state closed --build B<N> --group-by-componentOutput is pdsen_issues.rst; move it to docs/source/releases/<N>/rdd.rst.