Skip to content

Commit 9349df4

Browse files
lufftwclaude
andcommitted
docs: Update documentation to reflect current codebase state
- solution-contract.md: Fix outdated parsing example (split -> json.loads) - architecture/README.md: Correct package paths (packages/ -> src/) - packages-overview.md: Correct directory scope (packages/ -> src/) - runner/README.md: Fix Python version requirement (3.10+ -> 3.11) - testing.md: Update pytest markers to reflect actual usage - codegen/README.md: Add missing modules (tiered_solve_generator, problem_support, catalog/) and tiered solve_mode option Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 31806bd commit 9349df4

6 files changed

Lines changed: 30 additions & 17 deletions

File tree

docs/architecture/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ The project follows a clean dependency hierarchy:
3636
| Module | Location | Role | Documentation |
3737
|--------|----------|------|---------------|
3838
| **runner** | `runner/` | Test execution engine | [Runner Spec](../runner/README.md) |
39-
| **codegen** | `packages/codegen/` | Solution skeleton generator | [CodeGen Spec](../packages/codegen/README.md) |
40-
| **leetcode_datasource** | `packages/leetcode_datasource/` | LeetCode data layer | [DataSource Spec](../packages/leetcode_datasource/README.md) |
41-
| **practice_workspace** | `packages/practice_workspace/` | Practice file management | [Workspace Spec](../packages/practice_workspace/README.md) |
39+
| **codegen** | `src/codegen/` | Solution skeleton generator | [CodeGen Spec](../packages/codegen/README.md) |
40+
| **leetcode_datasource** | `src/leetcode_datasource/` | LeetCode data layer | [DataSource Spec](../packages/leetcode_datasource/README.md) |
41+
| **practice_workspace** | `src/practice_workspace/` | Practice file management | [Workspace Spec](../packages/practice_workspace/README.md) |
4242

4343
## Design Principles
4444

docs/architecture/packages-overview.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
# Packages Architecture Overview
22

3-
> **Status**: Canonical Reference
4-
> **Scope**: `packages/` directory architecture
3+
> **Status**: Canonical Reference
4+
> **Scope**: `src/` directory architecture
55
6-
This document provides an overview of the `packages/` directory structure and the relationships between packages.
6+
This document provides an overview of the `src/` directory structure and the relationships between packages.
77

88
---
99

1010
## Directory Structure
1111

1212
```
13-
packages/
14-
├── __init__.py
13+
src/
1514
├── codegen/ # Solution skeleton generator (Stateless)
1615
│ ├── core/ # Shared core components
1716
│ ├── reference/ # Reference skeleton generation

docs/contracts/solution-contract.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,14 @@ class Solution:
7777

7878
def solve():
7979
import sys
80+
import json
8081
lines = sys.stdin.read().strip().split('\n')
81-
nums = list(map(int, lines[0].split(',')))
82+
nums = json.loads(lines[0])
8283
target = int(lines[1])
83-
84+
8485
solver = get_solver(SOLUTIONS)
8586
result = solver.twoSum(nums, target)
86-
print(result)
87+
print(json.dumps(result, separators=(',', ':')))
8788

8889
if __name__ == "__main__":
8990
solve()

docs/contributors/testing.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,13 +218,12 @@ Test results must be deterministic, unaffected by time, environment, or other fa
218218
## Test Markers
219219

220220
```python
221-
@pytest.mark.unit # Unit tests
222221
@pytest.mark.integration # Integration tests
223222
@pytest.mark.edge_case # Edge case tests
224-
@pytest.mark.slow # Slow tests
225-
@pytest.mark.requires_big_o # Requires big-O package
226223
```
227224

225+
> **Note:** Currently only `integration` and `edge_case` markers are actively used in the test suite. The `edge_case` marker is defined in `pytest.ini`.
226+
228227
---
229228

230229
## Test Directory Structure

docs/packages/codegen/README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ python -m codegen new <problem_id> --dry-run
142142
| Flag | Description |
143143
|------|-------------|
144144
| `--with-tests` | Generate `.in`/`.out` files from LeetCode examples |
145-
| `--solve-mode` | `placeholder` (default) or `infer` (auto-generate) |
145+
| `--solve-mode` | `placeholder` (default), `infer` (auto-generate), or `tiered` (for Tier-1/1.5 problems) |
146146
| `--force` | Overwrite existing test files |
147147
| `--dry-run` | Preview without writing files |
148148
| `--header-level` | `minimal`, `standard`, or `full` |
@@ -417,7 +417,7 @@ Total files: 218
417417
|---------|---------|-------------|
418418
| `header.level` | `"full"` | Header detail: `minimal`, `standard`, `full` |
419419
| `helpers.mode` | `"inline"` | Helper emit: `inline`, `import`, `none` |
420-
| `skeleton.solve_mode` | `"placeholder"` | solve() mode: `placeholder`, `infer` |
420+
| `skeleton.solve_mode` | `"placeholder"` | solve() mode: `placeholder`, `infer`, `tiered` |
421421
| `practice.multi_solution_mode` | `"single"` | Practice mode: `single`, `all` |
422422

423423
### Priority Order
@@ -543,7 +543,11 @@ codegen/
543543
│ ├── io_schema.py # IO format inference
544544
│ ├── example_parser.py # HTML example extraction
545545
│ ├── solve_generator.py # solve() auto-generation
546+
│ ├── tiered_solve_generator.py # Tiered solve() for Tier-1/1.5 problems
547+
│ ├── problem_support.py # Problem-specific config loading
546548
│ ├── test_generator.py # Test file generation
549+
│ ├── catalog/ # Problem catalog utilities
550+
│ │ └── __init__.py
547551
│ └── helpers/
548552
│ ├── __init__.py
549553
│ ├── catalog.py # Canonical helper definitions
@@ -557,3 +561,13 @@ codegen/
557561
├── generator.py # Practice skeleton generation
558562
└── reuse.py # Reuse from reference
559563
```
564+
565+
### Tiered Solve Generation
566+
567+
For problems involving complex types (TreeNode, ListNode), use `--solve-mode tiered`:
568+
569+
```bash
570+
python -m codegen new 104 --solve-mode tiered
571+
```
572+
573+
This generates solve() functions with codec support for serialization/deserialization of complex types. See [Problem Support Boundary](../../contracts/problem-support-boundary.md) for tier definitions.

docs/runner/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ python runner/test_runner.py 0023 --all --benchmark
416416

417417
### Required
418418

419-
- Python 3.10+
419+
- Python 3.11 (matching LeetCode official environment)
420420
- Solution files in `solutions/`
421421
- Test files in `tests/` (or use generators)
422422

0 commit comments

Comments
 (0)