Package and registry publication requires owner-controlled accounts and trusted-publisher configuration. The repository workflows do not publish on ordinary pushes.
- Create or confirm the public npm organization/scope
@theneuralledger. - If version
0.1.0does not exist yet, qualify the tagged source and publish@theneuralledger/sdk,@theneuralledger/research,@theneuralledger/mcp, then@theneuralledger/clionce from an owner-authenticated terminal with--access public --provenance=false. Trusted publishing cannot be attached until each package record exists. - In npm, create a trusted publisher separately for all four packages using
GitHub repository
bekirdag/tnl-intelligence, workflowrelease-npm.yml, environmentnpm, and allowed actionnpm publish. - Create the protected GitHub environment
npmand require an owner approval. - For later versions, run the Release npm packages workflow manually with the exact package version. It validates and publishes SDK, Research, MCP, then CLI with provenance.
Version 0.1.0 is public at
pypi.org/project/tnl-intelligence.
The active trusted publisher uses owner bekirdag, repository
tnl-intelligence, workflow release-python.yml, and protected environment
pypi. No PyPI API token is stored.
For later versions:
- Update the package version and qualify the exact release source with Ruff,
strict mypy, pytest, wheel/sdist build,
twine check, and clean installation. - Push the qualified release commit to
main. - Run the Release Python package workflow with the exact package version and
approve the protected
pypienvironment. - Verify PyPI hashes, provenance, metadata, SDK import, and
tnl-quantfrom a new no-cache environment.
The registry name is com.theneuralledger/intelligence, so theneuralledger.com must authorize it.
- Generate an Ed25519 key outside the repository:
openssl genpkey -algorithm Ed25519 -out key.pem. - Derive the public key:
openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64. - Add a TXT record at
theneuralledger.com:v=MCPv1; k=ed25519; p=PUBLIC_KEY. - Extract the private hex value using the command in the official MCP Registry DNS-login guide.
- Store it as the
MCP_DNS_PRIVATE_KEYGitHub environment secret in protected environmentmcp-registry. - Publish npm first, then run Release MCP Registry metadata with confirmation
0.1.0.
server.json advertises only the npm stdio package. Add a remote URL only after a TLS and OAuth protected TNL-hosted MCP endpoint is deployed and tested.
The Release container workflow publishes ghcr.io/bekirdag/tnl-intelligence.
Run it manually only after the release commit is on main, the clean candidate
passes aggregate qualification, and the matching version tag exists. GitHub's
package permissions control visibility; no credentials beyond GITHUB_TOKEN are
embedded in the image.
For 0.1.0:
- Dispatch
release-container.ymlwith version0.1.0from the qualified commit. - Wait for the workflow to complete and record its run URL.
- Confirm GHCR exposes both
0.1.0andlatestfor the same digest and make the package public when necessary. - Pull the versioned image and verify
/healthzplus unauthenticated request rejection before announcing the release.
Rollback keeps immutable version evidence and moves or removes only latest
until a validated patch image is available.
npm ci
npm run validate
npm run pack:check
.venv/bin/python -m build python/tnl_intelligence
docker build -t tnl-intelligence:local .