Skip to content

species: Alpine ibex (Capra ibex) - #1304

Open
jt55401 wants to merge 2 commits into
mainfrom
wave-20261031-566-capra-ibex
Open

jt55401 wants to merge 2 commits into
mainfrom
wave-20261031-566-capra-ibex

Conversation

@jt55401

@jt55401 jt55401 commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

Closes #566

This continues the preserved contribution from closed draft #1273; it keeps its species evidence and FR activity curve, updates the horn geometry after preview review, and links the behavior provenance to its source.

Evidence and scope

GBIF key 2441055 resolves to accepted species Capra ibex (species rank); iNaturalist taxon 42357 is active at species rank. Both were checked at their providers on 2026-11-01. France lies within the Alpine native range; the occurrence curve does not establish native status.

The species record uses Wikipedia for taxonomy context, range, general body traits and coat description. Its sex-averaged body estimates and authored judgment values remain identified in the source notes. The modeled actions are walking while grazing or browsing, climbing for cliff travel and fleeing, daytime rest, and feeding after the night transition. The ADW account describes daytime cliff use, nighttime movement to forest to feed, and grasses, forbs, leaves, shoots and bark. The simple FSM does not model its afternoon/evening activity onset, sex-specific daytime habitat, or seasonal elevation shifts. It has no month predicates, so every action is enabled in January through December.

ADW explicitly gives a typical wild lifespan of 10–18 years and separately reports a 21.25-year captive maximum and a 22.3-year captive average. lifespan_y: 14 is the midpoint of the typical wild interval. ADW's conditions of use license its text CC BY-NC-SA 3.0. This last-resort source supports the typical wild lifespan and the specific diel behavior used by the FSM; its attribution is retained in ATTRIBUTION.md. The separate Mammalian Species account checked during the prior review reports sex-specific maximum wild ages, not a typical lifespan, and does not identify a CC0 or CC BY licence. Wikipedia is CC BY-SA 4.0. The validator reports the ADW NC warning, now correctly covering behavior and lifespan.

France activity

The stored FR curve was fetched from verifiable CC0/CC BY iNaturalist observations in place 6753 (334 observations) and CC0/CC BY GBIF occurrences in France (101,995). Both sources were tier A and usable when fetched. Current provider queries still return 334 iNaturalist observations and 101,995 GBIF occurrences. The curve uses the mean monthly share from each source: [0.34, 0.34, 0.40, 0.19, 0.20, 0.45, 0.63, 0.85, 0.44, 0.29, 0.58, 1.00]. Observation frequency is an imperfect activity proxy.

Validation on fb7db8085136727419ec932ace80736cf26d05da

  • uv run tools/validate.py species/capra-ibex --report: 0 errors, 1 expected NC warning; 35/35 provenance coverage.
  • uv run tools/validate.py --self-check: 644 files scanned, 0 findings.
  • uv run tools/validate.py --report: all species, 0 errors; capra-ibex has the expected ADW warning.
  • uv run tools/validate.py --locale all --report: 33 locales, 0 errors; existing warnings remain in some locales.
  • uv run --with pytest --with jsonschema pytest tools/tests -q: 347 passed, 8 skipped.
  • python3 tools/build_site.py: succeeded.
  • Attribution was regenerated; a second regeneration leaves ATTRIBUTION.md unchanged.

Preview

Inspected the idle, walk, and trot poses in the built preview, including an orbited view. The body, legs, colors, beard and stepped horns render without visible clipping. The horns remain stylized as stepped boxes because extra_parts supports axis-aligned boxes only. Climb is a supported locomotion mode without a built-in climb pose; the validator and preview checklist therefore represent climbing with the existing walk/trot pose set, and cliff movement remains a rendering limitation.

Checklist

  • Claimed issue species: Alpine Ibex (Capra ibex) #566 before work.
  • Provider taxonomy and identifiers checked.
  • Sources, licences, attribution and transformations reviewed.
  • FR activity checked for query scope, licences, counts and usability.
  • Executed behavior actions, day/night transitions and enabled months checked.
  • Species validation, self-check, all-species and all-locale validation, tests and attribution freshness completed on the pushed head.
  • idle, walk, and trot previewed, including orbit inspection.
  • CC BY-SA and CC BY-NC-SA sources disclosed; ADW's NC use is limited to the lifespan and diel behavior claims.
  • One species record; no shared records changed.

Maintainers own merge and any private import or live release acceptance.

@jt55401 jt55401 mentioned this pull request Nov 1, 2026
6 tasks

@jt55401 jt55401 left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Hourly maintainer review: fb7db80

Disposition: changes requested, detached horns, range status and provenance. No merge.

  • species/capra-ibex/species.json:look.extra_parts: the horn bases start above the head (offset.y - size.y/2 = 0.625, beyond its 0.5 surface). Each mid segment is detached along x (1.3 > 0.5 + 0.78/2), and each tip is detached (1.1 > 0.5 + 0.55/2). I viewed idle, walk, trot and saw floating separated horn boxes. Reposition/rescale them into connected backward-curving horns and recheck all poses. The current preview claim of no clipping does not establish connected geometry.
  • range.native includes SI, but the cited Alpine ibex, Conservation explicitly describes introduction to Slovenia in the 1890s, without evidence of postglacial presence. Reconcile native/introduced status with a precise source; FR is independently supported within the Alpine native range. range.koppen and the 1,600 m lower elevation bound also need actual source locators or omission where optional.
  • provenance.traits/habitat broadly cover quantitative estimates without derived: true. Split the mass/length/shoulder-height transformations, authored diet/resource shares and wariness into narrow derived entries with inputs. sources.inat-taxon asserts CC BY 4.0 without a specific grant; provide the applicable licence evidence or a verified permissive identifier source, while retaining provider resolution. Regenerate attribution.

Live GBIF 2441055 and iNaturalist 42357 resolve to accepted/active species. ADW Lifespan/Longevity explicitly labels 10–18 years typical wild; fourteen is the correct midpoint, distinct from captive figures. Its text NC-SA licence and author attribution check out. The old account contains broader-range inconsistencies, so keep the lifespan/diel reliance qualified. Wikipedia Appearance supports the sex-interval inputs; 58.25 kg/1.46 m/0.87 m are representative calculations. Graze/browse actions are reachable, no month predicates occur, and the daytime-rest/night-feeding simplification is disclosed. Cliff-specific routing remains unproven by a bare climb gait; Climb has no rendered pose. No behavior outcome regression accompanies the new FSM.

FR place 6753, country FR, Mammalia baselines and CC0/CC BY filters checked. Fresh totals 334 + 101,995, GBIF month-bearing 100,773; all twelve stored curve values recompute exactly, with sparse/zero iNaturalist winter/April bins retained. The contribution adds only this species against its merge base; current main's newer contribution-policy docs must be preserved during integration.

At this head: focused 0 errors/1 NC warning, 35/35 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. Private import/live-scene acceptance was not tested.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

species: Alpine Ibex (Capra ibex)

1 participant