Heliostat.
Tutorial

The full cycle, in one scroll.

Follow one commitment — User Auth — from first pitch to retro. You'll see exactly where your normal workflow becomes Heliostat's input, and where it doesn't.

Think

anytime · daily

Pitch

during cooldown

Commit

start of cycle

Build

daily, for weeks

Cooldown

1–7 days after cycle

Before you start

Install the Heliostat GitHub App on the repos you want tracked.

Heliostat is a GitHub App with three narrow permissions: repository metadata (read-only), repository contents (read-only — required by GitHub for push events to be delivered), and your email address. No issue, PR, or deployment access; we only read what the push event sends us — never the file contents. Install it on only the repos you want to hand to Heliostat — organizations and individual accounts both work. Push events flow to a single app-wide webhook; Heliostat matches commits to your scopes automatically. Uninstall any time from your GitHub account settings.

Phase 0 · anytime, daily

Think.

Before a pitch, there's just an idea. /think is a per-user mind-map for those — raw thoughts, references, screenshots, half-formed plans — with no cycle pressure.

1

Capture freely.

Each note is a markdown document with a title and body. Bodies support #tags, [[wikilinks]] between notes, folders for grouping, image attachments (paste or drop), inline image comments, callouts (> [!note], > [!warning]), tasklists with checkboxes that toggle in place, and YouTube embeds. Bare URLs auto-resolve to the page's title once Heliostat fetches it. Hit /think/daily for an auto-created note for today's date.

2

Connect related notes.

Type [[note title]] and Heliostat creates an edge to the matching note. Backlinks render in the right pane. Switch to the graph view to see the whole map at once and drag notes around. Edges aren't typed — just "these are related" — so you don't have to taxonomize anything.

3

Promote a cluster to a Pitch.

When a knot of notes starts to look like a real idea, lasso them on the canvas and click Extract. Heliostat hands those note bodies to OpenAI to draft a Pitch you can shape next — the source notes stay where they are.

4

Share or export when you need to.

Per-note: flip Share on a note to mint a /u/<your-github>/n/<id>/<key> URL only people with the link can resolve; revoke it instantly by toggling Share off. Whole map: Export downloads a .tar.gz of one .md per note, folders preserved as directories. Notes also keep version history — restore an earlier version from the editor menu.

Phase 1 · during cooldown

Pitch.

Before you commit weeks, draft a pitch: name the pain, pick a t-shirt size, sketch the solution, surface risks. Pitching is where bad ideas get caught cheaply.

1

Draft the pitch.

Five fields, one page. Heliostat auto-saves as you type and gates the "Mark ready" button on a readiness checklist — problem, solution, rabbit holes, and no-gos all have to be present before a pitch can be committed to. An optional "Other notes" field catches everything that doesn't fit above. "Ask The Senior" is available from the moment you open a pitch — it'll flag shallow pitches before you commit.

User Auth
Step 1 · T-shirt size — set the box first
S
~3 days
M
1–2 weeks
L
3–4 weeks
XL
full cycle
Step 2 · Problem

The pain. Not the fix.

Users have no way to sign in. Every demo turns into a seed-user walkthrough.
Step 3 · Solution — fat marker only

Broad strokes. Precise = building.

Sign in with GitHub. One button; no email/password path.
Step 4 · Rabbit holes

Where could you get lost?

Don't build multi-tenant roles yet. Don't try to cover GitLab/Bitbucket.
Step 5 · No-gos
Enterprise SAML. Email magic links.
Other notes · optional

Extras that don't fit above — links, references, constraints.

See Devise OmniAuth example at github.com/heartcombo/devise#omniauth.
Readiness checklist complete
Mark ready →
Phase 2 · start of cycle

Commit.

Pick the pitches. Assign each a short tag. The decision ritual matters even when the only stakeholder is you — don't drift into work.

2

Pick pitches and tag them.

Heliostat lists every pitch you marked ready. Click "Commit" on the ones you'll run this cycle — one XL, or a few Ms and an L, or four Ss. Whatever mix fits the cycle. Each committed pitch needs a scope tag: any short word that'll link future branches and commits back to it.

User Auth

M · 1–2 weeks
✓ Committed
Scope tag required
auth

Any short word. No required prefix — auth will match branches like feat/auth-oauth, bug/auth, and commits like fix(auth): ….

Threaded Comments

XL · full cycle
Commit to this
Phase 3 · daily, for weeks

Build.

Ship. Every day you move the dot; every push flows into the right scope. Stale scopes flag themselves, interruptions log themselves, and the hill chart keeps you honest.

3

Commits link themselves.

Work the way you already do. A push to feat/auth-oauth matches the tag's branch pattern; a quick fix committed straight to main still matches if the commit message names the tag.

Branch match
feat/auth-oauth
a3f320… feat(auth): sketch provider config ↗ uphill User Auth
a3f539… feat(auth): wire OAuth callback ↗ uphill User Auth
a3f991… fix(auth): handle expired refresh token ↘ downhill User Auth
Scope in the message
fix(auth): redirect loop after deploy
on main
Matched
User Auth
tag: auth

The direction marker comes from the type prefix (feat / spike / explore / wip / poc read uphill; fix / test / refactor / chore / docs read downhill). It's a second opinion for your next check-in — the hill chart doesn't move on its own.

