Claude Code for beginners
Translation of a guide from the project repository; the Czech original is authoritative. The project's documentation, task files, issues and commits are in Czech — Claude Code reads them for you, and you can ask it in English. Discord is Czech-speaking too, but English works as well.
A guide for someone who has never worked with Claude Code (or a similar
tool). It assumes a finished development environment following
local-dev.md or linux-install.md.
How the project divides work between Claude in chat, Claude Code and a
person is described in ai-workflow.md — this guide is
about how to get started with Claude Code in practice.
Details about the tool itself are in the official documentation at code.claude.com/docs. Here are only the things you need for Shipard and the places where it's easy to make a mistake.
1. What Claude Code is
Claude Code is Claude running in the terminal, directly in the project directory. It reads files, runs commands, edits code and runs tests — on its own, step by step, according to what you write to it. You give it work in plain language and decide what happens with the result.
It differs from Claude in chat (claude.ai) in that it works directly in
your checkout. In the project, chat is used mainly for design and
verification; Claude Code for implementation. For everyday work Claude Code
alone is enough (ai-workflow.md §1).
2. What you will need
- A development environment — Ubuntu in Multipass or in WSL following
local-dev.md. Claude Code is installed inside Ubuntu, not on the Mac or in Windows. - A paid Claude account — Pro, Max, Team or Enterprise (or an account in the Claude Console). The free plan doesn't include Claude Code.
- A GitHub account — once you want to send your work (chapter 8).
3. Installation and signing in
In the Ubuntu terminal (Mac: multipass shell shipard, Windows: the Ubuntu
window):
curl -fsSL https://claude.ai/install.sh | bash
Then open a new terminal (or sign out and back in) and verify:
claude --version
If the claude command doesn't exist, the installer didn't add it to
PATH — the solution is in the official documentation (Troubleshoot
installation). Claude Code then updates itself.
Signing in: on the first run of claude, Claude Code asks you to sign
in through a browser. There is no browser in the virtual machine — Claude
Code prints a link; open it in a browser on your computer, sign in and
paste any code the page shows back into the terminal.
4. First run
cd ~/sw/shpd
claude
- Claude Code asks whether you trust the files in the directory — confirm, it's your checkout.
- Don't run
/init. The project already hasCLAUDE.md— the file with the rules, which Claude Code loads itself at the start of every session. - Type
/contextand check in the Memory files section thatCLAUDE.mdis loaded (andCLAUDE.local.md, if you created one —ai-workflow.md§7).
For a first try, ask about something that changes nothing, for example:
Explain to me how the
economymodule is organised in the project and where the tables are defined.
You will see Claude going through the files and putting the answer
together. You end the session with /exit or Ctrl+D.
5. Permissions — what Claude may do without asking
Claude Code has permission modes. You switch them with the
Shift+Tab key and the current mode is shown in the status line below
the input field.
| Mode | What Claude does without asking | When to use it |
|---|---|---|
Manual (manual mode on) |
only reads; asks before editing files and before commands | the beginning — you see every step and learn what Claude does and why |
acceptEdits (accept edits on) |
edits files; you still approve commands | once you know your way around the tool; you then go through the changes with git diff |
plan (plan mode on) |
only explores and proposes a procedure, changes nothing until you approve the plan | before a bigger change — "first tell me what you'll do" |
auto (auto mode on) |
almost everything; a safety check judges the actions instead of you | only with understanding and only in a local VM with seeded data |
New versions of Claude Code start in auto mode. So at the beginning
press Shift+Tab until you see manual mode on. Don't use the mode in
which Claude skips all checks (bypassPermissions,
--dangerously-skip-permissions) in the project.
When Claude asks for permission, read what it wants to run. Give the answer "yes and don't ask again" only to commands you understand (e.g. tests).
What the repo always guards. The shared settings .claude/settings.json
in the repo apply in every mode, auto included:
git push,gh pr create,gh pr merge— Claude always asks. It runs sending your work only on your explicit instruction, and you confirm it (chapter 8). If it asks about sending without you having asked for it, refuse.- Reading the configuration and secrets of data sources
(
config/main.json,secrets/) is forbidden. The ban catches direct reading of the file; the application and its commands keep reading their configuration.
When Claude runs into a ban, it's not a bug — skip that step, or do it yourself.
6. How to assign work
A small thing (a typo, a minor fix, one function) — just write it, but specifically: what you want, where it is and how to tell it's done.
In the dev dashboard the "Upgrade All" button has an English label instead of a Czech one. Find where it's generated and propose a fix — don't change anything yet.
The sentence "don't change anything yet" is a useful habit: Claude first shows what it found, and you decide.
A bigger thing — in the project it is assigned with a task file in
tasks/ (ai-workflow.md §2, format in tasks/README.md). Then it's
enough to say:
implement tasks/task-name.md
Claude reads the task and the documents it refers to and proceeds
according to it. The task is usually written by Claude in chat together
with you, or you find one ready in tasks/ (state "naplánováno", planned).
Plan mode — for anything that touches more than one file, switch with
Shift+Tab to plan. Claude explores the code and presents a plan; you
approve it, adjust it or reject it.
One task = one session. Between unrelated tasks type /clear — Claude
starts with a clear head and doesn't mix tasks up. When a session is long
and Claude starts forgetting what was agreed, /compact helps (it
summarises the conversation so far), but it's better to finish the task and
start again.
7. How to check what Claude did
"Done" from Claude means that it thinks it's done. Verify it:
- Read the changes. Ask Claude for a summary ("what exactly did you
change and why?"), but go through the changes yourself too:
git diffin the terminal, or the diff in your editor. Unexpected files among the changes are a reason to ask. - Look in the application. After a frontend change a build is needed
(
bash scripts/dev-update.sh) and a hard refresh in the browser (Cmd+Shift+R/Ctrl+Shift+R). After a change of tables or module configuration,shpd-server ds-upgrade-all. - Tests. Claude runs targeted tests itself; when you want to verify a specific thing, tell it to run the tests for that change. The whole suite takes long — leave it for the end.
- When something doesn't fit, tell it as specifically as the assignment ("after saving the form, the new record doesn't appear in the list").
8. Repository, branches and sending your work
You don't have to know git and GitHub by heart — Claude knows them and
uses the git and gh (GitHub in the terminal)
commands itself. You only need to understand the terms and know which steps
are yours.
Terms:
- commit — a saved and described set of changes;
- branch — your own line of commits in which you work without
affecting the main branch
stable; - fork — your copy of the repository on GitHub; you can't write to the
main repo
shipard/shipard, you can to the fork; - pull request (PR) — a request for the team to take your branch from
the fork into
stable. The team goes through it and merges it.
Once at the start — signing in to GitHub and the fork:
gh auth login
Then ask Claude:
Fork the shipard/shipard repository for me and set up the checkout so that origin is my fork and upstream the original repo.
With every piece of work:
- Branch — "create a branch for fixing the label in the dashboard".
- Work and checking — chapters 6 and 7.
- Commit — "commit it". With a task, Claude commits according to its commit strategy. The commit is only on your machine for now, it hasn't gone anywhere.
-
Sending — only on your instruction. Ask Claude to prepare the PR description in a file ("write the PR description to /tmp/pr.md") and read it. Then:
Push the branch to my fork and open a pull request to shipard/shipard with the description from /tmp/pr.md.
Claude asks before the push and before opening the PR — read what it is sending and where, and confirm. It then prints the link to the PR. You can do the same step yourself in the terminal:
gh pr create --repo shipard/shipard --body-file /tmp/pr.mdghasks where to push the branch (to your fork) and what the PR should be called. -
Current state — before further work, "pull the changes from upstream into stable and create a new branch". After pulling, the dependencies and frontend update themselves (git hooks from the bootstrap).
Why you decide about sending: the repository is public. What leaves
once, everyone sees — that's why Claude sends nothing on its own and you
confirm every send. The repo enforces it technically too (chapter 5).
Besides, only a few people may write directly to the main branch stable;
everyone else sends pull requests.
9. Common pitfalls
- Public repo. Names of real companies, people or data sources don't
belong in commits, PRs, issues or documentation — only the ID prefix
(
CLAUDE.md→ Zdroje dat ve veřejných textech, data sources in public texts). The git hook checks typical cases on commit, but not all of them. - The frontend "hasn't changed" — the build or a hard refresh is missing (chapter 7).
- A new table or field "doesn't exist" —
shpd-server ds-upgrade-allis missing. - A command hangs — it's waiting for a confirmation nobody gives in
Claude Code (typically
shpd-server fix-permissionswithout--dry-run;ai-workflow.md§4). - Claude goes round in circles — stop it (
Esc), describe what you see, and if need be start again with/clearand a more precise assignment. - Claude "remembers" something that isn't true — Claude Code keeps its
own notes (auto memory,
/memory). They are only on your machine; what should apply to everyone belongs in a file (ai-workflow.md§5).
10. Where next
ai-workflow.md— roles, process, rules, Claude in chat andremote-dev-bridgetasks/README.md— the format of tasks and their state; tasks in progress and planned ones are a good startREADME.md— the map of the documentationroadmap.md— where the project is heading- Discord — when you don't know where to start, or get stuck