WEBAPP_DOCS_PLAN

galaxy-workflow-development-webapp — Docs Overhaul Plan

Context

galaxy-workflow-development-webapp is a thin FastAPI shell over galaxy.tool_util.workflow_state (from the Galaxy wf_tool_state branch) plus a Jupyter-Contents-API-compatible file surface. ~850 LoC across 6 modules in src/galaxy_workflow_dev_webapp/:

Role in the broader workflow_state project (see PROBLEM_AND_GOAL.md + CURRENT_STATE.md): HTTP frontend over deliverables D1–D8. Not itself a named deliverable, but acts as the HTTP surface that frontend tooling (and eventually D9 VSCode / D10 IWC) can use to exercise validate / clean / roundtrip / export-format2 / lint and edit workflow files over HTTP.

gxformat2’s abstraction_applications branch recently gained a Galaxy-styled sphinx docs setup — pydata_sphinx_theme + _static/css/galaxy.css (Atkinson Hyperlegible font, Galaxy brand tokens #25537b / #2c3143 / #ffd700, light and dark mode, sphinx-design card styling). We’ll mirror that styling here.

Goals

  1. Rename README.rstREADME.md, rewrite as a mental-model doc.
  2. Overhaul sphinx docs to adopt gxformat2 Galaxy styling.
  3. Write new content docs that help the reader “grip” the architecture, the two API surfaces, and the relationship to the workflow_state stack.
  4. Auto-generated API reference via sphinxcontrib-openapi fed from committed docs/_static/openapi.json.

Resolved decisions

  1. pyproject readme field update to README.md — ok.
  2. Drop sphinx_rtd_theme entirely.
  3. API reference via sphinxcontrib-openapi.
  4. Commit docs/_static/openapi.json; Makefile target regenerates it.
  5. Skip intersphinx target for gxformat2 (no objects.inv yet).
  6. Convert CONTRIBUTING.rst and HISTORY.rst to Markdown as well.
  7. Include “Relationship to wf_tool_state branch” section in architecture.md (will become stale once merged — acceptable for now).

1. README rewrite: README.rstREADME.md

Keep concise: replaces the marketing blurb with the mental-model doc.

2. Convert other top-level docs to Markdown

3. Sphinx: theme + extensions

3a. conf.py

3b. Requirements

3c. Styling assets

4. Docs content

Rewrite docs/index.rst (or convert to index.md) to mirror gxformat2’s grid-card landing page with these cards:

Hidden toctree mirrors gxformat2’s layout.

4a. architecture.md — the payoff doc

4b. contents_api.md

4c. workflow_ops.md

4d. api.md — auto-generated OpenAPI reference

4e. installation.md

4f. cli.md

5. Makefile additions

6. Execution order (red-to-green)

  1. README.md rewrite + pyproject.toml readme field update. Verify pip install -e . still works.
  2. Convert CONTRIBUTING.rst + HISTORY.rst to Markdown.
  3. docs/requirements.txt + [dependency-groups].docs → pydata / sphinx-design / mermaid / openapi. Drop sphinx-rtd-theme.
  4. Copy galaxy.css from gxformat2, port conf.py theme options. Rebuild existing (empty) docs to confirm the theme loads — green baseline before adding content.
  5. Rewrite index as grid cards + hidden toctree. Build, confirm grid renders.
  6. Add architecture.md first — payoff doc. Build + eyeball Mermaid.
  7. Add contents_api.md, workflow_ops.md.
  8. Wire --output-schema dump + commit docs/_static/openapi.json. Add api.md with openapi:: directive. Add Makefile targets.
  9. Refresh installation.md, cli.md, developing.md, contributing.md, history.md.
  10. make docs with -W; fix myst/autodoc warnings.

7. Testing

Unresolved questions

None — all previous questions resolved.