- Work happens on feature branches:
feat/<layer>,fix/<short>, orchore/<short>. - Push the branch and open a PR against
main. - PR description links the issue with a
Refs #NorCloses #Ntrailer. - CI must pass before merge. The required check is
Test (Node 22). - Squash-merge only (linear history on
main). - Delete the branch after merge.
Direct pushes to main are blocked by branch protection. Repo admins can bypass in an emergency, but should still prefer the PR path.
npm install # respects .npmrc (ignore-scripts=true)
npm test # tsc + node --test 'dist/test/**/*.test.js'Tests must pass locally before pushing.
- Subject line under 70 characters, imperative mood ("Add X", not "Added X").
- Body explains the why. The diff already shows the what.
- No
Co-Authored-Bytrailers. - Reference issues with
Refs #N(partial work) orCloses #N(completes the issue).
Never commit:
.env,.env.**.pem,*.key,*.keystore- Anything inside
~/.sigil/or a project-local.sigil/
The repo .gitignore covers these patterns. Double-check git status before committing.
For security issues in sigil itself, open a private GitHub Security Advisory rather than a public issue.
sigild publishes to npm via OIDC trusted-publisher auth — there is no long-lived NPM_TOKEN. The release workflow at .github/workflows/release.yml is the only thing allowed to publish; it triggers on tags matching v*.
To cut a new release:
- Land a PR that bumps
package.jsonversionandserver.jsonversion+ the innerpackages[0].version(both must match). Get it intomain. - Pull
mainlocally so your working tree matches the merged commit. - Tag and push:
git tag v0.0.4 && git push --tags - The workflow runs: installs, tests, verifies the tag matches
package.json, thennpm publish --access public --provenance. If anything fails, no publish happens. - Optionally: also publish to the MCP registry.
mcp-publisher login github(if your local token expired) thenmcp-publisher publish. There's no automated path for the MCP registry yet.
One-time setup on npmjs.com (already done — listed here for documentation):
- Package settings → Trusted publishers → Add → GitHub Actions
- Organization or user:
cdrn - Repository:
sigil - Workflow filename:
release.yml - Environment name:
release
If that config is ever lost or rotated, every step above will fail with an OIDC auth error until it's recreated. No fallback token by design.