GitHub: JannikRoesch/CCProjects
Owner: Jannik Roesch (@JannikRoesch)
Purpose: Main entrypoint for all Claude Code projects. Every new project lives under projects/.
This project uses bd (beads) for issue tracking. Run bd prime to see full workflow context and commands.
bd ready # Find available work
bd show <id> # View issue details
bd update <id> --claim # Claim work
bd close <id> # Complete work- Use
bdfor ALL task tracking — do NOT use TodoWrite, TaskCreate, or markdown TODO lists - Run
bd primefor detailed command reference and session close protocol - Use
bd rememberfor persistent knowledge — do NOT use MEMORY.md files
When ending a work session, you MUST complete ALL steps below.
MANDATORY WORKFLOW:
- File issues for remaining work - Create issues for anything that needs follow-up
- Run quality gates (if code changed) - Tests, linters, builds
- Update issue status - Close finished work, update in-progress items
- PUSH TO REMOTE - This is MANDATORY:
git pull --rebase bd export > .beads/issues.jsonl git add .beads/issues.jsonl && git commit -m "chore: sync beads" --allow-empty-message git push git status # MUST show "up to date with origin"
- Clean up - Clear stashes, prune remote branches
- Verify - All changes committed AND pushed
- Hand off - Provide context for next session
NOTE: bd dolt push requires a Dolt remote (not configured). Use bd export > .beads/issues.jsonl && git push instead for persistence.
CRITICAL RULES:
- Work is NOT complete until
git pushsucceeds - NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
ccprojects/ ← Root workspace (JannikRoesch/CCProjects on GitHub)
├── .beads/ # Workspace beads tracker (server mode, Dolt)
│ └── issues.jsonl # Exported backup — committed to git
├── .claude/ # Claude Code settings, hooks, skills, agents
│ ├── settings.json # Hooks, permissions, model config
│ └── hooks/ # PreToolUse, PostToolUse, Stop, etc.
├── .github/ # GitHub Actions, issue templates, PR template
│ └── workflows/ # CI/CD pipelines
├── docs/ # Workspace documentation
├── projects/ # Each subdirectory is an independent git repo
│ ├── registry.json # Index of all projects
│ ├── BeadsUI/ # Example: BeadsUI project
│ └── CCPlugin/ # Claude Code plugin for this workspace
├── scripts/ # Workspace-level automation
│ ├── new-project.sh # Scaffold a new project (ALWAYS use this)
│ ├── workspace-status.sh # Show health of all projects
│ ├── sync-all.sh # Push all projects to GitHub
│ └── health-check.sh # Run bd doctor across all projects
├── shared/ # Shared configs and git hooks
│ └── hooks/ # Git hook templates (pre-commit, commit-msg)
├── templates/ # Project starter templates
│ ├── web-app/ # React+Vite+TS
│ ├── api/ # Hono+Node
│ ├── cli/ # Node CLI
│ ├── python/ # FastAPI+uv
│ └── fullstack/ # Monorepo web+api
├── CLAUDE.md # ← You are here
├── AGENTS.md # Agent-specific instructions
└── .gitattributes # LF line endings everywhere
# 1. Load context
bd prime
# 2. See what needs work
bd ready
# 3. Check workspace health (after /project-health skill available)
# scripts/workspace-status.sh
# 4. Pick an issue and claim it
bd update <id> --claim# Basic (blank template)
scripts/new-project.sh my-project-name
# With template
scripts/new-project.sh my-project-name --template=web-app
# With custom beads prefix
scripts/new-project.sh my-project-name --prefix=myprjEach project gets: git repo, beads (server mode), CLAUDE.md, AGENTS.md, .gitignore, .mcp.json.
| Script | Purpose |
|---|---|
scripts/new-project.sh <name> |
Scaffold new project under projects/ |
scripts/workspace-status.sh |
Show all projects git + beads status |
scripts/sync-all.sh |
Export beads + git push for all projects |
scripts/health-check.sh |
Run bd doctor across all projects |
| Skill | Trigger | Purpose |
|---|---|---|
/workspace-status |
"workspace status" | All-projects health dashboard |
/new-project |
"create new project" | Interactive project scaffolding |
/sync-all |
"sync everything" | Push all projects to GitHub |
/daily-standup |
"standup", "what should I work on" | Session start briefing |
/switch-project |
"switch to X" | Change active project context |
/project-health |
"health check" | Full workspace diagnostics |
| Agent | Purpose |
|---|---|
workspace-scout |
Read-only diagnostics across all projects |
sync-agent |
Handles git + beads sync autonomously |
onboarding-agent |
Guided new project creation |
code-review-agent |
Workspace-aware code review |
- Web apps: React 18+ + TypeScript + Vite + Tailwind CSS
- APIs: Node.js + Hono + TypeScript
- Full-stack: pnpm monorepo (packages/web + packages/api)
- CLI tools: Node.js + commander + TypeScript
- Python projects: uv + FastAPI + ruff
- P0 = Critical / blocking everything
- P1 = High / current sprint
- P2 = Medium / this week
- P3 = Low / next sprint
- P4 = Backlog
Follow Conventional Commits: feat:, fix:, chore:, docs:, refactor:, test:
Always LF. See .gitattributes. Run git config core.autocrlf false on new machines.
- Main repo: JannikRoesch/CCProjects
- Each project MAY have its own repo under JannikRoesch/
- Use
gh repo create JannikRoesch/<name>to create project repos
Per-project — see each projects/<name>/CLAUDE.md. Root workspace has no build step.
# Check all TypeScript projects typecheck
for dir in projects/*/; do
[ -f "$dir/package.json" ] && (cd "$dir" && pnpm typecheck 2>/dev/null) || true
done