Website Sync Skill
Keep generated websites synchronized with codebase changes.
Capabilities
- Change Detection - Detect API, component, documentation, and model changes
- Smart Mapping - Map codebase changes to website updates
- Sync Strategies - Auto, semi-auto, and manual sync modes per website type
- Bridge Integration - Work with bridge-analyzer to detect gaps
Sync Modes
Auto
Changes are automatically applied to the website without manual review.
Best for:
- API documentation updates
- Type definition changes
- Routine documentation syncs
Used by:
- Documentation sites (API docs, type refs)
- Admin dashboards (model changes)
Semi-Auto
Changes are detected and presented for review before applying.
Best for:
- New feature integration
- Dashboard updates from API changes
- Component showcase updates
Used by:
- Admin dashboards (new APIs)
- Portfolio sites (new projects)
Manual
Changes require explicit approval before any action.
Best for:
- Content changes
- Breaking changes
- Major updates
Used by:
- Marketing sites (most changes)
- Portfolio sites (content updates)
Website Type Strategies
Documentation Sites
Default Mode: Auto
Sync Rules:
- API changes → Auto-update API docs
- Type changes → Auto-update type references
- Documentation changes → Auto-update content
- Component changes → Auto-update component docs
- Breaking changes → Manual review required
Example:
// Codebase change: Updated User interface
interface User {
id: string;
name: string;
email: string;
role: "admin" | "user"; // Added
}
// Auto-synced to:
// docs/reference/user.mdx - Updated type docs
Admin Dashboards
Default Mode: Semi-Auto
Sync Rules:
- Model changes → Auto-update forms and tables
- API changes → Review required for dashboard updates
- New endpoints → Review and possibly add widgets
- Breaking changes → Manual review required
Example:
// Codebase change: Added Product model
interface Product {
id: string;
name: string;
price: number;
}
// Synced to:
// app/products/page.tsx - CRUD page (auto)
// app/dashboard/page.tsx - Product widget (review)
Marketing Sites
Default Mode: Manual
Sync Rules:
- Version changes → Auto-update version numbers
- Feature additions → Manual review for feature showcase
- README changes → Review if homepage needs updates
- Pricing changes → Review pricing page
Example:
// Codebase change: New feature added
// Codebase now has analytics feature
// Sync action:
// Review if analytics should be featured on homepage
// Update features section if approved
Portfolio Sites
Default Mode: Semi-Auto
Sync Rules:
- New repositories → Auto-add to project showcase
- Commit activity → Auto-update timeline
- README changes → Manual review for project descriptions
- New skills/tech → Review skills section
Example:
// Codebase change: New project pushed to GitHub
// Repository: my-awesome-project
// Auto-synced to:
// app/projects/page.tsx - Added to showcase
// Data fetched from GitHub API
Integration with Bridge Analyzer
The website-sync skill works with bridge-analyzer to:
Detect Gaps
- Identify missing website features for new codebase features
- Find outdated website content
- Locate broken links or references
Generate Bridge Specs
- Create integration specifications for missing connections
- Define data flows between codebase and website
- Specify API endpoints needed
Validate Sync Completeness
- Ensure all codebase changes are reflected in website
- Check for orphaned website content
- Verify data consistency
Usage
Manual Sync
# Sync all changes
/siftcoder:website sync
# Sync specific type
/siftcoder:website sync --docs
# Check sync status
/siftcoder:website sync status
Programmatic Sync
import { syncChanges, getSyncStrategy } from "website-sync";
// Get sync strategy for website type
const strategy = getSyncStrategy("documentation");
// { defaultMode: "auto", strategies: {...} }
// Sync changes
const result = await syncChanges(
"./my-project",
"./my-docs-site",
"documentation",
"auto"
);
console.log(result.message);
// "Sync complete: 5 applied, 2 pending review"
Change Detection
The sync skill detects changes by monitoring:
API Changes
- Route files in
api/,routes/,controllers/ - Endpoint additions, modifications, deletions
- Request/response type changes
Component Changes
- Component files in
components/ - Prop changes
- New components
- Component removals
Documentation Changes
- README.md, CHANGELOG.md
- docs/ folder contents
- Comment changes in code
Model Changes
- Type definitions in
types/,models/ - Interface changes
- Schema modifications
Content Changes
- Asset additions/removals
- Configuration updates
- New files/folders
Sync Actions
For each detected change, the sync skill determines an action:
Update
Modify existing website content to reflect codebase changes.
Example:
// Change: API endpoint signature updated
// Action: Update API documentation page
{
action: "update",
target: "docs/api/users.mdx",
description: "Update API docs for users endpoint",
autoApply: true
}
Create
Generate new website content for new codebase elements.
Example:
// Change: New data model added
// Action: Create CRUD page for model
{
action: "create",
target: "app/products/page.tsx",
description: "Create CRUD page for Product model",
autoApply: true
}
Delete
Remove website content for deleted codebase elements.
Example:
// Change: Component removed
// Action: Remove component documentation
{
action: "delete",
target: "docs/components/old-button.mdx",
description: "Remove documentation for deleted component",
autoApply: false // Requires review
}
Review
Flag changes that need manual review before action.
Example:
// Change: Major README update
// Action: Review if homepage needs updates
{
action: "review",
target: "app/page.tsx",
description: "Review if homepage needs updates from README",
autoApply: false
}
Configuration
Sync Configuration File
Create siftcoder-sync.config.json in your project root:
{
"projectPath": "./my-project",
"websitePath": "./my-website",
"websiteType": "documentation",
"syncMode": "auto",
"syncTriggers": ["git-commit", "manual"],
"excludePatterns": ["node_modules", ".git", "dist"],
"strategies": {
"api": "auto",
"component": "auto",
"docs": "auto",
"model": "auto",
"content": "manual"
}
}
Sync Triggers
Configure when sync runs:
- git-commit - Run sync after every commit
- manual - Run sync only when triggered
- scheduled - Run sync on schedule (cron)
- webhook - Run sync on webhook trigger
Exclusion Patterns
Specify files/folders to ignore:
{
"excludePatterns": [
"node_modules/**",
".git/**",
"dist/**",
"build/**",
"*.test.ts",
"*.spec.ts"
]
}
Best Practices
Documentation Sites
- Use auto-sync for API and type changes
- Set up git-commit trigger for continuous updates
- Review sync results periodically
- Keep documentation comments up to date
Admin Dashboards
- Use semi-auto for balance of automation and control
- Review new API integrations before adding to dashboard
- Test generated forms after model changes
- Monitor sync for breaking changes
Marketing Sites
- Use manual sync for content control
- Review and approve all changes
- Schedule sync reviews weekly
- Test after each sync
Portfolio Sites
- Use semi-auto for project additions
- Review new project showcases
- Keep project metadata updated
- Sync commit activity weekly
Troubleshooting
Sync Not Detecting Changes
- Check sync configuration paths
- Verify file patterns match your structure
- Review exclusion patterns
Too Many Changes Pending
- Adjust sync mode from manual to semi-auto or auto
- Review sync strategy settings
- Consider more granular sync configuration
Sync Breaking Website
- Switch to manual mode
- Review and test changes before applying
- Use version control to revert
- Check for breaking changes in codebase
Performance Issues
- Add more exclusion patterns
- Use scheduled sync instead of git-commit
- Optimize change detection frequency
- Consider incremental sync
Future Enhancements
- Bidirectional sync (website → codebase)
- Conflict resolution strategies
- Sync rollback capabilities
- Sync history and analytics
- Advanced diff visualization
- Webhook integrations (GitHub, GitLab)
- Team collaboration features
- Sync approval workflows
Converted and distributed by TomeVault — claim your Tome and manage your conversions.