The Star That Grows
A fidelity system that visualizes how deeply a task is filled in.
The Star That Grows
Empty Tasks and Filled Tasks
A task in Fecit isn’t just a one-liner. There are slots for time and place, target, expectation, obstacle, preparation, retrospect, satisfaction — many places to capture intent and reflection.
Most tasks stay almost empty. Just a title, that’s it. That’s fine — minimal works for people who want minimal.
Some tasks deepen. You write down what you want to achieve, where you got stuck, what you felt when it was done. A task filled in like that isn’t the same as the others. The time you’ve put in accumulates there.
Could the list show that difference? We wanted tasks that went deeper to also look deeper.
fidelity
We made a small score that counts the filled items in a task. We called it fidelity.
The rule is simple.
- Seven text fields (description, instruction, target, expectation, obstacle, result, retrospect) — +1 each if filled
- Three meta fields (difficulty, priority, satisfaction) — +1 each if set
- Six list types (materials, tools, venue, personnel, qualification, sub_task_links) — +1 per item
No upper bound. The thicker the task, the bigger the fidelity.
Schedule fields (start/end time, address) and attachments were intentionally excluded. Setting a time isn’t the same as deepening intent, and attachments are about content rather than count.
Shape, not color
How to show it was the question.
The star next to a task already carries the user’s chosen Point Color. Color does identity and grouping. Using color again for fidelity would put two signals in the same channel and muddle both.
So we went with shape only. The star’s color stays the user’s, and small ornaments around the star appear in stages as fidelity grows.
Three stages
- Level 0 (fidelity 0): just the star. An empty task looks empty.
- Level 1 (fidelity 1–2): four small dots peek out at the star’s four corners. A sprout.
- Level 2 (fidelity 3+): the dots stretch into short lines, fanning outward. The star feels brighter.
We sketched four and five stages too. Diamonds, awls, all sorts of ornaments. We ended up with three. Finer steps mean the level changes too often, and the meaning thins out. Three was enough to be glanceable while still feeling like growth.
Design as assets
The component first drew the rays in code. Angles, lengths, thicknesses as variables, rendered to SVG on the fly. It was fast to iterate at first, but as design details accumulated the code grew complicated.
So we split each stage into its own SVG file: fidelity-star-0.svg, 1.svg, 2.svg. The component just picks the right asset for the level and renders it.
Code got simpler, and design got freer — change a stage by editing one file. Some decisions become more flexible when they leave the codebase.
Not a reward, a mirror
The star isn’t a reward. It isn’t a game mechanic where you stack points to trade for something. You record what you record, and the trace of that recording shows up.
A task you wrote one more retrospect on looks different from one you didn’t. The difference comes back as a small visual cue. Next time you start a similar task, you might be nudged — quietly, unconsciously — to write one more line. That’s as far as the intent goes.
Not pressuring you to write deep, but quietly recognizing the effort of those who did. That’s why the star grows.