local-project-context
The local task workspace, the build/test commands the hand-off gate runs, and the file and exploration tools. Use when starting work in a task workspace or before running any build, test or verification command.
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-15
- Stars
- ★ 122
- Forks
- 18
01 前言 Front Matter
- name
- local-project-context
- category
- tools
- description
- The local task workspace, the build/test commands the hand-off gate runs, and the file and exploration tools. Use when starting work in a task workspace or before running any build, test or verification command.
03 SKILL.md 正文
Local Project Context
Overview
You run on a local developer machine, not in a CI/CD pipeline. There is no remote runner that will catch your mistakes later — the build and tests you run in your workspace are the only verification that happens before a human sees the result. Treat your workspace as production's last line of defense.
Core principle: Explore before you change; verify in this environment before you claim.
The environment
- Task workspace: each task is worked in a cloned checkout on its own branch. Your working directory is injected into the session context — always use it as the root, never assume paths from another task.
- Live codebase: your changes take effect immediately in the workspace. There is no separate deploy step for verification.
- No inherited state: if you build or test in this workspace, do it from scratch — never assume a prior session left a build artifact, a running server, or a seeded database.
Exploration tools (use before changing code)
| Tool | Use for |
|---|---|
codebase_search |
Concept/semantic search — "where is auth handled" |
grep_code |
Exact symbol/string — a function name, an error message |
get_repo_tree |
Structure and file layout of the repository |
get_symbol_skeleton |
A symbol's signature and outline without its full body |
expand_symbol_context |
Focused read of a symbol and its surroundings |
read_file |
Read a file with line numbers — up to 800 lines per call |
run_terminal |
Build, test, run the app, inspect output |
File tools (use instead of the shell for anything touching a file)
| Tool | Use for |
|---|---|
read_file |
Read with line numbers, whole file in one call |
edit_file |
Replace an exact string; replace_all: true changes every occurrence at once |
edit_lines |
Replace / insert / delete by line number — add a function, an import, remove a block |
write_file |
Create a file, or replace one whole |
delete_file |
Remove a file or directory |
move_file |
Rename or move |
Never cat, sed -n, head, tail, sed -i, rm, mv or a heredoc through the shell. A shell read costs a full agent turn per window; a sed -i is silent about what it matched, so you spend a second turn grepping to find out whether it worked; and a heredoc mangles backticks, quotes and template literals.
Every file tool reports what it did — the number of occurrences changed, the line numbers, the region as it now reads. That is your confirmation. Do not grep or re-read the file to check. One edit is one turn.
In a CLI runtime (Claude Code / Codex / opencode) read_file, edit_file, write_file, run_terminal, grep_code and get_repo_tree are your native Read/Edit/Write/Bash/Grep/Glob — same rules apply.
Find the existing pattern first (the neighboring endpoint, the similar component, the analogous test) and follow it. A parallel convention you invent is a review finding waiting to happen.
Verification (use before every handoff)
The build gate that runs after your run executes exactly the component's required checks — list_component_checks returns them with the local command that reproduces each. Run those commands, not a guessed one. The table below is only the fallback when no checks are mapped:
| Stack | Build | Test |
|---|---|---|
| Go | go build ./... && go vet ./... |
go test ./... (or the affected ./path/...) |
| Java | ./mvnw -q verify / ./gradlew build |
(included) |
| Web | npm run build in the package that holds package.json |
npx vitest run or CI=1 npm test — never watch mode |
| Flutter | flutter analyze |
flutter test (a build needs a target: flutter build apk --debug, flutter build web) |
Full builds and suites outlast run_terminal's 60s default: pass timeout_seconds (up to 900). Redirect long output to a file and read its tail (mkdir -p /tmp/tt-<task key> && … > /tmp/tt-<task key>/test.log 2>&1; tail -80 /tmp/tt-<task key>/test.log — never a shared fixed path).
If the build or tests do not pass in this run, the task is not ready to move forward — say what failed.
Your role
- Developers: all of the above — explore, edit, build and test the whole stack.
- QA: black-box. Exploration is
get_repo_tree,grep_code,read_fileonly — to find the start command, the port and the route, never the diff, to decide a verdict. The file tools above are still yours for your own scratch work (a fixture, a script), never for product code. - Architect at code_review: read, never run. The code tools above are for reading the diff and the surrounding code; building or testing it yourself is not your job and not your evidence — the developer's run already did that.
Common Mistakes
- Reasoning about behavior from reading code instead of running it — except at code_review, where reading the diff IS the job.
- Reusing a path or branch name from a previous task's workspace.
- Assuming
npm install/go mod downloadalready ran — check, don't assume.
Red Flags
- "It built last time" — build again, now (unless you are the architect: you never build).
- "The server should still be running" — never assume; start it.
04 同仓库更多 Skills
visual-craft
暂无简介
ux-copy
Use when you write any words a user reads in a mockup or a hand-off - content language and voice, buttons, labels, errors, empty states, confirmations, numbers and dates, and the longest-string check
screen-mockup-html
Use when you draw screens as the design task's HTML mockup - ONE canvas document holding every screen and every variant side by side, the sanitizer-safe recipe, phone and wide frames, the states grid, static control states, and the loopback self-check with screenshots at 375, 768 and 1440 attached to the task
performance-awareness
How the performance score moves for your role. Use when the score context shows a declining trend, or before handing off work you have not self-checked against every criterion.
design-variants
Use when a screen design needs variants - how many, variants as side-by-side rows on the one canvas, what makes two variants genuinely different, recommending one, how the human's choice is read, and narrowing to the chosen one in revision
design-system-authoring
Use when you derive, change or extend a design system - where tokens live per stack, the DTCG token tree, role-based names for both themes, base vs layer vs drift, the DESIGN.md section order, the inventory format, the contrast check and the lint every proposal returns