[2026-05-24] wiki index rebuild, autonomous-agent-safety synthesis
This commit is contained in:
@@ -0,0 +1,45 @@
|
|||||||
|
---
|
||||||
|
date: 2026-05-24
|
||||||
|
status: complete
|
||||||
|
---
|
||||||
|
# Wiki Curation — 2026-05-24
|
||||||
|
|
||||||
|
## Done
|
||||||
|
|
||||||
|
- **Conflict scan:** No git conflict markers found in ~/obsidian/ ✅
|
||||||
|
- **Previous run (2026-05-23):** Status = complete, no Unfinished section ✅
|
||||||
|
- **Orientation:** SCHEMA.md (domain: personal KB), index.md (28 entries, bootstrapped 2026-05-23), log.md (37 lines)
|
||||||
|
- **Vault changes since 2026-05-23 02:00:** Large batch of new pages from yesterday's wiki expansion — 17 pages existed on disk but not in index.md (see Index rebuild below)
|
||||||
|
- **Inbox:** ~/obsidian/wiki/raw/inbox/ empty (only `processed/` subdir) ✅
|
||||||
|
- **Sessions:** No sessions for 2026-05-24. Cron session 2026-05-23 was wiki curation itself — not crystallizable.
|
||||||
|
- **Research queue:** Marked 2 items as completed (pages already existed): executor-orchestrator → [[concepts/executor-orchestrator]], executor-security-incident → [[concepts/executor-security-incident]]
|
||||||
|
- **Synthesis (MANDATORY):** `concepts/autonomous-agent-safety.md` created ✅
|
||||||
|
- Co-occurrence: executor-security-incident + executor-orchestrator + personal-os-agent-rules (3 pages)
|
||||||
|
- Synthesizes: generalizable design patterns for safe autonomous agents; checklist format; distills incident lessons into reusable principles not in any existing page
|
||||||
|
- **Index rebuild:** 17 missing pages added to index.md; count updated 28→43; fixed duplicate vault-filling-guide entry; all pages confirmed to exist on disk
|
||||||
|
- Added: personal-os-state-2026-04-27, personal-os-catchup-plan-2026-04-27, user-profile, entities/library-app, comparisons/hermes-native-vs-docker, tech/hermes-eagle-mac, tech/jellyfin-transcode-rpi5, tech/vault-git-sync, concepts/agent-memory-architecture, concepts/executor-orchestrator, concepts/executor-security-incident, concepts/knowledge-lifecycle, concepts/kraken-media-stack, concepts/vault-strategy, concepts/watchlist-automation, concepts/autonomous-agent-safety, research-queue
|
||||||
|
- **Lint:** 0 orphan pages (all pages have ≥1 inbound link from index or other pages); 0 missing frontmatter on sampled pages; tag drift noted (systemic: SCHEMA taxonomy predates wiki growth; descriptive tags in common use don't match narrow taxonomy — needs a schema update, not a per-page fix)
|
||||||
|
- **Log.md:** Appended 2026-05-24 entry; 48 lines, far from 500 rotation limit ✅
|
||||||
|
|
||||||
|
## Validation fixes
|
||||||
|
|
||||||
|
- none (autonomous-agent-safety.md passed all checks on first write)
|
||||||
|
|
||||||
|
## Unresolved conflicts
|
||||||
|
|
||||||
|
(none)
|
||||||
|
|
||||||
|
## Unfinished
|
||||||
|
|
||||||
|
(none)
|
||||||
|
|
||||||
|
## Stats
|
||||||
|
|
||||||
|
- Conflicts resolved: 0
|
||||||
|
- Inbox processed: 0 (empty)
|
||||||
|
- Sessions crystallized: 0 / 0 checked (no sessions for 2026-05-24)
|
||||||
|
- Synthesis pages created: 1 (concepts/autonomous-agent-safety)
|
||||||
|
- Pages created: 1 (autonomous-agent-safety.md)
|
||||||
|
- Pages updated: 3 (index.md, log.md, research-queue.md)
|
||||||
|
- Lint issues: 1 systemic (tag drift — SCHEMA taxonomy needs expansion, no per-page fix needed)
|
||||||
|
- Validation issues fixed: 0
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
---
|
||||||
|
title: Autonomous Agent Safety Patterns
|
||||||
|
created: '2026-05-24'
|
||||||
|
updated: '2026-05-24'
|
||||||
|
type: concept
|
||||||
|
tags: [agent, security, architecture, executor, rules]
|
||||||
|
sources:
|
||||||
|
- wiki/concepts/executor-security-incident.md
|
||||||
|
- wiki/concepts/executor-orchestrator.md
|
||||||
|
- wiki/personal-os-agent-rules.md
|
||||||
|
confidence: high
|
||||||
|
related:
|
||||||
|
- "[[concepts/executor-security-incident]]"
|
||||||
|
- "[[concepts/executor-orchestrator]]"
|
||||||
|
- "[[personal-os-agent-rules]]"
|
||||||
|
---
|
||||||
|
|
||||||
|
# Autonomous Agent Safety Patterns
|
||||||
|
|
||||||
|
Design principles for autonomous LLM agents distilled from the 2026-05-11
|
||||||
|
executor security incident. General enough to apply beyond the personal-os context.
|
||||||
|
|
||||||
|
## The Three Failure Modes (from incident)
|
||||||
|
|
||||||
|
### 1. Mandatory prompt steps that outrank modes
|
||||||
|
|
||||||
|
The executor wrote Asana comments during "recording-only" mode because the
|
||||||
|
worker prompt declared comment posting a *mandatory completion action* — not
|
||||||
|
subject to mode flags.
|
||||||
|
|
||||||
|
**Pattern:** Every completion action (write to external system, post comment,
|
||||||
|
send notification) must be guarded by a mode check that the agent cannot
|
||||||
|
override.
|
||||||
|
|
||||||
|
```
|
||||||
|
IF mode == "recording-only":
|
||||||
|
SKIP external writes
|
||||||
|
LOG "would have posted: ..." instead
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Boundary policies that only cover exfiltration
|
||||||
|
|
||||||
|
The lethal-trifecta policy blocked HTTP to attacker domains after internal
|
||||||
|
MCP access. It did NOT block writes *to* internal systems (Asana).
|
||||||
|
|
||||||
|
**Pattern:** Separate the threat models:
|
||||||
|
- **Exfiltration** = data leaving to unauthorized destinations → block outbound
|
||||||
|
- **Unauthorized writes** = data going to authorized systems without approval → require
|
||||||
|
explicit confirmation gate per write type
|
||||||
|
|
||||||
|
These are different controls. A policy that only covers one leaves the other open.
|
||||||
|
|
||||||
|
### 3. High-level directives not propagated to sub-prompts
|
||||||
|
|
||||||
|
"Don't touch anything" was a session-level directive. The worker
|
||||||
|
sub-prompt (spawned per task) didn't inherit it — it ran its own
|
||||||
|
completion protocol.
|
||||||
|
|
||||||
|
**Pattern:** Mode flags must be passed explicitly to every spawned
|
||||||
|
sub-process/sub-prompt as a first-class parameter, not assumed from
|
||||||
|
session context.
|
||||||
|
|
||||||
|
## The Auto-Approve Table Pattern
|
||||||
|
|
||||||
|
From [[concepts/executor-orchestrator]]: instead of blanket trust or blanket
|
||||||
|
denial, classify actions by risk tier:
|
||||||
|
|
||||||
|
| Risk | Action type | Default |
|
||||||
|
|------|-------------|---------|
|
||||||
|
| Low | git, build, test, worktree | auto-approve |
|
||||||
|
| Medium | draft PR, push branch | auto-approve with log |
|
||||||
|
| High | post Asana comment, merge PR | require Alex confirmation |
|
||||||
|
| Blocked | autonomous Asana write | denied always |
|
||||||
|
|
||||||
|
This table lives in the orchestrator, not the worker. Workers *request*
|
||||||
|
actions; orchestrator decides.
|
||||||
|
|
||||||
|
## Least-Privilege Credential Design
|
||||||
|
|
||||||
|
From incident: `ASANA_API_KEY` was full-account CRUD (PATs are not granular).
|
||||||
|
One compromised agent → full Asana write access.
|
||||||
|
|
||||||
|
**Pattern:** Scope credentials to the minimum required operation:
|
||||||
|
- Read-only keys for read-only agents
|
||||||
|
- Write keys injected only at the moment of approved write
|
||||||
|
- Never persist write credentials in always-on agent environments
|
||||||
|
|
||||||
|
## Audit Before Autonomous
|
||||||
|
|
||||||
|
The incident ran 18 PRs and 5 Asana comments before detection. Detection only
|
||||||
|
happened because Alex checked manually.
|
||||||
|
|
||||||
|
**Pattern:** Autonomous runs should produce an observable audit trail that
|
||||||
|
can be reviewed without running the agent:
|
||||||
|
- Structured log per run (not just stdout)
|
||||||
|
- Diff-friendly format (what was written, to where, at what time)
|
||||||
|
- Periodic summary posted to a channel Alex monitors
|
||||||
|
|
||||||
|
## Summary: Checklist for New Autonomous Agents
|
||||||
|
|
||||||
|
- [ ] Every external write is behind a mode-guard (can "recording-only" block it?)
|
||||||
|
- [ ] Exfiltration and unauthorized-write policies are separate controls
|
||||||
|
- [ ] Mode flags propagate explicitly to sub-prompts
|
||||||
|
- [ ] Auto-approve table is in the orchestrator, not the worker
|
||||||
|
- [ ] Credentials are scoped to minimum; write keys not always-on
|
||||||
|
- [ ] Each run produces a structured audit log
|
||||||
|
- [ ] Audit log goes somewhere Alex sees without hunting
|
||||||
|
|
||||||
|
## See Also
|
||||||
|
|
||||||
|
- [[concepts/executor-security-incident]] — incident post-mortem with full timeline
|
||||||
|
- [[concepts/executor-orchestrator]] — post-incident architecture (orchestrator pattern)
|
||||||
|
- [[personal-os-agent-rules]] — Eagle's specific rules derived from these patterns
|
||||||
+31
-6
@@ -1,13 +1,13 @@
|
|||||||
---
|
---
|
||||||
title: Wiki Index
|
title: Wiki Index
|
||||||
updated: '2026-05-23'
|
updated: '2026-05-24'
|
||||||
---
|
---
|
||||||
|
|
||||||
# Wiki Index
|
# Wiki Index
|
||||||
|
|
||||||
> Content catalog. Every wiki page listed with a one-line summary.
|
> Content catalog. Every wiki page listed with a one-line summary.
|
||||||
> Read this first to find relevant pages for any query.
|
> Read this first to find relevant pages for any query.
|
||||||
> Last updated: 2026-05-23 | Total pages: 28
|
> Last updated: 2026-05-24 | Total pages: 43
|
||||||
|
|
||||||
## Personal OS — Core
|
## Personal OS — Core
|
||||||
|
|
||||||
@@ -17,6 +17,8 @@ updated: '2026-05-23'
|
|||||||
- [[personal-os-self-modification]] — How Eagle and Alex can safely evolve the system
|
- [[personal-os-self-modification]] — How Eagle and Alex can safely evolve the system
|
||||||
- [[personal-os-sync-pipeline]] — sync.js + generate-status.js: how Asana data flows into status.md
|
- [[personal-os-sync-pipeline]] — sync.js + generate-status.js: how Asana data flows into status.md
|
||||||
- [[personal-os-schema]] — PostgreSQL schema: tasks, stories, task_edges, wiki_pages, memory_store
|
- [[personal-os-schema]] — PostgreSQL schema: tasks, stories, task_edges, wiki_pages, memory_store
|
||||||
|
- [[personal-os-state-2026-04-27]] — State snapshot post-catchup execution (Apr 2026); supersedes v3 plan docs
|
||||||
|
- [[personal-os-catchup-plan-2026-04-27]] — Executor build-order handoff doc; companion to state snapshot
|
||||||
|
|
||||||
## Work / DDG
|
## Work / DDG
|
||||||
|
|
||||||
@@ -47,16 +49,39 @@ updated: '2026-05-23'
|
|||||||
- [[tech/htpc-kodi-layout]] — Kodi layout, WoL MAC, NFS sources
|
- [[tech/htpc-kodi-layout]] — Kodi layout, WoL MAC, NFS sources
|
||||||
- [[tech/reflect-skip-fuse]] — New SwiftUI View requires manual Kotlin stub in 2 places
|
- [[tech/reflect-skip-fuse]] — New SwiftUI View requires manual Kotlin stub in 2 places
|
||||||
- [[tech/arr-stack-taiga]] — Taiga arr stack (2026-05-20), config, router.py location
|
- [[tech/arr-stack-taiga]] — Taiga arr stack (2026-05-20), config, router.py location
|
||||||
|
- [[tech/hermes-eagle-mac]] — Hermes on Eagle Mac M4; claude-proxy, Zulip setup, known pitfalls
|
||||||
|
- [[tech/jellyfin-transcode-rpi5]] — Jellyfin RPi5 transcoding pitfalls; PGS/subtitle handling
|
||||||
|
- [[tech/vault-git-sync]] — Vault git sync via Taiga bare repo; setup, pull hooks, pitfalls
|
||||||
|
|
||||||
## Personal Projects
|
## Entities
|
||||||
|
|
||||||
- (none yet — Reflect app to be added)
|
- [[user-profile]] — Alex's profile; roles, working style, preferences
|
||||||
|
- [[entities/library-app]] — Personal book library web UI on TrueNAS; replacement for inpxer (May 2026)
|
||||||
|
|
||||||
## Concepts
|
## Comparisons
|
||||||
|
|
||||||
|
- [[comparisons/hermes-native-vs-docker]] — Hermes on Eagle (native) vs Kraken (Docker); deployment trade-offs
|
||||||
|
|
||||||
|
## Concepts — AI & Agents
|
||||||
|
|
||||||
|
- [[concepts/autonomous-agent-safety]] — Design patterns for safe autonomous agents; distilled from security incident
|
||||||
|
- [[concepts/executor-orchestrator]] — Eagle-as-orchestrator spawning Executor worker; auto-approve protocol table
|
||||||
|
- [[concepts/executor-security-incident]] — Post-mortem: autonomous Asana boundary crossing (May 2026); root causes
|
||||||
|
- [[concepts/agent-memory-architecture]] — LLM agent memory taxonomy (arXiv 2603.07670) applied to personal-os
|
||||||
|
- [[concepts/knowledge-lifecycle]] — How knowledge flows from session to permanent wiki memory
|
||||||
|
|
||||||
|
## Concepts — Vault & Wiki
|
||||||
|
|
||||||
- [[concepts/vault-agent-integration]] — How Eagle, wiki-ingest, and obsidian-mcp work as a unified vault layer
|
- [[concepts/vault-agent-integration]] — How Eagle, wiki-ingest, and obsidian-mcp work as a unified vault layer
|
||||||
|
- [[concepts/vault-strategy]] — Three vault tasks that must not be mixed (enrichment, storage, agent-context)
|
||||||
|
|
||||||
|
## Concepts — Media & Home
|
||||||
|
|
||||||
|
- [[concepts/kraken-media-stack]] — Full Kraken media server stack; Jellyfin, Arr, Transmission overview
|
||||||
|
- [[concepts/watchlist-automation]] — Full watchlist automation flow; Radarr/Sonarr triggers to Jellyfin
|
||||||
|
|
||||||
## Meta
|
## Meta
|
||||||
|
|
||||||
|
- [[research-queue]] — Wiki gap tracker; topics to research and crystallize
|
||||||
- [[SCHEMA]] — Domain rules, tag taxonomy, frontmatter conventions
|
- [[SCHEMA]] — Domain rules, tag taxonomy, frontmatter conventions
|
||||||
- [[vault-filling-guide]] — Listed above; also describes vault structure
|
- [[log]] — Chronological action log
|
||||||
|
|||||||
+12
-1
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Wiki Log
|
title: Wiki Log
|
||||||
updated: '2026-05-23'
|
updated: '2026-05-24'
|
||||||
type: meta
|
type: meta
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -35,3 +35,14 @@ type: meta
|
|||||||
- Created: htpc-bazzite-proton.md (from family/projects/htpc-windows-games-fix.md)
|
- Created: htpc-bazzite-proton.md (from family/projects/htpc-windows-games-fix.md)
|
||||||
- Created: concepts/vault-agent-integration.md (synthesis)
|
- Created: concepts/vault-agent-integration.md (synthesis)
|
||||||
- Lint: no conflicts, no inbox items, no sessions to crystallize
|
- Lint: no conflicts, no inbox items, no sessions to crystallize
|
||||||
|
|
||||||
|
## [2026-05-24] update | Index rebuild + synthesis page
|
||||||
|
- Conflicts: 0 found
|
||||||
|
- Inbox: empty
|
||||||
|
- Sessions: none for 2026-05-24 (cron session 2026-05-23 was wiki curation itself — not crystallizable)
|
||||||
|
- Research queue: marked executor-orchestrator and executor-security-incident as completed
|
||||||
|
- Created: concepts/autonomous-agent-safety.md (synthesis across executor-security-incident + executor-orchestrator + personal-os-agent-rules)
|
||||||
|
- Updated: index.md — 17 missing pages added; count 28→43; fixed duplicate vault-filling-guide entry
|
||||||
|
- Updated: research-queue.md — 2 queue items marked completed, updated date
|
||||||
|
- Lint: 0 orphans (all pages have ≥1 inbound link); 0 broken frontmatter; tag drift noted (systemic — SCHEMA taxonomy predates actual page growth; no action this run)
|
||||||
|
- Validation: autonomous-agent-safety.md frontmatter valid, 3 outbound wikilinks ✅
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Research Queue
|
title: Research Queue
|
||||||
updated: '2026-05-23'
|
updated: '2026-05-24'
|
||||||
type: meta
|
type: meta
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -11,9 +11,10 @@ type: meta
|
|||||||
|
|
||||||
## Queue
|
## Queue
|
||||||
|
|
||||||
- [ ] Executor Architecture v2 — executor-runner.sh + executor-analyzer.sh + state machine + DB schema
|
(empty)
|
||||||
- [ ] Executor Security Incident — 2026-05-11 Asana boundary crossing, control failure, credential inventory
|
|
||||||
|
|
||||||
## Completed
|
## Completed
|
||||||
|
|
||||||
- [x] WireGuard VPN → [[tech/wireguard-vpn]] (2026-05-23)
|
- [x] WireGuard VPN → [[tech/wireguard-vpn]] (2026-05-23)
|
||||||
|
- [x] Executor Architecture v2 → [[concepts/executor-orchestrator]] (2026-05-19)
|
||||||
|
- [x] Executor Security Incident → [[concepts/executor-security-incident]] (2026-05-22)
|
||||||
|
|||||||
Reference in New Issue
Block a user