> For the complete documentation index, see [llms.txt](https://docs.manyfast.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.manyfast.io/en/plan/features.md).

# Features

The Functional Specification is the stage where you turn the requirements and product goals defined in the PRD into concrete, implementable features. If the PRD focuses on 'what to build and why', the Functional Specification is the document that designs 'how it works'.

The feature data defined here serves as the basis for every downstream planning artifact, including the User Flow. The Functional Specification provides two views: Tree View for managing the overall structure, and Directory View for managing detailed policies and descriptions.

## 1. Understanding the Structure

The Functional Specification is organized in a three-level hierarchy: **Requirement → Feature → Specification**.

<table><thead><tr><th width="234.5546875">Requirement</th><th width="213.375">Feature</th><th>Specification</th></tr></thead><tbody><tr><td>Member management</td><td>Sign up</td><td>Email/password-based sign up</td></tr><tr><td></td><td></td><td>Social login (Kakao, Naver, Google, etc.)</td></tr><tr><td></td><td></td><td>Set nickname</td></tr><tr><td></td><td></td><td>Agree to Terms of Service and Privacy Policy</td></tr><tr><td></td><td>Login/Logout</td><td>Auto-login / logout handling</td></tr><tr><td></td><td></td><td>Find and reset password</td></tr><tr><td>Reservation management</td><td>Create reservation</td><td>Select meeting room and time slot</td></tr><tr><td></td><td></td><td>Add attendees and set capacity limits</td></tr><tr><td></td><td></td><td>Send reservation confirmation notifications</td></tr></tbody></table>

### Requirement

Represents a top-level goal of the Project or a core need of the user.

* Description: A unit that captures the major branches of the plan. (e.g. "Member management", "Payment and pricing")
* Acceptance Criteria: The conditions or policies the Requirement must ultimately satisfy, defined as a checklist.
  * *e.g. "Sign-up via email is possible", "Menus appear differently depending on the role's permissions"*

### Feature

A logical functional unit that concretely fulfills a Requirement.

* Description: Defines the specific Features needed to achieve a Requirement. (e.g. "Sign up", "Document sharing", "Payment management")
* User role: Specifies who performs each Feature. You can pull in the roles set in the PRD and match them here.
  * *e.g. "Planner", "Admin", "Guest"*

### Specification

The lowest level, defining the actual detailed behavior or business policy that takes place within each Feature.

* Description: A detailed spec that becomes the direct reference for development and design. (e.g. "Email signup validation", "Password reset logic", "Login session expiration policy")

<details>

<summary>Managing item attributes</summary>

At every level (Requirement, Feature, Specification), you can set the following attributes to systematically manage the priority and progress of your plan.

* **Priority:** Sets the **priority** of the item. (Low / Medium / High)
* **Status:** Sets the planning or development progress. (Not started / In progress / Done / Stopped)
  * You can flexibly use this as a planning progress tracker or a development status board, depending on your intent.

</details>

## **2. Switching Views**

Move freely between the Tree View and the Directory View to fit the type of work you're doing, and elevate the quality of your plan.

* Use the top tab toggle: Each time you click the \[Functional Specification] tab at the top of the screen, the view alternates between Tree View and Directory View.
* Use the left-side buttons: Click the icon buttons on the left edge of the screen to jump directly to the view you want.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td>Tree View</td><td><a href="/files/Yu4IxWpr11ba8k4TQcop">/files/Yu4IxWpr11ba8k4TQcop</a></td><td><a href="/pages/OIEr65Tz3s8PoERfh57o">/pages/OIEr65Tz3s8PoERfh57o</a></td></tr><tr><td>Directory View</td><td><a href="/files/0hScyuH9lcFjEDwxaxuF">/files/0hScyuH9lcFjEDwxaxuF</a></td><td><a href="/pages/Fi4FzqzRREcFB10KmFlg">/pages/Fi4FzqzRREcFB10KmFlg</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.manyfast.io/en/plan/features.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
