docs(fleettools): Albok page + index entry (draft by albok-dev, Prime's ask); albok MCP in claude-only; task-board marked mothballed

This commit is contained in:
vh
2026-10-16 19:54:34 -07:00
parent 3cb969f1d1
commit c560e37739
3 changed files with 80 additions and 7 deletions
+10 -1
View File
@@ -45,6 +45,15 @@ live contract for its API. Fetch it rather than trusting a transcription.
*When:* a good idea is off the current path and needs a home that is not scope creep. *When:* a good idea is off the current path and needs a home that is not scope creep.
*Detail:* `/home/lkraven/development/eshpfi-management/docs/fleettools/henge.md` *Detail:* `/home/lkraven/development/eshpfi-management/docs/fleettools/henge.md`
## Knowledge
- **Albok** — the fleet knowledgebase at `http://albok.nh3.internal:8392`: every repo's persistent
memory, the stash, and the library (books by chapter, papers, concepts). `albok` CLI; `albok-mcp`
for Claude Code.
*When:* before you decide something, check whether it was already decided, tried or measured,
anywhere in the fleet.
*Detail:* `/home/lkraven/development/eshpfi-management/docs/fleettools/albok.md`
## Credentials ## Credentials
- **secret** — Vaultwarden-backed credential store. `secret get|put|list|backfill`. - **secret** — Vaultwarden-backed credential store. `secret get|put|list|backfill`.
@@ -117,7 +126,7 @@ live contract for its API. Fetch it rather than trusting a transcription.
## Claude-Code-only ## Claude-Code-only
- **ratecheck, remote-ssh MCP, skills** — harness-dependent; a - **ratecheck, remote-ssh MCP, albok MCP, skills** — harness-dependent; a
non-Claude agent cannot use these. Listed so you recognise a reference rather than non-Claude agent cannot use these. Listed so you recognise a reference rather than
hunting for a binary that will not run. Includes **`/handoff`, the supported way to hunting for a binary that will not run. Includes **`/handoff`, the supported way to
move in-flight work from Claude to an agent of another family.** move in-flight work from Claude to an agent of another family.**
+59
View File
@@ -0,0 +1,59 @@
# Albok — the fleet knowledgebase
**Service:** `http://albok.nh3.internal:8392` (= `10.100.50.44:8392`, albok-service on nh3-albok)
**CLI:** `albok` · **MCP (Claude Code):** `albok-mcp`, registered at user scope · **Owner:** `albok-dev` (althing)
One searchable store of what the fleet knows: every repo's `persistent-memory.md` (entries, detail
files, archives), the stash, and the library (books by chapter, papers, extracted concepts). Search
is hybrid (vector + keyword) and LLM-free.
## Access
Every nh3-dev shell carries `ALBOK_SERVICE` and `ALBOK_TOKEN` — the shared **`fleet-agents` read
token**: `fleet/*` (memory, stash) and `library/*` (fiction, nonfiction). It reads no personal wing.
A shell older than 2026-10-16 may lack them; open a new one. A handle that needs more grants asks
infra-ops for its own token.
```sh
albok status # the wings this token reads, and their states
albok search "why did we drop the reset endpoint" # --wing fleet/memory --top-k 20 --facet key=value
albok read <object_id> # pristine bytes to stdout; lineage notes on stderr
albok sidecar <object_id> # provenance: repo, file, commit, section, entry date
albok related <object_id> # links, similar, same source, shared concepts — each with its reason
```
Claude Code sessions get the same verbs as tools (`albok_search`, `albok_read`, `albok_sidecar`,
`albok_related`, `albok_status`, …). Codex and Grok use the CLI.
## Reading the answers right
- **Never threshold on score.** The null floor (~0.031) sits just under real hits (~0.033); rank, don't cut.
- **Coverage is reported, read it.** A reply lists `searched`, `locked` and `degraded` wings: an
empty result over a degraded wing is not "nothing exists". An unreachable service is an
outage, never an empty result (the client says which).
- **Hidden by default:** objects classed `adult`, `personal` or `secret` are hidden from every
reader; `--include CLASS` opts back in only where the token holds that class grant.
- **Supersession is declared, not inferred.** Every object has a permanent `uid` (in every search hit).
A read of an entry names what supersedes it (`superseded by …`); an empty lineage means "none
declared", not "current". When your new memory entry replaces an older one, end it with
`Supersedes [[<uid>]]` (the old entry's uid; a detail file may be named by its stem) and leave
the old entry as written.
## Writing into it (nobody writes to the service directly)
Nemi, albok's ingester, walks every source hourly on nh3-dev (a user timer, a few minutes past the hour):
| You want to add | Do this |
|---|---|
| a decision, lesson or state for a repo | write it in that repo's `persistent-memory.md` under `~/development/` (Nemi reads the file on disk; commit it as usual) |
| raw material (a transcript, an article) | `/stash` (Claude) or a file in `~/stash/` with its frontmatter |
| a note for the operator's personal inbox (a personal wing: the fleet token cannot read it back) | a markdown file in `/srv/nemi/inbox/` |
| a book | `scp book.epub lkraven@nh3-dev:/srv/nemi/books/fiction/` (or `nonfiction/`): validated, then shelved into `~/library/` and ingested the same hour, or moved to `rejected/` beside a reason file (`not_epub`, `drm`, `duplicate`, …); `LOG` records every decision |
## When to reach for it
Before you decide something, check whether it was already decided, tried or measured, in this repo
or any other. Before you research a game-design, cognition or fiction question, check the library.
*Detail:* `~/development/albok/README.md`, `packages/albok-client/README.md` (CLI and MCP),
`packages/albok-nemi/README.md` (sources, the book drop). Health: `scripts/albok-check` in that repo.
+11 -6
View File
@@ -42,13 +42,18 @@ stdout a non-tty and sudo skips the PTY.
regexes and `bash -c` walks past it. `SSH_MCP_STRICT_ALLOWLIST=1` makes regexes and `bash -c` walks past it. `SSH_MCP_STRICT_ALLOWLIST=1` makes
`~/.config/remote-ssh-mcp/config.json`'s `allowedHosts` authoritative. `~/.config/remote-ssh-mcp/config.json`'s `allowedHosts` authoritative.
## task-board MCP ## albok MCP
`task_start` / `task_update` / `task_wait` / `task_complete` to surface work in `albok-mcp`, registered at **user** scope (2026-10-16: `claude mcp add --scope user albok -- /home/lkraven/.local/bin/albok-mcp`).
progress at `http://10.250.50.70:7878/`. When you launch background shells, call Tools `albok_search` / `albok_read` / `albok_sidecar` / `albok_related` / `albok_status` / …, the same verbs as the
`task_set_shells` with one short description each (and again with `[]` when they `albok` CLI (see `albok.md`). It reads `ALBOK_SERVICE` and `ALBOK_TOKEN` from the environment the session inherits
finish) — the board turns orange so the operator can tell the session is parked on (`~/.zshenv` sources `~/.config/secrets/env.sh`); no token is written into `~/.claude.json`. A session started
background work rather than stalled on them. from a shell older than that wiring gets a "no token" error from the tools: start a new session.
## task-board MCP — MOTHBALLED (2026-09-24)
Superseded by the High Seat (SVOS) and ledger; the container is stopped. **Do not call `task_*` tools** or
wire its hooks into new sessions. Its data and stack are kept for a one-command bring-back (eshpfi CLAUDE.md).
## Skills ## Skills