Use AGENTS.md convention

cf. https://agents.md/
This commit is contained in:
Greg Shuflin
2025-08-23 01:40:44 -07:00
parent 91b059eb2f
commit c3e0f35ac1
2 changed files with 41 additions and 39 deletions
+40
View File
@@ -0,0 +1,40 @@
This file provides guidance to Claude Code (claude.ai/code), Cursor, and any
other Agentic coding tools when working with code in this repository.
# Project Overview
This codebase is the beginning of a pretty ambitious project to build a personal server runtime/overlay OS.
The idea is that users should be able to have a conceptual personal server
operating system that is instantiated on several nodes that all communicate
with each other and share personal documents in a decentralized way. A node
might be a smartphone, a desktop or laptop PC, a browser extension, a headless
server running in a cloud; and a user can have arbitrarily many nodes. Personal
data could be files like PDF documents, music/video files; but also things like
"how many minutes into this podcast did I listen to", "how long into this
youtube video did I watch", "which Twitter/X/BlueSky/Mastodon feeds have I read and/or archived", etc.
This project is inspired by Urbit, and in particular the Urbit concept of a
planet with subordinate moons - each node in this system is effectively a moon,
without any central planet. Like in Urbit, each node has an individual
cryptographic keypair to sign and encrypt messages; but also nodes have access
to a global keypair that signifies ownership of the node at large. Eventually,
different sets of nodes should be able to communicate with each other in an
encrypted and authenticated way.
# Build Commands
- Android: `./gradlew build` or `./gradlew assemble`
- Rust: `just build-rust` or `cd rust && cargo build --target aarch64-linux-android --release`
- Run tests:
- Kotlin: `./gradlew test` (unit tests), `./gradlew connectedAndroidTest` (instrumented)
- Rust: `cargo nextest run` in the `rust`directory
- Run single test: `./gradlew test --tests "ExampleUnitTest.testName"`
# Code Style
- Kotlin: Follow Kotlin conventions with 4-space indentation
- Rust: Follow Rust idioms, use `thiserror` for error types and `anyhow` for propagation.
- Rust code should conform to the style guidelines enforced by `cargo fmt` and `cargo clippy`.
- in particular, don't generate code like `documents::Artifacts::new()` that has fully-qualified type names; instead prefer to `use documents::Artifacts` and then have just `Artifacts::new()`
- Naming: camelCase for variables/functions, PascalCase for classes/interfaces
- Errors: Use typed errors with meaningful messages
- Architecture: Jetpack Compose for UI, JNI for Rust integration
- Types: Use explicit types for public APIs, leverage type inference for local variables
-39
View File
@@ -1,39 +0,0 @@
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
# Project Overview
This codebase is the beginning of a pretty ambitious project to build a personal server runtime/overlay OS.
The idea is that users should be able to have a conceptual personal server
operating system that is instantiated on several nodes that all communicate
with each other and share personal documents in a decentralized way. A node
might be a smartphone, a desktop or laptop PC, a browser extension, a headless
server running in a cloud; and a user can have arbitrarily many nodes. Personal
data could be files like PDF documents, music/video files; but also things like
"how many minutes into this podcast did I listen to", "how long into this
youtube video did I watch", "which Twitter/X/BlueSky/Mastodon feeds have I read and/or archived", etc.
This project is inspired by Urbit, and in particular the Urbit concept of a
planet with subordinate moons - each node in this system is effectively a moon,
without any central planet. Like in Urbit, each node has an individual
cryptographic keypair to sign and encrypt messages; but also nodes have access
to a global keypair that signifies ownership of the node at large. Eventually,
different sets of nodes should be able to communicate with each other in an
encrypted and authenticated way.
# Build Commands
- Android: `./gradlew build` or `./gradlew assemble`
- Rust: `just build-rust` or `cd rust && cargo build --target aarch64-linux-android --release`
- Run tests:
- Kotlin: `./gradlew test` (unit tests), `./gradlew connectedAndroidTest` (instrumented)
- Rust: `cargo nextest run` in the `rust`directory
- Run single test: `./gradlew test --tests "ExampleUnitTest.testName"`
# Code Style
- Kotlin: Follow Kotlin conventions with 4-space indentation
- Rust: Follow Rust idioms, use `thiserror` for error types and `anyhow` for propagation.
- Rust code should conform to the style guidelines enforced by `cargo fmt` and `cargo clippy`.
- in particular, don't generate code like `documents::Artifacts::new()` that has fully-qualified type names; instead prefer to `use documents::Artifacts` and then have just `Artifacts::new()`
- Naming: camelCase for variables/functions, PascalCase for classes/interfaces
- Errors: Use typed errors with meaningful messages
- Architecture: Jetpack Compose for UI, JNI for Rust integration
- Types: Use explicit types for public APIs, leverage type inference for local variables
Symlink
+1
View File
@@ -0,0 +1 @@
AGENTS.md