Curation Projects
Curation projects are thematic, human-authored markdown files under projects/
(e.g. projects/CANCER.md). They track scope, priorities, and progress for a
body of related curation work. This page documents the standardized YAML
frontmatter that turns a project markdown file into a browsable HTML page with
auto-linked entities, and the auto-generated project index.
This is modeled on the project pages in
ai4curation/ai-gene-review,
adapted to dismech's entity types (diseases, modules, groupings, drugs,
phenotypes) rather than genes.
Frontmatter
A project file may begin with a YAML frontmatter block delimited by ---:
---
title: Cancer Curation Project
status: EVERGREEN
description: >-
Curation of cancers with precise genetic etiology and well-characterized
pathophysiological progression.
tags: [DISEASE_DOMAIN, ONCOLOGY, FLAGSHIP]
diseases:
- Lynch_Syndrome
- Non-Small_Cell_Lung_Cancer
modules:
- dna_repair_synthetic_lethality
groupings:
- Mucopolysaccharidoses
drugs:
- id: CHEBI:45783
label: imatinib
phenotypes:
- id: HP:0002664
label: Neoplasm
---
# Cancer Curation Project
...
All keys are optional; a file with no frontmatter still renders (its title is
taken from the first # H1).
Scalar keys
| Key | Meaning |
|---|---|
title |
Display title (falls back to the first # H1, then the filename). |
status |
One of PLANNED, IN_PROGRESS, ACTIVE, COMPLETE, EVERGREEN, ARCHIVED. Rendered as a colored badge. |
description |
One-line summary shown on the project index card. |
tags |
Free-text labels shown as chips and aggregated on the index. |
nih_topics |
List of NIHResearchPriorityEnum keys (e.g. NIH_HT_89_cellular_quiescence_senescence_cell_death_in) tagging the NIH Highlighted Funding Topic(s) this project targets. Rendered as blue linked chips to the NIH topic page. See NIH research-priority classification. |
Entity keys
Each entity key is a list. List items may be either:
- a bare string (the entity token — see the slug convention below), or
- a mapping with
slug/name/id, an optionallabel, and an optionalnote.
| Key | Resolves to | Notes |
|---|---|---|
diseases |
pages/disorders/<slug>.html |
Token is a disorder slug (the kb/disorders/*.yaml stem / disease name). |
modules |
pages/modules/<stem>.html |
Token is a kb/modules/ file stem. |
groupings |
pages/groupings/<slug>.html |
Token is a Grouping.name or kb/groupings/ stem. |
drugs |
external ontology browser | Supply id: as a CHEBI/NCIT CURIE for a link. |
phenotypes |
external ontology browser | Supply id: as an HP CURIE for a link. |
Slug convention and auto-linking
The convention is: refer to diseases (and modules/groupings) by their slug in
the markdown body, e.g. write Lynch_Syndrome, not "Lynch Syndrome".
When a project page is rendered, every entity token declared in the frontmatter that resolves to a dismech page is automatically turned into a link wherever it appears in the body — in prose, tables, or lists. Only declared tokens are linked, so there are no spurious links.
Auto-linking deliberately leaves the following untouched:
- text inside fenced code blocks and inline
`code`spans, - existing markdown links,
- filename references such as
Lynch_Syndrome.yamlorLynch_Syndrome.html(a token immediately followed by.is not linked).
The frontmatter also drives the page sidebar, which lists each entity as a chip linking to its page (local entities) or ontology browser (drugs/phenotypes with a CURIE). Tokens that do not resolve render as a muted "unresolved" chip — a quick signal that a slug is mistyped or the entry has not been curated yet.
Rendering
# Render all projects/*.md plus the auto-generated index
just gen-project-pages
# Render a single project page
just gen-project-page projects/CANCER.md
Output goes to pages/projects/ (derived — not committed, like other
pages/** HTML). The index at pages/projects/index.html lists every project
with its status, tags, and entity counts, and serves as the main project index.
just gen-all includes project pages.