Repository navigation
Conversation
Adds the Martes foina record with GBIF/iNaturalist/ITIS/Wikidata identifiers, Wikipedia-sourced morphology and behaviour, a fsm-ground-forager-v1 behaviour, and an FR activity curve. The FR curve excludes one GBIF dataset whose January-only placeholder dates produced a spurious January peak. Lifespan is sourced only from a non-commercial Animal Diversity Web account (3 years average in natural habitat). Refs #987 Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
Use species-local fsm-scansorial-mustelid-v1 so climb (canopy fruit), swim (water crossing) and walk (ground hunting) are each executed, replacing the ground forager that executed only walk and gallop. Switch the FR activity curve to the permissive GBIF-only curve so non-commercial iNaturalist data is confined to traits.lifespan_y. Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
jt55401
left a comment
There was a problem hiding this comment.
Hourly maintainer review: 8b76d3c
Disposition: held for public action-contract evidence; feeding corrections requested. No merge.
species/martes-foina/behavior.json:cross_water executes wander(gait=swim) after merely detecting water within 60 m. forage_canopy executes eat_nearest(tag=fruit,gait=climb) after detecting fruit within 30 m, without a canopy condition. The public record proves reachable gait selection, but does not establish movement into water or an arboreal fruit target. Supply public action-contract evidence/a supported targeting sequence, or explicitly identify this representation gap and constrain the claims. A separate supervised Codex Sol gpt-6.1-sol/xhigh audit confirmed this public-contract gap in schema/v0.1/behavior-program.schema.json:201–235,369–397 and tools/validate.py:1098–1148. These are logical contract limits, not an observed land-swimming failure; private-host behavior remains unknown.
Only small_vertebrate and fruit have feeding actions. The declared invertebrate/carrion shares total 25% but cannot execute; implement fitting choices or document a defensible diet simplification. Add outcome regressions for feeding and ordinary daylight exits, as docs/data-quality.md §4 requires for new programs. Update the stale locomotion provenance claiming climb/swim are unreachable in a shared program. Correct ADW attribution to include Kimberlee Carter.
Evidence checked: live accepted GBIF 5218887, active iNaturalist 41800, valid ITIS 621941 and Wikidata Q27366 agree. ADW Lifespan/Longevity explicitly states three years average in natural habitat, separately from the ten-year maximum; the prose supports the chosen Low-confidence statistic despite an inconsistent summary field. ADW text is CC BY-NC-SA 3.0 under its checked Conditions of Use; use is isolated to lifespan. Wikipedia Description supports the sex/season mass and total-length calculations; Range supports the partial European list/introduced Wisconsin, and the French/German reproduction sections support the disclosed calendar differences. The FSM has no month predicates; ordinary active states have priority-50 daytime rest exits, below intentional threat/touch branches.
Independently reproduced the FR GBIF-only curve exactly. Source query 58,714 minus excluded dataset 9,271 gives 49,443, with 30,589 month-bearing records. Subtracted the same dataset from the Mammalia baseline. The dataset is CC BY 4.0; its only populated monthly facet is January, and the 300-record sample has January-1 dates in 2015–2017. This supports the disclosed placeholder-date exclusion, with the sample limitation retained. Raw NC mixed values are audit-only. Existing species/regions are untouched.
At this head, focused validation 0 errors/2 warnings, 34/34 provenance; self-check, all-species/all-locale validation and pytest 347 passed/8 skipped pass. Attribution regeneration leaves no species diff. Current-head CI validate passes. Viewed idle, walk, gallop, swim, rest in cached Chromium: bib remains attached; no blocking clipping observed. Swim uses a generic legged animation and Climb has no built-in pose, so neither proves medium-specific scene behavior. Private import/live-scene acceptance remains untested.
What this adds
species: stone marten (Martes foina)
Closes #987
Evidence and scope
traits.lifespan_yonly, with the 10-year wild maximum and 18-year captive figure not used.provenance.behavior.Activity and behaviour
species/martes-foina/behavior.json, programfsm-scansorial-mustelid-v1. States: walk (ground hunting, wander, drink), climb (canopy fruit foraging), swim (water crossing), gallop (flee), rest in shelter by day (sun elevation 10–90 deg, enforced from every active state), idle, touched, accept. All four declared locomotion modes (Walk, Gallop, Climb, Swim) are executed by a reachable state. The program does not model arboreal flight to a tree refuge or month-specific behaviour.month_in; all twelve months are enabled. Seasonality comes only from the activity curve.query.raw_tool_monthlyfor audit only.MissingShoulderHeightwarning is left as is (no sourced value).Validate report
Commit tested: 8b76d3c.