Go Beyond — Claude Projects Registry
Last updated: 2026-05-29 · Source of truth: R2 vault (oblivion/PROJECTS.md) · Read via GET https://api.Go Beyondtravel.workers.dev/vault/read?path=PROJECTS.md
Projects are numbered for easy reference across Cowork and Claude Code sessions. Tell any Claude instance “work on 2026-00X-DAMIEN” and it knows exactly what to do.
Active & Planned
| ID | Project | Status | Owner | Difficulty | Priority |
|---|---|---|---|---|---|
| 2026-001-DAMIEN | Obsidian → Cloudflare Vault API + Auto-sync | COMPLETE | Claude Code | 4 / 5 | 3 / 5 |
| 2026-002-DAMIEN | Obsidian Vault MCP Server | COMPLETE | Claude Code | 4 / 5 | 3 / 5 |
| 2026-003-DAMIEN | 2026 Budget Excel Restructure | → Claude in Excel | Damien | 2 / 5 | 4 / 5 |
| 2026-004-DAMIEN | Xero → “Ask Go Beyond” Integration | BLOCKED | Damien | 3 / 5 | 4 / 5 |
| 2026-005-DAMIEN | Go Beyond Shared Vault — Multi-User Deployment | PLANNED | Claude Code + Damien | 3 / 5 | 3 / 5 |
| 2026-006-DAMIEN | Microsoft Planner MCP | READY TO EXECUTE | Claude Code | 1 / 5 | 4 / 5 |
| 2026-007-DAMIEN | Go Beyond Wiki Rebuild (Quartz → Go Beyondwiki.pages.dev) | PLANNED | Claude Code | 2 / 5 | 3 / 5 |
Infrastructure Reference (confirmed 2026-05-29)
| Service | URL | Notes |
|---|---|---|
| Vault API (REST + MCP) | https://api.Go Beyondtravel.workers.dev | Worker: api in Go Beyond-portal/ |
| Employee Hub | https://hub.Go Beyondtravel.workers.dev | Proxies to Go Beyond-portal Worker |
| Wiki (stale) | https://oblivion-wiki.pages.dev | Rebuild = 2026-007 |
| Wiki (target) | https://Go Beyondwiki.pages.dev | Empty — waiting for 2026-007 |
| R2 bucket | Go Beyond-vault | Prefix: oblivion/ |
| VAULT_SERVICE_TOKEN | Cloudflare dashboard | Workers → api → Settings → Variables & Secrets |
2026-001-DAMIEN
Status: COMPLETE. Obsidian vault API deployed to api.Go Beyondtravel.workers.dev. R2 bucket Go Beyond-vault populated. REST endpoints /vault/index, /vault/read, /vault/list, /vault/search live. Auth via VAULT_SERVICE_TOKEN Bearer token.
2026-002-DAMIEN
Status: COMPLETE. MCP endpoint /mcp added to vault API Worker. Supports vault_index, vault_read, vault_search, vault_list tools. OAuth flow at /oauth/authorize and /oauth/token for Claude.ai integration. /claude-init public endpoint serves CLAUDE.md for SessionStart hooks.
2026-003-DAMIEN · 2026 Budget Excel Restructure
Goal: Add four new structured, filterable sheets to 2026 Budget.xlsx on SharePoint — Revenue, COS, OpEx, and Miscellaneous — each with Excel Tables and slicers.
Source files (SharePoint: Management/Budgets/2026/):
2026 Budget.xlsx— main workbookGo_Beyond_Budget2026_Transactions.xlsx— transaction-level sourceRev26B12+0 for budget.xlsx— revenue sourceProfit-and-Loss A8B4 2025 from Joiin.xlsx— historical P&L reference
Execution environment: Claude in Excel — open 2026 Budget.xlsx, launch Claude in Excel.
Status: PARKED (Claude Code) — continue in Claude in Excel.
2026-004-DAMIEN · Xero → “Ask Go Beyond” Integration
Goal: Connect Go Beyond’s Xero financial data to the Claude Teams interface.
Current state:
- Xero developer OAuth app configured;
xero_setup.pyandxero_client.pyinProjects/GB Xero/ - Azure free account expired ~May 3
- ⚠️ Credentials hardcoded in Python files — move to env vars before deploy
Blocked on:
- Confirming integration format Claude Teams supports for external connectors
- Locating or re-establishing Azure hosting work
2026-005-DAMIEN · Go Beyond Shared Vault — Multi-User Deployment
Goal: Open the vault to all Go Beyond Claude users (~11–30). Read access for all; per-user write tokens scoped to wiki/users/{username}/.
Architecture decisions (locked):
- Same R2 bucket and Worker — no forking
- Shared read token (VAULT_SERVICE_TOKEN) for all users
- Per-user write tokens scoped to namespace via
/vault/writeendpoint - MCP via Claude.ai Settings → Integrations; Cowork plugin as follow-on
Current state: P-01 and P-02 complete. /vault/write endpoint not yet implemented.
Implementation Steps (for Claude Code)
Step 1 — Add /vault/write endpoint to the Worker
Edit C:\Users\DamienGoBeyond\Go Beyond-portal\src\index.ts. Add before the final if (p === '/') return... line:
// POST /vault/write — authenticated write scoped to user namespace
if (p === '/vault/write' && request.method === 'POST') {
if (!checkAuth(request, env)) return new Response('Unauthorized', { status: 401 });
const body = await request.json() as { path: string; content: string; writeToken: string };
const { path, content, writeToken } = body;
const registryObj = await env.R2.get('oblivion/_admin/users.json');
if (!registryObj) return new Response('User registry not found', { status: 500 });
const registry = JSON.parse(await registryObj.text());
const user = Object.entries(registry.users).find(([, u]: [string, any]) => u.writeToken === writeToken);
if (!user) return new Response('Invalid write token', { status: 403 });
const [username] = user as [string, any];
if (!path.startsWith(`wiki/users/${username}/`)) {
return new Response(`Forbidden: you can only write to wiki/users/${username}/`, { status: 403 });
}
await env.R2.put(`oblivion/${path}`, content, { httpMetadata: { contentType: 'text/plain' } });
return Response.json({ ok: true, path });
}Step 2 — Generate user tokens and upload registry
$users = @("anna", "phone", "marc", "martin", "kwan")
$registry = @{ users = @{} }
foreach ($user in $users) {
$token = [System.Convert]::ToBase64String([System.Security.Cryptography.RandomNumberGenerator]::GetBytes(24))
$registry.users[$user] = @{ writeToken = $token; namespace = "wiki/users/$user/" }
Write-Host "$user : $token"
}
$registry | ConvertTo-Json -Depth 4 | Set-Content "C:\Users\DamienGoBeyond\users.json"
wrangler r2 object put "Go Beyond-vault/oblivion/_admin/users.json" --file "C:\Users\DamienGoBeyond\users.json" --cwd "C:\Users\DamienGoBeyond\Go Beyond-portal"⚠️ Save tokens securely — distribute individually to users.
Step 3 — Deploy
cd C:\Users\DamienGoBeyond\Go Beyond-portal
wrangler deployStep 4 — Seed user namespace stubs
For each user, upload a stub index:
foreach ($user in @("anna", "phone", "marc", "martin", "kwan")) {
$content = "# ${user}'s Vault Pages`n_No pages yet._"
$tmp = "$env:TEMP\stub.md"
Set-Content $tmp -Value $content
wrangler r2 object put "Go Beyond-vault/oblivion/wiki/users/$user/index.md" --file $tmp --cwd "C:\Users\DamienGoBeyond\Go Beyond-portal"
}Step 5 — Update onboarding doc in vault
Write updated wiki/meta/onboarding.md via vault write API with MCP URL, shared read token, and namespace instructions.
Step 6 — Distribute tokens (manual — Damien)
Send each user their write token privately. Direct them to wiki/meta/onboarding.md.
Blockers: None — fully executable by Claude Code.
Verification: Test user calls vault_write to create wiki/users/anna/test.md. Confirm via vault_read.
2026-006-DAMIEN · Microsoft Planner MCP
Goal: Give Claude Code direct access to Microsoft Planner via microsoft-planner-mcp.
Source repo: https://github.com/vyente-ruffin/microsoft-planner-mcp
Auth: Azure CLI (az rest) — requires az login with damien@gobeyond.asia
Install path: C:\Users\DamienGoBeyond\microsoft-planner-mcp
Difficulty: 1 / 5 | Priority: 4 / 5
Implementation Steps (for Claude Code)
Step 1 — Verify Azure CLI auth
az account showIf error, run az login first.
Step 2 — Clone and build
cd C:\Users\DamienGoBeyond
git clone https://github.com/vyente-ruffin/microsoft-planner-mcp.git
cd microsoft-planner-mcp
npm install
npm run buildStep 3 — Register with Claude Code
claude mcp add microsoft-planner-mcp node "C:\Users\DamienGoBeyond\microsoft-planner-mcp\dist\index.js"
claude mcp listStep 4 — Verify and discover IDs
Start a Claude Code session: ask it to list-plans. Note planId and bucketIds, save to vault at wiki/Go Beyond/planner-ids.md.
Blockers: az login required if session expired (manual — Damien).
Status: READY TO EXECUTE.
2026-007-DAMIEN · Go Beyond Wiki Rebuild
Goal: Rebuild the Quartz HTML wiki from R2 and deploy to https://Go Beyondwiki.pages.dev.
Confirmed URLs:
- Vault API:
https://api.Go Beyondtravel.workers.dev— live, verified - Wiki target:
https://Go Beyondwiki.pages.dev— Pages project created, empty - Old wiki (stale):
https://oblivion-wiki.pages.dev
Current state:
Go BeyondwikiPages project exists but is empty- Old wiki last built 2026-05-20 from deleted local vault
- Vault source of truth: R2 bucket
Go Beyond-vault, prefixobsidian/ - Quartz source not on disk — needs fresh clone
Portal quick-link note: The obsidian:// quick link is in the Go Beyond-portal Worker (separate from the vault API — has D1/KV/R2 bindings). Source not on disk. Updating the link is out of scope here; handle in P-05.
Quartz note: related: frontmatter arrays are not rendered as links by Quartz (only [[wikilinks]] in body text are). No build failure expected.
Architecture:
GET /vault/list -> file list
|
loop: wrangler r2 object get --remote for each file -> wiki-build\content\
|
npx quartz build -> wiki-build\public\
|
wrangler pages deploy -> Go Beyondwiki.pages.dev
Implementation Steps (for Claude Code)
Step 1 — Get VAULT_SERVICE_TOKEN
Token is stored locally at C:\Users\DamienGoBeyond\.claude\vault-token.
$token = Get-Content "C:\Users\DamienGoBeyond\.claude\vault-token" -RawStep 2 — Clone Quartz and install (do this FIRST, before downloading files)
cd "C:\Users\DamienGoBeyond"
git clone https://github.com/jackyzha0/quartz.git wiki-build
cd wiki-build
npm installStep 3 — Download all vault files from R2 into wiki-build\content\
The R2 prefix is obsidian/ (not oblivion/). Use --remote flag.
$token = Get-Content "C:\Users\DamienGoBeyond\.claude\vault-token" -Raw
$vaultApi = "https://api.Go Beyondtravel.workers.dev"
$r2Bucket = "Go Beyond-vault"
$outDir = "C:\Users\DamienGoBeyond\wiki-build\content"
$wDir = "C:\Users\DamienGoBeyond\Go Beyond-portal"
$response = Invoke-RestMethod -Uri "$vaultApi/vault/list" -Headers @{ Authorization = "Bearer $token" }
$files = $response.files
Write-Output "Found $($files.Count) files"
foreach ($rel in $files) {
$key = "obsidian/$rel"
$outFile = Join-Path $outDir ($rel.Replace('/', '\'))
New-Item -ItemType Directory -Force -Path (Split-Path $outFile -Parent) | Out-Null
wrangler r2 object get "$r2Bucket/$key" --file "$outFile" --remote --cwd "$wDir" 2>&1 | Out-Null
Write-Output "Downloaded: $rel"
}
Write-Output "Done. $($files.Count) files in $outDir"Step 4 — Configure Quartz
Edit C:\Users\DamienGoBeyond\wiki-build\quartz.config.ts:
pageTitle:"Go Beyond Wiki"baseUrl:"Go Beyondwiki.pages.dev"
Step 5 — Build
cd "C:\Users\DamienGoBeyond\wiki-build"
npx quartz buildStep 6 — Deploy
wrangler pages deploy "C:\Users\DamienGoBeyond\wiki-build\public" `
--project-name Go Beyondwiki --branch main `
--cwd "C:\Users\DamienGoBeyond\Go Beyond-portal"Step 7 — Verify
- Check count:
(Invoke-RestMethod "$vaultApi/vault/list" -Headers @{Authorization="Bearer $token"}).files.Count - Visit
https://Go Beyondwiki.pages.dev— index should show that many pages
Step 8 — Clean up (optional)
Delete oblivion-wiki Pages project via Cloudflare dashboard after confirming Go Beyondwiki works.
Blockers: None — token is at ~/.claude/vault-token, fully automated.
Verification: https://Go Beyondwiki.pages.dev loads with current vault content.