Skip to content
Closed
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
413 changes: 413 additions & 0 deletions .claude/agents/ralph_bidder.md

Large diffs are not rendered by default.

440 changes: 440 additions & 0 deletions .claude/agents/ralph_broker.md

Large diffs are not rendered by default.

173 changes: 148 additions & 25 deletions .flox/env/manifest.lock
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,9 @@
"pulumi-python": {
"pkg-path": "pulumiPackages.pulumi-python"
},
"radon": {
"pkg-path": "python312Packages.radon"
},
"ruff": {
"pkg-path": "ruff",
"version": "0.14.7"
Expand All @@ -110,7 +113,7 @@
"pkg-path": "uv"
},
"vulture": {
"pkg-path": "python313Packages.vulture"
"pkg-path": "python312Packages.vulture"
},
"yamllint": {
"pkg-path": "yamllint"
Expand Down Expand Up @@ -3199,6 +3202,126 @@
"group": "toplevel",
"priority": 5
},
{
"attr_path": "python312Packages.radon",
"broken": false,
"derivation": "/nix/store/86lygqq0nlm3fnnsax8cnzh1n4cbvyk3-python3.12-radon-6.0.1.drv",
"description": "Various code metrics for Python code",
"install_id": "radon",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.12-radon-6.0.1",
"pname": "radon",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T02:55:40.103993Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "6.0.1",
"outputs_to_install": [
"out"
],
"outputs": {
"dist": "/nix/store/pg8rlshzwk6vz4jwgl4xjhzxm4gd4m98-python3.12-radon-6.0.1-dist",
"out": "/nix/store/b5d9nyg9z49qgldh3fr91dgavxf31wka-python3.12-radon-6.0.1"
},
"system": "aarch64-darwin",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "python312Packages.radon",
"broken": false,
"derivation": "/nix/store/ys8razjdw25ssl5wk2s9rch9n39xrsi4-python3.12-radon-6.0.1.drv",
"description": "Various code metrics for Python code",
"install_id": "radon",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.12-radon-6.0.1",
"pname": "radon",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:05:41.297827Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "6.0.1",
"outputs_to_install": [
"out"
],
"outputs": {
"dist": "/nix/store/3a8xr07irz30hj3nfs8jdy30ryg9n1xk-python3.12-radon-6.0.1-dist",
"out": "/nix/store/rcmddxivs40grapbf7k0xw3iv7dfy8yx-python3.12-radon-6.0.1"
},
"system": "aarch64-linux",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "python312Packages.radon",
"broken": false,
"derivation": "/nix/store/i7sdpvyblvw5hrklvgrg59m15z72bppy-python3.12-radon-6.0.1.drv",
"description": "Various code metrics for Python code",
"install_id": "radon",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.12-radon-6.0.1",
"pname": "radon",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:15:36.248613Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "6.0.1",
"outputs_to_install": [
"out"
],
"outputs": {
"dist": "/nix/store/pvqhrja5kbkc8gk8rcczkxwwg8pn7c7r-python3.12-radon-6.0.1-dist",
"out": "/nix/store/gdk5pdk3lhwrnxhqjk7bjiybsn4rpczc-python3.12-radon-6.0.1"
},
"system": "x86_64-darwin",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "python312Packages.radon",
"broken": false,
"derivation": "/nix/store/3knqk5vay8d94hq74xxqg3b1nnjxx3dx-python3.12-radon-6.0.1.drv",
"description": "Various code metrics for Python code",
"install_id": "radon",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.12-radon-6.0.1",
"pname": "radon",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:25:18.465806Z",
"stabilities": [
"unstable"
],
"unfree": false,
"version": "6.0.1",
"outputs_to_install": [
"out"
],
"outputs": {
"dist": "/nix/store/r8z5asd2r1whffvfhb8f5wf2amkichqz-python3.12-radon-6.0.1-dist",
"out": "/nix/store/1qmwv94p3ljxdvz1dbf6mq99lx9nq7y1-python3.12-radon-6.0.1"
},
"system": "x86_64-linux",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "ruff",
"broken": false,
Expand Down Expand Up @@ -3432,19 +3555,19 @@
"priority": 5
},
{
"attr_path": "python313Packages.vulture",
"attr_path": "python312Packages.vulture",
"broken": false,
"derivation": "/nix/store/6rp823v7s40fqscx1j8dp5m0m7v9vi4r-python3.13-vulture-2.14.drv",
"derivation": "/nix/store/9114gkd7g53hxhz7m1bylz9yd7fc426h-python3.12-vulture-2.14.drv",
"description": "Finds unused code in Python programs",
"install_id": "vulture",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.13-vulture-2.14",
"name": "python3.12-vulture-2.14",
"pname": "vulture",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T02:56:08.936314Z",
"scrape_date": "2025-12-07T02:55:44.875335Z",
"stabilities": [
"unstable"
],
Expand All @@ -3454,27 +3577,27 @@
"out"
],
"outputs": {
"dist": "/nix/store/jr2vfc6h5d2haplqmg0pjxli287ija62-python3.13-vulture-2.14-dist",
"out": "/nix/store/58qgn7q850qrimkw4gmxxbcd0yxzsmdf-python3.13-vulture-2.14"
"dist": "/nix/store/bdshb85zpxppz46pydjxkgclasq0yyri-python3.12-vulture-2.14-dist",
"out": "/nix/store/zhp5z4rk8xvgf80xw6jmh8f312qd954q-python3.12-vulture-2.14"
},
"system": "aarch64-darwin",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "python313Packages.vulture",
"attr_path": "python312Packages.vulture",
"broken": false,
"derivation": "/nix/store/fydfhidy6snq18gcrwkgmzs8byxyd8n5-python3.13-vulture-2.14.drv",
"derivation": "/nix/store/chp666kk074lyjdjhrszfmwrkksg685p-python3.12-vulture-2.14.drv",
"description": "Finds unused code in Python programs",
"install_id": "vulture",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.13-vulture-2.14",
"name": "python3.12-vulture-2.14",
"pname": "vulture",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:06:15.917900Z",
"scrape_date": "2025-12-07T03:05:47.101114Z",
"stabilities": [
"unstable"
],
Expand All @@ -3484,27 +3607,27 @@
"out"
],
"outputs": {
"dist": "/nix/store/r034gyxcdwwagh6jsfc72hybb3jxiai0-python3.13-vulture-2.14-dist",
"out": "/nix/store/7vr41jnwznkwlvskdi28c4k9brjcpwz4-python3.13-vulture-2.14"
"dist": "/nix/store/v2hl6w0zyi72lsz5gc89g0xxrpjmwmwv-python3.12-vulture-2.14-dist",
"out": "/nix/store/0l40s5a0n79m0dbwqv7am96hpswvs0d9-python3.12-vulture-2.14"
},
"system": "aarch64-linux",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "python313Packages.vulture",
"attr_path": "python312Packages.vulture",
"broken": false,
"derivation": "/nix/store/0hnax5inwn7swy0jfbpnlab1jdm9pgs8-python3.13-vulture-2.14.drv",
"derivation": "/nix/store/rrk2s4n9fbpclxawacrhs1h82br0kgn3-python3.12-vulture-2.14.drv",
"description": "Finds unused code in Python programs",
"install_id": "vulture",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.13-vulture-2.14",
"name": "python3.12-vulture-2.14",
"pname": "vulture",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:16:02.603893Z",
"scrape_date": "2025-12-07T03:15:40.617644Z",
"stabilities": [
"unstable"
],
Expand All @@ -3514,27 +3637,27 @@
"out"
],
"outputs": {
"dist": "/nix/store/8hds3dm0ha3figidiadrrw1qgf8dp4vh-python3.13-vulture-2.14-dist",
"out": "/nix/store/3yas5bqdwk3z7f0nrx68cc1lr5p6gg18-python3.13-vulture-2.14"
"dist": "/nix/store/1hm0s2yrw9f3h40kp1ijsqxb9n5s8q7q-python3.12-vulture-2.14-dist",
"out": "/nix/store/va0zb5zab6xnkjhk15k0a69p62i20xq7-python3.12-vulture-2.14"
},
"system": "x86_64-darwin",
"group": "toplevel",
"priority": 5
},
{
"attr_path": "python313Packages.vulture",
"attr_path": "python312Packages.vulture",
"broken": false,
"derivation": "/nix/store/k29xbyn1in0wlypzj8976jpmp3fk8dk0-python3.13-vulture-2.14.drv",
"derivation": "/nix/store/2pa24ibjdcsxb5nh1zxbx1i80mvmhj6p-python3.12-vulture-2.14.drv",
"description": "Finds unused code in Python programs",
"install_id": "vulture",
"license": "MIT",
"locked_url": "https://github.com/flox/nixpkgs?rev=f61125a668a320878494449750330ca58b78c557",
"name": "python3.13-vulture-2.14",
"name": "python3.12-vulture-2.14",
"pname": "vulture",
"rev": "f61125a668a320878494449750330ca58b78c557",
"rev_count": 907002,
"rev_date": "2025-12-05T15:54:32Z",
"scrape_date": "2025-12-07T03:25:52.611390Z",
"scrape_date": "2025-12-07T03:25:24.252039Z",
"stabilities": [
"unstable"
],
Expand All @@ -3544,8 +3667,8 @@
"out"
],
"outputs": {
"dist": "/nix/store/52a4fn7fjp49vfwjrp1wn78qxgg5d0h1-python3.13-vulture-2.14-dist",
"out": "/nix/store/pq7bmragdlpm8p5qb2k3qhk9qrpx24k5-python3.13-vulture-2.14"
"dist": "/nix/store/wf2fjr0w25d4lkxl0d21v23kllbl81gk-python3.12-vulture-2.14-dist",
"out": "/nix/store/nam3pwdp9wvaqyjzj5gfdii3dcq7708w-python3.12-vulture-2.14"
},
"system": "x86_64-linux",
"group": "toplevel",
Expand Down
3 changes: 2 additions & 1 deletion .flox/env/manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pulumi-python.pkg-path = "pulumiPackages.pulumi-python"
ruff.pkg-path = "ruff"
ruff.version = "0.14.7"
uv.pkg-path = "uv"
vulture.pkg-path = "python313Packages.vulture"
vulture.pkg-path = "python312Packages.vulture"
yamllint.pkg-path = "yamllint"
nushell.pkg-path = "nushell"
fselect.pkg-path = "fselect"
Expand Down Expand Up @@ -42,6 +42,7 @@ pkgconf.pkg-path = "pkgconf"
direnv.pkg-path = "direnv"
jq.pkg-path = "jq"
markdownlint-cli.pkg-path = "markdownlint-cli"
radon.pkg-path = "python312Packages.radon"

