Work surfaces

A surface is a way to interact with Claude Code and embed it into your process. At the start, it is enough to combine the terminal CLI with an IDE for reading code and reviewing changes.

Web, desktop, cloud, mobile, Slack, GitHub, CI, and browser scenarios may be useful later, but they should not complicate the first working cycle.

SurfaceRole in the process
CLI in the terminalLaunch Claude in a specific project directory
VS Code or JetBrainsReview files, context, and the diff
Desktop, web, cloudAlternative access to sessions
Slack, GitHub, CITeam interaction and automation
Remote, mobile, browserSpecialized or remote scenarios

Why the course starts with the terminal

Launching from the repository root immediately establishes the working context: Claude can see the actual files, structure, and project boundaries. The IDE is not replaced; it helps the person verify the result.

cd ~/projects/commerce-os
claude

Basic workflow

  1. Open the repository in a terminal and launch Claude.
  2. Check the Git status and state the task.
  3. Get changes or a plan, then open the project in the IDE.
  4. Review the files, diff, and test results.
  5. Check the key scenario manually if automated tests are insufficient.
  6. Prepare the changes for review and record exactly what was checked.
Project → Claude → Git → IDE → checks → human decision → ready artifact

What PR-ready means

  • It is clear which files changed and why.
  • The diff was reviewed without unnecessary formatting or unexpected edits.
  • Checks were run, and their result can be explained.
  • The key system behavior was confirmed.
  • Another developer can understand how to reproduce or verify the result.
Short technical report
Changed:
- orders/OrderService.java

Checked:
- the orders page loads;
- new orders have the correct order.

Tools for learning examples

The next practical tasks may require JDK, Gradle, and Python 3. Before installing anything manually, ask Claude to check the environment and show the versions.

In Java projects, prefer the Gradle Wrapper: it takes the compatible Gradle version from the repository.

java -version
gradle -version
python3 --version

# In an existing Gradle project
./gradlew

Canonical lesson source · JavaRush

Open JavaRush material