Features & Tasks
Everything Shep does is organized around two ideas: features and tasks.
Features
A feature is one unit of work — anything from “fix the login button color” to “add user authentication.” You describe it in plain English; Shep handles everything else.
Every feature has:
- A name — a slug like
add-health-endpoint(Shep generates this from your description). - A description — the prompt you provided.
- A branch — created automatically (e.g.
feat/add-health-endpoint). - A worktree — under
~/.shep/so it never touches your main checkout. - A current phase — where the feature is in its lifecycle.
- An agent run — the AI agent process implementing it.
Creating features
From the CLI:
shep feat new "add a /health endpoint that returns uptime and version"From the web dashboard, click + New Feature, type your description, choose your automations, and click Create.
Common flags
shep feat new "add stripe checkout" --push --pr --allow-merge| Flag | Effect |
|---|---|
--push | Push the branch when implementation finishes. |
--pr | Open a draft pull request (implies --push). |
--no-pr | Skip the PR even if your default workflow opens one. |
--fast | Skip spec-driven phases. Default. |
--no-fast | Use the full spec-driven pipeline with approval gates. |
--allow-prd | Auto-approve the PRD gate (only meaningful with --no-fast). |
--allow-plan | Auto-approve the plan gate (only meaningful with --no-fast). |
--allow-merge | Auto-merge the PR after CI passes. |
--allow-all | Enable all automations: push, PR, all gates auto-approved, auto-merge. |
--model <id> | Override the agent’s model for this feature. |
--attach <path> | Attach reference files (designs, code samples) to the prompt. |
--repo <path> | Run against a different repo without cd. |
--remote <url> | Clone a remote repo and run there (useful for one-off experiments). |
--parent <fid> | Create this feature as a child of an existing one. |
Run shep feat new --help for the full list including --no-rebase, --inject-skills, and --pending.
Managing features
shep feat ls # list features in the current repo
shep feat show <id> # full detail: status, plan, agent activity
shep feat logs <id> # stream logs (agent output + phase changes)
shep feat resume <id> # resume a paused or interrupted feature
shep feat archive <id> # hide a feature without deleting it
shep feat unarchive <id> # bring it back
shep feat del <id> # delete the feature and clean up its worktreeYou can use the feature ID (feat_abc123) or its slug (add-health-endpoint).
Parallel features
Each feature runs in its own worktree with its own branch and its own agent process. They are completely isolated — start as many as you want:
shep feat new "add user authentication" --pr
shep feat new "migrate database to postgres" --pr
shep feat new "add rate limiting to the API" --prAll three run simultaneously. Watch them all in the dashboard or with shep feat ls.
Tasks
Tasks are the steps inside a feature. When Shep runs the spec-driven pipeline (--no-fast), it produces a plan made of tasks — each one a discrete, reviewable step like “write the controller,” “add the route,” “write tests.”
In fast mode (the default), there are no explicit tasks — the agent receives the prompt and implements it directly. Fast mode is right for most work; spec-driven mode is for larger features where you want a plan to review before any code is written. See Spec-Driven Mode.
Whether the work is broken into tasks or not, Shep tracks every state change. Use shep feat show <id> or the dashboard to see exactly where the agent is.
What’s next
- SDLC Lifecycle — the phases a feature moves through.
- Spec-Driven Mode — when to enable approval gates and tasks.