Skip to content
Merged
Show file tree
Hide file tree
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
14 changes: 12 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,22 @@ cargo test --test kittest --all-features # UI integration tests (egui_
cargo test --test e2e --all-features # End-to-end tests
```


Test locations:
- Unit tests: inline in source files (`#[test]`)
- UI integration: `tests/kittest/`
- E2E: `tests/e2e/`

Always run `cargo clippy` and `cargo +nightly fmt` when finalizing your work.


### Manual test scenarios

You MUST identify manual tests needed for the changes and write a manual test scenarios. Use the `claudius:qa-engineer` agent if available.
Skip the manual test file only for non-functional changes (CI, docs, formatting, pure refactoring) — state why in the PR description.
Put tests in docs directory, as described in "Documentation" section below. Reference the file in the PR description under "Test plan".
Before creating a PR, re-review test scenarios and update them if needed.
Comment on lines +40 to +45

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Tighten manual-test wording + agent name consistency.

Minor doc polish: the sentence has a grammar error, and the agent name doesn’t match the PR objective (“qa-engineer”). Consider aligning the name and fixing the wording.

📝 Suggested edit
-You MUST identify manual tests needed for the changes and write a manual test scenarios. Use the `claudius:qa-engineer` agent if available.
+You MUST identify manual tests needed for the changes and write manual test scenarios. Use the `qa-engineer` agent if available.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@CLAUDE.md` around lines 40 - 45, Fix the minor grammar issue and make the
agent name consistent in the "Manual test scenarios" section: reword the first
sentence to "You MUST identify manual tests needed for the changes and write
manual test scenarios; use the claudius:qa-engineer agent if available." and
replace any occurrence of "qa-engineer" alone with "claudius:qa-engineer"; also
tighten the skip instruction to read "Skip the manual test file only for
non-functional changes (CI, docs, formatting, pure refactoring) — state why in
the PR description." to improve clarity while editing the CLAUDE.md section
header "Manual test scenarios".


## CI: Safe Cargo Wrapper

In GitHub Actions (Claude Code workflow), use `scripts/safe-cargo.sh` instead of `cargo` directly. This wrapper strips CI secrets from the environment before running cargo, preventing build scripts from accessing credentials.
Expand All @@ -46,13 +55,14 @@ scripts/safe-cargo.sh clippy --all-features --all-targets -- -D warnings
scripts/safe-cargo.sh +nightly fmt --all
```


## Architecture Overview

**Dash Evo Tool** is a cross-platform GUI application (Rust + egui) for interacting with Dash Evolution. It enables DPNS username registration, contest voting, state transition viewing, wallet management, and identity operations across Mainnet/Testnet/Devnet.

## Documentation

- **docs/ai-design** should contain architecture and technical design files, grouped in subdirectories prefixed with ISO-formatted date
- **docs/ai-design** should contain architecture, technical design and manual testing scenarios files, grouped in subdirectories prefixed with ISO-formatted date
- end-user documentation is in a separate repo: https://github.com/dashpay/docs/tree/HEAD/docs/user/network/dash-evo-tool , published at https://docs.dash.org/en/stable/docs/user/network/dash-evo-tool/

### Core Module Structure
Expand Down Expand Up @@ -129,7 +139,7 @@ Screens hold `Arc<AppContext>` and manage their own UI state.

## UI Component Pattern

Components follow a lazy initialization pattern (see `doc/COMPONENT_DESIGN_PATTERN.md`):
Components follow a lazy initialization pattern (see `docs/COMPONENT_DESIGN_PATTERN.md`):

```rust
struct MyScreen {
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion src/ui/components/component_trait.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ pub trait ComponentResponse: Clone {
///
/// # See also
///
/// See `doc/COMPONENT_DESIGN_PATTERN.md` for detailed design pattern documentation.
/// See `docs/COMPONENT_DESIGN_PATTERN.md` for detailed design pattern documentation.
pub trait Component {
/// The domain object type that this component is designed to handle.
/// This type represents the data this component is designed to handle,
Expand Down
Loading