Bootstrap script for new Node.js/Bun/TypeScript repositories with Claude Code workflow support.
- Initializes git with
mainbranch - Sets up
git_hooks/directory with custom hooks path - Downloads
.gitignore,code_guidelines.md, andCLAUDE.md - Installs global Claude Code commands for the engineer loop workflow
curl -fsSL https://raw.githubusercontent.com/traedamatic/init/main/init.sh | bash -s /path/to/projectTo pull the latest code_guidelines.md and refresh the global el-* slash commands without re-running init.sh (which would overwrite your per-project CLAUDE.md):
cd /path/to/project
curl -fsSL https://raw.githubusercontent.com/traedamatic/init/main/update.sh | bashThis refreshes code_guidelines.md in the current directory and the global commands in ~/.claude/commands/. It does not touch CLAUDE.md, .gitignore, or git_hooks/. Review with git diff code_guidelines.md before committing.
Two Claude Code slash commands that create a ticket-driven development loop for any project.
- GitHub CLI installed and authenticated (
gh auth login) - A GitHub Project (v2) with a Status field (Todo / In Progress / Done)
- The
## GitHub Projectsection in your project'sCLAUDE.mdfilled in with your project IDs
After running init.sh, edit your project's CLAUDE.md and fill in the ## GitHub Project section:
## GitHub Project
- **Owner**: your-username
- **Repository**: your-repo
- **Project Number**: 3
- **Project URL**: https://github.com/users/your-username/projects/3
- **Project ID**: PVT_...
- **Status Field ID**: PVTSSF_...
- **Status Options**:
- Todo: `<option-id>`
- In Progress: `<option-id>`
- Done: `<option-id>`To find your project IDs:
gh project list --owner <OWNER>
gh project field-list <PROJECT_NUMBER> --owner <OWNER>Creates a GitHub issue from a rough description and adds it to the project board.
- Reads project config from
CLAUDE.md - Explores the codebase for technical context
- Writes a detailed, implementation-ready ticket (acceptance criteria, technical notes with real file paths, scope boundaries)
- Previews the ticket for confirmation
- Creates the GitHub issue and adds it to the project board (Todo column)
Automated development loop that picks up unassigned Todo tickets and implements them.
- Fetches all unassigned Todo tickets from the project board
- For each ticket: assigns it, moves to In Progress, creates a feature branch, implements the changes, runs tests, commits, comments on the issue, and moves to Done
- Resilient — if a ticket fails, it goes back to Todo and the loop continues
- Does not push or create PRs — you review locally first
# Process all unassigned Todo tickets
/el-dev-loop
# Process up to 3 tickets
/el-dev-loop 3Phase 1: Create tickets
/el-create-ticket Users can filter transactions by date range
/el-create-ticket Add export to CSV from the transaction table
/el-create-ticket Fix pagination resetting when filters change
Phase 2: Develop
/el-dev-loop
| File | Purpose |
|---|---|
CLAUDE.md |
Template for project-level Claude Code instructions + GitHub Project config |
code_guidelines.md |
Coding standards for TypeScript/Bun projects |
.gitignore_template |
Standard .gitignore for Node.js/Bun/TypeScript |
init.sh |
Bootstrap script |
update.sh |
Refresh code_guidelines.md and global el-* commands in an existing project |
commands/el-create-ticket.md |
Claude Code command: create tickets |
commands/el-dev-loop.md |
Claude Code command: development loop |
MIT