A derived skill: a tag aggregated across CV positions and projects, weighted by duration and recency. The differentiator — each skill links to its story page, where the claim becomes evidence.
Summary
Functions
Derives skills from CV-included positions and projects: per tag, the
calendar coverage of every entry carrying it — overlapping spans
are merged, never double-counted, so "6 yrs" means six years of the
calendar, not six entry-years. Open ranges run to today. Ordered by
recency then duration.
Human duration: 6 yrs, 1 yr, or < 1 yr.
Types
Functions
@spec derive([Cherry.Portfolio.Position.t() | Cherry.Portfolio.Project.t()], Date.t()) :: [t()]
Derives skills from CV-included positions and projects: per tag, the
calendar coverage of every entry carrying it — overlapping spans
are merged, never double-counted, so "6 yrs" means six years of the
calendar, not six entry-years. Open ranges run to today. Ordered by
recency then duration.
Human duration: 6 yrs, 1 yr, or < 1 yr.