the signals and their derived score are provisional and subject to change.
validate manually before sharing.
21d5ce7d0c67f121b4b21e3367506aa229031671ccad27952f3e1 month agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>5f468d206c2e1 month agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>8aa35b4034d31 month agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>c4b0a9ad851b1 month agoClaude-Session: https://claude.ai/code/session_01HMd4wetGWCmc1aGwZSf9pJea25ee6750701 month agoClaude-Session: https://claude.ai/code/session_015Gs8cprDRCJjTww363fUaM19ee24938ddc1 month agoClaude-Session: https://claude.ai/code/session_015Gs8cprDRCJjTww363fUaM29ff2f82dd401 month agoClaude-Session: https://claude.ai/code/session_015Gs8cprDRCJjTww363fUaM628c20abe8ee1 month agoClaude-Session: https://claude.ai/code/session_015Gs8cprDRCJjTww363fUaM50f857c987ae1 month agoClaude-Session: https://claude.ai/code/session_015Gs8cprDRCJjTww363fUaM60ed7e47812f2 months agoClaude-Session: https://claude.ai/code/session_01D8zwbC12ZSPD6VZyzM61rN78d1b7f6665c2 months agoClaude-Session: https://claude.ai/code/session_01D8zwbC12ZSPD6VZyzM61rN4f622c9683532 months agoClaude-Session: https://claude.ai/code/session_01D8zwbC12ZSPD6VZyzM61rN63df5f2e33ed2 months agoClaude-Session: https://claude.ai/code/session_01D8zwbC12ZSPD6VZyzM61rN29acfaca922a2 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>232d3e933d022 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>355330d72fc12 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>687613d986be2 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>d1653c05cd162 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>f849d97aabc82 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>4e5c063ac3e62 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>5a0db4f79b172 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>c4e6ee5812792 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>82e1c2964f272 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>56629ba1b82c2 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>c41fbf947b262 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>0f97bab6d5b02 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>249127c18d5d2 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>457c241485282 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>d6f9b22a08e02 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>42b1066877f02 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>a3f361cd30b02 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>981d3dd8e6332 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>05c0942e7b062 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>1a10447f96de2 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>32f1baf9b17b2 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>1ae380ad83c72 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>c834c64ac8d92 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>0ebe8e3cdcd82 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>e1c3a0500e232 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>ae9e2f76e74f2 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>c23a99adcbac2 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>dc40bb8223c72 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>f5e688cff5f92 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>5f18fc74f4912 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>2ae9decaeab72 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>0ea2dddf6ff52 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>b7e642906bef2 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>a157c4c26bbc2 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>4a045b58aea32 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>72bc31a2e0082 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>7235d23df40b2 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>633cf28107fb2 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>b769435a68942 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>7dd8701283042 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>e3155a5eab222 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>897dda6a8cc92 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>9b1e61f803f12 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>8a3530bc8e4d2 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>932f13fa69c42 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>1b081bdc98c02 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>fb8f5584bf813 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>347d45d2f3753 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>324954084ca83 months agoCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>c08496bdbdfc3 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>39703da99cf13 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>b28f4273d9733 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>fc562610d3953 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>e0026ae81f433 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>2450a29ae33b3 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>9916ee3c71a53 months agoCo-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>380307bc56893 months agoCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>fff22e3116903 months agoCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>8d916c9459933 months agoCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>d7a93ad3dc543 months agoCo-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>db84dac5931b3 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>07f30c655d053 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>86ef7d105e7e3 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>14bb640973603 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>28963c97d74e3 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>d60feb60e2f83 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>c5fb1606cfd53 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>5560c95c13293 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>7bf5e161f53a3 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>a2b5e56ffaf43 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1053fba70c973 months agoCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com># CLAUDE.md — s2-sdk
Rust SDK for [S2](https://s2.dev/), a durable streams platform. Provides async Rust bindings for managing basins, streams, and records.
## Module Overview
| Module | Role |
|--------|------|
| `ops.rs` | Public API: `S2`, `S2Basin`, `S2Stream` |
| `client.rs` | HTTP transport, connection pooling, auth |
| `api.rs` | `AccountClient` / `BasinClient`; protobuf + S2S protocol |
| `types.rs` | `S2Config`, `S2Error`, input/output DTOs |
| `producer.rs` | High-level `Producer`: per-record# s2-common
Shared library crate for S2 durable streams. Provides common types, serialization primitives, and utilities consumed by `s2-api`, `s2-sdk`, and `s2-server`.
## Module Overview
| Module | Purpose |
|--------|---------|
| `record` | Core record types, binary encoding, batching |
| `types` | Basin/stream naming, config, access control, pagination |
| `maybe` | `Maybe<T>` — distinguishes "not provided" from explicit `None` (used for PATCH semantics) |
| `read_extent` | `ReadLimit` and `ReadUnti# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-server-common` houses Axum server utilities shared across the backend binary
crates — `args-server`, `args-auth`, and `args-consumer`. It holds no
business logic and no HTTP handlers; it is a library of reusable startup
helpers, request extractors, middleware, and the config types they read.
## Structure
- `bootstrap.rs` — process startup helpers: `load_env` (dotenvy),
`i# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-git-hooks` is the single native binary that implements args's server-side
git hooks. It replaces the previous bash hook scripts (which lived in
`args-core/hooks/` and were written into every repo's `hooks/` dir).
It is deployed once at a fixed path (e.g. `/usr/local/bin/args-git-hooks`) and
symlinked into a shared hooks directory that repos reach via `core.hooksPath`.
The crate # CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-core` contains all business logic, data access, and external client integrations. The backend server depends on this crate and calls its services.
## Structure
```
src/
├── service/ Trait + Impl per domain (business logic)
├── repository/ Trait + Impl per domain (sqlx data access)
├── client/ Trait + Impl for external services (git2, git http-b# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-metrics` is the standalone Axum HTTP server for product telemetry ingestion. Today it accepts batched web-vital events from the frontend and writes them to ClickHouse via `MetricsService` (defined in `args-core`). Like the other binary crates, it's a thin transport layer — no business logic lives here.
## Structure
- `app.rs` — Router construction, middleware stack, `ArgsMe# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Architecture
The binary is named `args`. Entry point: `src/bin/main.rs` → initializes rustls (`bootstrap::load_rustls()`) → parses CLI args → routes to the chosen command.
### Shipped commands
The shipped commands, including the read-only current-branch `branch tail`
workflow, are wired through `src/command.rs`.
### Command flow
Each command follows: `load config → build client →# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this directory.
## What this is
A Slack bot for **args**, living as a Python/uv project inside the args monorepo (it is not a Cargo workspace member). Users invoke `/args <subcommand>` (`login`, `subscribe`, `unsubscribe`, `help`); the bot also exposes an HTTP webhook that args's main server calls back to finalize OAuth and post in-Slack notifications. Slack-Bolt runs in **HTTP mode** (not socket mode), wrap# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Args is a GitHub alternative for open-source maintainers. It's a full-stack application with a Rust backend (Axum), TypeScript frontend (Next.js), and CLI tool.
## Workspace Structure
Rust crates in the workspace:
- **`args-api`** — Shared API resource types and endpoint request/response definitions.
- **`args-api/derive`** (`args-api-derive`) — Proc macro crate pr# s2-api
API types and protocol definitions for S2, a durable streams service. Acts as the shared contract layer between S2 clients and servers.
## Purpose
- Define request/response types for basins (containers) and streams (append-only logs)
- HTTP protocol extraction via Axum extractors (feature-gated)
- Binary S2S streaming protocol with compression
- Server-Sent Events (SSE) for resumable reads
- Format negotiation: JSON, Protobuf, Base64
## Module Structure
```
src/
lib.rs — expor# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-consumer` is a long-running Kafka consumer that subscribes to `args.repo.pushed`, looks up the Slack webhooks subscribed to each repo's `Push` events, and notifies the args Slack bot server. Like the other binary crates, it's a thin shell — message handling logic lives in `WebhookService` (defined in `args-core`).
## Structure
- `app.rs` — `ArgsConsumer` entrypoint: bootstr# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-server` is the Axum HTTP server. It's a thin layer — handlers extract request params, call core services, and map responses. Business logic lives in `args-core`.
## Structure
- `app.rs` — Router construction, middleware stack, `ArgsServer` entrypoint
- `app/app_state.rs` — `AppState` with all service instances. Feature-gated fields for `main` vs `ci`.
- Auth: handlers imp# CLAUDE.md
This file provides guidance to Claude Code when working with code in the `s2-server` crate.
## Overview
`s2-server` is a lightweight HTTP server implementing the [S2](https://s2.dev) durable streams API, backed by object storage via SlateDB. It manages **basins** (logical containers) and **streams** (append-only logs), with pluggable storage backends (S3, GCP, local filesystem, or in-memory).
Binary flags:
```
--local-root DIR Local filesystem backend root
--port PORT Li# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-auth` is the standalone Axum HTTP server for authentication flows: device-code login, GitHub OAuth, session refresh, email verification, and Slack account linking. It's a thin layer — handlers extract request params, call `AuthenticationService` (defined in `args-core`), and map responses. No business logic lives here.
## Structure
- `app.rs` — Router construction, middlewa# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-git-http-server` is the Axum HTTP shim for the git smart-HTTP protocol (clone, fetch, push).
It is the "HTTP caller" in front of the gRPC [`args-git-server`](../args-git-server): it terminates
HTTP, does **auth + authz + HTTP framing**, and delegates the raw git bytes to `args-git-server` over
the `args-git-proto` gRPC schema. This mirrors GitLab's `workhorse` → `gitaly` split.# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-internal-server` is the Axum server for the **localhost-only receive-hook callback API** (the
`/internal/*` routes). `args-git-server`'s `post-receive` / `proc-receive` hooks call back into it after a push to persist
commits, reconcile bugs, create/update reviews, and publish the resulting Kafka events. It trusts its
caller and is expected to run network-gated (localhost / privat# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-api` defines the shared API contract — resource types (response shapes) and endpoint definitions (request/response pairs with HTTP metadata). Used by both the backend (to type handlers) and potentially clients.
## Structure
- `resource/` — Data structs returned by the API. One file per domain: `auth`, `build`, `common`, `migration`, `organization`, `repository`, `review`, `# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
See the root `CLAUDE.md` for overall project context and backend architecture.
**Environment:** Requires `.env.local` with `SUPABASE_URL`, `SUPABASE_PUBLISHABLE_KEY`, and optionally `ARGS_SERVER_URL` (defaults to `http://localhost:8080`).
## Route Structure
App Router with route groups:
- `(auth)/` — Public auth pages: login, signup, `/oauth/device` (CLI device flow), onboarding
- `(blo# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-git-router` is a gRPC front door for `args-git-server`. It speaks the same
`args-git-proto` schema and, per call, peeks the method's declared **access mode**
(the `access_mode` method option in `args_git.common.v1`) and reroutes the
request to the matching upstream — read-only → replica, read-write → primary.
Unlike `args-git-server`, this crate **depends on a database** (# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this crate.
## Purpose
`args-git-server` is a standalone gRPC server that owns git-on-disk operations — like GitLab's
Gitaly. It is the single place other args services reach git through; consumers talk to it over the
`args-git-proto` gRPC schema. It is deliberately **DB-free and does not depend on `args-core`** — the
dependency direction is `consumers → args-git-proto (client) → args-git-server → ---
name: revise
description: Start tailing args comments on the current branch and respond to them live by making immediate code edits, absorbing and pushing after each change
disable-model-invocation: true
---
Start a persistent monitor that runs `args branch tail`, which lists any
outstanding comments on the current branch and then follows new ones as they
are posted. This command only tails comments — it does not push anything —
so edits must be absorbed and pushed separately with `args absorb`.
#---
name: revise
description: Start tailing args comments on the current branch and respond to them live by making immediate code edits, absorbing and pushing after each change
---
Run `args branch tail` as a long-lived shell process. It lists any outstanding
comments on the current branch and then follows new ones as they are posted.
This command only tails comments — it does not push anything — so edits must
be absorbed and pushed separately with `args absorb`.
## Steps
1. Start `args branch tail` ---
name: commit
description: Stage the changes made in this session, commit with a written message, and push to the current remote branch
disable-model-invocation: true
---
Stage the changes made during this conversation, commit them, and push the
result to the remote tracking branch for whatever branch is currently checked
out.
## Steps
1. **Review what's changing.** Run `git status` and `git diff` to see staged
and unstaged changes before touching anything. If anything looks like it
might contai---
name: commit
description: Stage the changes made in this session, commit with a written message, and push to the current remote branch
---
Stage the changes made during this conversation, commit them, and push the
result to the remote tracking branch for whatever branch is currently checked
out.
## Steps
1. **Review what's changing.** Run `git status` and `git diff` to see staged
and unstaged changes before touching anything. If anything looks like it
might contain secrets, flag it to the user .dockerignoreclaude-code.claude/.dockerignorecursor.cursor/.gitignoreclaude-code.claude/.gitignorecursor.cursor/