TimZander / TimZander/life-compass

Day-level and compass-level synthesis prompts

Open
#69 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:a11y area:privacy
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
8h 34m
Merged PRs (30d)
3

Description

Goal

The two larger altitudes: a prompt for a whole day, and a synthesis pass across accumulated
answers. #67 proves the mechanism on one question group; this extends it to the scopes where
an assistant's real value shows — asking follow-up questions across a day's work, and helping
shape five days of reflection into a compass.

Part of #15. Deliberately last, because these are the payloads with the most in them.

Current Behavior

Nothing generates prompts at any altitude until #67 lands. The scopes map onto existing
structure:

  • A day is one worksheet in WORKSHEETS (src/questions/index.ts), identified by its
    source path — e.g. days/day-1-excavation.md, or its rigorous-track counterpart.
  • A compass spans accumulated answers across worksheets, which is what
    one-page-anchor.md and templates/life-compass.md already exist to hold.

Proposed Solution

Reuse #67's generator and consent surface at wider scopes rather than writing a second one.
If that turns out to need reshaping, reshape it — two prompt generators that drift apart is
the outcome to avoid.

The privacy trade gets sharper as the scope widens, and the design has to get sharper with
it.
At a single question group, prior answers are an opt-in extra. At compass level they
are the entire point — synthesis across accumulated answers is what is being asked for — so
the payload necessarily contains days of the most personal material the app holds. ADR 0007's
"show the literal payload" stops being a formality at that size: a scrollable preview of four
days of reflection is the only honest way to make the trade legible.

That has a real consequence worth deciding rather than defaulting: per-section opt-in
(0007 · 2) has to remain meaningful at this size.
A single "include everything" tick is not
the same as choosing, and this is exactly where it would be tempting to add one.

Open question, created by the interface decisions of 2026-08-07. #67 puts a copy button
on each question, which gives the per-group altitude an obvious home. A day and a compass have
no such anchor — the candidates are the top of each worksheet, or the bridge's own opt-in
page alongside the toggle. The latter keeps worksheets clean, which is the reason the opt-in
exists; the former puts the control where the work is. Decide deliberately.

This is where a day comes back in one piece. Asking an assistant to interview somebody
through a whole day produces that day's answers together, so this altitude is the first real
consumer of a paste carrying several blocks at once. #66 is required to leave room for that
in the contract's top-level shape; whether it ships here or later is this issue's call, but
the format must not need a version bump to allow it.

Paste-back at these altitudes is already answered. Because every block names the scope it
answers (#66), the agent page's paste box routes anything — so a day-level or compass-level
reply has somewhere to go without needing a control of its own. That was the reason the box
became #68's primary mechanism rather than a fallback.

Acceptance Criteria

  1. A day-level prompt contains every question group in that worksheet and no group from
    another.
  2. A compass-level prompt spans the worksheets it declares, and names which ones it drew from
    in the payload itself.
  3. A reply carrying a whole day's answers is imported in one exchange, each block routed to
    the group it names — or, if that is deferred, the contract still accepts it without a
    version change and the deferral is recorded rather than implied.
  4. Prior answers remain opted in per section at both altitudes; there is no single
    control that silently includes everything.
  5. The preview shows the literal payload at full size and is scrollable — asserted as the
    same string that reaches the clipboard, as in #67.
  6. The one plain sentence (0007 · 3) is stated once, not repeated per section, and not
    escalated into a confirmation dialog (0007 · 4).
  7. Both altitudes emit the contract from #66 at the same version #67 does.
  8. Both work offline.
  9. Negative case: a day with no answers stored still produces a usable blank prompt rather
    than an empty payload or an error.
  10. Generating at any altitude leaves the store untouched. Copy-out reads; it never writes.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the generator and consent surface from #67 and the contract from #66, then inspect src/questions/index.ts, one-page-anchor.md, and templates/life-compass.md to map day and compass scopes. Resolve the control placement and per-section opt-in decisions, then verify the acceptance criteria for literal previews, multi-block replies, offline use, blank days, and an untouched store.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.