Skip to main content
skill CX Codex

Project Scaffolding — Claude Code skill: setup

This skill builds CLAUDE.md and a .claude workspace for a project. Use it when starting an AI coding workflow or preparing a new codebase.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add hedera-dev/hedera-skills --skill project-scaffolding -a claude-code
Open on GitHub

What Project Scaffolding does

Project Scaffolding inspects project manifests to identify TypeScript, JavaScript, Python, Rust, Go, Makefile, and Dockerfile-based setups. It reads package.json scripts and [tool] sections in pyproject.toml, then uses the findings to shape build, test, lint, and run guidance.

It writes a focused CLAUDE.md with project context, naming rules, test-first practices, commit rules, file safeguards, and links to deeper documentation. The skill also prepares .claude/commands/parallel.md, report directories, post-edit-check.sh, and an initial MEMORY.md at Claude Code’s project memory path.

Build, test, and lint commands may need confirmation when project files do not provide enough detail. The skill targets Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, and OpenCode.

What it helps with

  • detect the project stack from manifest files
  • generate CLAUDE.md with project commands
  • create the .claude reports layout
  • seed project memory for Claude Code
  • map source paths to deeper documentation

Example prompts for the agent

  • Set up Claude for this project and create CLAUDE.md.
  • Inspect the project root, detect its stack, and scaffold .claude/.
  • Initialize an AI workflow with triggers for src/ and tests/.

How to install Project Scaffolding

1Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill project-scaffolding -a claude-code

2Manually: put the files in place

~/.claude/skills/project-scaffolding/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/project-scaffolding/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about Project Scaffolding

How do I install Project Scaffolding in Claude Code?

Run npx skills add hedera-dev/hedera-skills --skill project-scaffolding -a claude-code, then check ~/.claude/skills/project-scaffolding/SKILL.md.

What does Project Scaffolding do?

It detects the project stack, prepares CLAUDE.md, creates the .claude/ workspace, and seeds project memory for future Claude Code sessions.

Which project stacks can it detect?

It handles TypeScript, JavaScript, Python, Rust, and Go, plus projects containing a Makefile or Dockerfile. Multiple detected stacks are treated as a monorepo pattern.

Source text

SKILL.md · Apache-2.0
---
name: Project Scaffolding
description: This skill should be used when the user wants to set up Claude for a project, create a CLAUDE.md file, scaffold the .claude directory, initialize an AI workflow, configure a project for Claude, set up dev intelligence, initialize a new project, or do a new project setup. Triggered by phrases like "set up claude for this project", "create CLAUDE.md", "scaffold .claude directory", "init AI workflow", "configure project for claude", "set up dev intelligence", "initialize project", "new project setup".
---

# Project Scaffolding

## Purpose

Generate a complete `CLAUDE.md` and `.claude/` directory structure for any project. This gives AI agents the context they need to work effectively from the first session — build commands, conventions, quality gates, and session tracking.

## Stack Detection

Before scaffolding, detect the project's tech stack by scanning for manifest files:

| File Found | Stack Detected | Build Tool |
|------------|---------------|------------|
| `tsconfig.json` | TypeScript | `tsc`, `npm`/`yarn`/`pnpm` |
| `package.json` (no tsconfig) | JavaScript | `npm`/`yarn`/`pnpm` |
| `pyproject.toml` | Python | `pip`/`poetry`/`uv` |
| `setup.py` or `requirements.txt` | Python (legacy) | `pip` |
| `Cargo.toml` | Rust | `cargo` |
| `go.mod` | Go | `go` |
| `Makefile` | Check contents | Varies |
| `Dockerfile` | Container | `docker` |

### Detection Steps
1. List files in project root: check for manifest files above
2. If `package.json` exists, read `scripts` to find build/test/lint commands
3. If `pyproject.toml` exists, read `[tool]` sections for configured tools
4. If multiple stacks detected, note all of them (monorepo pattern)

## CLAUDE.md Generation

Use the template from `references/claude-md-template.md` and fill in detected information. **Target: under 200 lines.** Claude Code truncates CLAUDE.md after ~200 lines in the system prompt, so keep it lean.

