task icon Task

Visualize Life in Weeks

Generate a grid visualization showing life as weeks lived and remaining

Requirements
Optional: birthdate if not already in profile. Default assumed lifespan: 90 years.
2

Check if the user's birthdate is in stateUser Profile Facts (file: personal.md).
If not found, ask when they were born. Accept any reasonable format
(e.g., "March 15, 1990", "15/03/90"). Add birthdate to stateUser Profile Facts (file: personal.md)
in a clear format like "birthdate: 1990-03-15".

6

Present the visualization and statistics to the user following the guide:

  1. Show the generated SVG image path so they can view it
  2. Share one thoughtful observation about the weeks they've lived
  3. Mention a meaningful milestone (seasons experienced, years completed)
  4. If their next birthday is soon, note it warmly

Keep the tone contemplative and grounding. Let the grid speak for itself.
Offer to regenerate the visualization anytime they'd like to reflect again.

                    To run this task you must have the following required information:

> Optional: birthdate if not already in profile. Default assumed lifespan: 90 years.

If you don't have all of this information, exit here and respond asking for any extra information you require, and instructions to run this task again with ALL required information.

---

You MUST use a todo list to complete these steps in order. Never move on to one step if you haven't completed the previous step. If you have multiple CONSECUTIVE read steps in a row, read them all at once (in parallel). Otherwise, do not read a file until you reach that step.

Add all steps to your todo list now and begin executing.

## Steps

1. [Read User Profile Facts]: Discover relevant information in the user's filesystem at `documents/user/profile/[file=personal|goals|interests|ideology].md`. (Check if birthdate exists in personal profile (file: personal.md))

2. Check if the user's birthdate is in `documents/user/profile/[file=personal|goals|interests|ideology].md` (file: personal.md).
If not found, ask when they were born. Accept any reasonable format
(e.g., "March 15, 1990", "15/03/90"). Add birthdate to `documents/user/profile/[file=personal|goals|interests|ideology].md` (file: personal.md)
in a clear format like "birthdate: 1990-03-15".


3. [Gather Arguments: Calculate Life Statistics] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `birthdate`: birthdate from state:user.profile.facts
- `lifeExpectancy` (default: "90"): 90

4. [Run Code: Calculate Life Statistics]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/personal.life.calculate/preview,
    "args": [
      "birthdate",
      "lifeExpectancy"
    ]
  },
  "packages": null
}
```

5. [Gather Arguments: Render Life Grid SVG] The next step has the following requirements for arguments, do not proceed until you have all the required information:
- `birthdate`: birthdate from state:user.profile.facts
- `outputDir`: state:media.images.generated (category: life-in-weeks)
- `lifeExpectancy` (default: "90"): 90

6. [Run Code: Render Life Grid SVG]: Call `run_script` with:

```json
{
  "file": {
    "path": https://sk.ills.app/code/personal.life.render/preview,
    "args": [
      "birthdate",
      "outputDir",
      "lifeExpectancy"
    ]
  },
  "packages": null
}
```

7. [Read Life Reflection Presentation Guide]: Read the documentation in: `skills/sauna/[skill_id]/references/personal.life.guide.md` (Guidance on thoughtful presentation)

8. Present the visualization and statistics to the user following the guide:

1. Show the generated SVG image path so they can view it
2. Share one thoughtful observation about the weeks they've lived
3. Mention a meaningful milestone (seasons experienced, years completed)
4. If their next birthday is soon, note it warmly

Keep the tone contemplative and grounding. Let the grid speak for itself.
Offer to regenerate the visualization anytime they'd like to reflect again.