Roadmap - banisterious/obsidian-charted-roots GitHub Wiki
Roadmap
This document outlines planned features for Charted Roots. For completed features, see Release History. For version-specific changes, see the GitHub Releases.
Table of Contents
- Completed Features
- Planned Features
- GPS Research Workflow Integration π Medium β Phase 3 mostly complete
- Timelines and Calendars π Medium
- Interactive Timeline View π Medium π Planning
- Calendarium Integration π‘ Low
- Single-Person Inline Life Events π Medium
- Future Considerations
- Contributing
Completed Features
For the complete list of implemented features, see Release History.
| Version | Feature | Summary |
|---|---|---|
| v0.20.33 | GEDCOM Field Coverage | Full import/export for 16+ GEDCOM fields: name components, person attributes, burial, death cause, AGE, family events. #316 (citation metadata) still open |
| v0.20.26 | Book & Narrative Compilation | Compile reports, visual trees, vault notes into single PDF/ODT documents with TOC, bibliography, name index |
| v0.20.25 | Research Timeline | charted-roots-research-timeline code block with table, heatmap, and timeline views with gap detection |
| v0.20.18 | Entity Profile View | Auto-syncing sidebar with collapsible sections for all 5 entity types, inline editing, pin/unpin, breadcrumb navigation, state persistence |
| v0.20.17 | Structured Role Lists | roles property on org notes with autocomplete picker, per-type defaults, and 3-level ordering fallback |
| v0.20.17 | Mills-Aligned Source Classification | Three independent classification axes from Evidence Explained: source, information, and evidence classification |
| v0.20.3 | Map View Marker Layering | Place markers now use hollow circles and render below event markers for visual distinction |
| v0.20.0 | Control Center Modularization | 9 dockable sidebar views (People, Places, Events, Sources, Organizations, Relationships, Universes, Collections, Data Quality) with filter/sort/search, auto-refresh, and state persistence |
| v0.19.19 | Inheritance & Succession Tracking | Track ownership changes, property transfers, and succession through event notes with dedicated UI |
| v0.19.18 | Organization Member Management | Manage organization memberships via context menu with multi-select person picker and inline editing |
| v0.19.17 | Unified Place Lookup | Query Wikidata, GeoNames, and Nominatim from a single interface to create place notes with coordinates and hierarchies |
| v0.19.16 | Person Roles in Sources | Track roles (witness, informant, official, etc.) on source notes with modal UI, dynamic block, and Sources by Role report |
| v0.19.15 | Event Type Icons | Display Lucide icons for event types in timelines and map popups with configurable display modes |
| v0.19.14 | Multi-Spouse Visual Cues | Circled spouse numbers (β β‘β’) on family chart edges clarify multi-spouse relationships |
| v0.19.13 | GEDCOM Media Import | Import media references (OBJE records) from GEDCOM files with path resolution and vault validation |
| v0.19.11 | Research Workflow Phase 1 | GPS-aligned research entity types with Statistics Dashboard integration |
See Release History for earlier releases.
Planned Features
Features are prioritized to complete the data lifecycle: import β enhance β export/share.
| Priority | Label | Description |
|---|---|---|
| β‘ High | Core workflow | Completes essential data portability |
| π Medium | User value | Highly requested sharing/output features |
| π‘ Low | Specialized | Advanced use cases, niche workflows |
GPS Research Workflow Integration
Priority: π Medium β Supports GPS methodology for serious genealogists
Status: β Phase 1 complete | β Phase 2 Needs-Research Tagging complete | β Phase 3 mostly complete (3/4 items shipped)
GitHub Issue: #145 (consolidates #124, #125)
Summary: Enable genealogists to manage research workflow using GPS (Genealogical Proof Standard) methodology with support for research projects, reports, individual research notes, and research journals.
Phase 1 β Foundation (Complete):
See Research Workflow Phase 1 (v0.19.11) for implementation details.
Phase 2 β Workflow Integration:
| Feature | Description | Status |
|---|---|---|
| Needs-research tagging | needs_research property on person/event/place notes with Data Quality integration |
β Complete |
| Research log entry form | Modal for adding structured log entries (date, source, result, notes) | Planned |
| IRN auto-generation | "Create Person with Research Note" command generates paired person + IRN files | Deferred |
| IRN refresh | "Refresh IRN from Sources" command updates auto-generated sections | Deferred |
| Breadcrumb navigation | Visual breadcrumb trail at top of research notes following up property chain |
Deferred |
Phase 3 β Advanced Features (Future):
| Feature | Description | Status |
|---|---|---|
| Negative findings view | Query view surfacing all result: negative entries across projects |
β Complete (#287, v0.20.23) |
| Research timeline | Visual timeline of research activities with gap detection | β Complete (#293, v0.20.25) |
| Cross-project queries | "Find related research" command and Profile View section | β Complete (#303, v0.20.34) |
| Templates/Bases | Ready-to-use Bases templates for all research entity types | β Complete (v0.20.16) |
Export & Citations (Separate):
Export features discussed in #145 are tracked separately:
- Footnote preservation in PDF/ODT exports
- Table formatting options
- Research Report export type
Documentation:
- Research Workflow β Usage documentation
- Research Workflow Integration Planning β Full specifications for Phases 2-3
- Community contributors: @ANYroots (IRN structure, GPS methodology), @wilbry (lightweight approach, unified design)
Timelines and Calendars
Three related directions for how Charted Roots handles time β an interactive pan/zoom timeline view, integration with the Calendarium plugin for worldbuilders using fictional calendars, and an inline life-events family that lets users surface discrete per-person events on the timeline block without creating separate event notes. Each is scoped, prioritized, and staged independently; they're grouped here because they share the "rendering and handling time in the vault" theme.
Interactive Timeline View
Priority: π Medium β Completes the timeline gap alongside the existing calendar view and static codeblock timelines
Status: π Planning β see Interactive Timeline View planning doc
GitHub Issue: #384
Summary: A new dockable workspace view that plots vault events on a horizontal time axis the user can pan and zoom. Events are color-coded by type, clickable to open their note, and groupable into swimlanes (by person, place, or universe) for worldbuilding and multi-generation genealogy. Fills the "pan/zoom interactive timeline" gap β today the plugin has a calendar view (monthly grid) and static codeblock timelines, but no axis-based interactive surface.
Design approach:
- Built on vis-timeline (~200KB, BSD-2 license). Handles pan/zoom, multi-scale date axis rendering, and hit-testing β genuinely hard problems we don't need to re-solve.
- Conceptual model borrowed from chronos-timeline-md (events / periods / points / markers / swimlanes), but the chronos library itself is not bundled β we write our own adapter from the plugin's
EventNotedata directly to vis-timeline, skipping the markdown DSL round-trip.
Phased delivery:
| Phase | Scope | Status |
|---|---|---|
| Phase 1 β MVP | Dockable view, flat axis with all events plotted, click to open note, toolbar with search/fit/refresh, date-precision handling (approximate / year-only / undated) | Planned |
| Phase 2 β Grouping & Periods | Swimlane modes (flat / by person / by place / by universe); person lifespans and organization active ranges as background periods | Planned |
| Phase 3 β Filters & Polish | Event type / universe / folder / date-range filters; "today" axis marker; keyboard shortcuts; empty states | Planned |
| Phase 4 β Integration & Export | "Open in timeline" links from Events tab and profile view; PNG / markdown export; saved view presets | Planned |
Out of scope (v1): Drag-to-edit, a charted-roots-interactive-timeline codeblock, native fictional-calendar axis rendering (Calendarium mapping is a separate future consideration). See the planning doc for the full decisions table.
Calendarium Integration
Priority: π‘ Low β Unified timeline experience for fictional worldbuilders
Status: β Phase 1 complete (v0.12.0) | β Phase 2 complete (v0.15.2) | Phases 3-4 planned β soliciting input from users of both plugins
Summary: Integration with the Calendarium plugin to share calendar definitions, eliminating duplicate configuration for worldbuilders. Designed to be invisible to users who don't need itβsettings default to off, and no UI changes appear unless Calendarium is installed.
Phased Approach:
- β Phase 1 (v0.12.0): Import calendar definitions from Calendariumβdelivers ~80% of value
- β
Phase 2 (v0.15.2): Display Calendarium events on Charted Roots timelines; support date ranges (
fc-end) - Phase 3: Bidirectional sync between plugins
- Phase 4: Cross-calendar date translation
See Fictional Date Systems - Calendarium Integration for usage documentation and Calendarium Integration Planning Document for implementation details.
Single-Person Inline Life Events
Priority: π Medium β Reduces event-note overhead for discrete, single-person life moments
Status: π In scoping β see tracking issue #409 for the candidate list; each ships as its own small FR when prioritized.
Summary: Render discrete single-person life events directly on the charted-roots-timeline block, derived from frontmatter fields on the person note β without requiring a separate event note. Extends the existing inline pattern (birth, death, adoption, marriage, divorce) to a broader set of one-person-one-date-one-place moments.
Motivation: Surfaced in discussion #385. @doctorwodka noted that creating separate event notes for every discrete life moment (burial, knighting, transformation, etc.) bloats vault size without adding analytic value β the event is captured fine as a frontmatter date, but today only a handful of events actually render on the timeline. The goal is parity between "field recognized in frontmatter" and "field surfaces on the timeline" for single-person events.
Candidates being tracked:
- Burial β existing
burial_date/burial_placefields, already parsed. Implementation-ready: #408. - Transformation / turning β new field set. High-signal for worldbuilders modeling undead, lycanthropy, or ascension (separate from
died, which many users reserve for permanent destruction). - Coming of age / initiation, knighting / ennoblement, oath-taking, ordination / consecration, exile / banishment β worldbuilder-oriented events with clear "one person, one date, one place" shape. Each requires a schema decision (field naming, whether a place field pairs with the date) that gets made at sub-FR time rather than upfront.
Shipping approach: Incremental per event. Each candidate graduates from the tracking FR's checkbox list to its own small FR when prioritized, following the pattern established by adoption (#396), marriage/divorce (#399), and burial (#408). No "big bang" release β the feature accrues one event at a time, driven by community-feedback priority.
Out of scope for now: User-defined custom single-person event types β @doctorwodka floated the idea during #385, but the overlap with existing event notes needs more community input before designing. Left as a discussion topic, to revisit if demand materializes.
Future Considerations
These features are under consideration but not yet prioritized.
Universe Batch Operations
Bulk operations for managing entities across universes:
- Move entities between universes
- Bulk universe assignment to existing entities
- Universe merge/split tools
Import Wizard Filename Parser Enhancements
Extend the Bulk Source Image Import wizard's filename parser to recognize additional naming conventions used by genealogists:
Enumeration District / Page patterns:
YYYY-recordType_State_County_Locality-ED-p(e.g.,1880-census_SC_Chester_Baton-Rouge-ED37-p60)- Support for slave schedules:
1850-slave-schedule_VA_Henrico-ED12-p3
This pattern is already documented as a recommended naming convention but not yet recognized by the automatic parser. Benefits include:
- Linking multiple families to the same enumeration page
- Supporting FAN (Friends, Associates, Neighbors) research workflows
- Better handling of enslaved ancestor research where context matters
Note: Charted Roots intentionally avoids dictating naming conventionsβthis would be an opt-in enhancement for users who follow the ED/page pattern.
Configurable Family Chart Card Dimensions
Independent width/height controls for family chart in-tree cards, beyond the current four built-in styles (rectangle/circle/compact/mini). Useful for very wide or very vertical trees where the default sizing trades off poorly.
Note: Reassess after #373 (couple node spacing to card width) ships β that fix may remove the underlying pain and obviate the need for separate dimension settings.
Source: Discussion #371.
Structural Filters for the Family Chart
Filter or highlight family chart nodes based on structural/relational criteria rather than just property values. Examples:
- Nth child of a family (e.g. "all second sons")
- Mth-generation descendants of a selected person
- People within N degrees of a selected person
- People linked by a specific relationship type to a selected person
Deliberately avoids building a general graph-query engine. Better scoped as a small set of predefined structural filters covering common worldbuilding and genealogy use cases.
Related: Builds on #379 (property-value highlight).
Source: Discussion #371.
Cross-Spouse Interleaved Child Sort
When a person has multiple spouses, sort children strictly by birth date across all mothers, rather than the current per-mother grouping. Accepts overlapping parent-child lines as a tradeoff.
Considerations:
- Requires changes to the family-chart layout engine.
- May reduce readability for users outside the original author β line crossings are precisely why per-mother grouping is the dominant family tree convention.
- Worth confirming this is a hard requirement rather than a preference before committing to the design effort.
Source: Discussion #371 (polygamous family modeling).
Time-Varying Relationships
Relationships with effective date ranges that can flip over time β e.g. friendship transitioning to rivalry on a specific date. Evaluated against a selected "as-of" date from #376.
Partial substrate already exists: custom relationships carry from/to fields. This work extends that pattern so the relationship evaluation engine can resolve a person's active relationship set for any given date.
Source: Discussion #371.
Dated / Time-Varying Property Values
Property values that change over time (e.g. rank = A in 1650, B in 1680). Requires a new data model for dated property values, UI for entering timeline entries on a property, and rendering logic that resolves values against a selected "as-of" date.
The most transformative feature for worldbuilding use cases, and the largest data-model change on the roadmap. Not viable until #377 (custom property definitions) lands.
Source: Discussion #371.
Accessibility
Summary: Improve usability for users with visual, motor, or cognitive disabilities.
Already Implemented:
- ARIA labels β Interactive buttons, tiles, and controls include
aria-labelattributes for screen readers - Keyboard navigation β Cleanup Wizard supports arrow keys, Enter/Space activation, and Escape to close (v0.18.11)
- Focus indicators β Standard Obsidian focus styles on interactive elements
Planned Improvements:
- Systematic ARIA coverage β Audit all modals and UI components for missing labels
- Focus management β Trap focus in modals, restore focus on close
- Skip-to-content links β Allow keyboard users to bypass navigation in Control Center
- Reduced motion β Respect
prefers-reduced-motionfor animations - Color-independent indicators β Add icons/patterns alongside color for status (not just red/green)
- High contrast mode β Test and adjust colors for high contrast themes
Testing Approach:
- Screen reader testing with NVDA (Windows) and VoiceOver (macOS)
- Keyboard-only navigation testing
- Automated accessibility linting where feasible
Contributing
We welcome feedback on feature priorities!
- Check existing issues
- Open a new issue with
feature-requestlabel - Describe your use case and why the feature would be valuable
See CONTRIBUTING.md for development guidelines.
Questions? Open an issue on GitHub.