[hook]
on-activate = '''
Expand Down
46 changes: 12 additions & 34 deletions .github/ISSUE_TEMPLATE/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,43 +1,21 @@
---
name: Spec
about: Create a specification for Ralph autonomous implementation
name: Issue
about: Create an issue
title: ''
labels: ["feature", "in-refinement"]
projects: ["oscmcompany/1"]

---
# Overview

# Description

<Context: why this work matters, background needed>

**Goal:** <Single clear statement of what we're trying to achieve>

## Requirements

### Category 1

- [ ] Requirement (testable/verifiable)
- [ ] Another requirement

### Category 2

- [ ] Requirement
- [ ] Requirement

## Open Questions

- [ ] Question that needs resolution before ready?
- [ ] Another question?

## Decisions

- [ ] **Decision name:** Choice made and rationale
## Context

## Specification
<!--
Describe the bug, feature, or task.
-->

<Detailed design, diagrams, formats - filled in as decisions are made>
## Changes

## Implementation Notes
<!--
Provide solution(s) or recommendation(s) as bullet points.
Provide specific action items as checkboxes.
-->

<Filled after implementation - gotchas, learnings>
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,7 @@ data/
**/model.tar.gz
**/*.safetensor
**/*.json
notes.md
etc/
./ralph/marketplace.json
Comment on lines 23 to +24
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.

Paths should not start with ./ in .gitignore. Leading ./ is treated literally, so these patterns won't match files in .ralph/.

Suggested change
etc/
./ralph/marketplace.json
.ralph/marketplace.json
.ralph/.state_version
Prompt To Fix With AI
This is a comment left during a code review.
Path: .gitignore
Line: 23:24

Comment:
Paths should not start with `./` in `.gitignore`. Leading `./` is treated literally, so these patterns won't match files in `.ralph/`.

```suggestion
.ralph/marketplace.json
.ralph/.state_version
```

How can I resolve this? If you propose a fix, please make it concise.

./ralph/.state_version
.scratchpad/
Comment on lines 22 to +26
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 | 🟠 Major

Unignore tracked marketplace JSON files.

Line 22 ignores all JSON, which will also ignore .ralph/config.json and .ralph/events/*.json that the marketplace docs say should be tracked. This breaks event history and config versioning.

🛠️ Proposed fix
 **/*.json
+!.ralph/config.json
+!.ralph/events/*.json
 ./ralph/marketplace.json
 ./ralph/.state_version
 .scratchpad/
🤖 Prompt for AI Agents
In @.gitignore around lines 22 - 26, The current broad ignore "**/*.json" hides
tracked files like .ralph/config.json and .ralph/events/*.json; instead either
remove the global "**/*.json" rule and add targeted ignore patterns for only the
generated JSON files, or keep the global rule but add negation entries to
unignore the tracked files (e.g. add !.ralph/config.json and
!.ralph/events/*.json and any other tracked .ralph/*.json you need), ensuring
.ralph/marketplace.json and .ralph/events/*.json remain tracked.

4 changes: 4 additions & 0 deletions .markdownlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ MD033:
- br
- details
- summary
Comment thread
forstmeier marked this conversation as resolved.
# Custom XML-like tag used by Ralph workflow (maskfile.md) to signal task completion
- promise
# MD041 - First line in file should be top-level heading
MD041: false
MD022:
lines_below: 1
lines_above: 1
Loading