Skip to content

Releases: Spe1977/cli-collaboration

v2.5.0 — Grok Build compatibility and portable multi-CLI packaging

Choose a tag to compare

@Spe1977 Spe1977 released this 21 Jul 11:48

Highlights

  • Adds Grok Build compatibility without changing the existing Codex, Claude Code, and Gemini CLI behavior.
  • Ships one portable 2.5.0 package across all four runtimes, with a Grok adapter, metadata, default install/sync target, portability fixtures, and native discovery validation.
  • Documents Gemini Agent Skills discovery, Antigravity targeting, and duplicate-install prevention.
  • Includes the 2.4.0 language-preference and multi-LLM brainstorming additions that landed after the previous GitHub release.
  • Supports user-home installation on Bluefin 44 / Fedora Silverblue without modifying the immutable system layer.

See CHANGELOG.md for full details.

Full Changelog: v2.3.0...v2.5.0

v2.3.0 — doc-honest glob, CI, hardening, mechanical eval

Choose a tag to compare

@Spe1977 Spe1977 released this 20 May 23:24
1f5f198

This release tightens the gap between the documented protocol and the actual behavior of the guardrail scripts, adds continuous integration, makes the install path crash-safe, and adds mechanical structural checks for AGENT_HANDOFF.md and SKILL.md.

Added

  • CI matrix (P2): new .github/workflows/ci.yml with two jobs.
    • shellcheck (Ubuntu) lints every *.sh in the repo. SC2254 is excluded because check-ownership.sh deliberately uses dynamic case patterns as globs — that is the parser's contract.
    • fixtures matrix on ubuntu-latest and macos-latest runs the ownership parser fixtures, the install rollback fixture, and the new mechanical eval checks (Python 3 + PyYAML provisioned in the job).
  • Atomic install rollback (P3): install-skill.sh now exits with code 3 and restores the pre-install backup if cp -R fails. The system is left in either the "old target + no backup" or "backup + new target" state, never an intermediate state. Documented in usage().
  • Install rollback fixture (P3): new scripts/test-fixtures/install-rollback-test.sh PATH-shadows cp with a failing stub to assert the rollback contract.
  • Glob-crosses-slash fixture (P1): new scripts/test-fixtures/handoff-glob-crosses-slash.md and corresponding run-tests.sh case that pins the actual behavior of bash case glob matching across /, so the documented semantics cannot drift from the parser again.
  • Mechanical eval checks (P4): new evals/run-mechanical-checks.sh driver with an explicit "mechanical guards only" head comment, running the ownership fixtures, the install rollback fixture, the structural lint over AGENT_HANDOFF.md, and a PyYAML-based check that SKILL.md frontmatter parses with name and description present.
  • Structural lint (P4): new evals/lint-handoff.py verifies required top-level headings, the three ownership subsections (### agent-owned, ### user-reserved, ### frozen), ISO 8601 timestamps in ## History, and that ## Next agent starts from is non-trivial.
  • Supported Platforms section (P2): README.md and README_IT.md now document the supported target as Bash on Linux and macOS (scripts rely on Bash features like mapfile and [[ ... ]], not strictly POSIX sh); native Windows is unsupported and WSL is not part of the test matrix.
  • Version metadata (P5): skills/cli-collaboration/SKILL.md frontmatter now carries version: "2.3.0". The same version is surfaced in README.md, README_IT.md, and CHANGELOG.md so the source of truth is not solely the frontmatter.
  • Italian contributors record (P5): new CONTRIBUTORS_IT.md mirroring CONTRIBUTORS.md for symmetry with README_IT.md.
  • Python ownership parser (PR #4 review cycle): new skills/cli-collaboration/scripts/parse-ownership.py. See the matching entry under ### Changed for the migration rationale.

Changed

  • Doc-honest globs (P1): corrected the documented behavior of * in ownership patterns. * in a bash case pattern matches any sequence including /, so scripts/* matches both scripts/foo.sh and scripts/sub/foo.sh. The previously asserted "single directory level" behavior was factually wrong against the parser.
  • Ownership parser migration to Python (PR #4 review cycle): check-ownership.sh was reduced to a thin Bash wrapper (exec python3 "$SCRIPT_DIR/parse-ownership.py" "$@") and the full parser + matcher + conflict logic moved to a new scripts/parse-ownership.py. Python 3 is now a runtime dependency of the ownership check. The migration was forced by GitHub Actions fixtures (macos-latest) failing on Bash 3.2.57 whenever a handoff ownership line contained multibyte UTF-8 bytes (en-dash, em-dash). Seven Bash-side mitigations were attempted and ruled out before the migration. CLI contract (flags, env var, exit codes, conflict-message wording) is preserved verbatim. The new Python parser uses fnmatch.fnmatchcase for glob matching, preserving the P1 contract in which * crosses /.
  • Shell hardening (P3, selective): install-skill.sh and sync-skill.sh use set -euo pipefail. check-ownership.sh keeps set -u and set -o pipefail (no -e).
  • evals/evals.json honesty (P4): top-level status field changed from "tri-cli-complete" to "mechanical-guards-only", with a status_note explaining what CI actually verifies. Each scenario carries a boolean "mechanized" field: scenario C is true (covered by the ownership parser fixtures); A, B, D, E, F are false (would require an LLM-judge harness, out of scope).
  • AGENT_HANDOFF.md history (P5): per the project rule in SKILL.md, the ## History section was compacted: the last three detailed entries are preserved verbatim and older entries are summarized.

Out of scope (deferred to v3, gated by docs/future-architecture.md)

  • Custom segment-bounded glob parser (** token, single-directory *).
  • POSIX flock-based concurrency, .agent/state.json sidecar, MCP transport.
  • LLM-judge harness for behavioral evaluation of scenarios A, B, D, E, F.
  • Native Windows support.

Full changelog: https://github.com/Spe1977/cli-collaboration/blob/v2.3.0/CHANGELOG.md