Skip to content
Back to skills

Setup Fresh Project

ASecurity

Use this when setting up a fresh new project.

  • 106 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added September 12, 2026
documentationtypescriptpythonc++nodegitapidocumentation

Works with

  • api

Security analysis

A100/100

Scanned September 12, 2026

npx -y skills add archibate/dotfiles-opencode --skill setup-fresh-project --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Setup Fresh Project?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Setup Fresh Project
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/archibate-setup-fresh-project/badge)](https://www.skillsdirectory.com/skills/archibate-setup-fresh-project)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: setup-fresh-project
description: |
    Use this when setting up a fresh new project.
---
# Fresh Project Setup Guide

Use this skill when you are starting to write code in a fresh project.

## Setup Steps

1. Check if already initialized with git -> not yet? run `git init`.
2. Create a `.gitignore` suitable for tech stack of choices (e.g. `__pycache__` for Python, `node_modules` for Node).
3. Create style and formatting configurations (e.g. `.stylua.toml` for Lua, `pyproject.toml` + Ruff for Python). Default to 4 spaces for tab.
4. Make sure basic tools required are available in system (e.g. `stylua`, `npm`, `uv`). If not, explicitly ask the user to install.
5. Set up LSP configurations for OpenCode.

## Language Specific

Ask user for tech stack choices. Offer default choices:

### Python

Prefer `uv` (with `venv`) and `ruff`.

#### Pyright LSP

If you are using `venv`, to prevent LSP errors about 'package not found', create `pyrightconfig.json` with content:

```json
{
    "venvPath": ".",
    "venv": ".venv"
}
```

### Typescript

Prefer `biome` and `npm` (or `bun`).

### Lua

Prefer `stylua`.

#### NeoVim Lua Projects

If the Lua project is used as a NeoVim configuration or plugin:

Create a `.luarc.json` with content:

```json
{
    "runtime.version": "LuaJIT",
    "runtime.path": [
        "lua/?.lua",
        "lua/?/init.lua"
    ],
    "diagnostics.globals": ["vim"],
    "workspace.checkThirdParty": false,
    "workspace.library": [
        "$VIMRUNTIME"
    ]
}
```

### C/C++

Prefer `clang`, `cmake` and `clang-format`.

#### Clangd LSP

Make sure to use `cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON` when build (or add `set(CMAKE_EXPORT_COMPILE_COMMANDS ON)` to `CMakeLists.txt`). This will create `build/compile_commands.json`, for `clangd` to not reporting false positive errors about include header missing.

## Folder Structure

Follow industry best pratice of project folder structure most suitable the tech stack.

e.g.:
- `src/`, `tests/`, `dist/` for Python & PyTest project.
- `src/`, `include/`, `build/` for C++ & CMake project.
- `lua/` for NeoVim Lua plugin project.

A `.gitignore` and `README.md` is always required for all projects.

### Documentation

Main documentation resides in `README.md`. With a simple and clear introduction on how to use this project, including but not limited to the following perspectives:

- What is this?
- Project structure?
- How to build?
- How to test?
- How to install or deploy?
- ...

`README.md` must be presented in a clear, structured markdown format. No placeholders.

`README.md` focus on big-picture. Optionally create `.md` under `docs/` for more detailed documentation and refer them in `README.md`.

If this is to be a public project (potentially upload to github), not for personal use:
- Make sure no hard-coded user path (e.g. `/home/bate/project`) in `README.md` and other documents.
- Make sure no invalid fake link used in `README.md` and other documents (e.g. `[Screenshot](screenshot.png)` but actually no such file).
- Make sure no hard-coded user credentials (e.g. API keys, tokens, or password) in any files tracked by git.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.