# Starting A New Project

Use when the workspace is empty, has no code, and the user brings a raw project idea.

- Repository: https://github.com/JetBrains/thinkrail (6952 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add JetBrains/thinkrail --skill starting-a-new-project -g -a claude-code -y`
Codex: `npx skills add JetBrains/thinkrail --skill starting-a-new-project -g -a codex -y`
Cursor: `npx skills add JetBrains/thinkrail --skill starting-a-new-project -g -a cursor -y`
Gemini CLI: `npx skills add JetBrains/thinkrail --skill starting-a-new-project -g -a gemini-cli -y`

## Description

Use when the workspace is empty, has no code, and the user brings a raw project idea. Normally reached via setting-up-a-project; not for an existing project.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Starting a new project

The workspace is empty: no code, no decisions. Turn the user's idea into one clear, living product
document, `goal-and-requirements.md`. Later features, behavior changes, and bug fixes go through
`brainstorming`.

**Hold the writing-specs bar.** Read that concept skill before saving anything, it carries the
short / honest / on-rails rules and the goal-doc shape every section you save must meet.

## Method

1. **Build on what's already said.** Never re-ask what the request already told you.
2. **Infer, then confirm**, propose a concrete draft and let the user correct it; a suggestion beats an
   open question. Compose `ask_user_question` rounds per the **asking-user-questions** concept skill
   (read it before the first round, it carries the round, option, confirmation, and degradation norms).
3. **Smallest useful first build.** It is smaller than the user expects; every capability in it must
   justify itself. Ideas cut from it are handed back to the user, not saved (see writing-specs).
4. **Save incrementally.** Create the file as soon as the first section is settled, then add each
   confirmed section in template order. Don't batch; don't invent unconfirmed content.
5. A skipped question is not a blocker, proceed on the current model and note real gaps inline.

## Working model (infer from the request; never ask these directly)

```
audience:   personal | public | both        domain: what space this is in
tech:       stack mentioned, or null         scope:  small | large
depth:      light | standard | full          creator_is_user: does the maker use it?
```

`depth` scales the document: `light` = a one-liner idea → a few lines; `full` = named competitors /
multiple user types → a full PRD. It can only grow during the conversation, never shrink.

## Fast path, pre-filled brief

The rest: https://github.com/JetBrains/thinkrail/blob/HEAD/packages/pi-thinkrail-workflow/skills/starting-a-new-project/SKILL.md
