Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ See `ARCHITECTURE.md` for the package map, `docs/architecture.md` for detail, an

## Repository & workflow

- **Active branch:** `feature-FullAutoS0A` (feature branch; PRs target `master`). This repo is one of several checked out under the `DNA-PAINT-FullAutomation` workspace — see the standing pointers below.
- **Branching:** dev branch `develop`; release path `develop` → `master` (tag on `master`). Work each task on its own feature branch and PR per the **Branch map** in the work-order briefs (see standing pointers). Don't pin the current branch here — check the tracker's branch-state note or `git`; a pinned branch is what goes stale. This repo is one of several checked out under the `DNA-PAINT-FullAutomation` workspace.
- **Versioning:** driven by `setuptools-scm` from the latest reachable **git tag** (single source of truth — `pyproject.toml` has `dynamic = ["version"]`, no static number). At build/install time scm writes the resolved value into `PycroFlow/_version.py` (git-ignored, generated); `PycroFlow.__init__` imports it (`from ._version import version`), falling back to `importlib.metadata` then `"0.0.0"` in an uninstalled source tree. `[tool.setuptools_scm]` sets `fallback_version` for checkouts with no reachable tag. To release, create an annotated `vX.Y.Z` git tag — do **not** edit a version string.
- **Changelog:** keep `CHANGELOG.md` (Keep a Changelog format, SemVer) current — add an entry under the `[Unreleased]` heading in every PR that changes behaviour, and promote `[Unreleased]` to a dated, version-stamped section when you cut a release tag.

Expand Down Expand Up @@ -49,6 +49,15 @@ All metadata, dependencies, and build config live in `pyproject.toml` (canonical
upstream `picasso` package.
- Test coverage requirement: 80%

## Working defaults (how to behave in a session)

In-session habits that complement the gates: the STOP-GATE and PR gates govern *when* and *where* to build; these govern *how*.

- **Think before coding.** State your assumptions; if the brief is ambiguous or a simpler approach exists, say so and ask — don't pick silently.
- **Minimal, necessary change.** No speculative abstraction, configurability, or error-handling for cases that can't occur. Every changed line should trace to the work order.
- **Surgical diffs.** Match surrounding style; don't refactor or reformat untouched code, and don't delete pre-existing dead code — mention it instead. Remove only the orphans (imports/vars) your own change creates.
- **Goal-driven.** Turn the brief's ACCEPTANCE into a check you can actually run, and verify it before opening the PR (hosted CI lint + unit is the required merge gate).

## Testing Structure

### Run all tests
Expand Down
Loading