Creating Features
A complete guide to creating AI-powered features in Fabriq.
A feature in Fabriq is a unit of work for the AI agent to complete — anything from a small bug fix to a new multi-file feature.
Opening the Feature Workbench
From the Workspace Browser, click New Feature. You'll see a dialog with two fields:
| Field | What to enter |
|---|---|
| Name | A short identifier, like add-search-filter or fix-login-redirect |
| Description | What you want the agent to build (see tips below) |
After you fill these in and click Create, Fabriq:
- Creates an isolated git worktree from your base branch (the agent cannot touch your main code)
- Opens the Feature Workbench — the main interface for working with features
- Starts the Design stage — the agent reads your project to understand the codebase
Writing good feature descriptions
The quality of the agent's work depends heavily on how well you describe what you want.
Be specific
| ❌ Too vague | ✅ Specific and actionable |
|---|---|
| "Add search" | "Add a search bar to the products page at /products. Filter products by name and category. Use debounced input (300ms delay). Display results as a dropdown below the search bar." |
| "Fix the bug" | "Fix the login redirect: after successful login at /api/auth/login, users are sent to / instead of /dashboard. The redirect URL is set in auth.ts line 42. Change it to redirect to /dashboard." |
| "Improve performance" | "Optimize the product list query in ProductList.tsx: add server-side pagination (20 items per page), index the category column in the database, and add a loading skeleton component." |
Include context
If the feature depends on existing code:
- Mention file paths: "Edit
src/pages/Settings.tsxto add a new section" - Reference existing patterns: "Use the same button component from
src/components/Button.tsx" - Specify constraints: "Must work for both desktop and mobile viewports"
Describe the expected outcome
Tell the agent what "done" looks like:
- "After this feature, users should be able to..."
- "The acceptance criteria are:"
- "Edge cases to handle: empty state, error state, loading state"
The Feature Workbench interface
When the feature starts, the workbench shows you everything in one view:
┌──────────────────────────────────────────────────────┐
│ Feature: add-search-filter │
│ Status: Implementing (65%) │
│ │
│ Pipeline: │
│ [Design]────[Implement ●●●●●●●○○○]────[Review]────[Ship]
│ │
│ ┌─ Activity Log ─────────────────────────────────┐ │
│ │ ✓ Created worktree from main │ │
│ │ ✓ Read project structure (48 files) │ │
│ │ ✓ Found existing Button component │ │
│ │ ⏳ Writing src/components/SearchBar.tsx │ │
│ │ ! Confirm: Write 120 lines to SearchBar.tsx? │ │
│ │ [Approve] [Reject] [Skip] │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─ Changes ──────────────────────────────────────┐ │
│ │ + src/components/SearchBar.tsx (new) │ │
│ │ ± src/pages/Products.tsx (+12) │ │
│ │ ± src/styles/search.css (new) │ │
│ └─────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
Key areas
| Area | What it shows |
|---|---|
| Pipeline | Current stage and progress bar |
| Activity Log | Real-time stream of every agent action |
| Changes panel | All files created or modified so far |
| Confirmation queue | Pending actions that need your approval |
Understanding confirmation prompts
When the agent needs to take an action that could affect your code, Fabriq pauses and asks for confirmation.
When confirmation is needed
| Action | Example |
|---|---|
| Writing a new file | "Write 45 lines to src/styles/theme.css" |
| Modifying an existing file | "Edit src/pages/Settings.tsx (add 12 lines, remove 3)" |
| Running a terminal command | "Run npm install lodash" |
| Git operations | "Commit 3 files with message: 'Add dark mode toggle'" |
How to respond
| Button | What it does |
|---|---|
| Approve | Let the action proceed. You'll see the result in the activity log. |
| Reject | Block the action. Optionally tell the agent why, so it can try a different approach. |
| Skip | Defer the decision. The action stays in a pending queue for later. |
Tips
- You can read the file preview in the confirmation dialog before approving
- If you're unsure, Skip and continue reviewing — you can come back
- Rejecting doesn't stop the whole process — just that one action
- The agent adjusts after a rejection: "You rejected writing to
theme.css. Instead, try adding the dark mode styles directly tostyles.css."
Monitoring progress
The pipeline shows the current stage with a progress bar:
- Design (5-30 seconds) — the agent reads your project
- Implement (30 seconds to several minutes) — the agent writes code. Progress bar fills as files are completed.
- Review — the agent has finished and is waiting for your approval
You can switch away from Fabriq while the agent works. The agent continues independently.
When you need to intervene
Sometimes the agent needs guidance:
| Situation | What to do |
|---|---|
| Agent is going in the wrong direction | Write a new message: "Actually, let's use a different approach..." |
| Agent asks a question | Respond directly in the chat — the agent waits for your input |
| You want to pause the feature | Close the workbench — the agent stops automatically |
| You want to cancel entirely | Click Feature Settings → Cancel Feature |
Next steps
- Reviewing Changes — examine and approve the agent's work
- Undoing Changes — revert if needed
Last updated on