Skip to content

Add UBERON:9900001 guttural pouch (issue #3346) - #3699

Open
ai4c-agent[bot] wants to merge 2 commits into
masterfrom
dragon-ai-agent-issue-3346-run845
Open

Add UBERON:9900001 guttural pouch (issue #3346)#3699
ai4c-agent[bot] wants to merge 2 commits into
masterfrom
dragon-ai-agent-issue-3346-run845

Conversation

@ai4c-agent

@ai4c-agent ai4c-agent Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Resolves #3346.

Summary

Adds a new term UBERON:9900001 guttural pouch to the ontology as requested by @katiermullen.

The guttural pouches are paired ventral diverticulae of the auditory (pharyngotympanic) tube, formed by escape of the mucosal lining of the tube through a long ventral slit in the supporting cartilages. They are normally air filled and in the domestic horse can have a capacity of 300-500ml. The pouches are connected to the nasal cavity and middle ear via the auditory tube. They are present in members of the order Perissodactyla (horses, tapirs, rhinoceroses) and in a small group of other mammals (hyraxes, certain bats, and a South American mouse).

Term details

  • id: UBERON:9900001
  • name: guttural pouch
  • synonyms: diverticulum of the auditory tube; diverticulum of the pharyngotympanic tube
  • is_a: UBERON:0000064 organ part
  • part_of: UBERON:0002393 pharyngotympanic tube
  • xref: Wikipedia:Guttural_pouch
  • definition references: ISBN:978-0721649610 (Color Atlas of Veterinary Anatomy: The Horse), Wikipedia:Guttural_pouch
  • dc-contributor: https://orcid.org/0000-0002-5002-8648 (Katie Mullen)

Notes for reviewer

  • The term was placed under organ part and made part_of the pharyngotympanic tube. The user's request also mentioned mucosa of pharyngotympanic tube (UBERON:0005044) as a candidate parent, but I did not use it because the guttural pouch is the entire diverticulum (a pouch with cavity and walls), not specifically the mucosa.
  • No taxon constraints were added because the description in the issue notes the structure occurs in a phylogenetically scattered set of taxa (Perissodactyla plus various other mammals); this is captured in a comment instead.

🤖 Generated by @dragon-ai-agent

Adds the term 'guttural pouch' as part_of pharyngotympanic tube. The
guttural pouches are paired ventral diverticulae of the auditory
(eustachian) tube, present in horses, tapirs, rhinoceroses, hyraxes,
some bats and a South American mouse.

Definition sourced from Wikipedia and the Color Atlas of Veterinary
Anatomy: The Horse (ISBN:978-0721649610). Contributed by Katie Mullen
(ORCID 0000-0002-5002-8648) per issue #3346.

Signed-off-by: @dragon-ai-agent

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@ai4c-agent ai4c-agent Bot mentioned this pull request Apr 28, 2026
@ai4c-agent

ai4c-agent Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor Author

Claude finished @ai4c-agent[bot]'s task in 3m 54s —— View job


PR Review: Add UBERON:9900001 guttural pouch

Review checklist:

  • Hierarchy and parents are consistent
  • Definitions and supporting references look adequate
  • Obsolete or replacement handling is safe (N/A — no obsoletions)
  • OBO and ODK conventions appear preserved (mostly — see below)
  • No obvious CI, auth, or workflow regression

Overall

This is a well-reasoned new term addition. The anatomical placement (is_a organ part, part_of pharyngotympanic tube) is logically consistent: the pharyngotympanic tube (UBERON:0002393) is classified as an organ per FMA, so a diverticulum of it correctly fits as an organ part. The decision not to use mucosa of pharyngotympanic tube (UBERON:0005044) as parent is correct — the guttural pouch is the entire diverticulum (cavity + walls), not just the mucosa. UBERON:0011619 (stylohyoid bone) already references the guttural pouch in its taxon_notes, confirming this is a real and relevant structure.

One issue should be fixed before merge.


🟡 IMPORTANT: dc-contributor missing name comment

Per CLAUDE.md guidelines, the format must be:

relationship: dc-contributor https://orcid.org/<ORCID> ! <NAME>

The current term has:

relationship: dc-contributor https://orcid.org/0000-0002-5002-8648

It should read:

relationship: dc-contributor https://orcid.org/0000-0002-5002-8648 ! Katie Mullen

🔵 SUGGESTION: No PMID in definition references

CLAUDE.md asks for definitions with at least one xref, ideally a PMID. Current refs are ISBN:978-0721649610 and Wikipedia:Guttural_pouch. The original issue links to WikiVet (no PMID), but a literature search for a veterinary anatomy paper covering the guttural pouch in Perissodactyla would strengthen the term.

🔵 SUGGESTION: WikiVet xref

The original issue cites https://en.wikivet.net/Guttural_Pouches_-_Anatomy_%26_Physiology. Consider adding this as an additional xref.

🔵 SUGGESTION: Definition phrasing

"A paired ventral diverticulum" is slightly awkward — "paired" and "A" together imply one structure is itself a pair. Consider: "One of a pair of ventral diverticulae of the auditory (pharyngotympanic) tube, formed by escape of the mucosal lining..." to make clear that the class represents a single pouch (one side), consistent with how bilateral structures are handled in UBERON.


Note: I cannot formally request changes on a PR from the same bot account. The 🟡 IMPORTANT issue above (dc-contributor name comment) should be fixed before merging.

@ai4c-agent ai4c-agent Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of UBERON:9900001 guttural pouch

Review checklist:

  • Hierarchy and parents are consistent
  • Definitions and supporting references look adequate
  • Obsolete or replacement handling is safe (N/A)
  • OBO and ODK conventions appear preserved (mostly)
  • No obvious CI, auth, or workflow regression

Overall

This is a well-reasoned new term addition. The anatomical placement (is_a organ part, part_of pharyngotympanic tube) is logically consistent: the pharyngotympanic tube is classified as an organ in FMA, so a diverticulum of it fits as an organ part. The decision not to use mucosa of pharyngotympanic tube (UBERON:0005044) as parent is correct, since the guttural pouch is the entire diverticulum, not just the mucosa. UBERON:0011619 (stylohyoid bone) already referenced the guttural pouch in its taxon_notes, confirming this is a real and relevant structure.

One issue should be fixed before merge.


Issues

🟡 IMPORTANT: dc-contributor is missing the name comment

Per CLAUDE.md guidelines, the format is:

relationship: dc-contributor https://orcid.org/<ORCID> ! <NAME>

The added term has:

relationship: dc-contributor https://orcid.org/0000-0002-5002-8648

It should be:

relationship: dc-contributor https://orcid.org/0000-0002-5002-8648 ! Katie Mullen

Suggestions

🔵 SUGGESTION: No PMID in definition references

CLAUDE.md asks for at least one definition xref and ideally a PMID. The current references are ISBN:978-0721649610 and Wikipedia:Guttural_pouch. A PMID would strengthen the term. The original issue links to WikiVet (which itself doesn't carry a PMID), but a literature search may surface a suitable veterinary anatomy review.

🔵 SUGGESTION: WikiVet xref

The original issue cites https://en.wikivet.net/Guttural_Pouches_-_Anatomy_%26_Physiology. This could be added as an xref alongside Wikipedia.

🔵 SUGGESTION: Definition phrasing

"A paired ventral diverticulum" is slightly awkward — "paired" and "A" read together as though one structure is a pair. Consider rephrasing to "One of a pair of ventral diverticulae of the auditory (pharyngotympanic) tube..." to clarify that this class represents a single pouch (one side), consistent with how bilateral structures are typically represented in UBERON.


Signed: @dragon-ai-agent

@cmungall

cmungall commented May 2, 2026

Copy link
Copy Markdown
Member

@dragon-ai-agent please add taxon constraints (at least only-in; possibly present-in). Also address minor comment about orcids

@dragon-ai-agent

Copy link
Copy Markdown
Collaborator

🤖 Working on it...

Follow along: View workflow run

@dragon-ai-agent

… pouch

Addresses review feedback on PR #3699:
- Added `relationship: in_taxon NCBITaxon:40674 ! Mammalia` as the only-in
  taxon constraint, since the guttural pouch is restricted to mammals.
- Added `present_in_taxon` relationships for the three mammalian groups
  documented in the original request (ISBN:978-0721649610):
  Perissodactyla (NCBITaxon:9787), Chiroptera (NCBITaxon:9397), and
  Hyracoidea (NCBITaxon:9810).
- Added the `! Katie Mullen` name comment to the dc-contributor
  relationship to comply with CLAUDE.md formatting.
- Added NCBITaxon:9810 (Hyracoidea) to ncbitaxon_terms.txt so the
  imported label survives reserialisation.

Signed-off-by: @dragon-ai-agent
@dragon-ai-agent

Copy link
Copy Markdown
Collaborator

Addressed review feedback on this PR:

Taxon constraints added:

  • relationship: in_taxon NCBITaxon:40674 ! Mammalia — only-in constraint (the guttural pouch is restricted to mammals).
  • relationship: present_in_taxon NCBITaxon:9787 ! Perissodactyla (horses, tapirs, rhinoceroses)
  • relationship: present_in_taxon NCBITaxon:9397 ! Chiroptera (the bat groups noted in the request)
  • relationship: present_in_taxon NCBITaxon:9810 ! Hyracoidea (hyraxes)

The "South American mouse" mentioned in the issue is not specifically identified, so I did not add a present_in_taxon for it; the more general Mammalia-only constraint still covers it.

ORCID name comment fixed:
Updated the dc-contributor line to include ! Katie Mullen per CLAUDE.md guidance. Also added NCBITaxon:9810 (Hyracoidea) to imports/ncbitaxon_terms.txt so the label survives reserialisation.

Note: Katie Mullen's ORCID is not yet in the imported orcidio ontology, so future robot reserialisations may strip the ! Katie Mullen comment until orcidio is updated. This is consistent with several other contributor ORCIDs already in the file.

Final term:

[Term]
id: UBERON:9900001
name: guttural pouch
def: "A paired ventral diverticulum of the auditory (pharyngotympanic) tube, formed by escape of the mucosal lining of the tube through a relatively long ventral slit in the supporting cartilages. The pouches are normally air filled and in the domestic horse can have a capacity of 300-500ml." [ISBN:978-0721649610, Wikipedia:Guttural_pouch]
comment: The guttural pouch is present in members of the order Perissodactyla (nonruminant ungulates: horses, tapirs, rhinoceroses) and in a small group of other mammals including hyraxes, certain bats, and a South American mouse.
synonym: "diverticulum of the auditory tube" EXACT []
synonym: "diverticulum of the pharyngotympanic tube" EXACT []
xref: Wikipedia:Guttural_pouch
is_a: UBERON:0000064 ! organ part
relationship: dc-contributor https://orcid.org/0000-0002-5002-8648 ! Katie Mullen
relationship: in_taxon NCBITaxon:40674 ! Mammalia
relationship: part_of UBERON:0002393 ! pharyngotympanic tube
relationship: present_in_taxon NCBITaxon:9397 {source="ISBN:978-0721649610"} ! Chiroptera
relationship: present_in_taxon NCBITaxon:9787 {source="ISBN:978-0721649610"} ! Perissodactyla
relationship: present_in_taxon NCBITaxon:9810 {source="ISBN:978-0721649610"} ! Hyracoidea
property_value: dcterms-date "2026-04-28T05:09:28Z" xsd:dateTime
property_value: term_tracker_item "https://github.com/obophenotype/uberon/issues/3346" xsd:anyURI
created_by: dragon-ai-agent

🤖 Generated by @dragon-ai-agent

@ai4c-agent

ai4c-agent Bot commented May 2, 2026

Copy link
Copy Markdown
Contributor Author

Claude finished @dragon-ai-agent's task in 3m 14s —— View job


PR Review: UBERON:9900001 guttural pouch

Review checklist:

  • Hierarchy and parents are consistent
  • Definitions and supporting references look adequate
  • Obsolete or replacement handling is safe (N/A — no obsoletions)
  • OBO and ODK conventions appear preserved
  • No obvious CI, auth, or workflow regression

Overall

Both issues raised in the previous review cycle have been correctly addressed. The term is well-formed and ready to merge.


✅ Issues from previous review — resolved

dc-contributor name comment — fixed. The line now reads:

relationship: dc-contributor https://orcid.org/0000-0002-5002-8648 ! Katie Mullen

Taxon constraints — added as requested by @cmungall. The term now has:

  • relationship: in_taxon NCBITaxon:40674 ! Mammalia — only-in constraint (guttural pouch restricted to mammals)
  • relationship: present_in_taxon NCBITaxon:9787 ! Perissodactyla — horses, tapirs, rhinoceroses
  • relationship: present_in_taxon NCBITaxon:9397 ! Chiroptera — bats
  • relationship: present_in_taxon NCBITaxon:9810 ! Hyracoidea — hyraxes

All four NCBITaxon IDs are present in src/ontology/imports/ncbitaxon_terms.txt (9810 was added in the latest commit; the others were pre-existing).


Final term (verified)

[Term]
id: UBERON:9900001
name: guttural pouch
def: "A paired ventral diverticulum of the auditory (pharyngotympanic) tube, formed by escape
     of the mucosal lining of the tube through a relatively long ventral slit in the supporting
     cartilages. The pouches are normally air filled and in the domestic horse can have a capacity
     of 300-500ml." [ISBN:978-0721649610, Wikipedia:Guttural_pouch]
synonym: "diverticulum of the auditory tube" EXACT []
synonym: "diverticulum of the pharyngotympanic tube" EXACT []
xref: Wikipedia:Guttural_pouch
is_a: UBERON:0000064 ! organ part
relationship: dc-contributor https://orcid.org/0000-0002-5002-8648 ! Katie Mullen
relationship: in_taxon NCBITaxon:40674 ! Mammalia
relationship: part_of UBERON:0002393 ! pharyngotympanic tube
relationship: present_in_taxon NCBITaxon:9397 {source="ISBN:978-0721649610"} ! Chiroptera
relationship: present_in_taxon NCBITaxon:9787 {source="ISBN:978-0721649610"} ! Perissodactyla
relationship: present_in_taxon NCBITaxon:9810 {source="ISBN:978-0721649610"} ! Hyracoidea
property_value: dcterms-date "2026-04-28T05:09:28Z" xsd:dateTime
property_value: term_tracker_item "https://github.com/obophenotype/uberon/issues/3346" xsd:anyURI
created_by: dragon-ai-agent

Remaining suggestions (non-blocking)

  • 🔵 Definition phrasing: "A paired ventral diverticulum" — since UBERON terms represent a single instance, "One of a pair of ventral diverticulae..." would more precisely follow Uberon's bilateral-structure convention. Minor style issue.
  • 🔵 No PMID in definition references: current refs are ISBN:978-0721649610 and Wikipedia:Guttural_pouch; a published veterinary anatomy PMID would strengthen provenance but is not required.
  • 🔵 WikiVet xref: the original issue cited WikiVet; could be added as an additional xref.

None of these are blocking.


Recommendation: approve and merge.

Note: GitHub does not allow self-approval of PRs, so a human reviewer or a different bot account needs to submit the formal approval.

@github-actions

github-actions Bot commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

This PR has not seen any activity in the past month; if nobody comments or reviews it in the next week, the PR creator will be allowed to proceed with merging without explicit approval, should they wish to do so.

cmungall pushed a commit that referenced this pull request Aug 22, 2026
UBERON:9900001 was claimed by seven other open PRs (#3622, #3623, #3693,
#3698, #3699, #3700, #3739) and UBERON:9900002 by four of them. Every NTR
branch mints from the bottom of the 9900000-10000000 "Temporary IDs" block
in uberon-idranges.owl, so they all pile onto the same first few numbers.

The range holds 100,000 IDs and nothing above 9900112 is claimed by any
open PR, so the collision is avoidable now rather than only at minting
time. Moved to 9903758/9903759, derived from this PR's number so the
allocation is traceable and far from the bottom of the block where the
next NTR run will land.

These are still temporary IDs and still need minting from a real allocated
range before merge; this only stops the branch colliding with its
neighbours in the meantime.

Re-normalised with robot convert; roundtrip_obo clean.

Signed-off-by: @ai4c-agent
cmungall added a commit that referenced this pull request Aug 27, 2026
* Add terms for skull and calvarial bone marrow

Motivated by a review of Park et al. (2026) "Functional role of skull
lymphoid structures in CNS immunosurveillance", Nature,
doi:10.1038/s41586-026-10951-4.

UBERON had no representation of skull/calvarial bone marrow at all, even
though this compartment has been an active subject of neuroimmunology
since 2018 (Herisson et al. 2018, PMID:30150661; Cugurra et al. 2021,
PMID:34083447; Mazzitelli et al. 2022, PMID:35301477) and is the subject
of the Park et al. paper. The only bone-marrow-by-site terms present were
'red bone marrow of sternum' (UBERON:8410080) and 'red bone marrow of
iliac crest'; this made it impossible to annotate the growing body of
scRNA-seq and imaging data that contrasts skull marrow with other marrow
sites.

Two new terms, following the existing bone-marrow-by-site pattern:

- UBERON:9900001 'bone marrow of skull'
    bone marrow and part_of some skull (UBERON:0003129)
    syn: skull bone marrow, cranial bone marrow, skull BM

- UBERON:9900002 'bone marrow of calvaria'
    bone marrow of skull and part_of some vault of skull (UBERON:0004339)
    syn: calvarial bone marrow, calvarial marrow

'bone marrow of calvaria' is defined relative to 'bone marrow of skull'
rather than to 'bone marrow' directly, because UBERON does not assert
cranium part_of skull (only skull has_part cranium), so the subsumption
would not otherwise be entailed.

All definition xrefs are verified PMIDs. Note that the Park et al. paper
is not yet indexed in PubMed/Europe PMC, so it is cited by DOI in the
term comments rather than as a definition xref; the DOI should be
replaced with a PMID once one is assigned.

IDs are in the temporary UBERON:99xxxxx range per CLAUDE.md and need to
be minted properly before merge.

Signed-off-by: @ai4c-agent

* Add terminology note distinguishing skull vs calvarial marrow

The author-supplied PDF of Park et al. includes Extended Data Fig. 1b,
which is not in the version I read from nature.com. Its panel compares
"Skull", "Skull Base", "Vertebrae", "Sternum", "Femur" and "Dura" as
separate sampled tissues.

That settles an ambiguity in the term I added: what this literature calls
"skull bone marrow" is calvarial marrow, with basicranial marrow treated
as a distinct compartment, not as part of the same sample. Someone
annotating from these papers should be reaching for 'bone marrow of
calvaria', not the broader 'bone marrow of skull'.

Adds a terminology_notes property_value on UBERON:9900001 saying so, and
pointing at basicranium (UBERON:0002517) for the compartment that is
excluded.

Signed-off-by: @ai4c-agent

* Drop created_by, and normalise to fix roundtrip_obo

Two changes, both to the two new bone marrow stanzas.

Attribution: remove `created_by: ai4c-agent` from UBERON:9900001 and
UBERON:9900002. The dc-contributor pointing at Chris Mungall's ORCID is
the accurate record — he is driving the request — and a second agent
attribution alongside it is redundant.

Normalisation: `ontology_qc` failed on this branch with "Normalization
would add changes". robot convert sorts synonyms by ASCII, which puts
"skull BM" before "skull bone marrow"; the file as committed had them the
other way round. Ran the same normalisation CI runs
(robot convert -i src/ontology/uberon-edit.obo -o NORMALIZE.obo) and
applied the result. Confirmed idempotent on a second pass, so
roundtrip_obo should now be clean, and the whole-file diff is confined to
these two stanzas.

Signed-off-by: @ai4c-agent

* Renumber to UBERON:9903758/9903759 to clear PR ID collisions

UBERON:9900001 was claimed by seven other open PRs (#3622, #3623, #3693,
#3698, #3699, #3700, #3739) and UBERON:9900002 by four of them. Every NTR
branch mints from the bottom of the 9900000-10000000 "Temporary IDs" block
in uberon-idranges.owl, so they all pile onto the same first few numbers.

The range holds 100,000 IDs and nothing above 9900112 is claimed by any
open PR, so the collision is avoidable now rather than only at minting
time. Moved to 9903758/9903759, derived from this PR's number so the
allocation is traceable and far from the bottom of the block where the
next NTR run will land.

These are still temporary IDs and still need minting from a real allocated
range before merge; this only stops the branch colliding with its
neighbours in the meantime.

Re-normalised with robot convert; roundtrip_obo clean.

Signed-off-by: @ai4c-agent

* Add SNOMED xref and PMID:42618784; record FMA situation

Both corrections come from checking things I had asserted too loosely.

PMID. I had said the paper was not yet indexed and cited it by DOI. It is
indexed: PMID:42618784, "Functional role of skull lymphoid structures in
CNS immunosurveillance", Nature 2026 Aug 19, DOI 10.1038/s41586-026-10951-4,
first author Park JH. Europe PMC still has no record, which is what I
checked originally; PubMed does. Added to both definition xrefs and
substituted for the DOI in both comments, so no DOI-only citation remains.

SNOMED xref. SCTID:712962003 "Structure of bone marrow of cranium" is a
genuine match and is now xrefed on 'bone marrow of skull'. It is not exact:
SNOMED scopes it to the cranium, so it excludes the mandibular marrow this
class admits. Its parent SCTID:421320006 is already xrefed on 'bone marrow',
and its children cover frontal, temporal, sphenoid and nasal-orbit marrow.
Recorded in external_ontology_notes rather than left implicit.

FMA. There is no FMA xref to add, but not for the reason I gave. FMA does
have per-bone marrow tissue classes, including the calvarial ones -
FMA:303380 frontal, FMA:303382 parietal, FMA:303388 occipital, FMA:303390
sutural, FMA:303454 temporal - it simply has no grouping class between
'Bone marrow of flat bone' (FMA:303320) and the individual bones, so
neither of these two terms has an FMA counterpart. Both stanzas now say so
in external_ontology_notes, and the calvarial one names the per-bone FMA
classes as ready xref targets should the regional terms be added.

(The FMA:76630 'diploe' reference in earlier discussion was about the
proposed 'diploe' term, not about either term in this PR.)

Re-normalised with robot convert; roundtrip_obo clean and idempotent.

Signed-off-by: @ai4c-agent

* Address review: term_tracker_item and calvaria/vault caveat

Both from ai4c-reviewer's suggestions on PR #3758.

term_tracker_item: neither stanza had one. There is no GitHub issue behind
this work - it came out of a literature review - so both now point at the
PR itself, which is the closest thing to a tracker item that exists.

Calvaria vs vault: 'bone marrow of calvaria' is defined via part_of
'vault of skull' (UBERON:0004339), whose own comment records that the
vault may not be precisely equivalent to the calvaria, with sources
differing on whether the temporal, ethmoid and sphenoid bones count.
Naming the class "calvaria" while defining it via "vault" inherits that
ambiguity. Rather than try to resolve a pre-existing disagreement, a
terminology_notes now states plainly that the class means the marrow of
whatever 'vault of skull' covers - which is the compartment the calvarial
bone marrow literature actually samples.

Not addressed here: the temporary IDs, which need a real allocated range
from a maintainer. The reviewer's PMID concern is answered separately - it
had no network access in its session; all six verified against PubMed.

Re-normalised with robot convert; clean and idempotent.

Signed-off-by: @ai4c-agent

* Move terms into the Automation ID range (UBERON:1200342/1200343)

These should never have been in the temporary block. uberon-idranges.owl
allocates idrange:44, 1200000-1300000, to "Automation" - and that range is
in real use, with seven merged terms already in it (UBERON:1200000 through
1200341, contributed by Mungall, Puig-Barbe and others). The 9900000-10000000
"Temporary IDs" block, by contrast, contains nothing merged at all; it is
scratch space that open NTR branches all mint from and that never survives
to master.

So the two terms move to the next free Automation IDs:

  UBERON:9903758 -> UBERON:1200342  bone marrow of skull
  UBERON:9903759 -> UBERON:1200343  bone marrow of calvaria

Verified unused anywhere in the repo before taking them, and no open PR
claims anything in 12xxxxx.

I originally used 99xxxxx because CLAUDE.md line 54 says "New terms start
UBERON:99xxxxx". That instruction points at the temporary block rather than
the Automation range and is worth revisiting, since it will send every
future agent run to the same place.

The diff is larger than the two-line change suggests only because robot
sorts stanzas by ID: renumbering relocates both stanzas from the end of the
term section to their sorted position after UBERON:1200341. Two ids added,
two removed, nothing else altered.

Re-normalised with robot convert; clean and idempotent.

Signed-off-by: @ai4c-agent

---------

Signed-off-by: @ai4c-agent
Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

NTR: guttural pouch

2 participants