{"owner":"luongnv89","repo":"claude-howto","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"files":{"CLAUDE.md":"# CLAUDE.md\n\nTutorial repo. Output is markdown in numbered modules `01-` through `10-`, not an app. Scripts in `scripts/` exist only to validate docs and build the EPUB.\n\nSee also `.claude/CLAUDE.md` for stack/commands and `STYLE_GUIDE.md` for lesson structure.\n\n## Critical commands\n\n```bash\n# Quality gate (also runs on commit via pre-commit hooks)\npre-commit run --all-files\n\n# Tests\npytest scripts/tests/ -v\n\n# EPUB build (renders Mermaid with the local mmdc CLI — no network, needs mmdc on PATH)\nuv run scripts/build_epub.py\n\n# Python tooling\nruff check scripts/ && ruff format scripts/\nmypy scripts/ --ignore-missing-imports\nbandit -c scripts/pyproject.toml -r scripts/ --exclude scripts/tests/\n```\n\nPre-commit runs 5 doc checks on `.md` changes: markdown-lint, cross-references, mermaid-syntax, link-check, markdown-rendering. All must pass. The EPUB build is **not** a pre-commit hook — it runs in CI only (`build-epub` job in `.github/workflows/test.yml`), because it needs a local `mmdc` binary that has no working arm64 build.\n\n## Architecture map\n\n- `01-` … `10-` — tutorial modules. **Numbered prefix = learning order**, not alphabetical. Do not reorganize.\n- Each module: `README.md` + copy-paste templates (`.md`, `.json`, `.sh`).\n- `scripts/` — utilities (EPUB builder, link/mermaid/cross-ref validators). Not the product.\n- `02-memory/*.md` — CLAUDE.md templates users copy into their own projects. Don't confuse with this file.\n- `openspec/` — spec-driven change proposals.\n\n## Hard rules\n\n- **YOU MUST NOT commit or push without explicit user request.**\n- **YOU MUST NOT add `Co-Authored-By: Claude`** to any commit message.\n- Always activate `.venv` before running Python scripts (check `venv/`, `.venv/`, `env/`).\n- Internal links use **relative paths** (e.g. `01-slash-commands/README.md`); anchors use `#heading-name`.\n- Code fences **must** declare a language (`bash`, `python`, `json`, …) — the cross-reference check fails otherwise.\n- External URLs must be reachable and stable. No ephemeral links.\n- Mermaid diagrams must parse (validated pre-commit, and only when `mmdc` is installed — the check skips with a warning otherwise). A broken EPUB build is usually invalid Mermaid or a missing/failing `mmdc`.\n- Commit format: `type(scope): subject` where `scope` matches the module folder (e.g. `feat(slash-commands):`, `docs(memory):`, `fix(README):`).\n- Do not reorganize the `01-`–`10-` numbering. The order is the curriculum.\n\n## Workflow preferences\n\n- For lesson edits, follow `STYLE_GUIDE.md` for structure/naming/diagrams.\n- Small fixes → minimal diff. Don't rewrite a section to fix a typo.\n- When adding a module page: README + templates first, then update root `README.md` index and `LEARNING-ROADMAP.md` if order/timing changes.\n- Tutorial > library: prioritize clear explanations and copy-paste examples over reusable abstractions.\n- If a quality check fails, fix the underlying issue. Don't bypass with `--no-verify`.\n\n## Token Efficiency\n- Never re-read files you just wrote or edited. You know the contents.\n- Never re-run commands to \"verify\" unless the outcome was uncertain.\n- Don't echo back large blocks of code or file contents unless asked.\n- Batch related edits into single operations. Don't make 5 edits when 1 handles it.\n- Skip confirmations like \"I'll continue...\" Just do it.\n- If a task needs 1 tool call, don't use 3. Plan before acting.\n- Do not summarize what you just did unless the result is ambiguous or you need additional input.\n"}}