Skip to content
Agentmart
Submit a tool

init

Initialize a new project with a standard directory structure, template files, and a git repository.

Skill by tbeack

IndexedMIT★ 8
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tbeack-init

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Initialize a new project with a standard directory structure, template files, and a git repository. Use this skill whenever the user starts a new project, types /init, asks to "set up a new project", "initialize a repo", "scaffold a project", or wants to create the standard folder layout. Run once per project at the start of the work. Even if the user only mentions creating a repo or setting up folders, trigger this skill — it handles all of it in one shot.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/init

What's inside

Skill name
init
Description
Initialize a new project with a standard directory structure, template files, and a git repository. Use this skill whenever the user starts a new project, types /init, asks to "set up a new project", "initialize a repo", "scaffold a project", or wants to create the standard folder layout. Run once per project at the start of the work. Even if the user only mentions creating a repo or setting up folders, trigger this skill — it handles all of it in one shot.
License
MIT
Instructions
280 lines in SKILL.md · view on GitHub

Agent Skills spec issues

  • name: missing

Files (6)

  • SKILL.md
  • .gitignore · templates/
  • CHANGELOG.md · templates/
  • CLAUDE.md · templates/
  • README.md · templates/
  • todo.md · templates/

SKILL.md (first lines)

# Project Init Skill

Sets up a new project in the current working directory: creates the standard folder structure, writes
template files for any that are missing, and initializes a local + remote git repository.

**Project name** is always taken from the current directory name — never ask for it.

---

## Asking the user

This rule covers every question this skill asks the user: a confirmation, a choice, a missing value, a numbered decision list, or a stop-and-ask. It applies even where a later step says "ask the user" or "ask exactly once". The user may watch the decisions pane rather than the chat, so a question that only goes to chat can go unanswered.

- **When `mcp__decision-tracker__decision` is in your tool list** (loaded, or named as a deferred tool; load a deferred one with `ToolSearch` first), log each question before you ask it:
  1. Call it with `action: "open"`, the question (ending in `?`), and `options` when the answers are a closed set. Set `required: false` when the work can go on without an answer. A numbered list of questions opens one decision per item. Keep each returned `id`.
  2. Ask the question in chat as this skill says. The open call does not replace the chat question.
  3. When the user answers, in chat or as a `Decision Dn: <answer>` message from the plugin, call the tool with `action: "close"`, the `id` and the answer.
  4. When the change the answer asked for is in place, call it with `action: "implement"`, the `id` and a `path:line`.
- **When the tool is absent**, ask in chat only.
- An `AskUserQuestion` call is logged on its own. Do not open it again.
- This rule changes where a question is logged. It does not change when this skill asks, or how many times.


## Step 1 — Establish project name

Use the Bash tool to run `pwd`, then take the last path segment (everything after the final `/`) as the project name. Store this as `PROJECT_NAME`. Use it to personalize template content where indicated below.

---

## Step 2 — Determine task prefix

The task prefix is a short uppercase identifier used to tag tasks in `todo.md` (e.g., `FSAD-001`,
`MNA-042`). Each project gets a unique prefix so tasks are globally unambiguous across repos.

### 2a — Derive a suggestion from the directory name

Apply these rules to `PROJECT_NAME` to produce a 3–4 character uppercase suggestion:

- Split on `_`, `-`, spaces, and camelCase word boundaries to get a list of words
- **Multi-word name**: take the first letter of each word, uppercase. If that gives fewer than 3
  characters, append the next letters of the longest word until you reach 3.
  - `fsad_playbook` → `FP` → pad to `FPL` (3 chars from "playbook")
  - `my_new_app` → `MNA`
  - `data_pipeline` → `DP` → pad to `DPI`
- **Single-word name**: take the first 3–4 consonant-dominant characters, uppercase.
  - `recall` → `RCL`
  - `dashboard` → `DASH`
- Cap at 4 characters.

### 2b — Check for conflicts

Sweep two independent sources for prefixes already in use, and treat a hit in either as a conflict:

1. **Sibling `todo.md` files** — use the Bash tool to grep across `../*/planning/to do/todo.md` for
   lines matching a task identifier pattern (backtick, 2–5 uppercase letters, hyphen, digit), extract
   just the prefix, and sort for uniqueness.
2. **Registered config** — read `${CLAUDE_PLUGIN_ROOT}/skills/add-task/add-task-projects.yaml` and collect every `prefix:`
   value present. A prefix can be reserved in config before any task file using it exists, so this
   catches conflicts the todo-file grep alone would miss.

If the suggested prefix appears in either source, note the conflict and adjust: append a digit or
swap one letter to make it unique (e.g., `MNA` → `MNA2`).

### 2c — Confirm with the user

Present your suggestion and the conflict check result, then ask the user to confirm or override:

> Suggested task prefix: **`MNA`** (from `my_new_app`) — no conflicts found in sibling projects.
> Use this prefix, or type a different one?

Wait for the user's response before continuing. Store the confirmed value as `TASK_PREFIX`.

---

## Step 3 — Create directory structure

Create each of the following directories if they don't already exist. Never delete or modify
directories that already exist.

```
planning/
planning/design/
planning/research/
planning/plan/
planning/to do/
planning/to do/completed/
```

On macOS/Linux, `mkdir -p` is idempotent — safe to run even if the directory exists.

---

## Step 4 — Write template files

For each file below, check whether it already exists in the project root. If it does, **skip it
entirely** — never overwrite existing files. If it doesn't exist, copy the corresponding template
from this skill's `templates/` directory.

| File to create | Template source |
|---|---|
| `README.md` | `templates/README.md` |
| `CHANGELOG.md` | `templates/CHANGELOG.md` |
| `CLAUDE.md` | `templates/CLAUDE.md` |
| `planning/to do/todo.md` | `templates/todo.md` |
| `.gitignore` | `templates/.gitignore` |

Read each template with the Read tool. Before writing, substitute these placeholders:

| Placeholder | Replace with |
|---|---|
| `{{PROJECT_NAME}}` | The directory name from Step 1 |
| `{{TASK_PREFIX}}` | The confirmed prefix from Step 2 |
| `{{DATE}}` | Today's date in `YYYY-MM-DD` format |

Then write the result to the destination with the Write tool.

---

## Step 5 — Initialize git repository

From tbeack/fsad_playbook, MIT.

More from tbeack/fsad_playbook

Signals

Stars
8
Forks
4
Open issues
0
Last commit (this folder)
Oct 7, 2026 (21 days ago)
Last release
May 18, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from tbeack

Cite this page

init skill. Agent Mart. https://agentmart.dev/skills/tbeack-init (last updated 2026-10-24)