How to use it

Three steps to something that tracks its own progress.

1 Say what you are working towards.

my goal is to buy a Python Ask "I want to unlock all the engineers" — "get me to Elite in exploration" A goal is the year. Your checklist is the week.

2 Open the Goals tab and watch it fill in.

Goals Buy a Python 68% Unlock every engineer 21 of 38 Elite in exploration rank 4 D47 works the progress out of your journal. Nothing to tick.

! The one that stops people.

A goal you have to update by hand is a goal in the wrong place. If D47 cannot see progress in the journal, put it on the checklist instead.
Why it works this way

Your checklist holds this week. Goals hold this year — and work out their own progress.

1 Two different questions, kept apart.

YOUR CHECKLIST what you are doing this week lines you wrote, in the order you put them GOALS what you are doing this year nine of them ship, and you can set any aside An arc is a named ambition, a definition of done, and a progress figure nobody typed.

2 Progress is read off your journal, never ticked.

YOUR JOURNAL rank, engineers, hulls THE FIGURE a fact, not an opinion NO TICK BOX and it offers none Cannot see it right now? It reports as of when it last could — it never resets to nothing. A goal you invented is yours to call done, like a checklist line you wrote yourself.

3 The point is the join: what do I do about it today?

EVERY ENGINEER 19 of 53 unlocked TODAY’S STEP the unlock solver answers it A PROPOSAL you accept Accepting is your act — an arc proposes through the same path everything else does. A line that came from an arc says so, so finishing it visibly moves something bigger.

4 Except the career arcs, which propose nothing and say why.

ELITE IN COMBAT rank 5 of 8, 12% into it proposes nothing AND SAYS WHY rank is earned by doing the career there is no route anyone can plot Where a tool genuinely helps — a trade route, an exobiology route — it names that instead. Ranks are counted, not named: Elite writes a number, so Directive 47 says rank 5 of 8.

The details

Your checklist holds what you are doing this week. Goals hold what you are doing this year.

Elite in each career. Every engineer unlocked. The ship collection. The exploration milestones that take months. Directive 47 calls each of these an arc: a named ambition with a definition of done, a progress figure nobody typed, and an age.

Progress is worked out, never typed

An arc cannot be ticked by hand and does not offer to be. Your rank, your unlocked engineers and your owned hulls are read off your journal, so the figure is a fact rather than an opinion — the same rule the checklist already draws about derived lines, for the same reason.

Where the journal cannot say, d47 says so rather than guessing:

  • A goal you invented is yours to call done, like a checklist line you wrote yourself.
  • An arc d47 cannot currently evaluate reports as of when it last could. If Elite has not said anything about your rank this session, the figure from your journals stands with its date on it. It never resets to nothing on the absence of evidence.

The nine that ship

Arc Done when Where the figure comes from
Elite in Combat Combat rank 8 Live journal state
Elite in Trade Trade rank 8 Live journal state
Elite in Exploration Explore rank 8 Live journal state
Elite as a Mercenary Soldier rank 8 Live journal state
Elite in Exobiology Exobiologist rank 8 Live journal state
Every engineer unlocked Every engineer in the directory Live journal state
The ship collection One of every hull, owned at once Your fleet, plus what you are flying
Systems visited The next milestone, up to fifty thousand Your journals
Distance flown The next milestone, up to a million light years Your journals

Ranks are counted, not named. Elite writes a number for your rank and never a word, so d47 says rank 5 of 8, 12% into it and names only Elite. Shipping the rank ladders would mean hand-writing a table of Frontier’s own words, which is exactly what this repository does not do with game data.

There is no CQC arc, because almost nobody plays it and an arc permanently at nothing is a line of the page spent telling you about a thing you are not doing. If any of the others is not yours either, set it aside — it goes off the page and stays off until you ask for it back.

Ages come from your journals

Nothing happens until you ask. Tick Goals on the Checklist bar — it says how many arcs are running, and goes on saying so once the band is open — and press Read my journals. One pass over the journals already on your disk gives every arc its start date and counts the two milestone arcs. It is arithmetic over events on your own machine — nothing leaves it, and no journal is ever sent to a model.

A read looks like this:

Elite in Combat: rank 1 of 8, 39% into it. Running 11 months.
Elite in Trade: rank 7 of 8, 40% into it. Running 13 months.
Elite in Exploration: rank 5 of 8, 12% into it. Running 13 months.
Elite as a Mercenary: rank 0 of 8.
Elite in Exobiology: rank 0 of 8.
Every engineer unlocked: 19 of 53 unlocked, 2 invited. Running 12 months.
The ship collection: 11 of 45 hulls owned. Running 13 months.
Systems visited: 4,182 of 5,000 systems, next milestone. That is as of 17 Aug 2026, from your
journals. Running 13 months.
Distance flown: 214,908 of 500,000 ly, next milestone. That is as of 17 Aug 2026, from your
journals. Running 13 months.
Ages and milestones come from 914 journals on this disk, the oldest from 4 Jul 2025.

The checklist points at the arc

The join is what makes both worth having: given a goal that takes months, what is the concrete thing to do about it today?

Ask about one arc and d47 answers with the next step, and offers to put it on your list. Accepting is your act — an arc proposes through the same pending-proposal path everything else does, and you accept or decline it on the Checklist page.

A line that came from an arc says so, so finishing it visibly moves something bigger than itself.

What each arc offers:

  • Every engineer unlocked hands the question to the unlock solver, which already answers it properly — ranked by fastest unlock and distance together, and the chain it promotes carries an access step beside each modification.
  • The ship collection names the cheapest hull you do not own, off the shipyard table.
  • The milestone arcs name the gap to the next rung.
  • The career arcs propose nothing, and say why. Rank is earned by doing the career; there is no route to it anyone can plot. Where d47 has a tool that helps — plot_trade_route, plot_exploration_route, plot_exobiology_route — it names that instead of inventing a plan.

Talking to it

how are my goals going

what are my goals

get_goals

Reads every arc back: how far along each is, how long it has been running, and where the figure came from. The one tool here the model can call on its own, because how is the Elite exploration push going is a thing you say mid-flight and an arc d47 cannot see is an arc it cannot be asked about.

{"type":"object","properties":{},"required":[],"additionalProperties":false}

get_goal_step

Says what to do about one arc today, and offers it as a checklist line. Protected — it writes to the pending proposals, and writing is yours.

{"type":"object","properties":{"goal":{"type":"string","description":"Which goal, by name or key, as read back by get_goals."}},"required":["goal"],"additionalProperties":false}

set_goal_aside

Takes an arc off the page, or brings it back. Protected, for the same reason. A set-aside arc stays set aside through a re-read of your journals — it is a decision you made, not a figure d47 recomputes.

{"type":"object","properties":{"aside":{"type":"boolean","description":"True to set it aside, false to bring it back. Defaults to true."},"goal":{"type":"string","description":"Which goal, by name or key."}},"required":["goal"],"additionalProperties":false}

Where it is kept

data/goals.json, beside the executable, keyed per Commander on the Frontier id in your journals — so two characters on one machine do not report each other’s progress.

Three things live in that file and only one of them is d47’s. The mined marks are a recomputation and are replaced wholesale by the next read. The goals you wrote and the arcs you set aside are yours, are stored separately, and a re-read never touches either. The file is plain JSON and meant to be readable; a line d47 cannot parse is reported rather than silently dropped.