Doramagic Project Pack · Human Manual
palinode
The memory substrate for AI agents and developer tools. Git-versioned, file-native, MCP-first.
Overview, Supported Platforms, and Quickstart
Related topics: System Architecture and Interface Layer, Deployment, Diagnostics, Obsidian, and Extensibility
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: System Architecture and Interface Layer, Deployment, Diagnostics, Obsidian, and Extensibility
Overview, Supported Platforms, and Quickstart
Purpose and Scope
Palinode is an agent memory layer that stores knowledge as plain Markdown files with YAML frontmatter under a git repo you control. The system is "local-first" — there are no accounts, no cloud dependency, and no vendor lock-in. Memory is consumable across multiple IDEs and agent runtimes via the Model Context Protocol (MCP), and every write produces a reviewable git commit (README.md).
The project's core principles, as stated in the README, are:
- Your data, your files — markdown files in a directory you own; export is
cp; backup isgit push. - Cross-IDE memory — one memory store, many MCP-compatible editors.
- Git operations as agent tools —
diff,blame,rollback,pushexposed via MCP. - Operation-based compaction — KEEP/UPDATE/MERGE/SUPERSEDE/ARCHIVE operations, each producing a deterministic git commit.
- Per-fact addressability — invisible
<!-- fact:slug -->IDs inline in markdown, targetable by compaction. - 4-phase injection — Core + Topic + Associative + Triggered context windows.
- Multi-transport MCP — stdio for local editors, Streamable HTTP for remote (README.md).
High-Level Architecture
The Palinode runtime consists of three cooperating processes: the FastAPI HTTP server, the stdio MCP bridge, and the on-disk Markdown store fronted by SQLite-vec + FTS5 indexes. The HTTP server exposes REST endpoints, the MCP bridge talks to MCP-compatible agents, and the watcher auto-embeds new files into the index.
flowchart LR
A[Agent / IDE<br/>Claude Code, Cursor, Zed, VS Code] -->|MCP stdio| B[palinode-mcp]
A -->|MCP HTTP| C[palinode-api<br/>FastAPI :6340]
B -->|REST| C
C --> D[(Memory Store<br/>Markdown + git)]
C --> E[(SQLite-vec<br/>Vector index)]
C --> F[(SQLite FTS5<br/>Keyword index)]
C --> G[Ollama<br/>BGE-M3 embeddings]
H[palinode CLI] -->|REST| CSource: palinode/api/server.py, README.md
Supported Platforms and Integrations
MCP-Compatible Editors
Palinode presents itself as an MCP server. The Claude Code plugin scaffold (claude-plugin/) is the canonical local integration; it ships a plugin manifest and an MCP server definition (claude-plugin/.claude-plugin/plugin.json, claude-plugin/.mcp.json). The community is actively working through coverage of other editors; issue #24 ("Multi-platform MCP and integration docs") tracks Claude Code, Cursor, Zed, and VS Code setup instructions, and issue #60 covers OpenClaw and Hermes-agent. The README itself already lists Claude Code, Cursor, Windsurf, and Zed as supported targets (README.md).
MCP Transports
| Transport | Use case | Endpoint |
|---|---|---|
| stdio | Local editor on the same machine | palinode-mcp |
| Streamable HTTP | Remote editor or LAN agent | http://localhost:6340/mcp |
| REST | CLI and external scripts | http://localhost:6340/* |
Source: README.md, palinode/api/server.py
Distribution Channels
In addition to pip install, Palinode is distributed via a Homebrew tap (brew install palinode, tracked in issue #8), a Nix flake with a systemd module (issue #7, shipped), and is queued for submission to community MCP directories — the Official MCP Registry, Smithery, mcp.so, and Cline (issue #35). Submission to the Anthropic Connectors Directory is gated on the MCPB bundle shipping (issues #29 and #62).
Quickstart
The canonical zero-friction path is summarized in examples/CLAUDE.md (examples/CLAUDE.md) and tracked as the "CLAUDE.md integration — zero-friction adoption path" effort in issue #32.
1. Install and Initialize
# Install (one of):
pip install palinode # PyPI
brew install palinode # Homebrew tap (issue #8)
nix profile install . # Nix flake (issue #7)
# Scaffold the memory directory:
palinode init --obsidian ~/Documents/palinode-memory
palinode init creates the canonical directory layout: people/, projects/, decisions/, insights/, research/, archive/, and the managed .palinode/ index state (palinode/cli/init.py). The init command is idempotent — re-running it restores scaffolded files without clobbering user edits.
2. Start the Server
palinode-api # FastAPI on http://localhost:6340
Verify reachability:
curl http://localhost:6340/status
# expect: { "ollama_reachable": true, ... }
Source: claude-plugin/README.md, palinode/api/server.py
3. Wire Up Your Agent
For Claude Code, the plugin scaffold provides the wiring out of the box. For other MCP clients, point them at the stdio binary palinode-mcp or the HTTP endpoint http://localhost:6340/mcp. The bundled troubleshooting section in claude-plugin/README.md notes three common failures: missing palinode-mcp on PATH (re-run pip install -e .), API connection refused (start palinode-api), and embedder connection refused (start Ollama) (claude-plugin/README.md).
4. Save, Search, and Backfill
Save from any agent via the palinode_save MCP tool or the POST /save REST endpoint; the write layer auto-emits a git commit and injects an idempotent ## See also wiki footer for un-linked entities (palinode/api/memory_write.py). Search with palinode_search; lint with palinode_lint. The palinode obsidian-sync CLI walks legacy memory files and backfills the wiki footer introduced after Deliverable C — dry-run by default, pass --apply to write (palinode/cli/obsidian_sync.py).
5. Optional: AI Bootstrap Helpers
Issue #61 tracks an llms-install.md file that gives agents a step-by-step bootstrap recipe (Ollama detection, venv-path discipline) to remove the two recurring friction points observed during Cline preflight testing on 2026-04-29. Until that file ships, the README and examples/CLAUDE.md are the canonical bootstrap entry points.
Common Failure Modes
| Symptom | Likely cause | Fix |
|---|---|---|
palinode-mcp: command not found | Console script not on PATH | Re-run pip install -e . from source |
Failed to connect to Palinode API | HTTP server not running | Start palinode-api; verify with curl /status |
Embedder error: connection refused | Ollama not running | ollama serve or start the macOS app |
| Search returns nothing | Watcher hasn't indexed yet | Check total_files / fts_chunks in /status |
Source: claude-plugin/README.md, README.md
See Also
- Memory Model and Frontmatter Schema
- Compaction DSL: KEEP/UPDATE/MERGE/SUPERSEDE/ARCHIVE
- MCP Tools Reference
- Embedding, Indexing, and the Watcher
Source: https://github.com/phasespace-labs/palinode / Human Manual
System Architecture and Interface Layer
Related topics: Overview, Supported Platforms, and Quickstart, Indexing, Search, LLM Compaction, and Audit, Deployment, Diagnostics, Obsidian, and Extensibility
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Overview, Supported Platforms, and Quickstart, Indexing, Search, LLM Compaction, and Audit, Deployment, Diagnostics, Obsidian, and Extensibility
System Architecture and Interface Layer
Overview
Palinode exposes a single underlying memory store (markdown files in a git repo, indexed by SQLite-vec + FTS5) through three convergent interfaces and a human-facing web UI. Every tool — save, search, blame, rollback, consolidate, lint, etc. — is reachable as palinode_<name> via MCP, palinode <name> via the CLI, POST/GET /<name> via the REST API, and as a server-rendered page in the dashboard. This "one server, four surfaces" design is what lets the same memory back Claude Code, Cursor, Zed, and Cline simultaneously (README.md).
The interface layer is split into palinode.api.routers/ (split router packages for MCP/REST), palinode.api.ui/ (Jinja templates + sanitized markdown rendering), and palinode.cli/ (Click commands). v0.8.15 explicitly added palinode.api.routers to the wheel packaging list because v0.8.14's split source tree shipped a broken palinode console command that couldn't import the server module — a regression test now guards the package set (README.md).
flowchart LR
subgraph Clients
IDE[Claude Code / Cursor / Zed / Cline]
CLI[CLI - palinode ...]
UI[Web Browser Dashboard]
end
subgraph Transports
STDIO[stdio MCP]
HTTP[Streamable HTTP / REST]
Web[FastAPI Jinja]
end
subgraph palinode.api
Routers[routers/ - memory, search, ...]
MemWrite[memory_write]
Enrich[enrichment]
Util[_util - sanitized 500, retrieval log]
UIRender[ui/render.py - nh3 + markdown-it]
end
Store[(Markdown + YAML\n+ git\n+ SQLite-vec + FTS5)]
IDE -->|MCP| STDIO --> Routers
CLI --> Routers
UI --> Web --> UIRender
Routers --> MemWrite
Routers --> Enrich
Routers --> Util
MemWrite --> Store
Enrich --> StoreThe REST / MCP Router Layer
palinode.api.routers.memory is the central write path. When a file is written it is parsed, frontmatter is normalized, an auto-description is generated if the file is eligible, and a wikilink footer (## See also) is injected for any entity not already linked inline (palinode/api/routers/memory.py). Eligibility for the persisted description field is decided by _is_description_eligible, which checks that the file lives directly under one of the memory-category directories; daily/, archive/, specs/, and top-level docs are excluded so the watcher does not burn inference on output it would throw away (palinode/api/memory_write.py).
Cross-cutting plumbing — sanitized 500 helpers, the UTC clock, CWD→slug derivation, and the retrieval-event logger — lives in palinode/api/_util.py. This module was extracted from the former routers/_shared.py "junk drawer" so that genuinely miscellaneous helpers don't pollute any one themed router module (palinode/api/_util.py).
The enrichment subsystem (palinode/api/enrichment.py) wraps a one-line description prompt around memory content and routes through a centralized chat client with a primary/fallback chain. On OllamaError, OllamaTimeout, or OllamaCircuitOpen the call returns an empty string and the watcher retries on the next pass rather than blocking the write path inline (palinode/api/enrichment.py).
The Web UI Layer
The dashboard is served from palinode/api/ui/ and renders Jinja templates that are intentionally store-agnostic. Markdown bodies are rendered with markdown-it-py (HTML disabled) and then run through nh3 (an ammonia/html5lib sanitizer) as a defense-in-depth backstop. The allow-list covers prose, headings, lists, code, tables, and links — but explicitly omits <script>, <style>, <iframe>, <object>, <form>, and any event-handler-bearing element, because the body is agent-generated and raw HTML in markdown is an XSS vector (palinode/api/ui/render.py).
The three template surfaces most often reached from a CLI / MCP session-end flow are:
| Template | Purpose | Source |
|---|---|---|
fact.html | Single memory view with provenance chip and tamper-detection pill | fact.html |
diffs.html | Recent git commits grouped by day with file pills linking back to fact | diffs.html |
quality.html | Lint-driven quality queues (orphans, contradictions, staleness) | quality.html |
The fact.html template renders a provenance aside that flips to a broken-seal style when broken_seal is set, which is how the UI surfaces tamper detection back to the operator without exposing raw commit hashes (palinode/api/ui/templates/fact.html).
The CLI Layer
The CLI is a thin Click wrapper that delegates to the same router functions the MCP and REST surfaces use. palinode init scaffolds the canonical directory tree (people/, projects/, decisions/, insights/, research/, archive/, .palinode/) and explicitly notes that wikilinks ([[like this]]) are first-class — Palinode reads and writes them, and that .palinode/ is daemon-managed and must not be edited (palinode/cli/init.py).
palinode obsidian-sync is a one-shot backfill that walks the memory directory and applies the same _apply_wiki_footer transformation the live write path uses. By default it is a dry run; --apply writes changes, --include and --exclude scope the walk, and the skip set mirrors lint.py plus Obsidian's .obsidian/ config dir. Already-synced files are silently skipped so re-runs are idempotent (palinode/cli/obsidian_sync.py).
The palinode orphan-repair Click command shells out to the API's orphan_repair tool, which returns semantically related files for a broken [[wikilink]] target so the operator can either redirect the link or create the missing target with informed context (palinode/cli/embedding_tools.py). Together these CLI commands implement the "zero taxonomy burden" principle called out in the README: the system classifies, the human reviews, and the data stays as plain markdown that any tool — including cat — can read.
See Also
- README.md — high-level overview, stack, and tool inventory
- Community tracking: issue #24 (multi-platform MCP install docs for Claude Code, Cursor, Zed, VS Code), issue #29 / #62 (Anthropic Connectors Directory submission prerequisites), issue #61 (
llms-install.mdfor agent-bootstrap friction), and issue #32 (zero-frictionCLAUDE.mdadoption) — all directly shape how the interface layer is documented and packaged.
Source: https://github.com/phasespace-labs/palinode / Human Manual
Indexing, Search, LLM Compaction, and Audit
Related topics: System Architecture and Interface Layer, Deployment, Diagnostics, Obsidian, and Extensibility
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: System Architecture and Interface Layer, Deployment, Diagnostics, Obsidian, and Extensibility
Indexing, Search, LLM Compaction, and Audit
Overview
Palinode treats markdown files in a single directory as the source of truth for an agent's long-term memory. Four cooperating subsystems keep that corpus queryable, summarizable, and accountable:
- Indexing watches the memory directory, parses frontmatter, embeds chunks into a vector index, and writes auto-generated descriptions and summaries.
- Search combines SQLite-vec cosine similarity with SQLite FTS5 BM25 keyword matching, plus ambient project-aware retrieval.
- LLM Compaction uses a KEEP/UPDATE/MERGE/SUPERSEDE/ARCHIVE operation DSL applied deterministically and committed to git.
- Audit leverages git provenance —
history,blame,diff, androllback— so every fact traces back to the commit that recorded it.
These surfaces are exposed via three transports (MCP palinode_*, CLI palinode <name>, REST POST/GET /<name>) from the same FastAPI process. Source: README.md.
Source: https://github.com/phasespace-labs/palinode / Human Manual
Deployment, Diagnostics, Obsidian, and Extensibility
Related topics: Overview, Supported Platforms, and Quickstart, System Architecture and Interface Layer, Indexing, Search, LLM Compaction, and Audit
Continue reading this section for the full explanation and source context.
Related Pages
Related topics: Overview, Supported Platforms, and Quickstart, System Architecture and Interface Layer, Indexing, Search, LLM Compaction, and Audit
Deployment, Diagnostics, Obsidian, and Extensibility
Palinode ships as a pip-installable Python package with three cooperating processes: palinode-api (HTTP on port 6340), palinode-mcp (stdio MCP server), and palinode-watcher (filesystem indexer). Beyond installation, the project invests heavily in operational diagnostics, an Obsidian-aware wiki contract, and extension surfaces for editors, NixOS, and CI agents. This page maps those concerns to the source files that implement them.
Deployment and Installation
The canonical install is pip install -e . from the repository root, which registers four console scripts: palinode, palinode-api, palinode-mcp, and palinode-watcher. A successful install also creates the SQLite-vec + FTS5 store on first run. Source: README.md.
palinode init is the on-ramp for a new project. It scaffolds a complete memory layout — people/, projects/, decisions/, insights/, research/, archive/, and .palinode/ — plus the editor glue files expected by Claude Code, Cursor, and Obsidian:
| Generated file | Purpose |
|---|---|
.claude/CLAUDE.md | Project-local agent instructions that teach Claude about Palinode commands |
.claude/settings.json | Hook registration (e.g. palinode-session-end.sh) |
.claude/commands/{save,ps,wrap}.md | Slash-command bodies (single source of truth — no drift) |
.mcp.json | MCP server registration for stdio transport |
.obsidian/{app,graph,workspace}.json | Wikilinks on, daily/ as default, color groups |
_index.md, _README.md | Starter Map-of-Content and vault orientation |
--obsidian <vault-path> writes the Obsidian scaffold; --force-obsidian overwrites it while preserving workspace.json. Source: palinode/cli/init.py:1-120.
The Claude Code plugin scaffold (claude-plugin/) replaces the older OpenClaw plugin/ directory that shipped before v0.6.0, reflecting the migration tracked in issue #2. The plugin README documents the same troubleshooting matrix used by the daemon — missing PATH, Ollama unreachable, stale search results. Source: claude-plugin/README.md.
Diagnostics and Observability
palinode doctor runs 18+ checks across paths, services, config consistency, index health, and disk state. The output is a structured pass/warn/fail report; --fix applies safe automated repairs (creates missing directories, appends the CLAUDE.md Palinode block) but never moves user data — phantom DB files and path mismatches print suggested mv commands instead. palinode doctor_deep adds a canary write test (~10–15 s). Source: README.md.
Two observability channels are wired into every request path:
- Retrieval-event instrumentation (ADR-007 prerequisite, #256). A lazy-initialised
RetrievalLoggerwrites to the memory directory whenconfig.instrumentation.capture_retrievalsis true. The flag is honoured by the env varPALINODE_INSTRUMENTATION_DISABLEDfor CI runs that need a clean disk. Source: palinode/api/_util.py:1-40. - Reindex / auto-summary counters. The watcher path increments
desc_count,desc_errors, and a "description deferred (ollama slow)" sentinel counter. Deferrals (Ollama circuit-open or timeout) are not failures — they leave the file eligible and the next watcher pass retries. Source: palinode/api/routers/memory.py:1-60.
Auto-summarization routes through a centralized chat client with retries=0 (latency-sensitive). If the primary returns empty/garbage, the fallback chain runs; if both fail, _clean_llm_oneliner extracts the first prose line as a backstop. The eligibility predicate excludes daily/, archive/, specs/, and top-level docs — counting their descriptions was the permanent-backlog bug #472 fixed by the predicate. Source: palinode/api/enrichment.py:1-80.
The provenance UI renders agent-generated markdown through markdown-it-py (HTML disabled) and a second nh3 sanitizer pass. The sanitizer is the load-bearing layer — it strips <script>, onerror=, and javascript: regardless of how they entered the markdown body. Source: palinode/api/ui/render.py:1-30. The Quality Queues dashboard (/ui/quality) surfaces lint findings grouped by kind — contradictions get a dedicated presentation row that links back to the fact entity. Source: palinode/api/ui/templates/quality.html.
Obsidian Integration and the Wiki Contract
Wikilinks ([[like this]]) are first-class. Every palinode_save writes a Layer 2 auto-footer under ## See also that links any entities: frontmatter entry that is not already linked inline. The footer is idempotent — entity refs use the slash form category/slug, and only the *slug* part becomes the [[...]] target. Hostile entity slugs containing ]], |, whitespace, or other markdown-special characters are dropped via _safe_wiki_slug (regex ^[A-Za-z0-9._-]+$) before emission. Source: palinode/api/memory_write.py:1-120.
palinode obsidian-sync is the backfill CLI for files written before Deliverable C (the auto-footer) shipped. It walks all .md files under PALINODE_DIR, skipping archive/, logs/, .obsidian/, and .palinode/, then applies the same _apply_wiki_footer transformation in bulk. Default is a dry run; pass --apply to write. Idempotent re-runs detect the existing auto-footer marker and skip silently. Include/exclude globs scope the pass:
palinode obsidian-sync --apply --include "projects/*.md" --exclude "archive/**"
Source: palinode/cli/obsidian_sync.py:1-80.
Extensibility Surfaces
Four CLI commands form the Obsidian embedding-tool MVP (issues #210 and #235). All four honor TTY-aware output (text for humans, JSON when piped) and proxy through the same MCP/API surface:
flowchart LR
A[Agent / User] -->|CLI| B[palinode dedup-suggest]
A -->|CLI| C[palinode orphan-repair]
A -->|CLI| D[palinode cluster-neighbors]
A -->|CLI| E[palinode topic-coverage]
B --> F[palinode-api :6340]
C --> F
D --> F
E --> F
F --> G[(SQLite-vec + FTS5)]
F --> H[Ollama bge-m3]dedup-suggestflags strong duplicates at ≥0.90 similarity for draft content.orphan-repairfinds semantic matches for broken[[wikilinks]]to either propose redirects or scaffold the missing target file.cluster-neighborslists files semantically related but NOT already wiki-linked to or from a given file (surfaces implicit cross-link candidates).topic-coverageanswerscovered/best_match/similarityfor a topic phrase — a binary gate before creating new pages.
Source: palinode/cli/embedding_tools.py:1-80.
Beyond the editor plugin and CLI, the project also exposes a Nix flake plus a NixOS/nix-darwin service module (issue #7, shipped), and tracks Anthropic Connectors Directory submission for after an MCPB bundle ships (#62). The CLAUDE.md integration (#32) and Homebrew tap (#8) are open work that lowers the friction to zero for new adopters.
See Also
Source: https://github.com/phasespace-labs/palinode / Human Manual
Doramagic Pitfall Log
Source-linked risks stay visible on the manual page so the preview does not read like a recommendation.
Developers may fail before the first successful local run: Add llms-install.md for agent-bootstrap (Ollama detection + venv-path discipline)
Developers may fail before the first successful local run: Anthropic Connectors Directory submission (after MCPB bundle ships)
Developers may fail before the first successful local run: Build in public — show Palinode building Palinode
Developers may fail before the first successful local run: CLAUDE.md integration — zero-friction adoption path
Doramagic Pitfall Log
Found 34 structured pitfall item(s), including 0 high/blocking item(s). Top priority: Installation risk - Installation risk requires verification.
1. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Add llms-install.md for agent-bootstrap (Ollama detection + venv-path discipline)
- User impact: Developers may fail before the first successful local run: Add llms-install.md for agent-bootstrap (Ollama detection + venv-path discipline)
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Add llms-install.md for agent-bootstrap (Ollama detection + venv-path discipline). Context: Observed when using node, python
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/61
2. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Anthropic Connectors Directory submission (after MCPB bundle ships)
- User impact: Developers may fail before the first successful local run: Anthropic Connectors Directory submission (after MCPB bundle ships)
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Anthropic Connectors Directory submission (after MCPB bundle ships). Context: Observed when using node
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/62
3. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Build in public — show Palinode building Palinode
- User impact: Developers may fail before the first successful local run: Build in public — show Palinode building Palinode
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Build in public — show Palinode building Palinode. Context: Observed when using node
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/33
4. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: CLAUDE.md integration — zero-friction adoption path
- User impact: Developers may fail before the first successful local run: CLAUDE.md integration — zero-friction adoption path
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: CLAUDE.md integration — zero-friction adoption path. Context: Observed when using node, python
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/32
5. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Directory submissions — MCP Registry, Smithery, mcp.so, Cline
- User impact: Developers may fail before the first successful local run: Directory submissions — MCP Registry, Smithery, mcp.so, Cline
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Directory submissions — MCP Registry, Smithery, mcp.so, Cline. Context: Observed when using node
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/35
6. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Docs: public integration guide for OpenClaw and Hermes-agent
- User impact: Developers may fail before the first successful local run: Docs: public integration guide for OpenClaw and Hermes-agent
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Docs: public integration guide for OpenClaw and Hermes-agent. Context: Observed during installation or first-run setup.
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/60
7. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Homebrew tap (brew install palinode)
- User impact: Developers may fail before the first successful local run: Homebrew tap (brew install palinode)
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Homebrew tap (brew install palinode). Context: Observed during installation or first-run setup.
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/8
8. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: Multi-platform MCP and integration docs (Claude Code, Cursor, Zed, VS Code)
- User impact: Developers may fail before the first successful local run: Multi-platform MCP and integration docs (Claude Code, Cursor, Zed, VS Code)
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: Multi-platform MCP and integration docs (Claude Code, Cursor, Zed, VS Code). Context: Observed when using node
- Evidence: failure_mode_cluster:github_issue | https://github.com/phasespace-labs/palinode/issues/24
9. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: v0.8.13
- User impact: Upgrade or migration may change expected behavior: v0.8.13
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: v0.8.13. Context: Observed when using node
- Evidence: failure_mode_cluster:github_release | https://github.com/phasespace-labs/palinode/releases/tag/v0.8.13
10. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Developers should check this installation risk before relying on the project: v0.8.15
- User impact: Upgrade or migration may change expected behavior: v0.8.15
- Recommended check: Before packaging this project, run the relevant install/config/quickstart check for: v0.8.15. Context: Observed when using python
- Evidence: failure_mode_cluster:github_release | https://github.com/phasespace-labs/palinode/releases/tag/v0.8.15
11. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Project evidence flags a installation risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/phasespace-labs/palinode/issues/61
12. Installation risk: Installation risk requires verification
- Severity: medium
- Finding: Project evidence flags a installation risk. Review the linked source before relying on this workflow.
- User impact: May increase setup, validation, or first-run risk for the user.
- Recommended check: Reproduce the official install and quickstart path in an isolated environment.
- Evidence: community_evidence:github | https://github.com/phasespace-labs/palinode/issues/33
Source: Doramagic discovery, validation, and Project Pack records
Community Discussion Evidence
These external discussion links are review inputs, not standalone proof that the project is production-ready.
Count of project-level external discussion links exposed on this manual page.
Open the linked issues or discussions before treating the pack as ready for your environment.
Community Discussion Evidence
Doramagic exposes project-level community discussion separately from official documentation. Review these links before using palinode with real data or production workflows.
- Docs: public integration guide for OpenClaw and Hermes-agent - github / github_issue
- Migrate plugin from before_agent_start to before_prompt_build - github / github_issue
- CLAUDE.md integration — zero-friction adoption path - github / github_issue
- Anthropic Connectors Directory: submission prep - github / github_issue
- Anthropic Connectors Directory submission (after MCPB bundle ships) - github / github_issue
- Directory submissions — MCP Registry, Smithery, mcp.so, Cline - github / github_issue
- Build in public — show Palinode building Palinode - github / github_issue
- Ambient context search: automatic project-aware retrieval (ADR-008) - github / github_issue
- Homebrew tap (brew install palinode) - github / github_issue
- Interop: Palinode's KEEP/UPDATE/MERGE/SUPERSEDE/ARCHIVE maps to IETF KU - github / github_issue
- Add llms-install.md for agent-bootstrap (Ollama detection + venv-path di - github / github_issue
- Nix flake + systemd service module - github / github_issue
Source: Project Pack community evidence and pitfall evidence