AceEngineer Website Update Skill
Automates daily website maintenance including competitor SEO analysis and content synchronization from related repositories.
Quick Start
# Run full daily update
./scripts/daily-update.sh
# Manual competitor analysis
python scripts/competitor_analysis.py
# Manual content sync
python scripts/content_sync.py --digitalmodel ../digitalmodel --worldenergydata ../worldenergydata
# Setup cron job
./scripts/cron-setup.sh
Proven website publish workflow
Use this when adding or fixing public pages on aceengineer.com.
-
Edit source files under
content/only.- Do not hand-edit
dist/as the source of truth. - For new public pages, create
content/<section>/.../index.html. - If using shared nav/footer/assets, include frontmatter like:
--- rootPath: "../../" --- - Do not hand-edit
-
Build locally from repo root:
npm test -- --runInBand npm run buildThis regenerates
dist/vianode build.jsusing the PostHTML include/expression pipeline. -
Verify local routes before pushing. Example:
python -m http.server 8788 --directory dist curl -I http://127.0.0.1:8788/<path>For important pages, also browser-check the rendered page.
-
Commit only source changes required for deployment. In this repo,
dist/is gitignored; Vercel rebuilds fromcontent/. -
Push to
main:git push origin mainVercel auto-deploys from
mainusing:buildCommand: npm run buildoutputDirectory: dist
-
Poll production until live:
curl -k -L -s -o /dev/null -w '%{http_code}\n' https://www.aceengineer.com/<path>Expect an initial 404 during rollout; retry until 200.
-
For GTM/demo work, verify both:
- the new page itself
- any inbound links from gallery/index pages
Critical findings
- The real source tree is
content/;dist/is generated and ignored by git. - Vercel deployment is automatic after push to
main; no manual deploy command was needed. - Production propagation can lag briefly; polling with
curlcaught the transition from 404 to 200. - For new nested pages (e.g.
content/methodology/.../index.html),rootPathmust match nesting depth so shared assets/nav links resolve correctly after build.
Features
Competitor Analysis
- Tracks keyword rankings for offshore engineering terms
- Auto-detects competitors from search results
- Generates weekly HTML reports with trends
- Provides SEO improvement recommendations
Content Sync
- Syncs S-N curve statistics from digitalmodel
- Updates Python module counts
- Imports BSEE production dashboards from worldenergydata
- Generates blog posts from documentation
Configuration
config/keywords.yaml- Keywords to trackconfig/content-sync.yaml- Source paths and sync rules
Outputs
reports/competitor-analysis/latest.html- Latest competitor reportassets/data/statistics.json- Updated site statisticsdist/demos/- Synced demonstration files
Cron Schedule
Daily at 6 AM local time:
0 6 * * * /mnt/github/workspace-hub/aceengineer-website/scripts/daily-update.sh
Dependencies
pip install pyyaml requests beautifulsoup4