- Replace Procrustes-based stability with Ridge regression on fused embeddings
- For each SVD axis, fit Ridge: SVD_score ~ fused_embedding per window
- Compare weight vectors via max(cosine similarity, Jaccard top-100)
- Add --regression-alpha CLI argument (default 1.0)
- Keep party-based fallback for windows with < 50 motions
- Update tests for new regression-based approach
Key finding: regression weights show moderate stability (0.06-0.51)
but no axes exceed 0.7 threshold — semantic features defining each
axis shift significantly across windows
A small project that uses QWEN embeddings for semantic features. The codebase includes an example Ansible package under packages/@ansible/example and helper scripts for deployment.
Embeddings
This project uses QWEN embeddings (model: qwen/qwen3-embedding-4b) via OpenRouter-compatible APIs.
Preferred environment variable: OPENROUTER_API_KEY with a fallback to OPENAI_API_KEY.
Publishing and deploying the Ansible package
Package location: packages/@ansible/example — this contains the Ansible playbooks and packaging used by CI.
To publish the package (CI): create a git tag for the version and provide NPM_TOKEN as a secret to the CI runner so it can publish to npm.
To deploy the package (CI): set the following repository secrets in your CI pipeline:
DEPLOY_HOST (default: motief.sgeboers.nl)
DEPLOY_SSH_KEY (private key for the webapps user)
DEPLOY_USER (default: webapps)
Defaults
DEPLOY_HOST: motief.sgeboers.nl
DEPLOY_USER: webapps
See docs/deployment/ansible-package-deploy.md for more detailed deploy instructions and defaults.