Skip to content

Commit 97aebe4

Browse files
committed
Merge branch 'main' of github.com:taskmark/taskmark-spec
2 parents 45ae649 + 8084021 commit 97aebe4

5 files changed

Lines changed: 37 additions & 36 deletions

File tree

AGENTS.md

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ Co-Authored-By: Claude <noreply@anthropic.com>
6363
- Powerful features (recurrence, subtasks, priorities)
6464
- Simple by default, scales to complex projects
6565

66-
**Status:** Draft v1.1.0 (specification complete, no parser yet)
66+
**Status:** Draft v1.2.0 (specification complete, no parser yet)
6767

6868
### Philosophy
6969

@@ -131,7 +131,7 @@ taskmark-spec/
131131
| Type | Pattern | Example | Notes |
132132
|------|---------|---------|-------|
133133
| Assignee | `@username` | `@alice @bob` | Case-insensitive, `a-zA-Z0-9_-` |
134-
| Project | `+name[/sub]` | `+Acme/Backend` | Hierarchical with `/` |
134+
| Project | `+name[/sub]` | `+Acme/Backend`, `+app/v1.2.3` | Hierarchical `/`, versions with `.` |
135135
| Tag | `#tag` | `#critical #backend` | Case-insensitive |
136136
| Due date | `due:DATETIME` | `due:2024-03-15T18:00` | ISO 8601 format |
137137
| Estimate | `~NUM[hmd]` | `~2h`, `~30m`, `~3d` | Hours, minutes, days |
@@ -169,11 +169,11 @@ taskmark-spec/
169169
### Section Headers and Inheritance
170170

171171
```markdown
172-
# TODO +GlobalProject #globalTag type:value
172+
# TODO +GlobalProject #globalTag @team type:value
173173

174-
## Section Name +SectionProject #sectionTag
174+
## Section Name +SectionProject #sectionTag @alice
175175

176-
- [ ] Task +TaskProject #taskTag
176+
- [ ] Task +TaskProject #taskTag @bob
177177
```
178178

179179
**Inheritance Rules:**
@@ -182,19 +182,20 @@ taskmark-spec/
182182
|---------------|----------|---------|
183183
| Projects (`+`) | Hierarchical join with `/` | `+A` + `+B` + `+C` = `+A/B/C` |
184184
| Tags (`#`) | Additive (all tags included) | `#api` + `#urgent` = both |
185+
| Assignees (`@`) | Additive (all assignees included) | `@alice` + `@bob` = both |
185186
| Key-value | Child overrides parent | Child `type:bug` overrides parent `type:feature` |
186187

187188
**Example:**
188189

189190
```markdown
190-
# TODO +Acme #work
191+
# TODO +Acme #work @team
191192

192-
## Backend +API #critical
193+
## Backend +API #critical @alice
193194

194-
- [ ] Task +Database
195+
- [ ] Task +Database @bob
195196
```
196197

197-
**Task inherits:** `+Acme/API/Database`, `#work`, `#critical`
198+
**Task inherits:** `+Acme/API/Database`, `#work`, `#critical`, `@team`, `@alice`, `@bob`
198199

199200
### Subtasks
200201

@@ -206,6 +207,7 @@ taskmark-spec/
206207
- Independent state from parent
207208
- Projects hierarchical join
208209
- Tags additive
210+
- Assignees additive
209211

210212
```markdown
211213
- [ ] (A) Parent task @alice +Database #critical ~8h
@@ -567,21 +569,21 @@ taskmark-spec/
567569
### Section with Inheritance
568570

569571
```markdown
570-
# TODO +global-project #global-tag
572+
# TODO +global-project #global-tag @team
571573

572-
## Section Name +section-project #section-tag
574+
## Section Name +section-project #section-tag @alice
573575

574-
- [ ] Task inherits: +global-project/section-project, #global-tag, #section-tag
576+
- [ ] Task inherits: +global-project/section-project, #global-tag, #section-tag, @team, @alice
575577
```
576578

577579
### File Link with Inheritance
578580

579581
```markdown
580-
## Backend +Acme #critical
582+
## Backend +Acme #critical @alice
581583

