Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
051689a
docs: add descriptions to @example attributes
claude Jan 2, 2026
e6ec257
feat: add examples-update command
claude Jan 2, 2026
dca7305
chore: format
maxim-uvarov Jan 2, 2026
2d0289d
test: add AST behavior case for semicolon stripping
claude Jan 5, 2026
766dc1d
test: add AST behavior case for block boundaries
claude Jan 5, 2026
e40a56e
test: add AST behavior case for attribute detection
claude Jan 5, 2026
20ea26f
test: add AST behavior case for def parsing
claude Jan 5, 2026
d35148a
feat: add ast-complete command for gap-filling AST output
claude Jan 5, 2026
db5b591
feat: add tests for ast-complete
maxim-uvarov Jan 5, 2026
b24c2a8
docs: document export convention for commands
claude Jan 5, 2026
bf5d280
chore: remove todo/ from gitignore
maxim-uvarov Jan 5, 2026
8046b00
add todos
maxim-uvarov Jan 5, 2026
4388451
refactor: rewrite find-examples using AST parsing
claude Jan 5, 2026
b18e59d
fix: improve examples-update reliability
claude Jan 5, 2026
a7954ce
test: add unit tests for examples-update
claude Jan 5, 2026
8e83e0b
docs: add AST behavior test cases for strings, operators, variables
claude Jan 5, 2026
7d46324
docs: update todo files with completion status
claude Jan 5, 2026
5c6a2c1
fix: export find-examples and execute-example for testing
claude Jan 5, 2026
6627bab
refactor: simplify ast-complete with sentinel boundaries
claude Jan 5, 2026
f357bbe
test: update embeds-update fixture (random int output)
claude Jan 5, 2026
db31b54
docs: clarify test command usage in CLAUDE.md
claude Jan 5, 2026
9e5fbb8
refactor: simplify ast-complete gap detection logic
claude Jan 5, 2026
962e7d0
refactor: use ast-complete in find-examples for simpler attribute det…
claude Jan 5, 2026
73d5ff7
feat: add split-statements command built on ast-complete
claude Jan 5, 2026
300b40d
refactor: use split-statements in list-module-commands for better sco…
claude Jan 5, 2026
01b6c1b
refactor: use ast-complete for attribute detection in list-module-com…
claude Jan 5, 2026
bd088a8
docs: add AST tooling summary and future work todo
maxim-uvarov Jan 5, 2026
658b813
docs: add section on documenting ast --json with test cases
claude Jan 5, 2026
d449c5b
test: add ast --json output structure documentation
claude Jan 5, 2026
0936576
docs: document span extraction methods comparison (bytes at vs str su…
claude Jan 5, 2026
b669daf
docs: document ast --json advantages for history command parsing
claude Jan 6, 2026
b27885f
docs: add todo for extract-pipelines command using ast --json
claude Jan 6, 2026
58b87d6
fix: use cross-platform temp path in tests
claude Jan 10, 2026
edbb047
fix: make example tests order-independent
claude Jan 10, 2026
541295b
fix: sort integration test output for cross-platform consistency
claude Jan 10, 2026
a65f027
fix: normalize CRLF in list-module-commands for Windows
claude Jan 10, 2026
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
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
md_backups
zzz_md_backups
.claude/
todo/
30 changes: 16 additions & 14 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,31 +12,32 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Commands

```bash
# Run all tests (unit + integration)
# Run all tests - ALWAYS use this command for testing
nu toolkit.nu test

# Run unit tests only (uses nutest framework)
nu toolkit.nu test-unit

# Run integration tests only
nu toolkit.nu test-integration
# Update integration test fixtures when output changes
nu toolkit.nu test --update

# Release (bumps version in nupm.nuon and README.md, commits, tags, pushes)
nu toolkit.nu release # patch bump
nu toolkit.nu release --minor # minor bump
nu toolkit.nu release --major # major bump
```

**Important**: Always use `nu toolkit.nu test` (not `test-unit` or `test-integration` separately). The combined command provides proper test output and summary.

## Architecture

### Module Structure

```
dotnu/
├── mod.nu # Public API exports (13 commands)
└── commands.nu # All implementation (~800 lines)
├── mod.nu # Public API exports (selective)
└── commands.nu # All implementation (all commands exported)
```

**Export convention**: All commands in `commands.nu` are exported by default (for internal use, testing, and development). The public API is managed through `mod.nu`, which selectively re-exports only the user-facing commands. To add a command to the public API, add it to the list in `mod.nu`.

**mod.nu** exports these public commands:
- `dependencies` - Analyze command call chains
- `extract-command-code` - Extract command with its dependencies
Expand All @@ -59,14 +60,14 @@ dotnu/

```
tests/
├── test_commands.nu # Unit tests (~250 cases, nutest framework)
├── test_commands.nu # Unit tests (nutest framework)
├── assets/ # Test fixtures
│ ├── b/ # Module dependency examples
│ └── module-say/ # Real-world module example
└── output-yaml/ # Integration test outputs
```

Unit tests use `@test` decorator and `assert` from `std/testing`.
Unit tests use `@test` decorator. Integration tests compare command output against fixture files.

## Dependencies

Expand All @@ -76,7 +77,8 @@ Unit tests use `@test` decorator and `assert` from `std/testing`.

## Conventions

- Public commands: kebab-case, exported in mod.nu
- Internal helpers: kebab-case, not exported
- Test detection: commands named `test*` or in `test*.nu` files
- Documentation: `@example` decorators with `--result` for expected output
- **Naming**: All commands use kebab-case
- **Exports**: All commands in `commands.nu` are exported; `mod.nu` controls public API
- **Internal commands**: Exported from `commands.nu` but not listed in `mod.nu`
- **Test detection**: Commands named `test*` or in `test*.nu` files
- **Documentation**: `@example` decorators with `--result` for expected output
Loading