Releases: alexherrero/crickets
v3.22.0 — V5-4 process-seam adoption (developer-workflows 0.25.0)
MINOR — developer-workflows 0.24.0 → 0.25.0: V5-4 process-seam adoption. resolve_plan.py previously bridged directly to agentm/scripts/harness_memory.py resolve-active-plan — an informal reach-in predating the V5-4 process seam. Now that the seam has shipped in agentm (process_seam.py, agentm v5.2.0), the informal bridge is retired in favour of the designed interface. A new find_process_seam.py script (DC-2 compliant — best-effort discovery, graceful-skip to exit 1 when agentm absent) discovers process_seam.py via path-fallback, and resolve_plan.py now makes two seam calls (state-path plan + state-path progress) and reassembles the tab-separated pair. The output contract and exit codes are unchanged (callers see <plan_path>\t<progress_path> on stdout; exit 0/1/2); the seam-vs-fallback switch is fully internal.
Added
developer-workflows0.25.0 —find_process_seam.py: V5-4 seam discovery bridge. Discovers agentm'sprocess_seam.pyvia$AGENTM_SCRIPTS_DIR→ co-located sibling →~/Antigravity/agentm/scripts/path-fallback (mirrorsfind_capability.py's DC-2 pattern). CLI:find_process_seam.py state-path {plan|progress} [--plan SLUG] [--cwd ROOT]. Exit 1 when seam absent; graceful-skip, never hangs. Injectableseam=path for tests.
Changed
developer-workflows0.25.0 —resolve_plan.pymigrated fromharness_memory.py resolve-active-planto twofind_process_seam.py state-pathcalls.locate_resolver()retained forqueue_status.py's agentm-scripts-dir lookup. Backward-compatresolver=alias inresolve()so downstream callers (design_doc, stage_plan, spawn_worker, integrate_worker) need no source changes.
Internal
test_find_process_seam.py(16 tests): discovery via$AGENTM_SCRIPTS_DIR/ co-located / conventional / absent;run_state_pathplan+progress propagation; main() CLI usage; seam-absent graceful exits.test_resolve_plan.pyupdated:harness_memory.pystubs replaced withfind_process_seam.pyseam stubs; four delegate tests confirm tab-separated pair output and Risk #7 invariant.test_design_doc.py,test_spawn_worker.py,test_integrate_worker.py: stub-stderr assertions updated toassertNotEqual(err, "").test_obsidian_vault_discovery.py+test_obsidian_vault_doctor.py: fixture configs updated to the post-V5-7 plugin-namespaced key so agentm V5-7's first-read migration does not fire during the test run.- Wiki:
Named-Plans.mdresolver bridge table and description updated for V5-4;Developer-Workflows.mdnotesfind_process_seam.pyalongsidefind_capability.py;Explanation.mdstale pending→implemented status corrected.
v3.21.0 — pii-patterns proactive rule (pii 0.2.0)
MINOR — pii 0.1.0 → 0.2.0: new pii-patterns rule. The PII guardrail gains a proactive complement to its reactive scrubber skill. Where pii-scrubber catches real values that slipped into a diff, pii-patterns teaches the agent never to write them in the first place: use RFC 2606 domains for emails, `$HOME`/`~` for personal paths, env-var references for API keys, and the 555-01xx range for phone numbers. Fires while writing committed content, not in `.harness/` or runtime config. When a real value is found, it surfaces it to the operator and proposes a stand-in before invoking `pii-scrubber`.
Added
- `pii` 0.2.0 — `pii-patterns` rule: proactive stand-in conventions so the `pii-scrubber` skill and pre-push hook never have to catch real emails, personal paths, API keys, or phone numbers. Covers: emails → RFC 2606 (`example.com`/`example.org`/`example.net`); paths → `$HOME` / `~` / ``; API keys → env-var references or `<API_KEY>`; phone → 555-01xx reserved range. Applies to committed content only (not `.harness/` or runtime values).
Internal
- `test_emit_claude.py` version anchor updated: `pii` → `0.2.0`.
- `test_src_model.py` primitive-count anchor updated: `pii` → 2 (skill + rule).
v3.20.0 — recoverability skill for developer-safety
MINOR — developer-safety 0.3.0: new recoverability skill.
The autonomy doctrine that governs every phase command (/work, /bugfix, /release) now ships as a standing skill active in every session — not only inside a named phase.
Added
recoverabilityskill — the stop-gate is reversibility, not destructiveness or blast-radius. Three-class action table:- Recoverable (
git push,gh pr create,gh release create, …) → announce + proceed, no confirmation wait - Unrecoverable (force-push rewriting shared history, sole-ref branch delete, published-tag overwrite, immutable deploy) → stop + confirm
- Unresolved decision → stop + ask + log as design/plan gap
- Recoverable (
- Covers close-out autonomy (archiving completed plans,
progress.mdappends, ROADMAP moves — always autonomous). - Documents the carve-outs the doctrine does not relax: worker-tree authority, PII hook, commit authorship.
- Cross-references
kill-switch/steer/commit-on-stopas the runtime enforcement layer (the skill is pre-action judgment; the hooks are in-flight controls).
v3.19.0 — Three catalog plugins + capability-probe retirement
MINOR — three new catalog plugins + developer-workflows 0.24.0: the slug-keyed capability_probe.py is retired in favour of the agentm V5-8 capability resolver (LC-5 downstream), and three new convention/workflow plugins ship their first release.
Added
testing-conventions0.1.0 —no-skip-testsrule (any skip/xfail marker requires an exact-technical-blocker comment + issue link) andtesting-conventionsskill (tests-are-sacred · verification-first · 3-layer pyramid). Reference.releasing-conventions0.1.1 —version-bump-requiredrule andship-releaseskill (pre-release checklist, changelog shape, paired-release discipline, version-bump policy). Reference.design-docs0.1.0 —adrskill (5-section shape with mandatory "why not the alternative" + re-audit triggers) and/designcommand wrapper (delegates todeveloper-workflows). Reference.
Changed
developer-workflows0.24.0 —capability_probe.pyretired;find_capability.pyis the live path. All 9 phase-command call-sites migrated to capability-keyed resolver queries (adversarial-review,wiki-maintenance,board-sync). DC-2 preserved: best-effort discovery, graceful-skip when agentm absent.code-review0.2.1 — addedcapabilities: [adversarial-review]declaration (LC-5 cutover).wiki-maintenance0.2.3 — addedcapabilities: [wiki-maintenance]declaration (LC-5 cutover).
Internal
- Wiki: three new reference pages;
Home.mdand sidebar updated. - ADR 0017 §3 amended:
find_capability.pyis the live path; re-audit trigger resolved.
v3.18.0 — Five Ship-phase commands (developer-workflows 0.22.1)
Summary
Five new commands for the Ship phase of the developer-workflows loop — the gap between /release (the merge gate) and production.
Added
/observe— instrumentation discipline: structured logging (log events, not strings), RED metrics (Request rate, Error rate, Duration), OpenTelemetry tracing, symptom-based alerting (alert on error rate, not CPU). Triggered when adding telemetry or shipping to production./deprecate— deprecation lifecycle: code-as-liability mindset, compulsory vs advisory classification, zombie code removal via the Beyonce Rule. Triggered when removing old systems or migrating callers off an interface./launch— pre-launch readiness gate: four-item checklist (observability wired, rollback tested, flag off-switch confirmed, staged rollout plan written), feature flag lifecycle table (created → dark launch → staged rollout → full rollout → flag removed)./ci-cd— CI/CD pipeline authoring: Shift Left, Faster is Safer, quality gate pipeline (lint → typecheck → test → build → deploy, each blocks the next), failure feedback loops (no "ship anyway" bypass)./document-decision— ADR trigger workflow: when to write and how to execute. References### CHANGELOG + ADR shapesin CLAUDE.md; does not redefine the format.
Post-review fixes (0.22.1)
Adversarial review found 5 behavioral defects, all fixed before release:
/deprecate— zombie check ran after compulsory deletion (ordering inverted); now runs before via Beyonce Rule in step 2./deprecate— advisory zombie-check failure routed to the compulsory removal path; now extends the deprecation window./observe— step 6 was missing PII scan and alert-symptom verification (both checklist items with no process step); added./ci-cd— feedback loop closure missing ("confirmed re-run unblocked merge" in checklist but no step); step 7.5 added./document-decision— CLAUDE.md section referenced asadr-shape/changelog-shape; corrected to### CHANGELOG + ADR shapes.
Plugin version
developer-workflows 0.21.2 → 0.22.1
Full changelog: see CHANGELOG.md
v3.17.0 — code-review skill enrichment batch + /doubt (code-review 0.2.0)
What's new
code-review 0.1.0 → 0.2.0 — six new primitives:
/simplifycommand — Chesterton's Fence (state why code exists before removing it) + Rule of 500 (500-line function/file as signal, not hard gate). 3-row rationalization table. How-to →security-reviewskill — three-tier boundary threat modeling: Tier 1 LLM API (prompt injection), Tier 2 Persistence (durable writes), Tier 3 System execution (shell/lateral movement). Required output:VULNERABILITY file:line [Tier N — name]orNO ISSUES FOUNDtier-by-tier.testing-strategyskill — Beyonce Rule + DAMP over DRY + Prove-It Pattern. Required output:MISSING-TEST description:behaviororCOVERAGE ADEQUATEwith explicit Beyonce Rule audit.security-auditoragent — Security Engineer sub-agent; works all three boundary tiers; prose-only output rejected.test-engineeragent — QA Specialist sub-agent; applies Beyonce Rule, Prove-It, DAMP assessment; prose-only output rejected./doubtcommand — in-flight adversarial decision review. CLAIM→EXTRACT→DOUBT→RECONCILE→STOP loop. CLAIM never reaches the reviewer. Hard 3-cycle cap; doubt theater escalates immediately. How-to →
Fixes
- Output token alignment in
security-reviewSKILL.md:[Tier N]→[Tier N — <tier name>]to matchsecurity-auditoroutput contract (found by adversarial/review).
Internal
code-reviewversion0.1.0 → 0.2.0;skills/subdir introduced undersrc/code-review/.- CI green: Linux ✓ Mac ✓ Windows ✓
- 10 commits including two integrated worker plans.
v3.16.1 — duplicate guard refinement + /work and /spec wording fixes
PATCH — three fixes found by post-release adversarial review of v3.16.0. No behavior change on the happy path.
Fixed
- Duplicate guard progress.md check (
work.md) —Status: donenow checksprogress.mdfor a task-completion line before hard-stopping; resumes close-out steps if none found (interrupted close-out recovery). ## Common Rationalizationsheading level (work.md) — demoted H2 → H3 so it stays inside## Processas a sub-step, not a top-level sibling./spec→/planhandoff wording (spec.md) — removed false claim that/planauto-readsSPEC.md; accurate language: pass spec content as the brief.
Internal
developer-workflows0.21.1 → 0.21.2. 2 commits. check-all 10/10 PASS.
v3.16.0 — self-amending loop, /interview-me + /spec, anti-rationalization tables, duplicate guard
MINOR — developer-workflows 0.19.0 → 0.21.1: three feature clusters + one direct fix. No breaking changes; every existing workflow is byte-identical unless the new commands are explicitly invoked.
Added
/interview-me— hypothesis-driven one-question-at-a-time brief extraction; stops at ≥ 95% confidence; feeds into/specor/plan./spec— writes a 6-section PRD to.harness/SPEC.mdbefore planning;/planreads it as structured input when present.- Self-amending loop — autonomous correction cycle: disposition classifier (kernel-defect vs operator-tuning), amend-and-ship with CI-before-tag wiring, correction quality gate, end-to-end dogfood seed validation. See ADR 0030.
- Single-writer artifact integration —
integrate_worker.pyserializes merges; concurrent-release coordination; pre-flight reconcile against already-shipped lanes; no-bypass conformance guard. capabilities.jsonsidecar (emit-antigravity) — each plugin emits acapabilities.jsonfor host-side capability discovery.- Anti-rationalization tables —
## Common Rationalizationstwo-column tables in/work(3 rows),/bugfix(3 rows),/review(2 rows); fire at invocation time to make step-skipping excuses immediately visible and refuted. - Anatomy Patterns section in
wiki/reference/Add-A-Skill.md— documents Rationalizations table + Red Flags list formats with/workexamples.
Fixed
- Duplicate guard in
/workstep 1 —Status: doneor liveworker/<slug>branch on origin → immediateDUPLICATE GUARDstop instead of silently re-doing the work. _posix_bashresolver — skips WSL bash stub on Windows (returned exit 0 but wasn't real bash).capabilities.jsonsidecars left untracked byemit-antigravitygenerator.
Internal
developer-workflows0.19.0 → 0.21.1across two integrated worker plans + one direct fix.- ADR 0030 authored and finalized — generated-artifact single-writer contract.
- 19 commits, check-all 10/10 PASS.
v3.15.1 — finalize_unit exit-code contract + pr_helpers pii-guard rc (patch)
Patch: developer-workflows 0.18.1
Two post-release bugfixes in finalize_unit.py and pr_helpers.py, found by adversarial /review on v3.15.0. No behavior change on the happy path (exit 0); callers that relied on exit 1/2 as a retry signal now get correct semantics.
Fixed
DEFECT 1 — finalize_unit.py: push-ok / PR-create-fail → exit 2 ("nothing pushed")
main() used result.action == "pr" as the exit-2 fall-through. When git push succeeded but gh pr create failed, the branch was already on the remote but main() returned exit 2 — callers retrying on exit 2 would push again (duplicate push).
DEFECT 2 — finalize_unit.py: push-rejected direct path → exit 1 ("graceful-skip")
When finalize_direct failed on a rejected push, action == "direct" → return 1. Nothing landed; callers silently missed the failure.
Fix: Replace the action-based heuristic with steps-based push detection:
push_landed = any(name == "push" and rc == 0 for name, rc in result.steps)
return 1 if push_landed else 2- Exit 1 = push landed (branch on remote; PR creation failed or gh-unavailable fallback)
- Exit 2 = nothing pushed (push rejected, PII blocked, commit failed — safe to retry)
Review finding — pr_helpers.py: pii-guard step always recorded rc=0
finalize_pr() / finalize_direct() both appended ("pii-guard", 0) before calling pii_guard(). A blocked guard incorrectly recorded a passing rc in result.steps. Fixed: capture the guard return value first, then append the correct rc.
Regression tests
5 new tests in TestFinalizeUnitMainExitCodes (scripts/test_finalize_unit.py). Two were RED before the exit-code fix; all 11 tests green after both fixes.
Files changed
src/developer-workflows/scripts/finalize_unit.py+ dist copiessrc/developer-workflows/scripts/pr_helpers.py+ dist copiesscripts/test_finalize_unit.pysrc/developer-workflows/group.yaml(0.18.0 → 0.18.1) + marketplace manifests
Commits: 339fb77, 488d6a7, c842858
CI: green Mac / Linux / Windows
Tracking: #27
Paired release: none (crickets-only patch; no agentm change)
v3.15.0 — Worktree-per-plan isolation: the dev loop auto-spawns a worker/<slug> worktree per plan unit
MINOR — a net-new isolation layer in developer-workflows + an isolation schema field in github-projects (additive; default-ON but config-gated; every existing workflow is byte-identical until an operator opts in via project.json).
The /work and /bugfix phase commands now auto-spawn a worker/<slug> git worktree per plan unit when isolation.mode: worktree-per-plan (the code default), and close it out via the new finalize_unit.py (PII guard → push → gh pr create, with a graceful direct-push fallback when gh is unavailable). Config opt-in in project.json counts as operator authority (ADR 0028), partially superseding ADR 0022.
New scripts: isolation_config.py (graceful reader, worktree detection, precedence cascade), pr_helpers.py (duplicate-with-drift-test from wiki_watch_dispatch.py), finalize_unit.py (PII guard → push → PR/direct). spawn_worker.py gains a root-anchor fix + 8 concurrency mitigations. 65 tests (30 new), check-all 9/9, CI green across Mac/Linux/Windows.
Plugin versions
developer-workflows0.17.0 → 0.18.0github-projects0.1.1 → 0.1.2
Full changelog: https://github.com/alexherrero/crickets/blob/main/CHANGELOG.md#v3150--2026-06-14