1. **Project Overview** — read `README.md` or `package.json` description
2. **Build & Run Commands** — detected from manifest `scripts` section (keep 8-10 most-used, add "See [manifest] for full list")
3. **Triggers** — map file patterns to docs/skills for on-demand deep context
4. **Naming Conventions** — select from `references/naming-conventions.md` based on stack. If the table is large, move to `docs/CONVENTIONS.md` and reference from Triggers
5. **Test Command** — detected or ask user
6. **Lint Command** — detected or ask user

### What Gets Pre-Filled
- Core Behaviors (including self-improvement and parallel session rules)
- Triggers section (generated from detected project structure)
- Test-First Development rules
- Git Commit Rules (conventional commits)
- Forbidden Files (.env, credentials, node_modules, etc.)
- Environment Variables rules

### What Needs Detection or User Input
- Project name and description
- Build, test, lint, and dev commands
- Stack-specific naming conventions
- Any custom conventions the user wants

## Triggers Generation

The Triggers section maps file patterns to deeper documentation, enabling on-demand context loading without bloating CLAUDE.md.

### How to Generate Triggers
1. Scan project structure for distinct directories (e.g., `src/`, `lib/`, `tests/`, `docs/`)
2. Identify existing documentation files (`docs/*.md`, `ARCHITECTURE.md`, `CONTRIBUTING.md`)
3. Map each source directory to its most relevant doc or skill
4. Include standard patterns: `Dockerfile` → deployment docs, `tests/` → testing docs, new files → conventions

### Example Generated Triggers
```markdown
| File Pattern | Load |
|---|---|
| src/api/* | Read: docs/API.md |
| src/components/* | Read: docs/COMPONENTS.md |
| tests/* | Read: docs/TESTING.md |
| Dockerfile, docker-compose* | Read: docs/DEPLOYMENT.md |
| New .ts files | Read: docs/CONVENTIONS.md |
```

If no docs exist yet, generate stub documentation files with TODO placeholders during scaffolding.

## MEMORY.md Seeding

Seed the project's MEMORY.md with initial lessons from the detected stack. MEMORY.md is auto-loaded into every Claude Code system prompt, creating a self-improvement loop.

### Location
```
~/.claude/projects/<project-path-with-dashes>/memory/MEMORY.md
```

Where `<project-path-with-dashes>` is the absolute project path with `/` replaced by `-` (e.g., `-Users-dev-myproject`).

### What to Seed
1. **Stack details** — language version, build tool, package manager
2. **Architecture patterns** — module structure discovered during detection
3. **Common pitfalls** for the detected stack:
   - TypeScript: ESM import extensions, `tsconfig` strictness, type-only imports
   - Python: virtual env activation, `__init__.py` requirements, type checking with mypy
   - Rust: borrow checker common mistakes, feature flags, workspace patterns
   - Go: module paths, exported vs unexported, error wrapping
4. **Testing patterns** — framework, mock strategy, test file locations
5. **Owner preferences** — any conventions the user specified during `/init`

### Size Budget
Keep under 55 lines initially — leave room for growth as the agent learns during sessions. The 200-line system prompt limit applies to MEMORY.md too.

## Directory Structure Creation

Create the following structure:

```
.claude/
├── commands/
│   └── parallel.md            ← multi-session coordination guide
├── reports/
│   ├── _registry.md          ← from session-management references
│   ├── _tech-debt.md         ← from session-management references
│   ├── architecture/
│   ├── bugs/
│   ├── code-review/
│   ├── config/
│   ├── dependencies/
│   ├── docs/
│   ├── features/
│   ├── integration/
│   ├── performance/
│   ├── refactor/
│   ├── security/
│   ├── testing/
│   ├── ci/
│   ├── tech-debt/
│   └── release/
└── scripts/
    └── post-edit-check.sh     ← from quality-gates hook
```

### Steps
1. Create all 15 category directories under `.claude/reports/`
2. Copy `registry-template.md` content to `.claude/reports/_registry.md` (empty, ready to use)
3. Copy `tech-debt-template.md` content to `.claude/reports/_tech-debt.md` (empty, ready to use)
4. Copy `post-edit-check.sh` to `.claude/scripts/` using `cp` via Bash (NOT the Write tool — Write can corrupt line endings and break the script):
   ```bash
   mkdir -p .claude/scripts && cp "$CLAUDE_PLUGIN_DIR/scripts/post-edit-check.sh" .claude/scripts/post-edit-check.sh && chmod +x .claude/scripts/post-edit-check.sh
   ```
   If `$CLAUDE_PLUGIN_DIR` is unavailable, locate the plugin via `find ~/.claude -name "post-edit-check.sh" | head -1` and cp from there.
