Skip to content

Releases: uHappyLogic/cairn

1.1.0

Choose a tag to compare

@uHappyLogic uHappyLogic released this 05 Sep 13:03

Agent Layer Improvements (milestone 18)

  • Removed every pinned model: opus from the plugin — the three agents and the two skills that carried it — so dispatched agents and skills now inherit the session's model instead of forcing Opus.
  • Recolored the three agents red (complete-task), yellow (answer-open-question-with-recommendation), and blue (recommend-open-question) so no two share a color and all three stay distinguishable on a grayscale display.
  • Hardened /recommend-all-open-questions: the recommend-open-question agent now returns FAILED: <reason> on failure, and the sweep shape-checks every return before embedding, skipping a failed or malformed one (block left untouched, skipped questions reported) instead of splicing prose into requirements.md as XML.
  • Orchestrators now address their agents by namespaced registry name (cairn:complete-task, cairn:recommend-open-question, cairn:answer-open-question-with-recommendation), and the recommend sweep passes the milestone directory to its agent so it grounds itself in that milestone's requirements.md directly.
  • Made a failed or interrupted complete-task run resumable: partial work is left uncommitted in the tree and the next run continues from it rather than promising an untouched tree it could never guarantee.
  • The two file-editing agents now stage their own change set path-scoped and return a bare DONE/FAILED: <reason>; /complete-all-tasks and /answer-all-open-questions-with-recommendation commit that staged index, keeping one commit per task or answer.
  • Answer recording now folds the decision into ## Decisions before removing the <open-question> block, so an interruption between the two edits can no longer silently lose a question.
  • The Antigravity build now rewrites every ${CLAUDE_PLUGIN_ROOT}/shared/<name>.md reference to .agents/plugins/cairn/shared/<name>.md, so the generated tree's shared-procedure references resolve under Antigravity instead of pointing nowhere.

Full Changelog: 1.0.1...1.1.0

1.0.1

Choose a tag to compare

@uHappyLogic uHappyLogic released this 05 Sep 11:03

Versioning And Release Tooling (milestone 17)

  • Added scripts/set_version.py, a one-argument MAJOR.MINOR.PATCH script that writes every in-repo version literal — .claude-plugin/plugin.json, .claude-plugin/marketplace.json, pyproject.toml, and uv.lock — in a single all-or-nothing pass, never touching git, gh, or the generated tree.
  • Taught scripts/migrate_skills_to_agy.py to read the source manifest's version at generation time and copy it into the generated .agents/plugins/cairn/plugin.json, so the Antigravity manifest carries a version on every regeneration path while .claude-plugin/plugin.json stays the single source of truth.
  • Added a maintainer-only /release-plugin <MAJOR.MINOR.PATCH> skill as the sole documented home of the release procedure, gated behind four hard pre-flight stops (clean tracked tree, HEAD on main, main not behind origin/main, no untracked sources) and three pre-mutation version refusals (malformed literal, an existing tag, a version not strictly greater than the last release).
  • Made the skill compose its own release notes from the Milestone-finish: commits since the last release, cross-checked against the ### Milestone headings added to milestones/README.md over the same range, stopping on a mismatch in either direction and falling back to commit-derived notes — on explicit confirmation only — when no milestone was finished.
  • Standardised a release on the bare MAJOR.MINOR.PATCH tag and exactly one path-scoped Release: <VERSION> commit, followed by a single pre-publish pause and check-then-do branch push, tag push, and gh release creation, so a re-run with the same version resumes from the first incomplete step instead of duplicating work.

Full Changelog: 0.9.9...1.0.1

0.9.9

Choose a tag to compare

@uHappyLogic uHappyLogic released this 04 Sep 09:33

