Skip to content
Merged
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
11 changes: 11 additions & 0 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,17 @@ Control (report < 0.85) → Human review required
3. No hardcoded secrets — use env vars with `${VAR:-}` defaults.
4. Fix scripts must be idempotent (safe to run multiple times).
5. Confidence thresholds gate all automated actions.
6. **`bots/<name>/` directories are THIN ADAPTERS, not homes for standalone
products.** Never vendor an entire external project (its own Cargo
workspace, analyzers, containers, deployment, docs) into a bot slot, and
never let a bot crate add a `path` dependency that escapes the repo. If a
capability deserves its own project, build it in its own repository and
depend on it externally. See [`bots/README.adoc`](../bots/README.adoc).
- **Disambiguation:** `sustainabot` (this fleet's eco/econ slot, kept as
`BotId::Sustainabot`) is **not** `OikosBot` and **not** `oikos`. A misfiled
full copy of OikosBot once lived in `bots/sustainabot/`; it was extracted to
`hyperpolymath/oikosbot` and the slot reset to a placeholder. `oikos` is a
separate DSL (`hyperpolymath/oikos-economics-accounting-dsl`).

## Repo health

Expand Down
6 changes: 3 additions & 3 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@ The historical `TOPOLOGY.md` dashboard is at the repo root.
|Active

|**sustainabot**
|Ecological and economic code standards. Carbon intensity, resource efficiency, technical debt modeling.
|Active
|Ecological and economic code standards. *Adapter slot reserved — see link:bots/sustainabot/README.adoc[`bots/sustainabot/`].* The standalone eco/econ App once misfiled here is **OikosBot**, now at https://github.com/hyperpolymath/oikosbot[`hyperpolymath/oikosbot`] (a separate project — not sustainabot).
|Reserved

|**glambot**
|Presentation quality. Visual polish, accessibility (WCAG), SEO, machine-readability for AI/bots.
Expand All @@ -87,7 +87,7 @@ The historical `TOPOLOGY.md` dashboard is at the repo root.
|Active
|===

*Status legend:* `Active` = Tier 1 Verifier or Specialist bot running on every push. `Complete` = Tier 2 Finisher bot that runs after verifiers to validate final release readiness.
*Status legend:* `Active` = Tier 1 Verifier or Specialist bot running on every push. `Complete` = Tier 2 Finisher bot that runs after verifiers to validate final release readiness. `Reserved` = fleet member retained in `shared-context` but without an in-repo adapter yet (the directory is a placeholder; see that bot's `README.adoc`).

Standalone repos that are intentionally not fleet bots:

Expand Down
2 changes: 1 addition & 1 deletion ROADMAP.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ based on confidence thresholds (Eliminate >= 0.95, Substitute >= 0.85, Control <

| rhodibot | Git operations, RSR enforcement | Yes
| echidnabot | Quality verification, multi-prover | Yes
| sustainabot | Dependency management | Yes
| sustainabot | Eco/econ standards — _reserved slot, empty_ (standalone impl extracted to `hyperpolymath/oikosbot`) | Yes
| glambot | Presentation, badges, formatting | Yes
| seambot | Integration seam maintenance | Yes
| finishingbot | Completion of partial work | Yes
Expand Down
30 changes: 30 additions & 0 deletions bots/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= bots/ — fleet bot adapters
:icons: font

Each subdirectory here is one member of the gitbot fleet. A bot directory is a
**thin adapter**: a small Rust crate (`Cargo.toml` + `src/` + `tests/`) that
wires one analysis capability into the fleet's `shared-context` interface and the
safety-triangle router. The canonical `BotId` set lives in
link:../shared-context/src/bot.rs[`shared-context/src/bot.rs`].

== Guardrail — do NOT vendor standalone products here

A bot slot is an *adapter*, not a home for an entire external project. Do not
copy a whole standalone repository (its own workspace, analyzers, containers,
deployment, docs…) into `bots/<name>/`.

[IMPORTANT]
====
This rule exists because it was once broken: a full copy of **OikosBot** (a
separate eco/econ code-analysis App) was vendored into `bots/sustainabot/`,
including a Rust workspace that grew a hard `path` dependency back into
`shared-context/`. It has since been extracted to its own repo,
https://github.com/hyperpolymath/oikosbot[`hyperpolymath/oikosbot`], and the slot
reset to a placeholder. See `sustainabot/README.adoc`.
====

If a bot needs a heavyweight capability that deserves its own project, build that
project in its **own repository** and have the adapter here depend on it as an
external crate or service. Keep the adapter thin.
246 changes: 0 additions & 246 deletions bots/sustainabot/ARCHITECTURE.md

This file was deleted.

Loading
Loading