From 94aa51135f9a2e900471464333e368dfaee9aa40 Mon Sep 17 00:00:00 2001 From: Don Garrett Date: Fri, 4 Sep 2026 22:13:06 +0000 Subject: [PATCH] Merge the three repositories into one monorepo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nisse-core's history becomes the repo root; the spec moves to docs/ at top level; nisse-dev and nisse-ops fold in as package directories, their seed histories (pointer files only) discarded. Pointer READMEs and CLAUDE.mds are rewritten for in-tree paths. Rationale: for a solo operator the three-repo split tripled admin surface (tokens, CI, webhooks, permissions, backups) and imposed a version-pinning contract on nisse-core, while the repo boundary was never a trust boundary — the VM is. The spec's Part H is updated in the next commit to record the decision. Co-Authored-By: Claude Fable 5 --- CLAUDE.md | 9 +++++++++ README.md | 26 ++++++++++++++++---------- nisse-core/README.md | 8 ++++++++ nisse-dev/CLAUDE.md | 10 ++++++++++ nisse-dev/README.md | 8 ++++++++ nisse-ops/CLAUDE.md | 10 ++++++++++ nisse-ops/README.md | 8 ++++++++ 7 files changed, 69 insertions(+), 10 deletions(-) create mode 100644 CLAUDE.md create mode 100644 nisse-core/README.md create mode 100644 nisse-dev/CLAUDE.md create mode 100644 nisse-dev/README.md create mode 100644 nisse-ops/CLAUDE.md create mode 100644 nisse-ops/README.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..d653988 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,9 @@ +# Nisse + +Monorepo for two self-hosted AI agents (`nisse-dev`, `nisse-ops`) over a shared +library (`nisse-core`), one package per directory. + +**Read the architecture before making design decisions.** The system-level +specification is `docs/Architecture-Build-Spec.md`. Requirements that look like +free choices — gating structure, state durability, LLM access paths, permission +policy — are usually settled there. diff --git a/README.md b/README.md index fd4127e..4605a51 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,22 @@ -# nisse-core +# Nisse -The shared library both Nisse agents sit on (Part A of the specification), and the -home of the system-level design documentation. +Two self-hosted AI agents sharing a common library, named for the Nordic farm +spirit that keeps the place running overnight and expects to be treated well in +return. -The library itself does not exist yet: it is extracted from `nisse-dev` once that -agent works, at step 10 of the build order. Until then this repository carries the -specification. +| Package | Role | +|---|---| +| [`nisse-core/`](nisse-core/) | Shared library both agents sit on (Part A) | +| [`nisse-dev/`](nisse-dev/) | Dev Agent — plans and implements software projects (Part B) | +| [`nisse-ops/`](nisse-ops/) | Sysadmin Agent — operates infrastructure (Part C) | + +One repository, three packages. The library does not exist as code yet: it is +extracted from `nisse-dev` once that agent works (build-order step 10), as a +package split within this tree. ## Architecture - docs/Architecture-Build-Spec.md - -Covers the shared library (Part A), the Dev Agent `nisse-dev` (Part B), the Sysadmin -Agent `nisse-ops` (Part C), the supporting services, the build order, and the +The system-level specification lives at +[`docs/Architecture-Build-Spec.md`](docs/Architecture-Build-Spec.md). It covers the +shared library, both agents, the supporting services, the build order, and the remaining open decisions. diff --git a/nisse-core/README.md b/nisse-core/README.md new file mode 100644 index 0000000..184d036 --- /dev/null +++ b/nisse-core/README.md @@ -0,0 +1,8 @@ +# nisse-core + +The shared library both Nisse agents sit on (Part A of the specification). + +It does not exist as code yet: it is extracted from `nisse-dev` once that agent +works, at step 10 of the build order — a package split within this repository. +Until then this directory is a placeholder holding the seam the extraction will +land on. diff --git a/nisse-dev/CLAUDE.md b/nisse-dev/CLAUDE.md new file mode 100644 index 0000000..2feb0d4 --- /dev/null +++ b/nisse-dev/CLAUDE.md @@ -0,0 +1,10 @@ +# nisse-dev + +The Dev Agent (Part B of the Nisse system). A thin application over the shared +`nisse-core` package. + +**Read the architecture before making design decisions here:** +`docs/Architecture-Build-Spec.md` at the repo root. Part B specifies this agent; +Part A specifies the library contracts it depends on. Requirements that look like +free choices in this package — gating structure, state durability, LLM access +paths — are usually settled there. diff --git a/nisse-dev/README.md b/nisse-dev/README.md new file mode 100644 index 0000000..6dfef42 --- /dev/null +++ b/nisse-dev/README.md @@ -0,0 +1,8 @@ +# nisse-dev + +The Dev Agent: plans and implements software projects, produces Gitea PRs for human +review, and reacts to review comments and commits. A thin application over the +shared `nisse-core` library. + +**Part B** of the specification at [`../docs/Architecture-Build-Spec.md`](../docs/Architecture-Build-Spec.md) +covers this agent; **Part A** covers the library it sits on. diff --git a/nisse-ops/CLAUDE.md b/nisse-ops/CLAUDE.md new file mode 100644 index 0000000..1082c1e --- /dev/null +++ b/nisse-ops/CLAUDE.md @@ -0,0 +1,10 @@ +# nisse-ops + +The Sysadmin Agent (Part C of the Nisse system). A thin application over the shared +`nisse-core` package. + +**Read the architecture before making design decisions here:** +`docs/Architecture-Build-Spec.md` at the repo root. Part C specifies this agent; +Part A specifies the library contracts it depends on. Requirements that look like +free choices in this package — the permission policy engine, confirm-first gating, +secrets and SSO handling — are usually settled there. diff --git a/nisse-ops/README.md b/nisse-ops/README.md new file mode 100644 index 0000000..fa1a0de --- /dev/null +++ b/nisse-ops/README.md @@ -0,0 +1,8 @@ +# nisse-ops + +The Sysadmin Agent: operates and maintains infrastructure, driven by Vikunja +tickets, gated on high-consequence actions. A thin application over the shared +`nisse-core` library. Built after the Dev Agent works. + +**Part C** of the specification at [`../docs/Architecture-Build-Spec.md`](../docs/Architecture-Build-Spec.md) +covers this agent; **Part A** covers the library it sits on.