# Building your first Project

Web page: https://academy.memberpress.ai/courses/projects-skills/l2/

Lesson 2 of 8 in [Projects and Skills — Reusable Claude](https://academy.memberpress.ai/courses/projects-skills/), 16 min.

Video: https://www.youtube.com/watch?v=HFeTOAnklWc

The most common mistake is opening the Projects panel before deciding what the Project is for. You get a blank system prompt, stare at it, write something generic, and end up with a Project that behaves no differently than a fresh chat. Start with the workflow, not the UI.

**Pick the workflow first**

The workflow that earns a Project is one you can describe in a single sentence before you open Claude. "I review PRs every weekday against our team's style guide." "I draft investor updates from a bullet list of metrics every Monday." "I triage customer support tickets into categories before handing them off."

If you cannot write that sentence, you do not yet know what the Project is for. Do not build it yet.

Once you have the sentence, you have the three things you need to start: what Claude's role is, what material it needs, and what the output looks like.

**Step one: write the system prompt**

One paragraph. Three components: the role, the output format, and the constraint that defines quality.

A weak system prompt:

```
You are a technical writing assistant. Help me write documentation.
```

A functional system prompt:

```
You are a technical writer for a developer tools company. Every response
is structured as: one-paragraph summary, then a bulleted list of specific
details. Avoid passive voice. Flag any term that is not in the attached
glossary as [UNDEFINED TERM].
```

The difference is specificity. The functional version tells Claude what to do when it encounters something the instructions didn't anticipate — it has a decision rule (flag undefined terms) rather than a general disposition (be helpful).

Write the system prompt before you attach any files. This forces you to articulate what Claude needs to know versus what it needs to reference. Those are different things.

**Step two: attach the right files**

Attach only what Claude needs to do the job — a style guide, a template, a list of company-specific terminology. Not everything you have; just the working material.

Each attached file costs context window space in every conversation, whether Claude uses it or not. A Project with ten attached files where Claude only ever needs two is a Project that loads slowly, costs more tokens per conversation, and risks Claude surfacing material from the unused files in ways that are subtly off-target.

The test for whether a file belongs: would Claude give a wrong answer without it? If no, don't attach it.

**Step three: test it twice on real work**

Run the first real task — not a toy example, an actual instance of the workflow. Read the output against your actual quality bar, not against what you hoped to see.

Find the one thing that was off. Change only the system prompt, not the attached files, to address it. If the issue is that Claude didn't reference the style guide correctly, that is a system prompt problem (you didn't tell it when to consult the guide), not a file problem.

Run the task again. If the second output would satisfy you in production, the Project is ready. If not, identify the second thing that was off and repeat. Do not iterate more than three times before reconsidering whether the workflow is actually a good Project candidate — sometimes the problem is not the configuration, it is that the task requires too much judgment to constrain in a system prompt.

**If you get stuck**

Claude keeps doing something you told it not to do. Check whether the instruction is in the system prompt or in a conversation message. Instructions in conversation messages are not permanent — they apply to that conversation only. Move behavioral rules to the system prompt.

The output format drifts across conversations. The format rule needs to be in the system prompt, not demonstrated in an example conversation. Claude does not carry format habits from one conversation to the next; it only carries what is in the system prompt and the attached files.

The Project feels slower than a fresh chat. You have probably attached too many large files. Profile this by starting a new conversation inside the Project and checking how long before Claude's first token appears. Trim the attachments to the minimum that maintains output quality.

**Cross-reference**

l3 covers the conditions under which a Project is the wrong tool — read it before investing heavily in a Project for a workflow that might not warrant one.

**Deliverable**

A working Project with a system prompt under 150 words and at most two attached files. Run it on one real task before calling it done.

## Try these prompts

- Write a functional system prompt for a Project that reviews pull requests for a Python codebase. Include the role, the output format, and one decision rule Claude should apply when it encounters something the instructions do not cover.
- I built a Project but the output drifts between conversations — format rules I set up last week are being ignored. Where should I look first and what is the fix?
- Write a one-paragraph system prompt for a Project that drafts investor updates from a bullet list of weekly metrics. Specify role, output format, and the constraint that defines quality.

Next: [When to use Projects vs. when not to](https://academy.memberpress.ai/courses/projects-skills/l3/)