582584
[API Team](team/api.md)
583585

584-
# All tasks in api.md inherit: +Acme, #critical
586+
# All tasks in api.md inherit: +Acme, #critical, @alice
585587
```
586588

587589
---
@@ -603,7 +605,7 @@ taskmark-spec/
603605

604606
| Component | Status | Notes |
605607
|-----------|--------|-------|
606-
| Specification | ✅ Complete | Draft v1.1.0 |
608+
| Specification | ✅ Complete | Draft v1.2.0 |
607609
| Reference Parser | ⏳ Not started | Python implementation planned |
608610
| VSCode Extension | ⏳ Not started | Syntax highlighting, task detection |
609611
| CLI Tool | ⏳ Not started | Query, filter, update tasks |

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# [1.2.0](https://github.com/taskmark/taskmark-spec/compare/v1.1.0...v1.2.0) (2025-12-05)
2+
13
# [1.1.0](https://github.com/taskmark/taskmark-spec/releases/tag/v1.1.0) (2025-12-05)
24

35
- Add v1.1.0 frontmatter enhancements and modular spec structure

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
**Plain-text todos that work everywhere.** Write tasks in Markdown, track them in git, and never lose your todos again.
77

8-
**Status:** Draft v1.1.0
8+
**Status:** Draft v1.2.0
99

1010
---
1111

@@ -249,7 +249,7 @@ Start with basic checkboxes. Add structure as your project grows. Use metadata i
249249

250250
## Implementation Status
251251

252-
**Specification:** ✅ Draft v1.1.0 (Complete)
252+
**Specification:** ✅ Draft v1.2.0 (Complete)
253253
**Reference Parser:** ⏳ Not yet implemented
254254
**Editor Support:** ⏳ Not yet implemented
255255

TODO.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22

33
Project roadmap and tasks for the TaskMark specification.
44

5-
## v1.2.0 - Documentation Updates +taskmark-spec/v1.2.0 #documentation
6-
7-
- [ ] Document `@user` assignees in headers for inheritance ~1h
8-
- [ ] Document `.` support in project names (e.g., `+app/v1.2.3`) ~30m
9-
105
## Backlog +taskmark-spec/backlog
116

127
- [ ] Reference parser implementation #implementation

docs/specification.md

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# TaskMark Format Specification
22

3-
**Version:** 1.1.0
3+
**Version:** 1.2.0
44
**Format:** Markdown (.md)
55
**Encoding:** UTF-8 (REQUIRED)
66
**Line Endings:** LF (`\n`) or CRLF (`\r\n`)
@@ -62,7 +62,7 @@
6262
| Done date | `YYYY-MM-DD[THH:MM[:SS][±HH:MM]]` | After planned | No | N/A | ISO 8601 datetime |
6363
| Description | Plain text | After dates/priority/state | Yes | Yes | 1-unlimited chars |
6464
| Assignee | `@username` | In line | No | No | `a-zA-Z0-9_-` |
65-
| Project | `+name[/sub]` | In line | No | No | `a-zA-Z0-9_-/` |
65+
| Project | `+name[/sub]` | In line | No | No | `a-zA-Z0-9_-./` |
6666
| Tag | `#tag` | In line | No | No | `a-zA-Z0-9_-` |
6767
| Created date | `created:DATETIME` | In line | No | N/A | ISO 8601 datetime |
6868
| Started date | `started:DATETIME` | In line | No | N/A | ISO 8601 datetime |
@@ -110,7 +110,7 @@
110110
| Token Type | Pattern | Valid Characters | Notes |
111111
|------------|---------|------------------|-------|
112112
| Assignee | `@NAME` | `a-zA-Z0-9_-` | MUST follow whitespace |
113-
| Project | `+NAME` or `+NAME/SUB` | `a-zA-Z0-9_-/` | `/` for hierarchy only |
113+
| Project | `+NAME` or `+NAME/SUB` | `a-zA-Z0-9_-./` | `/` for hierarchy, `.` for versions |
114114
| Tag | `#NAME` | `a-zA-Z0-9_-` | MUST NOT be section header |
115115
| Metadata key | `KEY:` | `a-zA-Z0-9_-` | Before colon |
116116
| Metadata value (unquoted) | `:VALUE` | Any non-whitespace | Until whitespace |
@@ -229,31 +229,32 @@
229229

