Skip to content

/flowforge:session:start

/flowforge:session:start is the mandatory entry point for every FlowForge work session. It detects (or accepts) a ticket id, places the working tree on the correct feature branch, starts time tracking, and runs pre-flight environment checks. No FlowForge work begins until this command has run.

Terminal window
/flowforge:session:start [ticket-id]

From the command line outside Claude Code, the equivalent invocation is:

Terminal window
flowforge run flowforge:session:start [ticket-id]

This command is the surface of FlowForge’s “time = money” guarantee. The framework refuses to count work that was not preceded by a session start: the timer must be running, the branch must be the ticket’s feature branch, and the session manifest in .flowforge/local/session.json must exist. /flowforge:session:start produces all three side effects atomically.

When invoked without an argument the command auto-detects the ticket using a deterministic priority order:

  1. The current session manifest (.flowforge/local/session.json) — used to resume if a session is mid-flight.
  2. The next ticket from the configured provider’s task order.
  3. In-progress tickets from the provider system.
  4. Position tracking, when the project uses it.
  5. Provider-assigned tickets (GitHub, Linear, Jira, Local, and other configured providers).

When invoked with an explicit ticket id, the command jumps straight to that ticket and skips auto-detection. Ticket ids are interpreted by the configured provider — 123 for GitHub issues, LIN-456 for Linear, task-789 for the local provider, and so on.

After the ticket is resolved, the command verifies the working tree is in a git repository, switches to (or creates) the corresponding feature branch, records the session manifest, and starts the time tracker. The branch is enforced by Rule #18 — work on main or develop is rejected at this stage.

PositionNameRequiredDescription
1ticket-idnoProvider-specific ticket identifier. When omitted, the command auto-detects via the priority order above. The literal values ? and help print an in-terminal usage block and exit 0.

This command has no flags. Behavior is controlled by environment variables and the positional ticket id.

VariableDirectionPurpose
ARGUMENTSreadReceives the ticket id when invoked through flowforge run or the Claude Code hook runtime.
DEBUGreadWhen set to 1, the command turns on set -x for full bash tracing. Useful when an auto-detect step is opaque.

Start with an auto-detected ticket:

Terminal window
/flowforge:session:start

Start work on GitHub issue 123:

Terminal window
/flowforge:session:start 123

Start work on Linear ticket LIN-456:

Terminal window
/flowforge:session:start LIN-456

Start with full debug tracing:

Terminal window
DEBUG=1 /flowforge:session:start 123

Print in-terminal help and exit:

Terminal window
/flowforge:session:start ?

The output of a successful session start follows this shape:

Starting FlowForge Session...
Detected ticket: #123 ("Add CLI reference page")
Switched to branch: feature/123-add-cli-reference-page
Time tracking active.
CodeMeaning
0Session started, timer running, branch set.
Non-zeroA precondition failed. Common causes: not in a git repository, no provider configured, ticket lookup failed, or branch creation rejected. The error message names the failure mode and prints the DEBUG=1 recovery hint.