Personal Knowledge Server with versioned conceptual memory. Provides MCP tools for cognitive lifecycle management, skill indexing, maintenance operations, and domain-based retrieval boosting.
Pith Core exposes 14 tools with complete input schemas and descriptions. Naming follows verb_noun convention (recommend_, register_, record_, get_, scan_, cleanup_, rollback_, enqueue_, detect_, compute_, apply_). Descriptions are present and substantive (avg ~120 chars), explaining WHAT each tool does and WHEN to use it. However, output schemas are not documented in the provided source, LLMs cannot predict return structures. Parameter descriptions are adequate but lack format constraints (enums, ranges, patterns). Error handling is minimal; no recovery guidance visible. Security considerations (permission gates, audit trails) are absent from tool definitions. Composition is reasonable, tools are single-responsibility, but some tools (e.g., apply_domain_boost) combine detection + computation, which could be split.
Full S1.5 pipeline: detect domains, compute boosts. Returns (boost_map, activated_domain_ids) for logging/response.
Dry-run or quarantine stale incremental temp dirs. In apply mode, moves candidates to quarantine instead of deleting them. Returns manifest with detailed entry status.
Compute per-area boost values from activated domains. Implements max semantics for areas in multiple domains with BOOST_CAP ceiling (0.15). Returns {knowledge_area: capped_boost_value}.
Detect which domains to activate for a message. Implements word boundary trigger scanning, domain scoring, and capping at MAX_ACTIVE_DOMAINS (2). Returns list of activated domain dicts.
Queue governance and optional similarity work without blocking learning. Enqueues autolearn maintenance tasks (governance recompute, subject key supersession, similarity supersession) to the maintenance queue.
Output schemas not documented. LLMs cannot predict return structures (e.g., what fields does get_skill_health return? Is it paginated?). This forces agents to guess and risks context loss.
Parameter constraints missing. 'event_type' in record_skill_event should be an enum (fire|recommend), not free-form string. 'min_age_hours' lacks range (0-∞?). LLMs will hallucinate invalid values.
No error handling guidance. Tools like cleanup_incremental_tmp_dirs and rollback_incremental_tmp_cleanup are destructive/reversible but provide no recovery hints if something fails. Agents have no next-step guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Queue deterministic subject-key supersession fallback. Enqueues a subject key supersession task for a concept.
Return queue health counts for diagnostics. Provides status of all queued, running, done, skipped, and failed maintenance tasks.
Return health metrics for all registered skills. Includes fire counts, recommendation counts, staleness metrics, and status (never_fired, stale, dormant, active).
Load all active domains with their area mappings. Returns list of domain dicts with domain_id, name, strategic_priority, activation_triggers, and area_mappings.
Recommend skill file paths based on user message. Returns list of skill file paths the caller should read before responding. Empty list = no skill recommendations (most common case). Algorithm: Simple keyword overlap between message and skill keywords.
Record a skill firing or recommendation event. Updates skill registry with event timestamps and counters.
Register a skill in Pith's skill index. Called by skill deployer (SKILL-004) during pith_deploy_skills. Persists to DB metadata for cross-session availability.
Restore quarantined entries marked as moved in a cleanup manifest. Reverses a previous cleanup operation.
Scan for stale incremental temp dirs without modifying disk. Returns candidates and skipped entries with detailed metadata.
apply_domain_boost combines two responsibilities (detect + compute). Should be split into separate tools so agents can compose them independently. Violates single-responsibility principle.
No permission gates or audit trail declarations. Tools like register_skill and enqueue_autolearn_maintenance modify state but lack scope declarations (e.g., 'requires: write:skills'). No logging guidance for compliance.