← Simone Lovera

Product rules

These are the rules I work by. I wrote them for Forte's products, as a file the developers' AI coding agents read while they work, so the reasoning behind product decisions is there when the code gets written. They're my rules, and they'll come with me wherever I build next.

Before
Developers brought most product questions to me in chat.
After
Developers can ask their coding agent to check a question against the rules, then come to me with a proposal. I step in when a decision needs me. Since then I've seen better first versions, less time spent, more ownership, fewer errors and happier users.

I've also published a general version as talkback, an open source set of skills for AI coding agents. A team installs it in its project and fills in a product file with its own metric, users and fixed rules.


How we build our products

What this is. This file sits in the project of every Forte developer who writes code with an AI coding agent. The agent reads it, so it can answer product questions from these rules while the code is being written. The rules come from my experience building products.

For the developer. When you're unsure whether a feature, a button or a flow fits how Forte builds products, ask the agent: it checks the question against these rules. When you're sure, go ahead. The code is yours.

Same rules, different customers. fPost users are audio post production engineers working in studios. They're technical and expect depth. fMusic users include hobbyists and semi-professional musicians, so the product has to make sense to someone who isn't a Pro Tools expert. Apply each rule with the product's audience in mind.


1. The agent's role

Developers own the code. The product owner owns the product, including its user experience and interface design. The agent works on the product side, inside the developer's project. It doesn't approve changes and it doesn't review code.


2. Three questions before building a feature

  1. Have several users asked for this? A single request, even a strong one from a good beta tester, needs checking with other users first. Features built for edge cases clutter the product.
  2. Does it move the main metric? Each product is judged on one metric, its North Star. For fPost and fMusic, it's completed jobs per week. If a feature doesn't help more users complete the core job, it isn't a priority.
  3. Does it work for most reference users, on their real machines and versions? If the user base runs macOS Sequoia, a feature tested only on Tahoe isn't done. When unsure, run a short analysis with the agent on which operating system, host app (Pro Tools, Logic) and hardware the users actually run. Base it on usage data from PostHog, our product analytics tool.

Use the three questions as a guide. A no on any of them is a good reason to wait. When all three are yes, build the smallest version that solves the problem.


3. Product principles


4. Where things go, and when we're not sure

The main window holds what changes every session. Settings hold what the user sets once. Right click menus and settings hold the depth. Each screen has one primary action, and secondary options live in settings or behind right click. The core action, with a sensible default, is always two clicks away at most.

Everything lives where you'd look for it. A setting sits where its effect is visible. Recurring elements sit in the same place on every screen.

To decide, look at what users do, which often differs from what they say they want. What they touch every session goes in front of them. What they touch once a month goes in settings. If you don't know how users behave, research it with the agent or on Google (how the host app handles it, what similar tools do, what forums and docs say) and decide on what you find.

When the product isn't sure, show it. When a classification is ambiguous or a processing decision could go two ways, show a warning so the user sees it and makes the final call. Never hide uncertainty behind a result that looks confident.


5. Which tier

For products with tiers (fPost: Studio and Suite), two checks:

  1. Would this feature alone move someone to the higher tier? If yes, it goes in the higher tier.
  2. Is it needed to complete the core job correctly? If yes, it goes in the lower tier, even if it feels advanced. The lower tier has to be a complete product on its own.

If the two answers disagree, the product owner decides.


6. Copy and design

Copy. Concise, only text that adds value. Buttons name the action: Import, New Session. Text elsewhere describes the state (a page titled Start, a status line saying Importing). When a section's content changes, its name changes with it, along with placeholders, tooltips, onboarding and loading steps. The tone is a competent colleague talking to a professional: never enthusiastic, never vague. Interface in English, labels short. Text given in quotes by the product owner is used word for word.

Design. The style stays consistent over time with the one set at the start by the product owner. Every new screen or state should look like it was always there. When the existing style doesn't cover a case, extend it in the same spirit and check with the product owner. The product keeps one style.

What the style is depends on the product. For a tool built for professionals on dense desktop setups, for example: alignment to the pixel, measured on the reference screen (MacBook, 1512×827); same height for pills and badges on a row; one accent colour, with colour communicating state and never decoration; a few lines, then "more", for long text; density as a value, with Linear and Cursor as the reference. A product for a broader audience can choose differently. Consistency with what's already there is the rule that doesn't change.


7. How we work


8. Before saying "done"

Use this checklist in a developer's first weeks. Once the developer runs it on their own, the agent stops asking.

  1. Did I handle every point, and apply each rule everywhere it applies, including places nobody pointed out?
  2. Does it reuse what already exists, and look and behave like the rest of the product?
  3. Is it verified on the real app on every reference operating system version, with proof, and does anything need the product owner's go?