Skip to content

Instantly share code, notes, and snippets.

@joewiz
Last active February 22, 2026 15:11
Show Gist options
  • Select an option

  • Save joewiz/3d88cba9f9e41b67702d0e59bcf8af2e to your computer and use it in GitHub Desktop.

Select an option

Save joewiz/3d88cba9f9e41b67702d0e59bcf8af2e to your computer and use it in GitHub Desktop.
Claude Code semver.xq session 2: Reflections

❯ I plan to repeat this on some other repositories. Do you have any lessons you'd like me to pass on to Claude for the next session, to help proceed more directly toward the solution we adopted?

Key technical facts (things that would have saved the most time if known upfront):

  1. HTTPS on port 8443, not HTTP on 8080 — @existdb/gulp-exist v5 defaults to secure: true; node-exist's compat shim converts that to protocol, overriding any HTTP setting from env vars. Don't fight it — use HTTPS and map port 8443 in CI, matching roaster's approach. Set rejectUnauthorized: false in the test runner for the self-signed cert.
  2. expath-pkg.xml path — Use semver.xqm, not content/semver.xqm. eXist-db's EXPath resolver prepends content/ automatically; doubling it breaks eXist-db 5.0.0 (6.x is forgiving). eXist-db-specific metadata (<author>, <website>, <status>, etc.) belongs only in repo.xml, not expath-pkg.xml.
  3. XQSuite test runner — Use inspect:module-functions(xs:anyURI("xmldb:exist:///db/apps/...")). The xmldb:exist:/// URI scheme is required; bare /db/... paths return an empty sequence. Submit XQuery via the REST API using the XML query document format (Content-Type: application/xml, <query xmlns="http://exist.sourceforge.net/NS/exist"> wrapper).
  4. @existdb/gulp-replace-tmpl — Requires { unprefixed: true } option for @key@-style placeholders.
  5. Reference repositories — Use https://github.com/eeditiones/roaster (/Users/joe/workspace/roaster) as the primary model for gulpfile, CI, and package structure. Use https://github.com/line-o/xbow (/Users/joe/workspace/xbow) as the reference for XQSuite test patterns.

Process notes:

  • Remember to migrate the <changelog> from xar-assembly.xml into repo.xml
  • Structure the PR as two commits: one chore: for file restructuring, one feat!: for the new build system
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment