--- name: discover description: Turn an underspecified software request into a validated brief with explicit assumptions and user-owned decisions. --- # Discover Use before planning a new product or substantial feature with missing requirements. Do not use to reopen settled scope for a small, fully specified change. ## Procedure 1. Set the project type and autonomy mode. Load [the shared decision protocol](../narmaforge/references/decision-protocol.md). 2. Open one matching question bank below; ask only questions that could change the brief. Batch no more than five, or three in lean mode, with two to four options and one recommended default. 3. Record unknowns as assumptions. Do not turn guesses into user statements. Use `unknown` text where the contract requires a non-empty answer. 4. Write `.narmaforge/project/brief.json`; only project type, goal, audience, platforms, formality, and autonomy are required. Other brief fields have schema defaults. 5. Validate with `python scripts/schema_check.py schemas/brief.schema.json .narmaforge/project/brief.json`. ## Inputs and outputs - Inputs: request, available project context, autonomy mode. - Outputs: schema-valid `brief.json`, decision records, and explicit assumptions. ## Reference routing | Project type | Load | |---|---| | Public site | [Site questions](references/site.md) | | Interactive web product | [Web app questions](references/web-app.md) | | Data workspace | [Dashboard questions](references/dashboard.md) | | Phone or tablet product | [Mobile questions](references/mobile.md) | | Service or API | [API/backend questions](references/api-backend.md) | | Command-line tool | [CLI questions](references/cli.md) |