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
123 changes: 122 additions & 1 deletion .flox/env/manifest.lock
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@
"x86_64-darwin"
]
},
"markdownlint-cli": {
"pkg-path": "markdownlint-cli"
},
"mask": {
"pkg-path": "mask"
},
Expand Down Expand Up @@ -2294,6 +2297,8 @@
"unfree": false,
"version": "109.100.2",
"outputs_to_install": [
"out",
"out",
"out",
"out",
"out",
Expand Down Expand Up @@ -2338,6 +2343,122 @@
"group": "toplevel",
"priority": 5
},
{
"attr_path": "markdownlint-cli",
"broken": false,
"derivation": "/nix/store/ska63kj9k8fzi9kf94g75yc0yssmg9vz-markdownlint-cli-0.46.0.drv",
"description": "Command line interface for MarkdownLint",
"install_id": "markdownlint-cli",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "markdownlint-cli-0.46.0",
"pname": "markdownlint-cli",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T02:55:06.356081Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "0.46.0",
"outputs_to_install": [
"out"
],
"outputs": {
"out": "/nix/store/8b3n1jrqvyfwgsxpshs7kd6krnlrfmay-markdownlint-cli-0.46.0"
},
"system": "aarch64-darwin",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "markdownlint-cli",
"broken": false,
"derivation": "/nix/store/9rgnxv2s3g3ai56rj0j78fl8najk6p1p-markdownlint-cli-0.46.0.drv",
"description": "Command line interface for MarkdownLint",
"install_id": "markdownlint-cli",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "markdownlint-cli-0.46.0",
"pname": "markdownlint-cli",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:04:56.530102Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "0.46.0",
"outputs_to_install": [
"out"
],
"outputs": {
"out": "/nix/store/4hgvqd0ciamhhvjksg7f431x1y6w2760-markdownlint-cli-0.46.0"
},
"system": "aarch64-linux",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "markdownlint-cli",
"broken": false,
"derivation": "/nix/store/mag3vdw3bwyazxj80hryc1g27gaagfby-markdownlint-cli-0.46.0.drv",
"description": "Command line interface for MarkdownLint",
"install_id": "markdownlint-cli",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "markdownlint-cli-0.46.0",
"pname": "markdownlint-cli",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:15:04.594270Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "0.46.0",
"outputs_to_install": [
"out"
],
"outputs": {
"out": "/nix/store/h6dcndmvjrj3ycjlb7bnmx0m1vys5gmx-markdownlint-cli-0.46.0"
},
"system": "x86_64-darwin",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "markdownlint-cli",
"broken": false,
"derivation": "/nix/store/wgpr1l9ldw7rna2ak4h9libr0fhkq51w-markdownlint-cli-0.46.0.drv",
"description": "Command line interface for MarkdownLint",
"install_id": "markdownlint-cli",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "markdownlint-cli-0.46.0",
"pname": "markdownlint-cli",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:24:33.373035Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "0.46.0",
"outputs_to_install": [
"out"
],
"outputs": {
"out": "/nix/store/3rl4jg227zfb9k67q107z6wjxpzx1n67-markdownlint-cli-0.46.0"
},
"system": "x86_64-linux",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "mask",
"broken": false,
Expand Down Expand Up @@ -3551,4 +3672,4 @@
"priority": 5
}
]
}
}
1 change: 1 addition & 0 deletions .flox/env/manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ openssl.pkg-path = "openssl"
pkgconf.pkg-path = "pkgconf"
direnv.pkg-path = "direnv"
jq.pkg-path = "jq"
markdownlint-cli.pkg-path = "markdownlint-cli"
Comment thread
forstmeier marked this conversation as resolved.

