Skip to main content

arrow_kanban/
lib.rs

1//! nusy-kanban — Arrow-native kanban engine for NuSy.
2//!
3//! Provides:
4//! - **Config** — parse `.yurtle-kanban/config.yaml` (dual boards, WIP limits, state graphs)
5//! - **Schemas** — Arrow table definitions for items, relations, runs
6//! - **Item Types** — 12 types across development and research boards
7//! - **ID Allocation** — sequential, conflict-safe ID assignment
8//! - **State Machine** — valid transitions, WIP limit enforcement
9//! - **CRUD** — create, read, update, delete items with audit trail
10//! - **Relations** — cross-item and cross-board links
11//! - **Persistence** — Parquet-backed load/save
12//! - **Query** — NL + structured filter extraction
13//! - **Display** — terminal table and board rendering
14//! - **Export** — markdown + next-id output
15//! - **Migration** — parse Yurtle markdown files into Arrow tables
16
17pub mod base64;
18#[cfg(feature = "client")]
19pub mod client;
20pub mod comments;
21pub mod config;
22pub mod critical_path;
23pub mod crud;
24pub mod display;
25#[cfg(feature = "embeddings")]
26pub mod embeddings;
27pub mod experiment_runs;
28pub mod export;
29#[cfg(feature = "pr")]
30pub mod git_cli;
31pub mod hdd;
32pub mod hooks;
33pub mod id_alloc;
34pub mod item_type;
35#[cfg(feature = "client")]
36pub mod mcp_server;
37pub mod migrate;
38#[cfg(feature = "persistence")]
39pub mod persist;
40#[cfg(feature = "persistence")]
41pub mod persistence;
42#[cfg(feature = "pr")]
43pub mod pr_cli;
44pub mod query;
45pub mod relations;
46pub mod schema;
47#[cfg(feature = "pr")]
48pub mod source_cli;
49pub mod state_machine;
50pub mod stats;
51pub mod templates;
52pub mod turtle_builder;
53pub mod validate;
54
55pub use comments::CommentsStore;
56pub use config::{BoardConfig, ConfigFile};
57pub use crud::{CreateItemInput, CrudError, KanbanStore};
58pub use hdd::{
59    build_registry, create_experiment, create_hypothesis, create_idea, create_literature,
60    create_measure, create_paper, query_experiment_queue, traverse_relations, validate_hdd,
61};
62pub use id_alloc::{allocate_id, allocate_id_from_str, max_id_for_type};
63pub use item_type::ItemType;
64pub use migrate::{MigrateResult, migrate_boards};
65#[cfg(feature = "persistence")]
66pub use persistence::{
67    GitBackupMetrics, HealthMetrics, PersistenceConfig, PersistenceEngine, SaveMetrics,
68};
69pub use relations::RelationsStore;
70pub use schema::{comments_schema, items_schema, relations_schema, runs_schema};
71pub use state_machine::{check_wip_limit, validate_transition};