# Your First Project

## Launch SF

Open a terminal in any project directory (or an empty one) and run:

```bash
sf
```

SF shows a welcome screen with your version, active model, and available tool keys.

## Start a Discussion

Type `/sf` to enter step mode. SF reads the state of your project directory and determines the next logical action:

- **No `.sf/` directory** — starts a discussion flow to capture your project vision
- **Milestone exists, no roadmap** — discuss or research the milestone
- **Roadmap exists, slices pending** — plan the next slice or execute a task
- **Mid-task** — resume where you left off

For a new project, SF will ask you to describe what you want to build. Talk through your vision — SF captures requirements, architectural decisions, and scope.

## The Project Hierarchy

After discussion, SF organizes your work into:

```
Milestone  →  a shippable version (4-10 slices)
  Slice    →  one demoable feature (1-7 tasks)
    Task   →  one context-window-sized unit of work
```

The key rule: **a task must fit in one AI context window.** If it can't, it becomes two tasks.

## Run Auto Mode

Once you have a milestone and roadmap, let SF take the wheel:

```
/sf autonomous
```

SF autonomously:
1. **Plans** each slice — scouts the codebase, researches docs, decomposes into tasks
2. **Executes** each task — writes code in a fresh AI session
3. **Completes** the slice — writes summaries, commits with meaningful messages
4. **Reassesses** the roadmap — checks if the plan still makes sense
5. **Repeats** until the milestone is done

## The Two-Terminal Workflow

The recommended approach: auto mode in one terminal, steering from another.

**Terminal 1 — let it build:**

```bash
sf
/sf autonomous
```

**Terminal 2 — steer while it works:**

```bash
sf
/sf discuss    # talk through architecture decisions
/sf status     # check progress
/sf queue      # queue the next milestone
/sf capture "add rate limiting to the API"  # fire-and-forget thought
```

Both terminals read and write the same `.sf/` files. Decisions in terminal 2 are picked up at the next phase boundary automatically.

## Check Progress

Press `Ctrl+Alt+G` or type `/sf status` to see the dashboard:

- Current milestone, slice, and task
- Elapsed time and phase
- Per-unit cost and token breakdown
- Completed and in-progress work

## Resume a Session

```bash
sf --continue    # or sf -c
```

Resumes the most recent session for the current directory.

To browse and pick from all saved sessions:

```bash
sf sessions
```

Shows each session's date, message count, and preview so you can choose which to resume.

## What's on Disk

All state lives in `.sf/` inside your project:

```
.sf/
  PROJECT.md          — what the project is
  REQUIREMENTS.md     — requirement contract
  DECISIONS.md        — architectural decisions
  KNOWLEDGE.md        — cross-session rules and patterns
  STATE.md            — quick-glance status
  milestones/
    M001/
      M001-ROADMAP.md — slice plan with dependencies
      M001-CONTEXT.md — scope and goals
      slices/
        S01/
          S01-PLAN.md     — task decomposition
          S01-SUMMARY.md  — what happened
          S01-UAT.md      — test script
          tasks/
            T01-PLAN.md
            T01-SUMMARY.md
```

## Next Steps

- [Auto Mode](../core-concepts/auto-mode.md) — deep dive into autonomous execution
- [Preferences](../configuration/preferences.md) — model selection, timeouts, budgets
- [Commands](../reference/commands.md) — all commands and shortcuts
