You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+137-3Lines changed: 137 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -2,6 +2,15 @@
2
2
3
3
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
4
5
+
## CRITICAL REQUIREMENTS
6
+
7
+
### Test Success
8
+
- ALL tests MUST pass for code to be considered complete and working
9
+
- Never describe code as "working as expected" if there are ANY failing tests
10
+
- Even if specific feature tests pass, failing tests elsewhere indicate broken functionality
11
+
- Changes that break existing tests must be fixed before considering implementation complete
12
+
- A successful implementation must pass linting, type checking, AND all existing tests
13
+
5
14
## Project Overview
6
15
7
16
libvcs is a lite, typed Python tool for:
@@ -10,12 +19,12 @@ libvcs is a lite, typed Python tool for:
10
19
- Synchronizing repositories locally
11
20
- Creating pytest fixtures for testing with temporary repositories
12
21
13
-
The library powers [vcspull](https://www.github.com/vcs-python/vcspull/).
22
+
The library powers [vcspull](https://www.github.com/vcs-python/vcspull/), a tool for managing and synchronizing multiple git, svn, and mercurial repositories.
14
23
15
24
## Development Environment
16
25
17
26
This project uses:
18
-
- Python 3.9+
27
+
- Python 3.9+
19
28
-[uv](https://github.com/astral-sh/uv) for dependency management
20
29
-[ruff](https://github.com/astral-sh/ruff) for linting and formatting
21
30
-[mypy](https://github.com/python/mypy) for type checking
@@ -67,12 +76,29 @@ make ruff_format
67
76
# or directly
68
77
uv run ruff format .
69
78
79
+
# Run ruff linting with auto-fixes
80
+
uv run ruff check . --fix --show-fixes
81
+
70
82
# Run mypy for type checking
71
83
make mypy
72
84
# or directly
73
85
uv run mypy src tests
86
+
87
+
# Watch mode for linting (using entr)
88
+
make watch_ruff
89
+
make watch_mypy
74
90
```
75
91
92
+
### Development Workflow
93
+
94
+
Follow this workflow for code changes:
95
+
96
+
1.**Format First**: `uv run ruff format .`
97
+
2.**Run Tests**: `uv run pytest`
98
+
3.**Run Linting**: `uv run ruff check . --fix --show-fixes`
99
+
4.**Check Types**: `uv run mypy`
100
+
5.**Verify Tests Again**: `uv run pytest`
101
+
76
102
### Documentation
77
103
78
104
```bash
@@ -119,7 +145,115 @@ libvcs uses pytest for testing with many custom fixtures. The pytest plugin (`py
119
145
-`create_git_remote_repo`: Creates a git repository for testing
120
146
-`create_hg_remote_repo`: Creates a Mercurial repository for testing
121
147
-`create_svn_remote_repo`: Creates a Subversion repository for testing
0 commit comments