230230
| Header Level | Pattern | Example |
231231
|--------------|---------|---------|
232-
| Top level | `# TODO` (required) | `# TODO +Acme #work` |
233-
| Section | `## Section Name` | `## Backend +API #critical` |
234-
| Subsection | `### Subsection Name` | `### Database +Maintenance` |
232+
| Top level | `# TODO` (required) | `# TODO +Acme #work @team` |
233+
| Section | `## Section Name` | `## Backend +API #critical @alice` |
234+
| Subsection | `### Subsection Name` | `### Database +Maintenance @bob` |
235235

236-
**All headers MAY include metadata (projects, tags, key-value pairs).**
236+
**All headers MAY include metadata (projects, tags, assignees, key-value pairs).**
237237

238238
### 5.2 Inheritance Rules
239239

240240
| Metadata Type | Behavior | Example |
241241
|---------------|----------|---------|
242242
| Projects (`+`) | Hierarchical (join with `/`) | `+A` + `+B` = `+A/B` |
243243
| Tags (`#`) | Additive | `#api` + `#urgent` = both tags |
244+
| Assignees (`@`) | Additive | `@alice` + `@bob` = both assignees |
244245
| Key-value | Override | `type:bug` overrides `type:feature` |
245246

246247
**Example:**
247248

248249
```markdown
249-
# TODO +Acme #work
250+
# TODO +Acme #work @team
250251

251-
## Backend +API #critical
252+
## Backend +API #critical @alice
252253

253-
- [ ] Task +Database
254+
- [ ] Task +Database @bob
254255
```
255256

256-
**Task inherits:** `+Acme/API/Database`, `#work`, `#critical`
257+
**Task inherits:** `+Acme/API/Database`, `#work`, `#critical`, `@team`, `@alice`, `@bob`
257258

258259
---
259260

@@ -268,6 +269,7 @@
268269
| States | Independent of parent | Can differ from parent state |
269270
| Projects | Hierarchical join | Parent `+A`, subtask `+B``+A/B` |
270271
| Tags | Additive | Parent `#api`, subtask `#urgent` → both |
272+
| Assignees | Additive | Parent `@alice`, subtask `@bob` → both |
271273
| Key-value | Override | Child overrides parent |
272274

273275
**Invalid Nesting:**
@@ -312,13 +314,13 @@
312314
**Example:**
313315

314316
```markdown
315-
## Engineering +Enterprise #engineering type:maintenance
317+
## Engineering +Enterprise #engineering @geordi type:maintenance
316318

317319
[Warp Core](team/warp.md)
318320
[Transporters](team/transport.md)
319321
```
320322

321-
**Result:** All tasks from both files inherit: `+Enterprise`, `#engineering`, `type:maintenance`
323+
**Result:** All tasks from both files inherit: `+Enterprise`, `#engineering`, `@geordi`, `type:maintenance`
322324

323325
---
324326

@@ -393,7 +395,7 @@
393395
| Type | Examples |
394396
|------|----------|
395397
| Assignees | `@user1 @user2` |
396-
| Projects | `+proj1 +proj2/sub` |
398+
| Projects | `+proj1 +proj2/sub +app/v1.2.3` |
397399
| Tags | `#tag1 #tag2` |
398400
| Dates | `created:`, `started:`, `paused:`, `due:` |
399401
| Recurrence | `repeat:PATTERN` or `repeat:"natural language"` |

0 commit comments

Comments
 (0)