- Create discover-deck-ids.sh to find board/stack configuration - Implement sync-roadmap-to-deck.py for roadmap → Deck sync - Parse OPTIMIZATION_MASTER_ROADMAP.md and extract initiatives - Map roadmap status to Deck stacks (eingang/planung/arbeit/erledigt) - Create cards with titles, descriptions, due dates, progress - Support dry-run mode for testing before actual sync - Add comprehensive documentation in NEXTCLOUD_DECK_SYNC.md **Benefits:** - Visual kanban board for roadmap management - Drag & drop to prioritize tasks - Single source of truth (markdown files) - Easy task tracking and status updates - No manual duplication between systems **Initial Sync:** - Created 1 card: Initiative 1 (Signal Quality Optimization) - Placed in 'eingang' (FUTURE status) **Future Work:** - Bidirectional sync (Deck → Roadmap) - Phase-level cards parsing - Manual card creation → roadmap entry - Automated cron sync
3.9 KiB
3.9 KiB
Nextcloud Deck Roadmap Sync
Bidirectional sync system between trading bot roadmaps (markdown files) and Nextcloud Deck kanban board.
Setup
1. Discover Board Configuration
First time setup - find your Nextcloud Deck board and stack IDs:
./scripts/discover-deck-ids.sh
This creates /tmp/deck-config.json with your board configuration.
2. Initialize Deck with Roadmap Cards
Create Deck cards from current roadmap:
python3 scripts/sync-roadmap-to-deck.py --init
This will:
- Parse all roadmap files (OPTIMIZATION_MASTER_ROADMAP.md, etc.)
- Create cards for each initiative/phase
- Place cards in appropriate stacks based on status
- Set due dates based on timelines
Stack Mapping
| Deck Stack | Roadmap Status | Purpose |
|---|---|---|
eingang (inbox) |
FUTURE | Backlog items, ideas, future phases |
in planung (planning) |
PENDING | Ready to implement, needs detailed specs |
in arbeit (in progress) |
IN PROGRESS (🔄) | Currently working on |
erledigt (done) |
COMPLETE (✅) | Finished and verified |
Usage
Creating Roadmap Cards
Option 1: Update markdown, sync to Deck
- Edit roadmap markdown files
- Run:
python3 scripts/sync-roadmap-to-deck.py --init - New initiatives/phases appear as Deck cards
Option 2: Create card in Deck (future feature)
- Create card in Deck "eingang" stack
- Title format:
[ROADMAP] Initiative Name - Script will parse and add to appropriate roadmap file
Updating Status
Current: Manual sync
- Move cards between stacks in Deck to reflect progress
- Update markdown roadmap files with status emoji (🔄, ✅, etc.)
- Re-sync to align
Future: Automatic bidirectional sync
- Script will update roadmap files based on card positions
- Cron job could run sync every hour
Files
scripts/discover-deck-ids.sh- Find board/stack IDsscripts/sync-roadmap-to-deck.py- Main sync script/tmp/deck-config.json- Nextcloud configuration (auto-generated)
Configuration
Edit /tmp/deck-config.json or set environment variables:
export NEXTCLOUD_URL="http://10.0.0.48:8089"
export NEXTCLOUD_USER="robert.wiegand"
export NEXTCLOUD_PASSWORD="your-password"
Roadmap Files
Currently syncs:
OPTIMIZATION_MASTER_ROADMAP.md- Main overviewSIGNAL_QUALITY_OPTIMIZATION_ROADMAP.md- Initiative 1POSITION_SCALING_ROADMAP.md- Initiative 2ATR_BASED_TP_ROADMAP.md- Initiative 3
Future Features
- Bidirectional sync (Deck → Roadmap updates)
- Manual card creation → roadmap entry
- Automated sync via cron
- Phase-level cards (not just initiative-level)
- Label management (optimization, data-collection, analysis)
- Due date calculations from timeline estimates
- Progress tracking from card checklists
API Reference
Nextcloud Deck API: /index.php/apps/deck/api/v1.0
Key endpoints used:
GET /boards- List all boardsGET /boards/{boardId}- Get board detailsGET /boards/{boardId}/stacks- Get stacksPOST /boards/{boardId}/stacks/{stackId}/cards- Create card
Troubleshooting
"Board not found"
- Run
discover-deck-ids.shfirst - Check board exists in Nextcloud Deck
- Verify name contains "trader" (case insensitive)
"405 Method Not Allowed"
- Nextcloud Deck version may have different API
- Check Nextcloud Deck version in settings
- Some GET endpoints may not be available
"Cards not syncing"
- Check
/tmp/deck-config.jsonexists - Verify credentials in config
- Run with
--dry-runfirst to test
Development
Adding new roadmap files:
Edit sync-roadmap-to-deck.py:
ROADMAP_FILES = [
'OPTIMIZATION_MASTER_ROADMAP.md',
'YOUR_NEW_ROADMAP.md', # Add here
]
Customizing status mapping:
Edit STATUS_TO_STACK dict:
STATUS_TO_STACK = {
'IN PROGRESS': 'in arbeit',
'YOUR_STATUS': 'your_stack', # Add here
}