DeepTutor CLI
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
Runs a quick or deep quiz on Claude Code skills, scores ten feature areas and generates a personalized learning path with prioritized next steps.
$ npx skills add luongnv89/claude-howto --skill self-assessment -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install luongnv89/claude-howto self-assessment --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/luongnv89/claude-howto.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/self-assessment .claude/skills/self-assessment && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "self-assessment" agent skill from https://github.com/luongnv89/claude-howto/tree/main/.claude/skills/self-assessment into .claude/skills/self-assessment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "self-assessment", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/luongnv89/claude-howto/tree/main/.claude/skills/self-assessmentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add luongnv89/claude-howto --skill self-assessment -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install luongnv89/claude-howto self-assessment --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/claude-howto.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/self-assessment .agents/skills/self-assessment && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "self-assessment" agent skill from https://github.com/luongnv89/claude-howto/tree/main/.claude/skills/self-assessment into .agents/skills/self-assessment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "self-assessment", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add luongnv89/claude-howto --skill self-assessment -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install luongnv89/claude-howto self-assessment --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/claude-howto.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/self-assessment .cursor/skills/self-assessment && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "self-assessment" agent skill from https://github.com/luongnv89/claude-howto/tree/main/.claude/skills/self-assessment into .cursor/skills/self-assessment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "self-assessment", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/luongnv89/claude-howto.git --path .claude/skills/self-assessment--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add luongnv89/claude-howto --skill self-assessment -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install luongnv89/claude-howto self-assessment --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/claude-howto.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/self-assessment .gemini/skills/self-assessment && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "self-assessment" agent skill from https://github.com/luongnv89/claude-howto/tree/main/.claude/skills/self-assessment into .gemini/skills/self-assessment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "self-assessment", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install luongnv89/claude-howto self-assessmentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add luongnv89/claude-howto --skill self-assessment -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/luongnv89/claude-howto.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/self-assessment .github/skills/self-assessment && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "self-assessment" agent skill from https://github.com/luongnv89/claude-howto/tree/main/.claude/skills/self-assessment into .github/skills/self-assessment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "self-assessment", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add luongnv89/claude-howto --skill self-assessment -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install luongnv89/claude-howto self-assessment --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/luongnv89/claude-howto.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/self-assessment .opencode/skills/self-assessment && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "self-assessment" agent skill from https://github.com/luongnv89/claude-howto/tree/main/.claude/skills/self-assessment into .opencode/skills/self-assessment/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "self-assessment", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
self-assessmentRuns a quick or deep quiz on Claude Code skills, scores ten feature areas and generates a personalized learning path with prioritized next steps.
The skill opens by asking, through AskUserQuestion, whether you want a quick or a deep assessment. The quick one is two multi-select questions on basic and advanced skills such as CLAUDE.md, slash commands, custom skills, MCP servers, hooks, subagents and print mode, scored from 0 to 8 into beginner, intermediate or advanced, with the unchecked items listed as gaps.
The deep assessment runs five rounds, each covering two related feature areas, and yields per-topic scores, specific gaps and a prioritized learning path. Reference files hold the deep assessment rounds, the output templates and topic recommendations.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 556af8d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Claude Code Skill Assessment loads about 5.5k tokens when it runs, and up to ~9.9k if it reads all its reference files. Until then it costs about 116 tokens; SKILL.md has 2,525 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from luongnv89/claude-howto at commit 556af8d, republished under its MIT licence (© luongnv89). 2,525 words, ~5,514 tokens.
.claude/skills/self-assessment/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Comprehensive interactive assessment that evaluates Claude Code proficiency across 10 feature areas, identifies specific skill gaps, and generates a personalized learning path to level up.
Present the user with a choice of assessment depth:
Use AskUserQuestion with these options:
If user chooses Quick Assessment, go to Step 2A. If user chooses Deep Assessment, go to Step 2B.
Present TWO multi-select questions (AskUserQuestion supports max 4 options each):
Question 1 (header: "Basics"): "Part 1/2: Which of these Claude Code skills do you already have?" Options:
claude and interact with itQuestion 2 (header: "Advanced"): "Part 2/2: Which of these advanced skills do you have?" Options:
claude -p for non-interactive or CI/CD useScoring:
Go to Step 3 with the level result, listing which specific items were NOT checked as gaps.
Present 5 rounds of questions, one AskUserQuestion call per round. Each round covers 2 related feature areas. Use multi-select for all rounds.
IMPORTANT: AskUserQuestion supports max 4 options per question. Each round has exactly 1 question with 4 options covering 2 topics (2 options per topic).
Round 1 — Slash Commands & Memory (header: "Commands")
"Which of these have you done? Select all that apply." Options:
$ARGUMENTS, $0/$1, backtick !command syntax, or @file references in skill/command filesScoring for Round 1:
Round 2 — Skills & Hooks (header: "Automation")
"Which of these have you done? Select all that apply." Options:
disable-model-invocation, user-invocable, or context: fork with agent field in SKILL.md frontmatterScoring for Round 2:
Round 3 — MCP & Subagents (header: "Integration")
"Which of these have you done? Select all that apply." Options:
claude mcp serveAgent(agent_type) (the Task(...) form is a back-compat alias), or agent teamsScoring for Round 3:
Round 4 — Checkpoints & Advanced Features (header: "Power User")
"Which of these have you done? Select all that apply." Options:
claude --remote-control, claude --cloud, /teleport, /desktop, or worktrees with claude -wScoring for Round 4:
Round 5 — Plugins & CLI (header: "Mastery")
"Which of these have you done? Select all that apply." Options:
skills/ — the preferred form; namespaced commands/ is legacy but still works), plugin hooks, plugin MCP servers, LSP configuration, or --plugin-dir flag for testingclaude -p with --output-format json, --max-turns, piped input, or integrated into GitHub Actions / CI pipelinesScoring for Round 5:
Count total selections and determine level. Then present:
## Claude Code Skill Assessment Results
### Your Level: [Level 1: Beginner / Level 2: Intermediate / Level 3: Advanced]
You checked **N/8** items.
[One-line motivational summary based on level]
### Your Skill Profile
| Area | Status |
|------|--------|
| Basic CLI & Conversations | [Checked/Gap] |
| CLAUDE.md & Memory | [Checked/Gap] |
| Slash Commands (built-in) | [Checked/Gap] |
| Custom Commands & Skills | [Checked/Gap] |
| MCP Servers | [Checked/Gap] |
| Hooks | [Checked/Gap] |
| Subagents | [Checked/Gap] |
| Print Mode & CI/CD | [Checked/Gap] |
### Identified Gaps
[For each unchecked item, provide a 1-line description of what to learn and a link to the tutorial]
### Your Personalized Learning Path
[Output the level-specific learning path — see Step 4]Calculate per-topic scores from the 5 rounds. Each topic gets 0-2 points, except Advanced Features (0-3) and Checkpoints (0-1). Then present:
## Claude Code Skill Assessment Results
### Overall Level: [Level 1 / Level 2 / Level 3]
**Total Score: N/20 points**
[One-line motivational summary]
### Your Skill Profile
| Feature Area | Score | Mastery | Status |
|-------------|-------|---------|--------|
| Slash Commands | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Memory | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Skills | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Hooks | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| MCP | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Subagents | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Checkpoints | N/1 | [None/Proficient] | [Learn/Mastered] |
| Advanced Features | N/3 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| Plugins | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
| CLI | N/2 | [None/Basic/Proficient] | [Learn/Review/Mastered] |
**Mastery key:** 0 = None, 1 = Basic, 2 = Proficient
### Strength Areas
[List topics with score 2/2 — these are mastered]
### Priority Gaps (Learn Next)
[List topics with score 0 — these need attention first, ordered by dependency]
### Review Areas
[List topics with score 1/2 — basics known but advanced features not yet used]
### Your Personalized Learning Path
[Output gap-specific learning path — see Step 4]Overall level calculation for Deep Assessment:
Based on the assessment results, generate a learning path that is specific to the user's gaps. Do NOT just repeat the generic level path — adapt it.
### Your Personalized Learning Path
**Estimated time**: ~N hours (adjusted for your current skills)
#### Phase 1: [Phase Name] (~N hours)
[Only if they have gaps in these areas]
**[Topic Name]** — [Learn from scratch / Deep dive into advanced features]
- Tutorial: [link to tutorial directory]
- Focus on: [specific sections/concepts they need]
- Key exercise: [one concrete exercise to do]
- You'll know it's done when: [specific success criterion]
**[Topic Name]** — ...
---
#### Phase 2: [Phase Name] (~N hours)
...
---
### Recommended Practice Projects
Based on your gaps, try these real-world exercises to solidify your learning:
1. **[Project name]**: [1-line description combining 2-3 gap topics]
2. **[Project name]**: [1-line description]
3. **[Project name]**: [1-line description]Use these specific recommendations when a topic is a gap:
Slash Commands (score 0):
$ARGUMENTS syntax/optimize command and test itSlash Commands (score 1 — review):
!backtick`` syntax, @file references, disable-model-invocation vs user-invocable controlMemory (score 0):
/init and /memory commands, asking Claude to remember something (the old # shortcut was removed)Memory (score 1 — review):
@import syntax (max depth 4), Auto Memory MEMORY.md (Claude loads its first 200 lines or 25 KB, whichever comes first — a load cap, not a file-size limit)Skills (score 0):
Skills (score 1 — review):
context: fork with agent field for subagent execution, disable-model-invocation vs user-invocable, the skill-listing budget (1% of the context window, fallback 8,000 characters, 250 characters per entry), bundled resources (scripts/, references/, assets/)Hooks (score 0):
Hooks (score 1 — review):
CLAUDE_ENV_FILE for SessionStart/CwdChanged/FileChangedMCP (score 0):
claude mcp add command, transport types (http recommended, stdio, ws for push-style servers, and the deprecated sse — note --transport does not accept ws, so add WebSocket servers with claude mcp add-json), GitHub MCP setup, environment variable expansionMCP (score 1 — review):
@server:resource mentions, Tool Search (ENABLE_TOOL_SEARCH), claude mcp serve, output limits (10,000 tokens warning; 25,000 tokens default max via MAX_MCP_OUTPUT_TOKENS; 50,000 characters disk-persistence threshold)Subagents (score 0):
Subagents (score 1 — review):
isolation: worktree), persistent agent memory (memory field with scopes), background agents (Ctrl+B to background; Ctrl+X Ctrl+K twice to stop them all), agent allowlists with Agent(agent_type) (Task(...) remains a back-compat alias), agent teams (--teammate-mode)Checkpoints (score 0):
context: fork skill), edits made outside Claude Code, and symlinked/hardlinked paths are all untrackedAdvanced Features (score 0):
Advanced Features (score 1 — review):
claude --remote-control, alias --rc), web sessions (claude --cloud; --remote is a deprecated alias), desktop handoff (/desktop), worktrees (claude -w), task lists (Ctrl+T), managed settings for enterprisePlugins (score 0):
commands/ directory, which still works but skills/ is preferred for new plugins), installation from marketplacePlugins (score 1 — review):
${CLAUDE_PLUGIN_ROOT} variable, --plugin-dir for testing, marketplace publishingCLI (score 0):
claude -p with piping, --output-format json, session management (-c/-r)claude -p and get JSON outputCLI (score 1 — review):
claude mcp serveAfter presenting results, ask the user what they'd like to do next:
Use AskUserQuestion with these options:
If Start learning: Read the README.md of the first gap tutorial and walk the user through the first exercise. If Deep dive on a gap: Ask which gap topic, then read the relevant tutorial README.md and explain the key concepts with examples. If Practice project: Design a small project that combines 2-3 of their gap topics with concrete steps. If Retake assessment: Go back to Step 1.
Treat as 0 points for that round's topics. Continue to next round.
Assign Level 1: Beginner. Encourage starting from the beginning. Output the full Level 1 path.
Re-run from Step 1 with a fresh assessment.
Acknowledge their preference. Ask which level they identify with. Present the path for their chosen level with a prerequisites check for topics they may have missed.
If the user says something like "tell me about hooks" or "I want to learn MCP" during the assessment, note it. After presenting results, highlight that topic in their learning path regardless of score.
Should trigger:
Should NOT trigger:
© luongnv89, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in .claude/skills/self-assessment of luongnv89/claude-howto.
Open the folder on GitHubat commit 556af8d
Claude Code Skill Assessment next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Claude Code Skill Assessment this skillluongnv89/claude-howto | 42k | — | ~5.5k | Automated safety check: Pass | MIT | |
| DeepTutor CLIHKUDS/DeepTutor | 41k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Claude Certification Tutorrohitg00/ai-engineering-from-scratch | 66k | — | ~3k | Automated safety check: Pass | MIT | |
| StudyVault Quiz Tutorbevibing/tutor-skills | 1.3k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Zone of Proximal Development Practice LessonsTHU-MAIC/OpenMAIC | 40k | — | ~1.1k | Automated safety check: Pass | MIT | |
| AI Engineering Course Tutorrohitg00/ai-engineering-from-scratch | 66k | — | ~2.2k | Automated safety check: Pass | MIT |
HKUDS/DeepTutor
Teaches the agent to set up and run DeepTutor from the command line: chat and capabilities, knowledge bases, partners, memory, sessions, notebooks and the server or Web app.
rohitg00/ai-engineering-from-scratch
Guides a learner through one of four independent Claude certification tracks with onboarding, lessons, practice labs, mock exams and remediation.
bevibing/tutor-skills
Quizzes you on the notes in an Obsidian StudyVault, tracks proficiency per concept and drills weak areas in four-question rounds.
THU-MAIC/OpenMAIC
Designs a review-and-practice lesson around an independent first attempt, targeted feedback, supported practice, a fresh independent check and a next step.
rohitg00/ai-engineering-from-scratch
Teaches the next lesson of the AI Engineering from Scratch curriculum in the terminal, quizzes you at the end and records your progress.
FlorianBruniaux/claude-code-ultimate-guide
Runs an interactive quiz in a quick or comprehensive mode, scores your skill level by topic and generates a personalized learning path with practice projects.
luongnv89/claude-howto
Guides refactoring in phases based on Martin Fowler's method: research, test coverage check, planning and small tested steps, with your approval at each phase.
luongnv89/claude-howto
Guides systematic, test-backed refactoring in the style of Martin Fowler, moving through research, planning and small incremental changes with your approval at each phase.
luongnv89/claude-howto
Guides drafting a blog post from an idea and optional source material: research, brainstorming, outlining and version-tracked drafts, with user approval at each step.
luongnv89/claude-howto
Ensure all communication matches brand voice and tone guidelines. Use when creating marketing copy, customer communications, public-facing content, or when…
luongnv89/claude-howto
Reviews code for security, performance, quality and maintainability, using a checklist, a finding template and two metrics scripts.
luongnv89/claude-howto
Quizzes a learner on one lesson of the Claude Code tutorial with ten questions, scores the answers and points out weak spots.
Categories
Runs a quick or deep quiz on Claude Code skills, scores ten feature areas and generates a personalized learning path with prioritized next steps. The skill opens by asking, through AskUserQuestion, whether you want a quick or a deep assessment.md, slash commands, custom skills, MCP servers, hooks, subagents and print mode, scored from 0 to 8 into beginner, intermediate or advanced, with the unchecked items listed as gaps.
Claude Code Skill Assessment fits situations like: finding out your level with Claude Code; working out what to learn next across Claude Code features; getting per-topic scores and gaps from a deeper assessment.
Run `npx skills add luongnv89/claude-howto --skill self-assessment -a claude-code`. Or copy the skill folder (.claude/skills/self-assessment in luongnv89/claude-howto) into .claude/skills/self-assessment in your project. Claude Code loads it when a task matches its description.
Run `npx skills add luongnv89/claude-howto --skill self-assessment -a codex`. Or copy the skill folder (.claude/skills/self-assessment in luongnv89/claude-howto) into .agents/skills/self-assessment in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add luongnv89/claude-howto --skill self-assessment -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/self-assessment, .gemini/skills/self-assessment, .github/skills/self-assessment and .opencode/skills/self-assessment in your project.
Going by SKILL.md and its folder, Claude Code Skill Assessment needs the command-line tools its instructions call (claude).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Claude Code Skill Assessment is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Claude Code Skill Assessment: DeepTutor CLI (HKUDS/DeepTutor, 41k stars), Claude Certification Tutor (rohitg00/ai-engineering-from-scratch, 66k stars), StudyVault Quiz Tutor (bevibing/tutor-skills, 1.3k stars) and Zone of Proximal Development Practice Lessons (THU-MAIC/OpenMAIC, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
luongnv89 (a GitHub user) maintains it in luongnv89/claude-howto, which has 41,779 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on September 30, 2026.
Source: luongnv89/claude-howto on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.