Skip to Content
SetupProduct brief

Product brief

PRODUCT.md records what your app is, which features and integrations it keeps and what it should look like, so the bundled skills act on those decisions instead of asking you twice.

Write the product brief for this NativeExpress app with the setup skill's discovery phase: interview me, write PRODUCT.md, apply the feature and integration decisions, then continue with setup.

The setup skill writes the file during its discovery phase, the first thing it does on a fresh project. Edit it by hand whenever a decision changes.

Sections

Keep the headings, their order and the table shapes as shipped. yarn skills:doctor parses them, and the design skill reads the last section.

SectionHoldsAllowed values
SummaryOne paragraph: what the app does and for whomProse
AudienceWho uses it and what they are trying to get doneProse
PlatformsOne row each for ios and androidyes or no
FeaturesOne row each for chat, create and scankeep or remove
IntegrationsOne row each for payments (RevenueCat), paywall (Superwall), push (OneSignal), analytics (PostHog), crash reporting (Sentry), Google sign-in and Apple sign-inon or off
MonetizationThe model, and what Pro unlocksfree, one-time or subscription
Design inputsLogo path, brand colours, fonts, reference apps or screenshots, three adjectivesA value per line, or an empty line

Each section ships with a TODO line and the boilerplate’s own example values. Delete the TODO line once the section describes your app; the doctor reports the section as unfinished while the line is there.

Two rules constrain the tables:

  • create is Pro-only, so keeping it means payments on. Monetization free means payments and paywall off and create removed.
  • Apple rejects an iOS app that offers Google sign-in without Apple sign-in. If Google sign-in is on and iOS ships, Apple sign-in is on.

Leave a design input empty rather than inventing one. The design skill asks for what is missing, and a made-up brand colour ends up in the theme.

How the brief is written

The discovery phase asks six questions in one message, each with a proposed default, so you answer only where you differ:

  1. What the app does, and for whom. The name you use here becomes the app name.
  2. Identity: the slug, URL scheme and bundle identifier derived from the app name and your Expo account username, to confirm or correct, plus the platforms you ship.
  3. Which of chat, create and scan to keep.
  4. Which integrations are on. The default keeps payments, analytics, crash reporting and both sign-ins on, and Superwall and push off.
  5. Monetization.
  6. Design inputs.

The answers go into PRODUCT.md, and the identity values into config.js. The agent then runs yarn remove:feature for every feature marked remove and yarn remove:integration for every integration marked off; see Removing features and integrations. Platforms marked no change nothing in the code; they tell the build phase which store credentials to skip.

Identity derivation

ValueRuleNative Express + robinfaraj
slugThe app name lowercased; every run of characters outside a-z0-9 becomes one -; leading and trailing - droppednative-express
schemeThe slug with its hyphens removednativeexpress
iosBundleIdentifiercom.<owner>.<scheme>, with the owner lowercased and everything outside a-z0-9 removedcom.robinfaraj.nativeexpress
androidPackageNameThe same as the iOS bundle identifiercom.robinfaraj.nativeexpress

A segment that would start with a digit gets app in front of it, because an Android package segment must start with a letter. npx nativeexpress create-app applies the same rules, so a scaffolded project already carries them. Anything you correct wins over the derivation; a bundle identifier you already registered with Apple is the usual case.

Who reads it

ReaderUses
The setup skillEvery section. It skips the interview when no TODO line remains, and configures only the integrations marked on
The design skillDesign inputs
yarn skills:doctorReports which sections are written and the decisions it read, and warns when a feature marked remove is still under src/features/, or one marked keep is gone
AGENTS.md and CLAUDE.mdPoint any coding agent at the brief before it asks what the app is

Verify

yarn skills:doctor

The Brief block lists every section as written and shows the platform, feature, integration and monetization decisions it read.

Last updated on