cogrind-workshop
Human-facing MCP client for a running cobalt-grinding daemon. One-shot action flags (--ingest, --ask, --query, --status, …) and an interactive REPL (--chat). Equivalent in role to Claude Desktop or Claude Code — just one MCP client among many; no privileged side-door into the cognitive system.
Status
Implemented. One-shot flags (--ingest, --ask, --query, --status, …) and an interactive REPL (--chat, with slash commands) drive a running cobalt-grinding daemon over MCP.
Releasing
Tag-driven via the release workflow on push of a v* tag. Use the ParkviewLab/dev-tools helpers — they enforce the SSOT-tag-CI loop (pyproject.toml is the only place the version lives; CI verifies the pushed tag matches before publishing). See the ParkviewLab handbook's releases.md, "Cutting a release" for the procedure.
Don't have the helpers? Install once: git clone https://github.com/ParkviewLab/dev-tools.git ~/dev-tools && cd ~/dev-tools && ./install.sh.
The workflow runs three jobs: a gate (the tag equals the pyproject.toml version, which carries no dev marker; the tagged commit is reachable from origin/main; the version is greater than the previous tag) gates the pypi publish (wheel + sdist via trusted publishing — no Docker image, since this is a CLI client, not a server). After the publish, a changelog job generates the new CHANGELOG.md section (LLM-written "Highlights" paragraph + a categorized list written by dev-tools' generate-changelog), commits it back to main, and creates the GitHub Release with the same content as its body.
Commit message convention
The changelog job groups each merged pull request by the Conventional Commits type of its title (the full list is in the ParkviewLab handbook's commits-and-changelogs.md) and lists any commit that reached the release without one under Direct commits:
| Title | Group in the notes | Notes |
|---|---|---|
any type with ! after it (feat!:), or a breaking-change footer |
Breaking changes | listed there once, whatever its type |
feat: |
Features | user-visible |
fix: |
Bug fixes | user-visible |
perf: |
Performance | user-visible |
refactor: |
Refactor | |
docs: |
Docs | |
test: |
Tests | |
revert: |
Reverts | GitHub's Revert button titles a PR Revert "…", which has no type |
build: / chore: / ci: / style: |
Maintenance | |
| any other title | Other changes | the whole title |
| a commit with no pull request | Direct commits | its subject and short hash |
A title without a recognised type is not dropped: it is listed whole under Other changes. So prefix your PR titles, and correct a title before the merge, since retitling afterwards does not change the commit. The groups appear in the order above, and an empty group is left out.
License
cogrind-workshop is dual-licensed. By default it is free software under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later); see LICENSE for the full text. A separate commercial license is available from the copyright holder for use that cannot comply with the AGPL (e.g. embedding in a closed-source product). See LICENSING.md for details.
Copyright © 2026 Gary Frattarola.
Metadata
Release files for cogrind-workshop 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cogrind_workshop-0.1.1.tar.gz | 83.7 kB | With provenance | Details for cogrind_workshop-0.1.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cogrind_workshop-0.1.1-py3-none-any.whl | Python 3 | none | any | Details for cogrind_workshop-0.1.1-py3-none-any.whl |
Total release size: 112.6 kB
Release files / cogrind_workshop-0.1.1.tar.gz
| Download URL | cogrind_workshop-0.1.1.tar.gz |
|---|---|
| Size | 83.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e817ed47b0bf67972a31c90ec37e801b4d392a266275c30744834b4fe060218d
|
|
BLAKE2b-256 checksum How to use checksums |
34e65750f2f630057f717fb44eed4382e694ce99bdcdc123e2b7d9c8630b7191
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logRelease files / cogrind_workshop-0.1.1-py3-none-any.whl
| Download URL | cogrind_workshop-0.1.1-py3-none-any.whl |
|---|---|
| Size | 28.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f53eef4c0347669c05e0f8d2b78988fbb8c8174216dce654b9d14fa8c9dd7430
|
|
BLAKE2b-256 checksum How to use checksums |
491312507de2e41e923eb250b75155ae287e3a542c6a8d0281a5358f0cf9ca57
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logSecurity for cogrind-workshop 0.1.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for cogrind_workshop-0.1.1.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.