Initial commit: extracted from memex
This commit is contained in:
29
docs/PRD.org
Normal file
29
docs/PRD.org
Normal file
@@ -0,0 +1,29 @@
|
||||
#+TITLE: PRD: org-agent Cognitive Core & Configuration
|
||||
#+AUTHOR: PSF Requirements Definer
|
||||
#+CREATED: [2026-03-23 Mon]
|
||||
#+STATUS: FROZEN
|
||||
|
||||
* 0. Core Mandates
|
||||
The `org-agent` project MUST adhere to these foundational mandates:
|
||||
- **Mandate 1: Strict Homoiconic Memory.** All documentation, planning, and system logic MUST be authored in Org-mode (.org) and Common Lisp. Markdown (.md) and JSON are strictly prohibited for internal use.
|
||||
- **Mandate 2: Minimalist Microkernel.** The core daemon MUST remain minimalist, handling only the cognitive loop, the persistent Object-Store, and the communication protocol. All domain-specific features and LLM provider logic MUST be implemented as hot-reloadable **Skills** living in the user's Memex.
|
||||
|
||||
* 1. Purpose
|
||||
The `org-agent` must transition from a monolithic prototype to a generalized neurosymbolic kernel.
|
||||
|
||||
* 2. Functional Requirements
|
||||
** 2.1. Cognitive Loop (PTA Refactor)
|
||||
- The daemon MUST implement a 4-stage pipeline: Perceive -> Think -> Decide -> Act.
|
||||
- System 1 (Neural) MUST be restricted to the 'Think' stage.
|
||||
- System 2 (Symbolic) MUST have absolute authority in the 'Decide' stage to block or modify neural proposals.
|
||||
- The I/O protocol (OACP) MUST be encapsulated in 'Perceive' and 'Act'.
|
||||
|
||||
** 2.2. Externalized Configuration (.env)
|
||||
- All secrets (API keys) and environment-specific settings (ports, paths) MUST live in a `.env` file.
|
||||
- The system MUST automatically load `.env` upon system initialization.
|
||||
- Secrets MUST NOT be hardcoded or checked into source control.
|
||||
|
||||
* 3. Success Criteria
|
||||
- TODO Daemon starts and loads LLM_API_KEY from .env.
|
||||
- TODO `cognitive-loop` successfully routes a `:buffer-update` event through all 4 stages.
|
||||
- TODO System 2 (`decide`) successfully blocks an `:eval` request containing "shell-command".
|
||||
Reference in New Issue
Block a user