bujo-sync
ABOUTME: Bidirectional sync between BuJo daily notes and ClickUp (Wishew) + Linear (HikmaAI)
ABOUTME: Pulls assigned/blocking tasks, pushes completions/cancellations, respects sync markers
BuJo Sync
Sync state: Journal/.bujo-sync-state.json
MCP config: .mcp.json (vault root)
Daily note sync zones: HTML comment markers per project
MCP Servers
| Project | Tool | MCP Server |
|---|---|---|
| Wishew | ClickUp | clickup (via .mcp.json) |
| HikmaAI | Linear | linear (via .mcp.json) |
Sync Markers
Daily notes contain sync zones delimited by HTML comments:
### Wishew (ClickUp)
<!-- bujo-sync:clickup:start -->
- [ ] Task name [CU-abc123]
- [ ] **BLOCKS** @persona: Blocking task [CU-def456]
<!-- bujo-sync:clickup:end -->
### HikmaAI (Linear)
<!-- bujo-sync:linear:start -->
- [ ] Issue title [LIN-xyz789]
<!-- bujo-sync:linear:end -->
CRITICAL: Only modify content BETWEEN the start/end markers. Never touch anything outside.
Pull Flow (bujo sync pull or bujo sync)
1. Fetch tasks from sources
ClickUp (Wishew): Search for tasks where assignee = Max OR I am a blocker, status != closed/done.
Linear (HikmaAI): Search for issues where assignee = Max OR blocking/blocked by me, state != done/cancelled.
2. Diff against sync state
Read Journal/.bujo-sync-state.json to determine:
- New tasks: not in sync state, add to daily note
- Changed tasks: status changed upstream, update in daily note
- Completed upstream: mark
[x]in daily note if still open
3. Inject into daily note
Format rules:
- Task ID in square brackets at end:
[CU-xxx]or[LIN-xxx] - Blocking tasks prefixed with
**BLOCKS** @persona: - Preserve any manual annotations Max added after the task line
4. Update sync state
Write updated state to Journal/.bujo-sync-state.json.
Push Flow
Scan today's daily note. [x] = complete, [-] = cancelled, new task in sync zone = create upstream. Update source systems via MCP, then update sync state.
For detailed push flow, sync state JSON format, conflict resolution, and error handling, see references/sync-details.md.
Commands Summary
| Command | Action |
|---|---|
bujo sync |
Pull from all sources, update daily note |
bujo sync pull |
Same as bujo sync |
bujo sync push |
Push BuJo changes to source systems |
bujo sync full |
Pull then push (full bidirectional sync) |
More from maroffo/claude-forge
email-cleanup
Clean up Gmail - archive old emails, delete promotions, manage storage. Use when user wants to clean inbox, archive emails, or free up space.
25newsletter-digest
Process newsletters into Second Brain digest. Use when user wants to process newsletters, create digest, or catch up on subscriptions. Not for web clippings (use process-clippings) or email bookmarks (use process-email-bookmarks).
22table-image
Render markdown tables as hand-drawn sketch images. Use when user wants a table rendered as an image, visual table, or diagram illustration.
21apple-swift
Apple platform development with Swift, SwiftUI, async/await, and performance. Use when working with .swift files, Package.swift, Xcode projects, or building for iOS/macOS/watchOS/visionOS.
20react-nextjs
React + Next.js App Router development. Use when working with .tsx/.jsx files, next.config, or user asks about Server Components, data fetching, state management, forms, or React testing.
20inbox-triage
Review and prioritize Gmail inbox. Use when user wants to check email, review inbox, or see what needs attention.
19