letitbk/claude-academic-setup
Claude Code + Cursor setup for academic social science researchers (R, Stata, Python). 22 skills, 13 plugins, 5 commands, 14 IDE extensions.
ARCHETYPE
YOLO Cowboy
Permissions? Never heard of 'em. Ships at the speed of `--dangerously-skip-permissions`.
GUARDRAILS
3/5
Blocks destructive commands · Protects secrets · Sandbox or ask-first rules · details
Copy this rig
# review before running: this installs third-party code $ npx degit letitbk/claude-academic-setup/commands ./rig-claude-academic-setup/commands $ npx degit letitbk/claude-academic-setup/skills ./rig-claude-academic-setup/skills $ npx degit letitbk/claude-academic-setup/hooks ./rig-claude-academic-setup/hooks
MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.
$ npx degit letitbk/claude-academic-setup/skills/brainstorming .claude/skills/brainstorming $ npx degit letitbk/claude-academic-setup/skills/catch-up .claude/skills/catch-up $ npx degit letitbk/claude-academic-setup/skills/clean-survey-data .claude/skills/clean-survey-data $ npx degit letitbk/claude-academic-setup/skills/codex .claude/skills/codex $ npx degit letitbk/claude-academic-setup/skills/datacheck .claude/skills/datacheck $ npx degit letitbk/claude-academic-setup/skills/dataverse-sync .claude/skills/dataverse-sync $ npx degit letitbk/claude-academic-setup/skills/discuss-claims .claude/skills/discuss-claims $ npx degit letitbk/claude-academic-setup/skills/doc .claude/skills/doc $ npx degit letitbk/claude-academic-setup/skills/humanizer .claude/skills/humanizer $ npx degit letitbk/claude-academic-setup/skills/marginaleffects .claude/skills/marginaleffects $ npx degit letitbk/claude-academic-setup/skills/marp-slide .claude/skills/marp-slide $ npx degit letitbk/claude-academic-setup/skills/napkin .claude/skills/napkin $ npx degit letitbk/claude-academic-setup/skills/pdf .claude/skills/pdf $ npx degit letitbk/claude-academic-setup/skills/playwright .claude/skills/playwright $ npx degit letitbk/claude-academic-setup/skills/qualtrics-survey .claude/skills/qualtrics-survey $ npx degit letitbk/claude-academic-setup/skills/screenshot .claude/skills/screenshot $ npx degit letitbk/claude-academic-setup/skills/security-best-practices .claude/skills/security-best-practices $ npx degit letitbk/claude-academic-setup/skills/skill-creator .claude/skills/skill-creator $ npx degit letitbk/claude-academic-setup/skills/stop-slop .claude/skills/stop-slop $ npx degit letitbk/claude-academic-setup/skills/survey-analysis .claude/skills/survey-analysis $ npx degit letitbk/claude-academic-setup/skills/viz .claude/skills/viz
Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.
{
"permissions": {
"deny": [
"Read(**/.ssh/*)",
"Read(**/.aws/*)",
"Read(**/.gnupg/*)",
"Read(**/.env)",
"Read(**/.env.*)",
"Read(**/*credentials*)",
"Read(**/*secret*)",
"Read(**/*.pem)",
"Read(**/*.key)",
"Edit(**/.ssh/*)",
"Edit(**/.aws/*)",
"Edit(**/.gnupg/*)",
"Edit(**/.env)",
"Edit(**/.env.*)",
"Edit(**/*credentials*)",
"Edit(**/*secret*)",
"Write(**/.ssh/*)",
"Write(**/.aws/*)",
"Write(**/.gnupg/*)",
"Write(**/.env)",
"Write(**/.env.*)",
"Write(**/*credentials*)",
"Write(**/*secret*)",
"Bash(sudo *)",
"Bash(rm -rf /*)",
"Bash(rm -rf ~ *)",
"Bash(dd *)",
"Bash(mkfs *)",
"Bash(fdisk *)",
"Bash(shutdown *)",
"Bash(reboot *)",
"Bash(chmod 777 *)",
"Bash(git push --force *)",
"Bash(git push -f *)",
"Bash(docker rm -f *)",
"Bash(docker system prune *)"
]
},
"sandbox": {
"enabled": true
}
} Skills (21)
brainstormingcatch-upclean-survey-datacodexdatacheckdataverse-syncdiscuss-claimsdochumanizermarginaleffectsmarp-slidenapkinpdfplaywrightqualtrics-surveyscreenshotsecurity-best-practicesskill-creatorstop-slopsurvey-analysisviz
Hooks (2)
| event | matcher | runs |
|---|---|---|
| Stop | * | $HOME/.claude/hooks/check-docs-update.sh |
| PostToolUse | Write|Edit | f=$(jq -r '.tool_input.file_path'); if echo "$f" | grep -qE '\.json$'; then python3 -c "import json; json.load(open('$f'))" 2>&1 || true; elif echo "$f" | grep -qE '\.R$'; then R --no-save --no-restore -e "parse('$f')" 2>&1 | tail -3 || tru |
Slash commands (7)
/analyze-function/page/plannotator-annotate/plannotator-last/plannotator-review/search-prompts/updates-git
Plugins (14)
code-simplifier@claude-plugins-officialclaude-notifications-go@claude-notifications-gosuperpowers@superpowers-marketplaceplannotator@plannotatorcontext7@claude-plugins-officialcode-review@claude-plugins-officialgithub@claude-plugins-officialfeature-dev@claude-plugins-officialralph-loop@claude-plugins-officialplaywright@claude-plugins-officialcommit-commands@claude-plugins-officialpyright-lsp@claude-plugins-officialplugin-dev@claude-plugins-officialclaude-hud@claude-hud
Permissions
deny (36)
Read(**/.ssh/*)
Read(**/.aws/*)
Read(**/.gnupg/*)
Read(**/.env)
Read(**/.env.*)
Read(**/*credentials*)
Read(**/*secret*)
Read(**/*.pem)
Read(**/*.key)
Edit(**/.ssh/*)
Edit(**/.aws/*)
Edit(**/.gnupg/*)
Edit(**/.env)
Edit(**/.env.*)
Edit(**/*credentials*)
Edit(**/*secret*)
Write(**/.ssh/*)
Write(**/.aws/*)
Write(**/.gnupg/*)
Write(**/.env)
Write(**/.env.*)
Write(**/*credentials*)
Write(**/*secret*)
Bash(sudo *)
Bash(rm -rf /*)
Bash(rm -rf ~ *)
Bash(dd *)
Bash(mkfs *)
Bash(fdisk *)
Bash(shutdown *)
Bash(reboot *)
Bash(chmod 777 *)
Bash(git push --force *)
Bash(git push -f *)
Bash(docker rm -f *)
Bash(docker system prune *)
ask (0)
—
allow (68)
Read
Edit
Write
Bash(npm run build)
Bash(npm run test:*)
Bash(npm run lint)
Bash(npm install)
Bash(npm ci)
Bash(npx *)
Bash(node *)
Bash(yarn *)
Bash(pnpm *)
Bash(git status)
Bash(git diff *)
Bash(git log *)
Bash(git branch *)
Bash(git show *)
Bash(git stash list)
Bash(git add *)
Bash(git commit *)
Bash(git checkout *)
Bash(git switch *)
Bash(git merge *)
Bash(git rebase *)
Bash(git pull *)
Bash(git push)
Bash(git push origin *)
Bash(ls *)
Bash(pwd)
Bash(which *)
Bash(echo *)
Bash(cat *)
Bash(head *)
Bash(tail *)
Bash(wc *)
Bash(sort *)
Bash(uniq *)
Bash(find *)
Bash(grep *)
Bash(rg *)
Bash(python *)
Bash(python3 *)
Bash(pip install *)
Bash(pip3 install *)
Bash(Rscript *)
Bash(R CMD *)
Bash(renv::*)
Bash(stata *)
Bash(stata-mp *)
Bash(snakemake *)
Bash(docker build *)
Bash(docker run *)
Bash(docker compose *)
Bash(docker ps *)
Bash(docker images *)
Bash(docker logs *)
Bash(make *)
Bash(quarto *)
Bash(pandoc *)
Bash(latexmk *)
Similar rigs
robonuggets/agentic-ai-starter-kit
Beginner-friendly setup for Claude Code and other agentic AI tools. Personalised CLAUDE.md, safety rails, 2 starter skills.
Minimalist 96 tok ·
ironplutoas/claude-dotfiles
.claude
Skill Collector 1.1k tok ·
OpenCoworkAI/open-cowork
Open-source AI agent desktop app for Windows & macOS. One-click install Claude Code, MCP tools, and Skills — with sandbox isolation, multi-model support, and Feishu/Slack integration.
Pragmatist 382 tok ·
AymanShams/codex-coding-os
Spec-first workflow pack for OpenAI Codex: skills, AGENTS.md templates, workflow gates, fresh-context review, validation, and handoff.
Skill Collector 4.3k tok ·