# Init Project

> Use when the user requests adding LabMate to a project or setting up its research skeleton. Triggers on "init project", "初始化项目", "set up labmate", "first time setup", "initialize".

- Skill: `freemty/init-project` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add freemty/init-project`
- Raw SKILL.md: https://api.skillmd.com/api/skills/freemty/init-project/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: freemty (https://skillmd.com/u/freemty)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/freemty/init-project

---


# Init Project

Create an idempotent LabMate skeleton through the bundled interface. The model
infers project metadata; the script owns filesystem layout and parity.

## Workflow

1. Inspect the repository and infer project name, description, domain,
   `general` or `research`, compute environment, and host target.
2. Show the inferred values once. Ask only about a value that would materially
   change the generated project.
3. Resolve `<plugin-root>` from this file and preview:

   ```bash
   python3 <plugin-root>/scripts/init_project.py plan \
     --type <general|research> --target <codex|claude|both> \
     --project-name <name> --description <description> --domain <domain>
   ```

4. If the plan would overwrite or semantically conflict with existing project
   instructions, stop and explain. Otherwise rerun with `apply`, then `check`.
5. Report created, updated, skipped, and missing paths from the JSON results.

## Contract

- Existing project files are never replaced. Missing instruction sections may
  be appended; existing sections remain authoritative.
- When both hosts are selected, project-skill mirrors must match.
- A dirty worktree is not an automatic blocker. Preserve unrelated changes and
  call out overlapping target files before applying.
- Do not initialize LabMate merely because a session hook mentions it.

