index
Pour Documentation
For LLMs: Start here. Navigate to a directory index for scoped exploration, or jump directly to a core document below.
For Humans: See above… but use the graph to guide your exploration!
BACKLOG.kanban is a good place to see where you can help :)
Vault Structure
| Directory | Index | Contents |
|---|---|---|
00 index/ |
this note |
Root navigation hub for the vault |
01 concepts/ |
CONCEPTS | Atomic concept notes and durable project knowledge |
02 references/ |
REFERENCES | Library API references and external docs |
03 guides/ |
GUIDES | Developer workflow and implementation guides |
04 architecture/ |
ARCHITECTURE | Design spec, ADRs |
05 notes/ |
NOTES | Legacy fleeting notes and pre-atomic working notes |
06 reports/ |
- | Sprint reports and progress snapshots |
07 stories/ |
STORIES | Vision and manifesto |
08 specs/ |
SPECS | Feature and component specifications |
09 milestones/ |
- | Release and milestone summaries — v0.2.0-Foundation, v1.0.0-Release |
10 PRs/ |
PRS | Plaintext persisted GitHub PRs with Context and linking |
99 meta/ |
- | Templates and vault maintenance material |
.obsidian/ is vault configuration and snippet state, not part of the documentation corpus.
Core Documents
- pour-design-spec — Complete design specification (source of truth)
- the_pour_manifesto — Why we build Pour
- System-Architecture-Overview — Concise subsystem map
- pour-preset-hierarchy — Preset hierarchy drilldown spec (TUI picker,
preset_axes, ungrouped, validation) - v0.2.0-Foundation — Capture-loop foundation (shipped)
- v1.0.0-Release — Aspirational freeze criteria
Quick Reference
Common Commands
cargo build # compile
cargo run # run dashboard
cargo run -- coffee # run a specific module
cargo test # run all tests
cargo clippy # lint
cargo fmt # format
Key File Locations
| Area | File |
|---|---|
| Entry point | src/main.rs |
| Config schema | ~/.pour/config.toml |
| Cache | ~/.pour/cache/state.json |
Architecture Overview
Pour writes to Obsidian via a __hybrid transport layer__:
- API — HTTPS via reqwest to Obsidian Local REST API (
https://127.0.0.1:27124, accepts self-signed certs) - File System — Direct
std::fsfallback if API unavailable. In append mode, this fallback materialises as an atomic timestamped note rather than a destructive in-place write.
Dynamic Data Fetching (3-tier fallback)
API query -> disk scan -> ~/.pour/cache/state.json cache -> freetext input. Novel values entered into `dynamic_select` fields trigger inline note creation back into the vault.
Last Updated: 2026-04-29
Documentation Version: v0.1.0