---
title: Prerequisites
description: >-
  Summarizes the prerequisites required before using NexusArchitect (Git
  repository, Issue tracker authentication, and conditions related to the GitLab
  Epic feature)
seo:
  image: /ogp.png
---
The prerequisites that were actually needed throughout the session are as follows.

## Git Repository

- The target project must be a **Git repository** (if you don't have one yet, start with `git init`).
- You must be in a state where you can push to a remote (GitLab or GitHub).
- **Pushing the `main` branch to the remote at least once upfront** is critically important.

:::danger[Common mistake: forgetting the initial push of main]
If you forget to push the main branch for the first time, the default branch on the GitLab side may end up being a feature branch by chance. If that happens, every branch you create afterward will have a broken history with effectively zero diff.

If this occurs, confirm with the user, then `git reset --hard` `main` back to the base commit and push with `--force-with-lease` (a form of force-push that checks the remote state before executing so you don't accidentally overwrite changes others have made). If each feature branch preserves its original stacked structure, no rebase is needed and the diffs will be correctly restored.
:::

## Issue Tracker Authentication

**GitLab**

Install the `glab` CLI and make sure it is authenticated (you can verify with `glab auth status`).

**GitHub**

Install the `gh` CLI and make sure it is authenticated (you can verify with `gh auth status`).

NexusArchitect runs these CLIs internally. All issue creation, comments, label operations, and MR/PR creation and merging are performed through these CLIs.

## GitLab Epic Group/Premium Requirements

GitLab has an **Epic feature** (a feature provided natively by GitLab) for managing multiple issues together. However, using this feature requires two conditions.

- The project must belong to a **group** (a unit that aggregates multiple people and multiple projects), not a personal account
- That group must be subscribed to a **Premium/Ultimate plan** (a paid GitLab plan)

In other words, projects under a personal account (personal namespace) cannot use the Epic feature directly. In that case, NexusArchitect automatically switches to an alternative approach (this switch is called a **fallback**). Specifically, it creates Epics, Sub-Epics, and Issues all as regular issues and distinguishes them with the labels `type::epic`, `type::sub-epic`, and `type::issue`. It also embeds a task list (`- [ ] #<iid>`) linking to child issues in the parent's description.

If you are using a personal account, plan with the assumption that this label + task list approach will be used.
