Skip to content

Commit 0838eae

Browse files
committed
Add spec landing page and cross-references
Add docs/spec.md as a landing page for the specification section with a section index, conformance summary, and implementer guidance. Link to it from the home page quick links and from core-concepts field mapping section. Update nav to include the landing page.
1 parent dc90a14 commit 0838eae

4 files changed

Lines changed: 43 additions & 0 deletions

File tree

docs/core-concepts.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,8 @@ TaskNotes uses several property types:
7373

7474
Property keys are configurable. If your vault uses `deadline` instead of `due`, you can map TaskNotes to use your existing field names without modifying your files.
7575

76+
The exact rules for how fields map to semantic roles, how dates are interpreted, and how operations like completion and recurrence behave are defined in the [TaskNotes Specification](spec.md). The spec is the shared contract between the Obsidian plugin, the terminal UI, and any other tool that reads or writes TaskNotes data.
77+
7678
### Custom Fields
7779

7880
Add any frontmatter property to your tasks. User-defined fields work in filtering, sorting, and templates. Define custom fields in `Settings -> TaskNotes -> Task Properties` to include them in task modals and views.

docs/index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,8 @@ Use [Core Concepts](core-concepts.md) to understand the data model, [Features](f
6464
<span class="card__title">Troubleshooting</span>
6565
<span class="card__desc">Common issues and how to resolve them</span>
6666
</a>
67+
<a class="card" href="/spec/">
68+
<span class="card__title">Specification</span>
69+
<span class="card__desc">The formal spec behind TaskNotes: data model, operations, recurrence, and conformance</span>
70+
</a>
6771
</div>

docs/spec.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# TaskNotes Specification
2+
3+
The TaskNotes specification defines how tools should read, write, and reason about task data stored as markdown files with YAML frontmatter.
4+
5+
It exists so that multiple implementations — the Obsidian plugin, the terminal UI, CLI tools, and anything else that touches the same vault — can agree on what a task looks like, how dates and recurrence work, and what happens when a task is completed, skipped, or archived.
6+
7+
The spec is maintained separately from any single implementation. The canonical source is [callumalpass/tasknotes-spec](https://github.com/callumalpass/tasknotes-spec).
8+
9+
## Sections
10+
11+
| Section | Content |
12+
|---|---|
13+
| [Overview](spec/00-overview.md) | Motivation, scope, and design principles |
14+
| [Terminology](spec/01-terminology.md) | Normative definitions used throughout |
15+
| [Model & Mapping](spec/02-model-and-mapping.md) | Task data model, semantic roles, and field mapping |
16+
| [Temporal Semantics](spec/03-temporal-semantics.md) | Date, datetime, and timezone rules |
17+
| [Recurrence](spec/04-recurrence.md) | RRULE semantics and per-instance state |
18+
| [Operations](spec/05-operations.md) | Create, update, complete, skip, delete behaviors |
19+
| [Validation](spec/06-validation.md) | Validation rules and the issue model |
20+
| [Conformance](spec/07-conformance.md) | Conformance profiles and how to claim them |
21+
| [Compatibility & Migrations](spec/08-compatibility-and-migrations.md) | Migration and backwards-compatibility policy |
22+
| [Configuration](spec/09-configuration.md) | `tasknotes.yaml` schema and the provider model |
23+
| [Dependencies & Reminders](spec/10-dependencies-and-reminders.md) | Dependency and reminder semantics |
24+
| [Links](spec/11-links.md) | Link syntax, parsing, and resolution |
25+
26+
## Conformance
27+
28+
The spec includes an executable conformance suite — a set of JSON test fixtures that any implementation can run against via a simple adapter interface. The suite covers date handling, recurrence, field mapping, configuration, operations, validation, and more.
29+
30+
Implementations claim conformance to one or more profiles (core-lite, recurrence, extended, templating) and must declare their spec version and any known deviations.
31+
32+
See the [Conformance](spec/07-conformance.md) section for details.
33+
34+
## For implementers
35+
36+
If you're building a tool that reads or writes TaskNotes data, the spec is the contract. Start with [Model & Mapping](spec/02-model-and-mapping.md) to understand the data model, then [Operations](spec/05-operations.md) for write behavior. The conformance suite can validate your implementation against the spec's expectations.

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ nav:
9292
- Workflows: workflows.md
9393
- Calendar Setup: calendar-setup.md
9494
- Specification:
95+
- About the Spec: spec.md
9596
- Overview: spec/00-overview.md
9697
- Terminology: spec/01-terminology.md
9798
- Model & Mapping: spec/02-model-and-mapping.md

0 commit comments

Comments
 (0)