chore: cargo workspace skeleton

Eleven empty crates per DESIGN.md §11, versions and lints pinned once in the
root manifest, Justfile carrying the §12 gate, nix dev shell.

The frontend steps in `just ci` no-op until web/ exists. arr-core carries one
placeholder test because `cargo nextest` fails a zero-test run, and relaxing
that would let a broken filter go green later.

Closes #1

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude
2026-08-22 19:20:47 +01:00
parent de3e77537f
commit f4e63f1ac5
28 changed files with 384 additions and 0 deletions
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-api"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-api — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-compat"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-compat — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-core"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+14
View File
@@ -0,0 +1,14 @@
//! arr-core — domain types, policy engine, scoring. See DESIGN.md §4 and §5.
//!
//! This crate must never depend on `axum`, `sqlx` or `reqwest`. It holds the
//! logic that is tested constantly and it has to stay fast to compile.
#[cfg(test)]
mod tests {
/// Placeholder so the test gate is meaningful on an empty workspace —
/// `cargo nextest` fails a run with zero tests, and relaxing that would
/// let a broken filter go green later. Replaced by real tests in the
/// domain-types and policy-engine issues.
#[test]
fn workspace_builds_and_tests_run() {}
}
+16
View File
@@ -0,0 +1,16 @@
[package]
name = "arr-daemon"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[[bin]]
name = "arr"
path = "src/main.rs"
[dependencies]
[lints]
workspace = true
+5
View File
@@ -0,0 +1,5 @@
//! arr — reconcile loop and process entry point. See DESIGN.md §8.
fn main() {
println!("arr");
}
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-db"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-db — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-dl"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-dl — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-e2e"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-e2e — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-indexer"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-indexer — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-meta"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-meta — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-parse"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-parse — see DESIGN.md.
+12
View File
@@ -0,0 +1,12 @@
[package]
name = "arr-probe"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
publish = false
[dependencies]
[lints]
workspace = true
+1
View File
@@ -0,0 +1 @@
//! arr-probe — see DESIGN.md.