.claude/skills/sync-governance/SKILL.md
# Sync Governance Synchronise policies, guardrails, and external ADRs from Confluence to the vault. ## Usage ``` /sync-governance # Incremental sync (changes since last sync) /sync-governance --full # Full sync (re-fetch everything) /sync-governance --check # Check for updates without syncing /sync-governance --type policies # Sync only policies /sync-governance --type guardrails # Sync only guardrails /sync-governance --type adrs # Sync on
npx skillsauth add DavidROliverBA/ArchitectKB .claude/skills/sync-governanceInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Synchronise policies, guardrails, and external ADRs from Confluence to the vault.
/sync-governance # Incremental sync (changes since last sync)
/sync-governance --full # Full sync (re-fetch everything)
/sync-governance --check # Check for updates without syncing
/sync-governance --type policies # Sync only policies
/sync-governance --type guardrails # Sync only guardrails
/sync-governance --type adrs # Sync only external ADRs
This skill pulls governance content from Confluence into the vault for:
.claude/sync/manifest.json exists (created on first run)+Sync/ folder structure existsThe manifest defines what to sync from Confluence:
| Source | Confluence Query | Local Path |
|--------|------------------|------------|
| Policies | label = 'governance-policy' | +Sync/Policies/ |
| Guardrails | label = 'governance-guardrail' OR pages in guardrail directories | +Sync/Guardrails/ |
| Organisational ADRs | label = 'Approved_Architecture_ADR' OR label = 'Approved_Technology_Guardrail' | +Sync/Org-ADRs/ |
| Space | Key | Content | |-------|-----|---------| | YourOrg Architecture and Engineering | BAAandE | ADR Process, Guardrails Directory | | YourOrg Digital Operating Model | BDOC | Guardrail Templates, Governance | | BC3 Framework | BC3 | Delivery Guardrails, Templates | | DataPlatform/Integration | IO | Data Product Guardrails |
| Page | ID | Purpose | |------|-----|---------| | Directory of Architecture Guardrails | 65405808 | Master list of architecture guardrails | | Directory of Technology Guardrails | 65405938 | Master list of technology guardrails | | How an ADR becomes a Guardrail | 65415886 | Process documentation | | Guardrail - Template | 73040191 | Template for creating guardrails |
Read .claude/sync/manifest.json
If not exists:
Create +Sync/ folder structure
Create initial manifest with default sources
For each source in manifest, use Atlassian MCP:
// Example: Find all architecture guardrails
searchConfluenceUsingCql(
cloudId: "c1f0e5f8-ba19-4251-8d78-db300e0715bf",
cql: "label = 'Approved_Architecture_Guardrail' AND type = 'page'",
limit: 100
)
// Example: Find pages in guardrails directory
getConfluencePageDescendants(
cloudId: "c1f0e5f8-ba19-4251-8d78-db300e0715bf",
pageId: "65405808" // Directory of Architecture Guardrails
)
For each page returned:
manifest.pagesFor each new/updated page:
getConfluencePage(
cloudId: "c1f0e5f8-ba19-4251-8d78-db300e0715bf",
pageId: "<page-id>",
contentFormat: "markdown"
)
Create note with appropriate frontmatter based on content type:
Policy Note:
---
type: Policy
title: <page title>
source: confluence
sourceSpace: <space key>
sourcePageId: "<page id>"
sourceVersion: <version number>
sourceUrl: <confluence URL>
lastSynced: <ISO timestamp>
owner: <from page metadata or content>
status: active
effectiveDate: <if found in content>
reviewDate: <if found in content>
readOnly: true
tags: [policy, synced, <derived tags>]
---
> [!warning] Read-Only Sync
> This content is synced from Confluence. Do not edit locally.
> Source: [<title>](<url>) | Version: <version> | Synced: <date>
<converted markdown content>
Guardrail Note:
---
type: Guardrail
title: <page title>
source: confluence
sourceSpace: <space key>
sourcePageId: "<page id>"
sourceVersion: <version number>
sourceUrl: <confluence URL>
lastSynced: <ISO timestamp>
owner: <from content>
scope: <derived from content: aws | azure | data | security | integration | delivery>
status: active
readOnly: true
tags: [guardrail, synced, <derived tags>]
---
Organisational ADR Note (synced from Confluence):
---
type: Adr
title: <page title>
status: <mirrors Confluence status: proposed | accepted | deprecated>
adrType: Architecture_ADR | Technology_ADR
# Source/Provenance (synced)
source: confluence
sourcePageId: "<page id>"
sourceSpace: <space key>
sourceUrl: <confluence URL>
sourceVersion: <version number>
# Sync metadata
lastSynced: <ISO timestamp>
readOnly: true
# Authority (derived from scope/labels)
authority: team | organizational # Based on whether it's a guardrail or team decision
# Standard ADR fields
deciders: []
approvers: []
stakeholders: []
relatedTo: []
dependsOn: []
# Quality
confidence: high # Published ADRs are authoritative
freshness: current
verified: true
tags: [adr, synced, <derived tags>]
---
+Sync/ subfoldermanifest.pages entry with:
manifest.lastFullSync timestampmanifest.stats countersPages in manifest but not returned from Confluence:
status: archived in frontmatterarchivedReason: "Removed from Confluence"+Sync/_archived/ or leave in place with warningOutput sync results:
## Governance Sync Complete
**Synced at:** 2026-01-11 10:30
**Duration:** 45 seconds
| Type | New | Updated | Unchanged | Archived |
|------|-----|---------|-----------|----------|
| Policies | 0 | 1 | 8 | 0 |
| Guardrails | 2 | 0 | 15 | 0 |
| Organisational ADRs | 1 | 3 | 42 | 1 |
### Changes Detected
**Updated:**
- 📋 Policy - SAS1 Integration Standards (v2 → v3)
- [View in Confluence](https://...)
**New:**
- 🚧 Guardrail - GR5 AI Model Governance
- 🚧 Guardrail - GR6 Third Party Data Sharing
- 📐 External ADR - Bedrock Model Selection
**Archived:**
- 📐 ~~External ADR - Legacy API Pattern~~ (removed from Confluence)
### Action Required
- Review updated Policy - SAS1 for impact on current projects
The /daily skill can check sync freshness:
## In /daily skill, add section:
### Governance Freshness Check
Read manifest.lastFullSync
If older than 24 hours:
Display: "⚠️ Governance content last synced X hours ago"
Offer: "Run /sync-governance to update"
The /adr skill should check freshness:
## Before creating ADR:
If manifest.lastFullSync > 24 hours:
Warn: "Governance policies may be stale. Sync first?"
.claude/sync/manifest.json:
{
"version": "1.0",
"lastFullSync": "2026-01-11T06:00:00Z",
"cloudId": "c1f0e5f8-ba19-4251-8d78-db300e0715bf",
"sources": [
{
"name": "Architecture Guardrails",
"type": "guardrails",
"method": "descendants",
"rootPageId": "65405808",
"localPath": "+Sync/Guardrails/Architecture/",
"filenamePattern": "Guardrail - {title}.md"
},
{
"name": "Technology Guardrails",
"type": "guardrails",
"method": "descendants",
"rootPageId": "65405938",
"localPath": "+Sync/Guardrails/Technology/",
"filenamePattern": "Guardrail - {title}.md"
},
{
"name": "Approved ADRs",
"type": "adrs",
"method": "label",
"cql": "label = 'Approved_Architecture_ADR' AND type = 'page'",
"localPath": "+Sync/Org-ADRs/",
"filenamePattern": "ADR - {title}.md"
}
],
"pages": {
"65415886": {
"title": "How an ADR becomes a Guardrail",
"space": "BAAandE",
"version": 12,
"type": "process",
"localFile": "+Sync/Process/Process - How an ADR becomes a Guardrail.md",
"lastSynced": "2026-01-11T06:00:00Z",
"hash": "abc123def456"
}
},
"stats": {
"totalPolicies": 12,
"totalGuardrails": 23,
"totalAdrs": 45,
"lastChangeDetected": "2026-01-10T14:30:00Z"
}
}
On first run when no manifest exists:
Create folder structure:
+Sync/
├── Policies/
├── Guardrails/
│ ├── Architecture/
│ └── Technology/
├── Org-ADRs/
├── Process/
└── _archived/
Create initial manifest.json with organization-specific sources
Perform full sync
Report initial inventory
| Error | Action | |-------|--------| | Atlassian auth failure | Prompt to re-authenticate | | Page not accessible | Skip and log warning | | Rate limit hit | Pause and retry with backoff | | Malformed content | Skip page, log error | | Write failure | Abort sync, preserve manifest |
tools
--- context: fork --- # /youtube Save a YouTube video as both a Weblink (quick reference) and a detailed Page (full analysis). ## Usage ``` /youtube <url> /youtube <url> <optional title override> ``` ## Examples ``` /youtube https://www.youtube.com/watch?v=0TpON5T-Sw4 /youtube https://youtu.be/abc123 AWS re:Invent Keynote ``` ## Prerequisites This skill uses the MCP Docker YouTube tools: - `mcp__MCP_DOCKER__get_video_info` - Video metadata - `mcp__MCP_DOCKER__get_transcript` - Full trans
data-ai
Create and manage git worktrees for parallel agent sessions
testing
--- context: fork --- # /wipe Generate a context handoff summary, clear the session, and resume in a fresh conversation. Detects environment and provides automated (tmux) or manual workflow. ## Usage ``` /wipe /wipe quick # Minimal handoff, just essentials /wipe detailed # Comprehensive handoff with full context ``` ## Instructions When the user invokes `/wipe`: ### Phase 1: Detect Environment First, check the terminal environment: ```bash echo "Environment Detection:"
data-ai
--- context: fork --- # /weekly-summary Generate comprehensive weekly summary from daily notes, meetings, tasks, and project updates using parallel sub-agents. ## Usage ``` /weekly-summary /weekly-summary --last-week /weekly-summary --from 2026-01-01 --to 2026-01-07 /weekly-summary --output page # Create Page note instead of just outputting ``` ## Instructions This skill uses **5 parallel sub-agents** to gather data concurrently from different vault areas, then synthesizes a comprehensi