Independent SIKESRA implementation based on AWCMS-Micro, with the checked-in EmDash baseline already available in emdash-latest/.
# Install dependencies
pnpm install
# Start development server (uses awcms-sikesraTemplate)
pnpm dev
# Sync from upstream (safe, preserves SIKESRA changes)
pnpm sync:upstream
# Preview sync without applying
pnpm sync:dry-runThis repository is an independent downstream maintenance workspace with:
- Safe upstream sync via
scripts/sync-from-awcms-micro.sh - Protected paths that preserve SIKESRA-specific code during sync
- Unique naming for plugins and templates to avoid conflicts
sikesra/
├── awcmsmicro-dev/ # Downstream implementation workspace
│ ├── packages/plugins/
│ │ └── awcms-sikesra/ # SIKESRA plugin (protected)
│ ├── templates/
│ │ ├── awcms-sikesraTemplate/ # Default template (protected, active)
│ │ └── awcms-sikesraTemplate-cloudflare/ # Cloudflare template (protected)
│ ├── demos/
│ │ └── cloudflare/ # Demo boundary
│ └── docs/
│ └── awcms-micro/sikesra/ # SIKESRA docs (protected)
├── emdash-latest/ # Clean EmDash baseline/reference
├── docs/ # Root governance docs (protected)
├── scripts/ # Sync and validation scripts (protected)
└── update-backup/ # Automatic sync backups
awcms-micro ──sync──▶ awcmsmicro-dev/
(upstream) (SIKESRA custom)
scripts/sync-from-awcms-micro.shrefreshes anawcms-microcache and rebuildsawcmsmicro-dev/emdash-latest/stays checked in as the local EmDash comparison baseline; no separateemdash/checkout is required- Protected SIKESRA paths are preserved during the rebuild
# Preview changes (safe, no modifications)
pnpm sync:dry-run
# Sync with backup and validation (recommended)
pnpm sync:upstream
# Force sync without backup (use with caution)
pnpm sync:force
# Validate protected paths after sync
pnpm validate:boundariesThe following paths are never overwritten during upstream sync:
| Path | Purpose |
|---|---|
awcmsmicro-dev/packages/plugins/awcms-sikesra/ |
SIKESRA plugin |
awcmsmicro-dev/templates/awcms-sikesraTemplate/ |
Default template (active) |
awcmsmicro-dev/templates/awcms-sikesraTemplate-cloudflare/ |
Cloudflare template |
awcmsmicro-dev/demos/cloudflare/ |
Demo boundary |
awcmsmicro-dev/docs/awcms-micro/sikesra/ |
SIKESRA docs |
awcmsmicro-dev/e2e/awcms-micro/sikesra/ |
E2E tests |
docs/ |
Root governance |
scripts/ |
Sync scripts |
Full list: scripts/awcms-micro-protected-paths.txt
To avoid conflicts with upstream:
| Upstream Name | This Repo Name |
|---|---|
awcms-micro-default |
awcms-sikesraTemplate |
awcms-micro-default-cloudflare |
awcms-sikesraTemplate-cloudflare |
@awcms-micro/plugin-sikesra |
@ahliweb/awcms-sikesra |
Rule: Always use awcms-sikesra or awcms-sikesraTemplate suffix for new plugins/templates.
| Service | Name | ID |
|---|---|---|
| D1 Database | sikesra |
e2902bf9-1648-4a46-8971-e4acadfa09ec |
| R2 Bucket | sikesra |
— |
| KV Namespace | sikesra-session |
29e3fd9bbf2f448fa3b36185b8be299a |
| Worker | sikesra |
— |
# Copy example env
cp .env.example .env
# Edit with your tokens (optional)
# GITHUB_TOKEN - for authenticated GitHub API access
# CLOUDFLARE_API_TOKEN - for D1/R2 operationsSee .env.example for available options.
- Make changes in protected paths only
- Run
pnpm validate:boundariesbefore committing - Test with
pnpm test
Edit scripts/awcms-micro-protected-paths.txt and add the path:
# New plugin
awcmsmicro-dev/packages/plugins/my-new-plugin/
# New template
awcmsmicro-dev/templates/my-template/
Sync automatically creates backups in update-backup/awcmsmicro-dev/:
pnpm d1:backup:sikesraThe D1 backup script exports the remote sikesra database, appends FTS restore commands, writes a checksum, and validates the dump in a temporary SQLite database.
# List backups
ls update-backup/awcmsmicro-dev/
# Restore from a specific backup
cp -a update-backup/awcmsmicro-dev/20260529-120000/packages/plugins/awcms-sikesra/ \
awcmsmicro-dev/packages/plugins/awcms-sikesra/- ahliweb/awcms-micro - AWCMS-Micro base
- ahliweb/sikesra - This repository
MIT (root) + package-specific licenses for plugins/templates.
See individual package LICENSE files for details.