Show HN: One Markdown File to Set Up Claude, Codex, Cursor and Copilot
A single ~7,600-line Markdown bootstrap file (AI_PROJECT_SETUP.md) automates the setup of AI coding assistants including Claude Code, ChatGPT Codex CLI, Cursor, and GitHub Copilot. It generates 13-section rules, safety hooks, session resume, dual-write memory, bilingual GitHub files, and more. Just download the file, tell your AI to read and execute it, and within 1-3 minutes you have a complete, gitignored AI tooling configuration.
Article intelligence
Key points
- Single source of truth Markdown file works with Claude, Codex, Cursor, and Copilot.
- Auto-generates 13-section rules, 5 safety hooks, 3-tier session saving, dual-write memory, and bilingual (EN/KO) GitHub standard files.
- Idempotent and self-healing setup: re-running repairs drift, backs up old files, preserves user content.
- Multi-tool parity via symlinks, cross-AI code relay (e.g., Claude plans, Codex implements).
Why it matters
This matters because single source of truth Markdown file works with Claude, Codex, Cursor, and Copilot.
Technical impact
May affect model selection, inference cost, product capability, and evaluation benchmarks.
Notifications You must be signed in to change notification settings
Fork 0
Star 0
BranchesTags
Open more actions menu
Folders and files
NameName
Last commit message
Last commit date
Latest commit
History
5 Commits
5 Commits
.github
.github
docs
docs
.gitignore
.gitignore
AI_PROJECT_SETUP.md
AI_PROJECT_SETUP.md
CHANGELOG.md
CHANGELOG.md
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CONTRIBUTING.md
LICENSE
LICENSE
README.md
README.md
SECURITY.md
SECURITY.md
Repository files navigation
Drop one file. Tell your AI to read it. Done.
A single 7,000-line markdown bootstrap that turns Claude Code, ChatGPT Codex CLI, Cursor, and GitHub Copilot into a disciplined teammate — 13-section rules, 5 safety hooks, session-resume, dual-write memory, and bilingual GitHub files. Zero install. One source of truth.
Fetch the bootstrap file
curl -fsSL https://raw.githubusercontent.com/kernalix7/ai-project-setup/main/AI_PROJECT_SETUP.md > AI_PROJECT_SETUP.md
Open your AI tool, then say:
"Read AI_PROJECT_SETUP.md and execute it."
"AI_PROJECT_SETUP.md 읽고 실행해줘"
1–3 minutes later, verify:
./tmp-igbkp/verify-setup.sh # → Pass: 83 Fail: 0 Warn: 0
Works with
English · 한국어 · Setup file · Contributing · Security · Changelog
📌 Status: v5.2 stable
ai-project-setup ships a single-file bootstrap (AI_PROJECT_SETUP.md, ~7,600 lines) that any AI coding assistant reads and executes to produce a complete, multi-tool, gitignored AI tooling layout. v5.2 is the first polished GitHub repository release: expanded README, bilingual standard docs, issue/PR templates, and stricter no-footprint .gitignore. v5.1 moved the self-update source from a gist to this repository, so projects on v5.0 or earlier fetch v5.1 once from the legacy gist (frozen as a migration bridge), then all subsequent updates come from here. The artifact is idempotent and self-healing — re-running setup on an existing project repairs drift, force-overwrites stale shipped scripts with .bak backups, and preserves user content (CLAUDE.md sections 1–7 and 11, memory files, project agents).
One file, every AI tool. Drop AI_PROJECT_SETUP.md at your project root, tell the AI to read it, and in 1–3 minutes you have rules, hooks, session-resume, slash commands, default agents, a backup toolkit, and bilingual GitHub standard files — all gitignored so your project git history stays clean. Absolute Rule #19: AI tooling leaves zero footprint in your project's git history.
📑 Table of contents
Why this exists
Quick start
What gets created
Lifecycle
Key features
Supported AI tools
Comparison
Documentation
Self-update
Forking
FAQ
Roadmap
Star history
Support
License
🎯 Why this exists
Every new project, you re-do the same AI setup. This file does it once, deterministically, across multiple AI tools:
What you used to do every time What this file does automatically
Write CLAUDE.md / AGENTS.md / .cursorrules by hand ✅ 13 sections generated + 3-tool symlink sync
Block dangerous commands (rm -rf /, force push, secret leaks) ✅ Kernel-level PreToolUse hook
Set up session resume for /clear · crash · rate-limit ✅ 3-tier auto-save (current/handoff/recovery)
Configure memory · slash commands · default agents ✅ 10+ commands + 4 agents installed
Create README / SECURITY / CONTRIBUTING / CHANGELOG ✅ Bilingual EN/KO generation
Stop AI tool files from leaking into git history ✅ 22 .gitignore entries auto-applied
⚡ Quick start
One-liner (any git repository):
curl -fsSL https://raw.githubusercontent.com/kernalix7/ai-project-setup/main/AI_PROJECT_SETUP.md \ > AI_PROJECT_SETUP.md
Then open your AI tool and tell it to execute the file:
claude # or: codex, cursor ., or VS Code with Copilot
Tell the AI (English or Korean both work):
Read AI_PROJECT_SETUP.md and execute it.
AI_PROJECT_SETUP.md 읽고 실행해줘
Wait 1–3 minutes, then verify:
./tmp-igbkp/verify-setup.sh
→ Pass: 83 Fail: 0 Warn: 0 — All required checks passed
That's it. Everything created is gitignored — your project's git history stays clean.
📦 What gets created
your-project/ |-- CLAUDE.md -> symlink to .priv-storage/CLAUDE.md |-- AGENTS.md -> symlink to .priv-storage/CLAUDE.md # Codex / Copilot |-- .cursorrules -> symlink to .priv-storage/CLAUDE.md # Cursor |-- WORK_STATUS.md -> current work state (project content) | |-- .priv-storage/ [gitignored] all AI tooling lives here | |-- CLAUDE.md # 13-section project rules (~10kB cap) | |-- CLAUDE.local.md # per-developer overrides | |-- POST_SETUP_INDEX.md # 50-line pointer (saves ~25k tokens/session) | |-- AI_PROJECT_SETUP.md # archived, never re-read | |-- memory/ # dual-written to ~/.claude/projects/ (cross-machine sync) | |-- sessions/ # current.md, handoff-{date}.md, recovery.md, read-log.tsv | `-- .claude/ | |-- settings.json # statusLine + 5 hooks + outputStyle | |-- hooks/ # PreToolUse / PostToolUse / SessionStart / PreCompact / Stop | |-- agents/ # tech-lead, explorer, code-reviewer, log-analyzer | |-- commands/ # 10+ slash commands | |-- skills/ and rules/ # on-demand knowledge | |-- output-styles/terse.md | `-- statusline # context percent / rate-limit ETA | |-- tmp-igbkp/ [gitignored] backup and verification toolkit (9 scripts) | |-- verify-setup.sh # one-command health check (83+ assertions) | |-- smoke-test-hooks.sh # mock-payload hook validation | |-- secret-guard.sh # 14-pattern pre-commit scanner | |-- archive.sh / restore.sh # AES-256-CBC + PBKDF2 600k iterations | |-- purge-history.sh # git-filter-repo wrapper | |-- setup-worktree.sh # bridges worktrees to main .priv-storage/ | |-- codex-relay-{check,run}.sh # Claude Codex parallel lanes | `-- uninstall.sh # safe rollback with backup | |-- .mcp.json [gitignored] MCP server registry (env-var refs only) | |-- README.md, SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, CHANGELOG.md |-- docs/{README,SECURITY,CONTRIBUTING,CODE_OF_CONDUCT,CHANGELOG}.ko.md `-- .github/{ISSUE_TEMPLATE/,PULL_REQUEST_TEMPLATE.md}
Only WORK_STATUS.md, GitHub standard files, the docs/ Korean mirrors, and .github/ get committed. Everything inside .priv-storage/ and tmp-igbkp/ is gitignored by design.
🔄 Lifecycle
[1. INITIAL SETUP] Prompt: "Read AI_PROJECT_SETUP.md and execute it."
- Auto-detects Scenario A/B/C
- Creates everything above, then runs STEP 6
- Archives AI_PROJECT_SETUP.md into .priv-storage/
- Prints "Setup Complete" only if automode-validate.sh passes
| v
[2. NORMAL SESSIONS]
- SessionStart hook injects last handoff + current.md tail
- AI reads CLAUDE.md (~200 lines) + POST_SETUP_INDEX.md (~50)
- Does not re-read the 7000-line setup file, saving ~25k tokens/session
- PreToolUse blocks dangerous commands + oversized Reads
- PostToolUse appends to current.md + dual-writes memory
- Stop hook writes handoff-{date}.md
- PreCompact hook writes recovery.md (best-effort)
| v
[3. CRASH / RATE-LIMIT / /clear]
- Next session: SessionStart auto-loads handoff + recovery
- AI resumes without "where were we?" questions
| v
[4. SELF-UPDATE] Trigger: "update setup" or Korean "AI_PROJECT_SETUP 업데이트해"
- Fetches latest from GitHub raw URL
- Replaces archived setup file
- Force-overwrites all 30+ shipped scripts with .bak backup
- Re-runs automode-validate gate
- Reports: "Updated: vOLD -> vNEW. Recommend /clear."
Three setup scenarios
Scenario When What the AI does
A — existing .priv-storage/ exists or real CLAUDE.md at root Update/repair in place. Force-overwrite shipped scripts (with .bak), preserve user content.
B — empty/new No .priv-storage/, no CLAUDE.md at root Full setup from scratch — STEP 0 detection → STEPs 1–12 → archive.
C — broken Files at root that look like CLAUDE.md but aren't, or partial leftover state Detect, classify, convert to canonical layout, then bridge into A's STEPs 4–12.
✨ Key features
🛡️ Safety hooks (Claude Code)
PreToolUse blocks rm -rf /, force push, git add of gitignored AI files, eval, base64 | sh, curl http://, ~/.ssh reads, fork bombs
Blocks oversized Read (>1000 lines without offset/limit)
Blocks commit messages mentioning AI tooling
PostToolUse appends to sessions/current.md + dual-writes memory
SessionStart auto-loads last handoff + current.md tail + recovery
PreCompact writes recovery.md snapshot (best-effort)
Stop writes handoff-{date}.md + archives old handoffs
🔄 Resilience
3-tier session log: current.md (every call) → handoff-{date}.md (session end) → recovery.md (pre-compact)
Memory dual-write: every memory file mirrors to ~/.claude/projects/{path-encoded}/memory/ → new laptop restores instantly
Idempotent setup: SHA256 markers in .priv-storage/.setup-step-{N}.done
Force-overwrite of shipped scripts on every update (with .bak) — stale bugs auto-resolve
83+ assertion verify-setup.sh — single-command health check
smoke-test-hooks.sh fires each hook with mock payload
🤖 Default agents (token-efficient)
tech-lead — auto-evaluates complexity, forms teams (modules ≥ 2 OR files ≥ 5 OR cross-module work)
explorer — read-only codebase search, returns summaries, preserves main context window
code-reviewer — security/correctness/style review
log-analyzer — parses crash logs / hook-error logs
Subagent delegation MANDATORY above thresholds (>3 files, >500 lines, codebase-wide search)
⚡ Slash commands
/status — current task + recent activity summary
/health — runs verify-setup.sh + smoke-test-hooks.sh
/recover — load latest handoff + recovery into context
/ship — pre-commit secret-guard + clean check
/save — manual snapshot to current.md
/clean — rotate old handoffs, prune sessions
/codex-{brief,review,fix,relay-status} — Claude ↔ Codex parallel lanes
💰 Token discipline (Absolute Rule #20)
CLAUDE.md hard-capped at 16k chars (WARN) / 32k (FAIL)
PreToolUse BLOCKS Read of >1000-line files without offset/limit
Subagent delegation MANDATORY above thresholds
read-log.tsv flags duplicate Reads within a session
Auto-extends from terse → verbose only when reasoning is requested
Expected: 30–60% token reduction vs naive AI-pair-programming
🔐 Secret guard
14 regex patterns: AKIA…, ASIA…, sk-…, sk-proj-…, ghp_…, ghs_…, gho_…, glpat-…, xox[abprs]-…, sk_live_…, rk_live_…, AIza…, JWTs, -----BEGIN PRIVATE KEY-----
Special .mcp.json rule — env-var references only
Per-line # secret-guard:ignore allow-list for false positives
--install-hook mode wires into git pre-commit
AES-256-CBC + PBKDF2 600k for archived backups
🌏 Multi-tool parity
Same CLAUDE.md drives Claude Code, Codex CLI, Cursor, Copilot via symlinks
All three rule files (CLAUDE.md / AGENTS.md / .cursorrules) point to the same target — atomic updates
MCP servers registered via gitignored .mcp.json (env-var refs only)
VS Code settings symlinked for Copilot integration
Hooks are Claude Code-specific; other tools get policy-only enforcement
🔀 Cross-AI Codex relay (v4.9+, Claude Code only)
When codex CLI is on PATH, Claude offloads implementation to Codex while keeping planning/review authority
Flow: Claude (plan) → /codex-brief → Codex (implement) → Claude (/codex-review) → Codex (/codex-fix)
v5.0+ parallel per-agent relay lanes for TeamCreate work
Conflict prevention: disjoint allowed-paths per lane via paths_overlap check
Lockfiles in .priv-storage/sessions/codex-relay/locks/ + active.tsv ledger
🤝 Supported AI tools
Tool Min version Reads Hook support
Claude Code 2.0+ CLAUDE.md ✅ Full (5 hook events)
ChatGPT Codex CLI 0.10+ AGENTS.md → CLAUDE.md ❌ Policy-only
Cursor 0.40+ .cursorrules → CLAUDE.md ❌ Policy-only
GitHub Copilot 1.150+ AGENTS.md ❌ Policy-only
claude.ai (web) current upload CLAUDE.md ❌ Policy-only
Any MCP-aware tool — depends ❌ Policy-only
Policy-only = rules enforced via prompt content. No kernel-level block, but the AI follows them because they're in the rules file it reads.
⚖️ Comparison
This file .cursorrules only Custom CLAUDE.md Per-tool CLI tool
Single source of truth acro
[truncated for AI cost control]