Skip to content

Make the TELOS dashboard work out of the box - #1929

Open
hjbrandt wants to merge 3 commits into
danielmiessler:mainfrom
hjbrandt:telos-parser-improvements
Open

Make the TELOS dashboard work out of the box#1929
hjbrandt wants to merge 3 commits into
danielmiessler:mainfrom
hjbrandt:telos-parser-improvements

Conversation

@hjbrandt

@hjbrandt hjbrandt commented Aug 21, 2026

Copy link
Copy Markdown

Make the TELOS dashboard work out of the box

A fresh install ships a TELOS template whose examples don't match what the dashboard can actually read, so /life and /telos look empty or broken until you dig into the parser source to learn the expected format. This PR fixes both sides: the parsers understand more, and the template's examples now show exactly the format that works.

What a fresh install gets

  • Goal progress bars. The goals card has always said "Progress tracking appears once each goal has a progress field," but no code ever read such a field. Now you write - Progress: 40% under a goal and get a bar on /life, /telos, and the goal's detail page. Just a hand-typed percent, nothing more to maintain.
  • The Spark card shows actual sparks. It used to show the section headings (like "Sensory / aesthetic") instead of the entries under them. Sparks are now read from bold bullets: - **Gardening** — why it refuels you. The template now also ships a SPARKS.md with sample categories (H3 headings) and sparks (bold bullets) — the shape the morning voice brief (checks/life-morning-brief.ts, which picks a random H3 from SPARKS.md) and the Spark card both read, so both work on a fresh install. A ## Sparks section in the unified TELOS.md still takes precedence for single-file setups.
  • Sections written in the unified TELOS.md render correctly. Entries like ### M1: ... are recognized, the Summary and References labels no longer leak into card text, and a trailing notes block no longer shows up as fake extra entries.
  • The preferences card fills itself from the Wisdom section and a hobbies file, skipping "(sample)" placeholders.
  • Two small bug fixes. The owner column in work views never filled in because of a capitalization mismatch, and the /life projects card picked up rows from unrelated tables in PROJECTS.md.
  • The work card shows which project each thread belongs to (second commit). Items carrying a Property: label get one row per project, with the strategy tag and life-area tags read from the item's labels. Boards that don't use those labels look exactly as before.
  • A template that teaches the right format. The samples in USER/TELOS/TELOS.md are rewritten to the exact shapes the parsers read. Replace the words with your own, keep the layout, and the dashboard works on day one. The footer notes the few formats that matter.

Three behaviors change on purpose

  • Sparks are read from bold bullets instead of headings. If you used headings as individual sparks, move those names into bullets.
  • The /life projects card reads only the projects section of PROJECTS.md when one exists, instead of scanning every table in the file.
  • The work card on /telos groups threads by their Property: label when present, instead of always showing one flat "Work in flight" row.

Everything else keeps working as before: legacy per-topic files and bullet-style sections parse the same as they always did.

Tested

All parser changes run live on the install they came from, and the rewritten template was fed through this branch's own parser functions: every sample renders — goals with bars, sparks, state fields, next actions, and dimensions.

…ate those shapes

- Goals: heading-form IDs (### G0:) and a hand-set '- Progress: N%' bullet
  render as progress bars on /life, /telos, and goal detail (the 'progress
  field' the goals-card hint has always promised but nothing implemented)
- Sections: H3 ID entries parse as entries, Summary:/References: field labels
  stripped, trailing '### <Topic> notes' blocks no longer shred into fake
  entries via the paragraph fallback
- Sparks: parsed from bold-lead bullets instead of H3 category headers, which
  rendered categories instead of sparks
- Preferences: aphorisms read TELOS.md § Wisdom (WISDOM.md fallback); hobbies
  wired; '(sample)' entries filtered
- Work-view fixes: Agent: label matched case-insensitively (taxonomy is
  capitalized, owner column never filled); /life project table scan scoped to
  the projects section so other tables stop leaking rows in
- Template: USER/TELOS/TELOS.md samples rewritten to the exact shapes these
  parsers read, so a fresh install renders /life and /telos correctly out of
  the box
@hjbrandt hjbrandt changed the title Pulse TELOS: parse the shapes the dashboard promises; teach the template those shapes Make the TELOS dashboard work out of the box Aug 21, 2026
One row per Property:* label instead of a single flat 'Work in flight' row,
carrying the Strategy:* tag and Feeds:* life dimensions from the item labels.
Items without a Property label keep the generic row, so boards that don't use
the label taxonomy look exactly as before.
The morning voice brief (checks/life-morning-brief.ts) reads SPARKS.md
H3 headings and the /life Spark card reads bold-lead spark bullets, but
a fresh install shipped neither shape in a SPARKS.md. Add a template
SPARKS.md with sample categories (H3) and sparks (bold bullets), move
the template TELOS.md's sparks there (the parser already prefers a
TELOS.md Sparks section when one exists, so single-file users lose
nothing), and update the Spark card's empty-state hint to name the file.
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.

1 participant