5. Create `.claude/commands/parallel.md` with project-specific file ownership boundaries
6. Seed MEMORY.md at the auto-memory path (see MEMORY.md Seeding section above)

## Hook Setup

Based on detected stack, wire up the PostToolUse hook:

1. Create or update `.claude/settings.json` with **exactly** this content (no extra arguments, no modifications):

```json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "bash .claude/scripts/post-edit-check.sh"
          }
        ]
      }
    ]
  }
}
```

**Important:** The command must be exactly `bash .claude/scripts/post-edit-check.sh` — do not add arguments like `$CLAUDE_TOOL_INPUT_FILE_PATH`. The script reads `$CLAUDE_TOOL_INPUT` from the environment automatically.

2. Do NOT modify the script — it already handles all stacks (TypeScript, Python, Rust, Go) via file extension detection. Copy it verbatim.

## Interactive Flow

When running the scaffolding, interact with the user for decisions:

### Step 1: Detect and Confirm
```
Detected stack: TypeScript (package.json + tsconfig.json)
Build: npm run build
Test: npm test
Lint: npm run lint

Does this look correct? Any changes?
```

### Step 2: Custom Conventions
```
Any project-specific conventions I should add to CLAUDE.md?
For example:
- Specific directory structure rules
- Required code patterns
- Forbidden patterns or anti-patterns
```

### Step 3: Generate and Review
1. Generate `CLAUDE.md` with all detected + user-provided info
2. Create `.claude/` directory structure
3. Set up hooks
4. Show summary of what was created

### Step 4: Confirm
```
Created:
- CLAUDE.md (project configuration with Triggers, under 200 lines)
- .claude/reports/ (15 category dirs + registry + tech debt tracker)
- .claude/commands/parallel.md (multi-session coordination)
- .claude/scripts/post-edit-check.sh (auto-validation hook)
- .claude/settings.json (PostToolUse hook wired up)
- MEMORY.md (seeded at ~/.claude/projects/.../memory/MEMORY.md)

Ready to start developing with session tracking, auto-validation,
and self-improvement across sessions.
```

## Cross-References

- `references/claude-md-template.md` — Full CLAUDE.md template with placeholder sections
- `references/naming-conventions.md` — Language-specific naming tables (TS, Py, Rust, Go)
- `references/git-workflow.md` — Conventional commits, branching, and PR patterns

© hedera-dev · Apache-2.0 · hedera-dev/hedera-skills

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set19

Hedera Hackathon PRD Turns your hackathon idea into a PRD: asks about the track, writes HACKATHON-PRD.md, then predicts your score against the judging rubric. CX Codex +1 549installs hedera-token-service Teaches your agent to write Hedera token and NFT code with the Hiero JavaScript SDK. Useful when the project already lives on that network. CX Codex +1 547installs hedera-consensus-service A skill that teaches your agent Hedera Consensus Service in JavaScript: create topics, submit messages, subscribe to the stream via mirror node. CX Codex +1 547installs Session Management Keeps a work log and a tech debt tracker across agent sessions, so a restart still shows what got done and what is pending. CX Codex +1 538installs Quality Gates This skill wires up automatic code checks: lint and typecheck after every edit, a local CI run before push, and a five-stage deploy checklist. CX Codex +1 536installs Hedera Policy Creation Guides developers in creating blocking validation rules for Hedera Agent Kit tools. Useful when setting transaction thresholds, recipient allowlists, or execution limits. CX Codex +1 480installs Hedera Agent Kit v4 Migration Walks a project from [email protected] to v4: swaps packages, rewrites imports and ports custom tools to BaseTool. CX Codex +1 484installs agent-kit-plugin This skill guides the creation of Hedera Agent Kit plugins and tools. Use it when adding token, account, consensus, smart contract, or custom Hedera functionality. CX Codex +1 463installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor