diff --git a/.specify/memory/constitution.md b/.specify/memory/constitution.md index 795b7cf..7bd33af 100644 --- a/.specify/memory/constitution.md +++ b/.specify/memory/constitution.md @@ -1,3 +1,20 @@ + + # Reactome ChatBot Constitution The team is three developers covering a large surface — website, pathway browser, @@ -60,6 +77,26 @@ it records a decision, a measurement, or a defect someone else must judge — no as a substitute for a fix that takes ten minutes. Three fixes are worth more than five issues describing them. +### VII. Parked is not dead + +Some capability here is built, works, and is deliberately not deployed: UniProt +integration, Alliance results, and the Cross-Database profile. It runs only when a +`config.yml` names it; every default is React-to-Me. + +Do not delete parked work to make a refactor cheaper. That trade looks like a saving +and is not: the code cost someone real effort, "we are not working on it now" is not +"it is dead", and rebuilding is far more expensive than carrying. This principle +exists because the proposal was made -- to remove about 500 lines of UniProt and +Cross-Database serving code, on the grounds that it had been dragged through three +refactors in a week -- and it was wrong. + +Equally, do not invest in parked work. It needs no new features and no new tests. +Keeping it importable and type-checking through a refactor is the whole obligation. + +Parked code is unexercised, so its behaviour is unverified even where it still type +checks. Whoever un-parks it inherits that, and should be told at the point they find +it rather than after. + ## Quality Gates `main` is protected: pull request required, `enforce_admins` on, branch must be @@ -100,4 +137,4 @@ used for bug triage or dependency bumps, where the ceremony costs more than the fix. Retrofitting specifications onto existing code is archaeology and is not done. -**Version**: 1.0.0 | **Ratified**: 2026-09-08 | **Last Amended**: 2026-09-08 +**Version**: 1.1.0 | **Ratified**: 2026-09-08 | **Last Amended**: 2026-09-10 diff --git a/src/agent/profiles/cross_database.py b/src/agent/profiles/cross_database.py index eff9940..37f034e 100644 --- a/src/agent/profiles/cross_database.py +++ b/src/agent/profiles/cross_database.py @@ -1,3 +1,17 @@ +"""The Cross-Database profile: Reactome answers combined with UniProt answers. + +PARKED, NOT ABANDONED. Deliberately not deployed: every profile default is +React-to-Me, in `config_default.yml` and in `chat-chainlit.py`'s fallback, so this +runs only if a `config.yml` names it explicitly. + +Do not delete it. Helia Mohammadi did the work to make UniProt integration possible, and it is kept so the capability can be resurrected +rather than rebuilt. Equally, do not invest in it while it is parked -- it does not +need new features, and a change that merely keeps it importable is enough. + +If it is ever un-parked, note that it has not been exercised since 2026-09-10, so +its behaviour is unverified even where the code still type-checks. +""" + from typing import Any, Literal from langchain_core.embeddings import Embeddings diff --git a/src/data_generation/alliance/__init__.py b/src/data_generation/alliance/__init__.py index badbc3e..dadb508 100644 --- a/src/data_generation/alliance/__init__.py +++ b/src/data_generation/alliance/__init__.py @@ -1,3 +1,17 @@ +"""Building embeddings from Alliance of Genome Resources data. + +PARKED, NOT ABANDONED. Deliberately not deployed: every profile default is +React-to-Me, in `config_default.yml` and in `chat-chainlit.py`'s fallback, so this +runs only if a `config.yml` names it explicitly. + +Do not delete it. Adam Wright did the work to make Alliance results possible, and it is kept so the capability can be resurrected +rather than rebuilt. Equally, do not invest in it while it is parked -- it does not +need new features, and a change that merely keeps it importable is enough. + +If it is ever un-parked, note that it has not been exercised since 2026-09-10, so +its behaviour is unverified even where the code still type-checks. +""" + import os import requests diff --git a/src/retrievers/uniprot/rag.py b/src/retrievers/uniprot/rag.py index 324083b..0b7b52b 100644 --- a/src/retrievers/uniprot/rag.py +++ b/src/retrievers/uniprot/rag.py @@ -1,3 +1,17 @@ +"""Retrieval over a UniProt embeddings bundle. + +PARKED, NOT ABANDONED. Deliberately not deployed: every profile default is +React-to-Me, in `config_default.yml` and in `chat-chainlit.py`'s fallback, so this +runs only if a `config.yml` names it explicitly. + +Do not delete it. Helia Mohammadi did the work to make UniProt integration possible, and it is kept so the capability can be resurrected +rather than rebuilt. Equally, do not invest in it while it is parked -- it does not +need new features, and a change that merely keeps it importable is enough. + +If it is ever un-parked, note that it has not been exercised since 2026-09-10, so +its behaviour is unverified even where the code still type-checks. +""" + from pathlib import Path from langchain_core.embeddings import Embeddings