Frontmatter description diet (milestone 16)

  • Cut all 24 plugin frontmatter descriptions (21 skills/*/SKILL.md, 3 agents/*.md) to a single independent clause of 25 words or fewer naming only what that skill or agent does — the always-on description budget drops from 1,411 words to 452 (−68%), and the longest single description from 149 words to 23.
  • Restructured the six heaviest descriptions from scratch and shortened the nine mid-weight ones, deleting their trigger-phrase lists, mechanics, commit subjects, sequencing, cross-skill references, "Use when…" framing, and design provenance outright — a description is a routing label, never a record, so nothing cut was relocated.
  • Compressed the three agent descriptions into that same shape while keeping each invocation contract as a short clause naming what the prompt carries (the task's heading text, the question's Short Title).
  • Enforced two machine-checkable bars across the set: no semicolon or colon in any description, and every raw frontmatter loads under yaml.safe_load with its description: line left unquoted — so the transpiler's re-quoting fallback survives as an unexercised net.
  • Extended CLAUDE.md's Skill Frontmatter invariant into the single home of every rule governing the frontmatter description key.
  • Regenerated the checked-in Antigravity tree at .agents/plugins/cairn/, with each of the 24 generated files byte-identical to its source.

Runtime layer de-duplication (milestone 15)

  • De-duplicated the whole 32-file runtime layer (skills/*/SKILL.md, agents/*.md, shared/*.md) across eleven per-file sweeps, removing 7,597 words (32,758 → 25,161, −23.2%) under the rule that a sentence may be cut only where its content survives earlier in the same file, in a referenced shared procedure, or in a CLAUDE.md invariant.
  • Retired the ## Rules heading across the layer (−3,221 words), relocating each surviving rule into the step it constrains or into the file's opening description paragraph.
  • Moved editor-facing rationale out of the runtime files into the CLAUDE.md invariants (−2,772 words) and trimmed cross-file narration of counterparts to the one sentence each contract needs (−1,303 words).
  • Consolidated the CLAUDE.md invariants section in a single post-sweep pass, merging ten overlapping bullets (35 bullets → 25).
  • Ran seven fresh-context whole-layer re-audits with fix tasks between them; the runtime layer returned zero lost constraints for the last five passes and zero residual restatements for the last three.
  • Extended scripts/migrate_skills_to_agy.py to copy shared/ into the generated Antigravity tree, so every ${CLAUDE_PLUGIN_ROOT}/shared/<name>.md reference resolves to a file that is present.

Full Changelog: 0.9.8...0.9.9

0.9.8

Choose a tag to compare

@uHappyLogic uHappyLogic released this 01 Sep 14:12

Brief-level task pipeline (milestone 14)

  • Flattened the task pipeline to a single brief-level altitude: every entry in TASKS_TODO.md is a ## title plus a 1–3 sentence description and a trailing ---, with no Provides/Notes/Success sections, whichever path authored it.
  • Replaced shared/submit-procedure.md with shared/task-format.md, holding only the brief-level template and its four authoring guidelines — referenced by both authoring runners (derive-tasks and the submit-task skill) and parsed by shared/complete-procedure.md.
  • Made derive-tasks the single writer on the derivation path: it writes its ordered briefs into TASKS_TODO.md itself, retiring the per-brief dispatch loop and deleting the submit-task agent — leaving complete-task as the plugin's only remaining skill+agent pair.
  • Leaned down the submit-task skill to author the same brief-level format inline and own the position-anchored insertion itself, keeping its triage, position decision, and Task-submission: commit unchanged.
  • Reworked shared/complete-procedure.md to be self-sufficient at brief altitude: it derives each task's acceptance bar from the description plus requirements.md, resolves cross-task references by reading prior tasks' live deliverables, and records the derived bar in the TASKS_DONE.md entry as a **Verified:** bullet list.
  • Reconciled CLAUDE.md and README.md with the flattened design and regenerated the checked-in Antigravity plugin tree under .agents/plugins/cairn/.

Full Changelog: v0.9.7...0.9.8

v0.9.7

Choose a tag to compare

@uHappyLogic uHappyLogic released this 27 Jul 16:05

Full Changelog: v.0.9.6...v0.9.7

v.0.9.6

Choose a tag to compare

@uHappyLogic uHappyLogic released this 15 Jul 11:29
Milestone-finish: milestone_11_terse-skill-reporting

v.0.9.5

Choose a tag to compare

@uHappyLogic uHappyLogic released this 03 Jul 14:55

Full Changelog: v.0.9.4...v.0.9.5

v.0.9.4

Choose a tag to compare

@uHappyLogic uHappyLogic released this 02 Jul 12:59

Full Changelog: v.0.9.3...v.0.9.4

v.0.9.3

Choose a tag to compare

@uHappyLogic uHappyLogic released this 23 Jun 09:01

Full Changelog: v.0.9.2...v.0.9.3

v.0.9.2

Choose a tag to compare

@uHappyLogic uHappyLogic released this 16 Jun 09:49

Full Changelog: v.0.9.1...v.0.9.2