FlowForge Manual
CHAPTER 03 ENThe Session Discipline
The ticket + timer + branch loop, the vitrine, and why every session is proof of work.
The Session Discipline
Everything in FlowForge hangs off one small, repeated loop: a session runs on a ticket, on a timer, on a feature branch. This chapter explains the loop and, more importantly, why it is the whole point rather than a chore.
The loop
/flowforge:session:start [ticket] → work → /flowforge:session:end "summary"- Start verifies the ticket, starts the timer, checks out the feature branch, and restores context.
- Work happens with the clock running and the branch protecting
main. - End stops the timer, writes a summary, and leaves a clean trail behind.
pause and end exist for the natural interruptions of a day. What never happens is
work with no session.
A ticket is your vitrine
Vitrine means shop window. Your ticket is where your work is displayed.
- Work with no ticket leaves no trace. It can’t be measured, can’t be seen, and won’t be counted when a raise or promotion is decided.
- On a team, you are a resource to others, and showing your work is your responsibility, not theirs.
- Scope one right-sized ticket per real deliverable — not five tickets for one feature (that reads as thrashing), and not one giant ticket for a month of work (that reads as a black box). One ticket, one shipped thing.
This is Rule #5, and it is the reason session-start refuses to run without a valid ticket.
The timer is the proof
FlowForge sells time-tracking: its customers track hours to generate reports for their clients. So FlowForge tracks its own hours the same way — eating its own dog food.
- No timer, no record. An untracked hour is an hour you cannot invoice or defend.
- The timer starts automatically at session-start, so the honest path costs you nothing.
- Time is money: this is not a slogan, it’s the product’s core promise turned inward.
Branch, never main
Rule #18 is absolute: never commit directly to main or develop. Session-start
always puts you on a feature branch (feature/<ticket>-work, or a milestone-scoped
branch when milestone mode is active). Protected branches stay clean, releases stay safe,
and every change arrives through a reviewable pull request.
The pre-flight checklist
A healthy session, every time:
- Ticket open and verified
- Timer running
- On a feature branch (not
main/develop) - Then — and only then — build
Session-start runs this checklist for you. If any item can’t be satisfied, it stops and tells you why rather than starting dishonest work.
Why it matters
The session discipline is what converts effort into evidence. A month of sessions is a queryable history of what you did, how long it took, and why it mattered — the raw material for reports, retrospectives, and the case that you deserve to be paid well. Skip the session and the work still happens; it just stops counting.