[hook]
on-activate = '''
Expand Down
File renamed without changes.
20 changes: 20 additions & 0 deletions .markdownlint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Markdownlint configuration
# See https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md

# MD013 - Line length
MD013:
line_length: 120
code_blocks: false
tables: false
# MD024 - Multiple headings with same content
MD024:
siblings_only: true
# MD033 - Inline HTML
MD033:
allowed_elements:
- br
- details
- summary
- promise
# MD041 - First line in file should be top-level heading
MD041: false
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,12 @@ repos:
- rust
language: system
fail_fast: true
- id: markdown
name: Check all Markdown code
entry: mask development markdown all
pass_filenames: false
types:
- file
- markdown
language: system
fail_fast: true
25 changes: 16 additions & 9 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# claude
# claude
Comment thread
forstmeier marked this conversation as resolved.

> Agentic tooling context

Expand All @@ -24,11 +24,13 @@
- Introduce new dependencies only after approval
- Include type hints on all Python function parameters and return types
- Rust servers primarily use [Axum](https://docs.rs/axum/latest/axum/)
- Use Polars for [Python](https://docs.pola.rs/api/python/stable/reference/index.html) and [Rust](https://docs.rs/polars/latest/polars/) dataframes
- Use Polars for [Python](https://docs.pola.rs/api/python/stable/reference/index.html) and
[Rust](https://docs.rs/polars/latest/polars/) dataframes
- Use `typing` module `cast` function for `tinygrad` method outputs when necessary with union types
- Write `pytest` functions for Python tests
- Ensure Rust and Python automated test suites achieve at least 90% line or statement coverage per service or library
- Exclude generated code, third‑party code, tooling boilerplate, and anything explicitly excluded in this repository from test coverage calculations
- Exclude generated code, third-party code, tooling boilerplate, and anything explicitly excluded in this repository
from test coverage calculations
- Check that DataFrame definitions in both Python and Rust match expected schemas defined in `pandera` resources
- When adding `ValueError` exceptions, create a separate variable called `message` to hold the error string before raising
- When logging after an exception, use `logger.exception()` to capture stack trace with the `structlog` package
Expand All @@ -55,28 +57,30 @@ Ralph is an autonomous development loop for implementing GitHub issue specs.
- `mask ralph ready <issue_number>` - Mark a spec as ready for implementation
- `mask ralph loop <issue_number>` - Run autonomous loop on a ready spec
- `mask ralph backlog` - Review open issues for duplicates, overlaps, and implementation status
- `mask ralph pr [--pr <number>]` - Process PR review feedback interactively
- `mask ralph pull-request [pull_request_number]` - Process pull request review feedback interactively
Comment thread
forstmeier marked this conversation as resolved.

### Labels

**Status labels:**

- `in-refinement` - Spec being built or discussed
- `ready` - Spec complete, ready for implementation
- `in-progress` - Work actively in progress
- `attention-needed` - Blocked or needs human intervention
- `backlog-review` - Backlog review tracking issue

**Actor label:**

- `ralph` - Ralph is actively working on this (remove to hand off to human)

### Workflow

1. Create or refine spec: `mask ralph spec` or `mask ralph spec <issue_number>`
2. When spec is complete, mark as ready: `mask ralph ready <issue_number>`
3. Run autonomous loop: `mask ralph loop <issue_number>`
4. Loop assigns the issue and resulting PR to the current GitHub user
5. Loop creates PR with `Closes #<issue_number>` on completion
6. PR merge auto-closes issue
4. Loop assigns the issue and resulting pull request to the current GitHub user
5. Loop creates pull request with `Closes #<issue_number>` on completion
6. Pull request merge auto-closes issue

### Context Rotation

Expand All @@ -90,14 +94,17 @@ Output `<promise>COMPLETE</promise>` when all requirement checkboxes are checked

### Commit as Verification

After implementing requirements, ALWAYS attempt `git commit`. The commit triggers pre-commit hooks which run all tests/linting. This IS the verification step:
After implementing requirements, ALWAYS attempt `git commit`. The commit triggers pre-commit hooks which
run all tests/linting. This IS the verification step:

- If commit fails → fix issues and retry
- If commit succeeds → requirement is verified, check it off in issue
- Do not skip this step or run tests separately

### Ralph Learnings

Document failure patterns here after Ralph loops to prevent recurrence. Periodically compact this section by merging similar learnings and removing entries that have been incorporated into the workflow or specs above.
Document failure patterns here after Ralph loops to prevent recurrence. Periodically compact this section
by merging similar learnings and removing entries that have been incorporated into the workflow or specs above.

#### 2026-01-26: #723 (spec: commit-as-verification not explicit)

Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# fund
# fund

> The open source capital management company

<!-- markdownlint-disable-next-line MD013 -->
[![Python code checks](https://github.com/oscmcompany/fund/actions/workflows/run_python_code_checks.yaml/badge.svg)](https://github.com/oscmcompany/fund/actions/workflows/run_python_code_checks.yaml) [![Rust code checks](https://github.com/oscmcompany/fund/actions/workflows/run_rust_code_checks.yaml/badge.svg)](https://github.com/oscmcompany/fund/actions/workflows/run_rust_code_checks.yaml)

## About
Expand Down Expand Up @@ -42,4 +43,5 @@ An unordered and non-exhaustive list we work towards:

### Links

Check out [our tasks](https://github.com/orgs/oscmcompany/projects/1) to see what we're working on or ping [either](https://x.com/forstmeier) of [us](https://x.com/hyperpriorai) for anything else.
Check out [our tasks](https://github.com/orgs/oscmcompany/projects/1) to see what we're working on or
ping [either](https://x.com/forstmeier) of [us](https://x.com/hyperpriorai) for anything else.
Loading