4

Interruptions log themselves.

A pager goes off. You push hotfix: pager timezone bug to main — no scope tag in the branch, no tag in the message. Heliostat doesn't lose the commit; it logs it as unplanned work at 0.5h (estimated) so you don't forget to account for it. Tap the hours to fix them later.

Unplanned Work

Logged via ⚡ · informs next cycle sizing

3.5h
pager timezone bug Apr 14 0.5h
Safari login bug Apr 15 2h
DB migration rollback Apr 16 1h

Dashed border = estimated, still needs your confirmation.

5

Daily check-in: you decide, commits advise.

Every day you move the dot — a small, honest adjustment. Under each scope, Heliostat shows a unified history of your check-ins and recent commits, each tagged uphill or downhill, so you can calibrate. A second opinion, never a verdict.

User Auth
35 → 55
figuring it out executing
History
55% Downhill callback wired
a3f842 fix(auth): expired refresh downhill
a3f611 feat(auth): wire callback uphill
35% Uphill provider picked

Check-ins and commits interleaved. The arrows on commits are the second opinion — the percentage pills only move when you move the dot.

6

Scope hammer: ~ and cut.

Prefix a scope's title with ~ when it's a nice-to-have. It still shows up and gets worked on — but when the calendar runs out, nice-to-haves are first to cut. Cut manually anytime; the hill chart keeps the trace, and the cut scope comes back as a fresh raw pitch with the pitch fields copied over so nothing's lost.

Scopes in this cycle
User Auth auth
Billing portal billing
~ Email notifications nice-to-have
Onboarding tour cut

Cut scopes move back to the pitch list as raw drafts — title, problem, solution, rabbit holes, and no-gos all preserved. Re-pitch next cooldown, re-commit next cycle, or let them go.

Phase 4 · 1–7 days after cycle

Cooldown.

No feature work. Fix lingering bugs, update dependencies, jot rough ideas for next cycle — and run the retrospective. All on one page. Close cooldown when you're done; only then does a new cycle start.

7

Seed the next cycle with ideas.

An idea scratchpad lives on the cooldown page — rough notes for next cycle, captured while they're fresh. Promote an idea to a pitch when it's ready and Heliostat drops you into a raw pitch with the first line as the title and the full body parked in the notes field, ready for you to break out problem, solution, and rabbit holes.

Ideas

Seeds. Promote to a pitch when ready.

Better onboarding flow — single-step project tracking after sign-in

Offline dashboard support

Public API docs?

8

Walk the cycle with the Retro Coach.

The retro is a guided conversation, not a form. The coach reads the cycle first — what shipped, what stalled, what interrupted — then opens with a pointed observation and takes three to five short turns with you. When a lesson surfaces, it proposes the wording and you save it in a click. Interruption % over 15% signals the next cycle should be shorter — or have more buffer. Unfinished scopes hit the circuit breaker: re-pitch and re-commit, or let them go.

Shipped
2
Unfinished
1
Unplanned
7h
Interruption
4%
Retro coach
Walks the cycle with you · AI facilitator
8 / 10 left

You shipped User Auth and Billing portal, and Onboarding tour stalled at 28% for two weeks before you cut it. What kept you from cutting it sooner?

Kept thinking it was one more evening. It never was.

It had the ~ marker the whole time. If a nice-to-have doesn't move for a week, is that a carry or a cut?

A cut. Carrying it was optimism, not a decision.

Lesson proposed

A nice-to-have that hasn't moved in a week is a cut, not a carry.

Save lesson Dismiss
Lesson saved

A nice-to-have that hasn't moved in a week is a cut, not a carry.

Your reply…

The conversation persists on the cycle, so closing the tab mid-retro keeps your spot. Saved lessons collect on the cycle's cooldown page and your Lessons index — a record of what you learned — and the retro thread archives when the cooldown closes.

Carry forward?

Re-evaluate. Cut once = look harder the second time.

Onboarding tour
Left at 28% · Still figuring it out
Carry forward

Click carry-forward and the scope becomes a fresh raw pitch — title, problem, solution, rabbit holes, and no-gos copied over — and the scope is cut from this cycle.

Begin pitching next cycle →
Recap

One cycle. Four phases. Everything else is yours.

  • ◇ Pitch. Five fields, a readiness checklist. Keeps half-finished pitches from getting committed.
  • ◈ Commit. Pick your pitches, tag each one. The tag is the only thing Heliostat needs to wire up automation.
  • ◐ Build. Commits link themselves. Unmatched pushes become unplanned work. You move the dot daily; commits advise direction. ~ marks nice-to-haves; cut whenever you need to.
  • ◑ Cooldown. One page for the whole wind-down: seed next cycle with ideas and walk the retro with the AI coach (Heliostat pre-reads shipped/unfinished/interruption %; lessons save in a click). Close cooldown to unlock the next cycle.

Everything else — deciding the t-shirt size, moving the dot, cutting scope, writing the retro — stays with you. That's the whole point.

See also
Ready

Try it on your next cycle.

Start free. Upgrade to Solo when you're ready for unlimited projects and AI personas.

Read the methodology
🍪

Cookies

Heliostat uses a few essential and functional cookies (sign-in, timezone, this notice) and no analytics or ad trackers. Details in our Privacy Policy.

Privacy